--- apiVersion: v1 items: - apiVersion: v1 data: cnibincopy.sh: |- #!/bin/bash set -e function log() { echo "$(date --iso-8601=seconds) [cnibincopy] ${1}" } DESTINATION_DIRECTORY=/host/opt/cni/bin/ # Perform validation of usage if [ -z "$RHEL8_SOURCE_DIRECTORY" ] || [ -z "$RHEL9_SOURCE_DIRECTORY" ] || [ -z "$DEFAULT_SOURCE_DIRECTORY" ]; then log "FATAL ERROR: You must set env variables: RHEL8_SOURCE_DIRECTORY, RHEL9_SOURCE_DIRECTORY, DEFAULT_SOURCE_DIRECTORY" exit 1 fi if [ ! -d "$DESTINATION_DIRECTORY" ]; then log "FATAL ERROR: Destination directory ($DESTINATION_DIRECTORY) does not exist" exit 1 fi # Collect host OS information . /host/etc/os-release rhelmajor= # detect which version we're using in order to copy the proper binaries case "${ID}" in rhcos|scos) RHEL_VERSION=$(echo "${CPE_NAME}" | cut -f 5 -d :) rhelmajor=$(echo $RHEL_VERSION | sed -E 's/([0-9]+)\.{1}[0-9]+(\.[0-9]+)?/\1/') ;; rhel|centos) rhelmajor=$(echo "${VERSION_ID}" | cut -f 1 -d .) ;; fedora) if [ "${VARIANT_ID}" == "coreos" ]; then rhelmajor=8 else log "FATAL ERROR: Unsupported Fedora variant=${VARIANT_ID}" exit 1 fi ;; *) log "FATAL ERROR: Unsupported OS ID=${ID}"; exit 1 ;; esac # Set which directory we'll copy from, detect if it exists sourcedir= founddir=false case "${rhelmajor}" in 8) if [ -d "${RHEL8_SOURCE_DIRECTORY}" ]; then sourcedir=${RHEL8_SOURCE_DIRECTORY} founddir=true fi ;; 9) if [ -d "${RHEL9_SOURCE_DIRECTORY}" ]; then sourcedir=${RHEL9_SOURCE_DIRECTORY} founddir=true fi ;; *) log "ERROR: RHEL Major Version Unsupported, rhelmajor=${rhelmajor}" ;; esac # When it doesn't exist, fall back to the original directory. if [ "$founddir" == false ]; then log "Source directory unavailable for OS version: ${rhelmajor}" sourcedir=$DEFAULT_SOURCE_DIRECTORY fi # Use a subdirectory called "upgrade" so we can atomically move fully copied files. # We now use --remove-destination after running into an issue with -f not working over symlinks UPGRADE_DIRECTORY=${DESTINATION_DIRECTORY}upgrade_$(uuidgen) rm -Rf $UPGRADE_DIRECTORY mkdir -p $UPGRADE_DIRECTORY cp -r --remove-destination ${sourcedir}* $UPGRADE_DIRECTORY if [ $? -eq 0 ]; then log "Successfully copied files in ${sourcedir} to $UPGRADE_DIRECTORY" else log "Failed to copy files in ${sourcedir} to $UPGRADE_DIRECTORY" rm -Rf $UPGRADE_DIRECTORY exit 1 fi mv -f $UPGRADE_DIRECTORY/* ${DESTINATION_DIRECTORY}/ if [ $? -eq 0 ]; then log "Successfully moved files in $UPGRADE_DIRECTORY to ${DESTINATION_DIRECTORY}" else log "Failed to move files in $UPGRADE_DIRECTORY to ${DESTINATION_DIRECTORY}" rm -Rf $UPGRADE_DIRECTORY exit 1 fi rm -Rf $UPGRADE_DIRECTORY kind: ConfigMap metadata: annotations: kubernetes.io/description: | This is a script used to copy CNI binaries based on host OS release.openshift.io/version: 4.21.23 creationTimestamp: "2026-07-08T11:57:56Z" managedFields: - apiVersion: v1 fieldsType: FieldsV1 fieldsV1: f:data: f:cnibincopy.sh: {} f:metadata: f:annotations: f:kubernetes.io/description: {} f:release.openshift.io/version: {} f:ownerReferences: k:{"uid":"63497350-dc9a-4d18-bff8-e5563ecce870"}: {} manager: cluster-network-operator/operconfig operation: Apply time: "2026-07-08T11:57:56Z" name: cni-copy-resources namespace: openshift-multus ownerReferences: - apiVersion: operator.openshift.io/v1 blockOwnerDeletion: true controller: true kind: Network name: cluster uid: 63497350-dc9a-4d18-bff8-e5563ecce870 resourceVersion: "3289" uid: 952f150c-cbd1-429d-9d96-c14a462bdba3 - apiVersion: v1 data: allowlist.conf: |- ^net.ipv4.conf.IFNAME.accept_redirects$ ^net.ipv4.conf.IFNAME.accept_source_route$ ^net.ipv4.conf.IFNAME.arp_accept$ ^net.ipv4.conf.IFNAME.arp_notify$ ^net.ipv4.conf.IFNAME.disable_policy$ ^net.ipv4.conf.IFNAME.secure_redirects$ ^net.ipv4.conf.IFNAME.send_redirects$ ^net.ipv6.conf.IFNAME.accept_ra$ ^net.ipv6.conf.IFNAME.accept_redirects$ ^net.ipv6.conf.IFNAME.accept_source_route$ ^net.ipv6.conf.IFNAME.arp_accept$ ^net.ipv6.conf.IFNAME.arp_notify$ ^net.ipv6.neigh.IFNAME.base_reachable_time_ms$ ^net.ipv6.neigh.IFNAME.retrans_time_ms$ kind: ConfigMap metadata: annotations: kubernetes.io/description: | Sysctl allowlist for nodes. release.openshift.io/version: 4.21.23 creationTimestamp: "2026-07-08T11:57:56Z" managedFields: - apiVersion: v1 fieldsType: FieldsV1 fieldsV1: f:data: .: {} f:allowlist.conf: {} f:metadata: f:annotations: .: {} f:kubernetes.io/description: {} f:release.openshift.io/version: {} manager: network-operator operation: Update time: "2026-07-08T11:57:56Z" name: cni-sysctl-allowlist namespace: openshift-multus resourceVersion: "3238" uid: e6f0496a-7fb7-44e9-84fb-7602f2879df9 - apiVersion: v1 data: allowlist.conf: |- ^net.ipv4.conf.IFNAME.accept_redirects$ ^net.ipv4.conf.IFNAME.accept_source_route$ ^net.ipv4.conf.IFNAME.arp_accept$ ^net.ipv4.conf.IFNAME.arp_notify$ ^net.ipv4.conf.IFNAME.disable_policy$ ^net.ipv4.conf.IFNAME.secure_redirects$ ^net.ipv4.conf.IFNAME.send_redirects$ ^net.ipv6.conf.IFNAME.accept_ra$ ^net.ipv6.conf.IFNAME.accept_redirects$ ^net.ipv6.conf.IFNAME.accept_source_route$ ^net.ipv6.conf.IFNAME.arp_accept$ ^net.ipv6.conf.IFNAME.arp_notify$ ^net.ipv6.neigh.IFNAME.base_reachable_time_ms$ ^net.ipv6.neigh.IFNAME.retrans_time_ms$ kind: ConfigMap metadata: annotations: kubernetes.io/description: | Sysctl allowlist for nodes. release.openshift.io/version: 4.21.23 creationTimestamp: "2026-07-08T11:57:56Z" managedFields: - apiVersion: v1 fieldsType: FieldsV1 fieldsV1: f:data: f:allowlist.conf: {} f:metadata: f:annotations: f:kubernetes.io/description: {} f:release.openshift.io/version: {} f:ownerReferences: k:{"uid":"63497350-dc9a-4d18-bff8-e5563ecce870"}: {} manager: cluster-network-operator/operconfig operation: Apply time: "2026-07-08T11:57:56Z" name: default-cni-sysctl-allowlist namespace: openshift-multus ownerReferences: - apiVersion: operator.openshift.io/v1 blockOwnerDeletion: true controller: true kind: Network name: cluster uid: 63497350-dc9a-4d18-bff8-e5563ecce870 resourceVersion: "3231" uid: c3a0066c-8214-44aa-9a28-21d3ca2265ec - apiVersion: v1 data: ca.crt: | -----BEGIN CERTIFICATE----- MIIDPDCCAiSgAwIBAgIICYhffnhdYFswDQYJKoZIhvcNAQELBQAwJjESMBAGA1UE CxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdyb290LWNhMB4XDTI2MDcwODExNTI1M1oX DTM2MDcwNTExNTI1M1owJjESMBAGA1UECxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdy b290LWNhMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAoPsVhf0w3Uh5 MYtJ4Fs3b35oz5TOBgvNZCRjeVxTiEmeL2iFvUA3LDeXjPozILBx20jivJ53y/AW f49rPy0Jd0VhsSzrxafgjmF3cn3lG6UT6waV/6fYpq+VZAN1TOSPX8zceFgLmacG gf1kSduoOTeT7GQZi5Ity8PFeU80O1z/fA8q/CuUyfi6cove5MD1NTuz1siuQZBs eIUSRcyfHHQ1NtT3+DFmgZCWdrgHSCoxCjMF2+Ql50qDHGXODjA9CMFlyiakneo2 SgqifPBCtGZVo05uqsNzxAWqMQOrF04UKe2EAwxnV8MFX4C7EJyeOyVzJV+IkZ85 Wsk0eff1VwIDAQABo24wbDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH/BAUwAwEB /zBJBgNVHQ4EQgRA9w3tn8NHU3VMgHPnsg2EDj8l7HGoN5xvPjYKAzO+LGBLY1Nq cZFZ28qlfVpa1H7QaJEG3FpCxIDClcgzC4mwQTANBgkqhkiG9w0BAQsFAAOCAQEA GyjA9oIt/yVbd3svDnujLJhYQg+9K1oeG6x+3u31OPIgSXeoUuG6JXz2sGSB/GrI clJc6zosD1teyKalXMYrKp8B2uq0tKpqEf1zqBPNA212JzzBwxZ0yv4LaP23kx/J BUijkaGh1Rk68td7a5ISsjJTnPEh4lmRLtKGc/9pcQMF4OJfpZksP71K9uh/49rD i4FyeOurJHyVONsnctJMU2AMH3qpFd2uxPJNK7aHJebKoF4gcO5I0H1RfKKlF0yI 1MXKmZU6NMxaZA+B2+vVw8cJTzWIKmm+LdLH854rkIk7N4il9UeYh5WYV45wTFvZ SilPNBrCmAQiTKADX0Y9bA== -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIEADCCAuigAwIBAgIIPhcPP2zzFe8wDQYJKoZIhvcNAQELBQAwJjESMBAGA1UE CxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdyb290LWNhMB4XDTI2MDcwODExNTMyOVoX DTI3MDcwODExNTMyOVowMDESMBAGA1UEChMJb3BlbnNoaWZ0MRowGAYDVQQDExFv cGVuc2hpZnQtaW5ncmVzczCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB ANWK3NvcEhBQyHuW4X9c8ITBVSfdPlc0KGE6UV9YzPsI9tRY9TccITZIp18T0g5j ZC3xnZ8KITGfgh9T4tLuJrSMHKFJWCBeDXgTzgRSDz1ROo45Vq39NLboEtSdSw09 17783nGBylInJ1oBEGITX+gDnpWvggKpTzTWMNIRTxHbiIwoFamn+1rh4gV7bkal 09RwlsyFMCRIJnkQm4NQ5YKzENOVtdwWlA3Yas03f1tF6Ggl0VV6S7ej3CD46uON 9KBZq/DhYA7Zkt5C91jUTO5GL4KDXKGG0NDo+fdPp5WtN0S8GHfw9+Vx1LiohHYD er4jBa22lvz22QfuKVSgKSUCAwEAAaOCASYwggEiMA4GA1UdDwEB/wQEAwIFoDAd BgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADBJBgNV HQ4EQgRAJdrPX0XkJEC+GFkh5dSadni0krSkeWyhNkcsEWJ27R16nHfpKyCaud3x KAiAy+gDyUjXHZL3rWXGKrzdm9mj4TBLBgNVHSMERDBCgED3De2fw0dTdUyAc+ey DYQOPyXscag3nG8+NgoDM74sYEtjU2pxkVnbyqV9WlrUftBokQbcWkLEgMKVyDML ibBBMEsGA1UdEQREMEKCQCouYXBwcy5iOTM1OTI4Yi0wNjBlLTRlYjYtYWU1Ny1h MzEwN2E2ODQyNzUucHJvZC5rb25mbHV4ZWFhcy5jb20wDQYJKoZIhvcNAQELBQAD ggEBAHV4SibW9WvfD2nKGo88c2/c9958ZoEd6783GS/aYSqU6bNeiITwnGDY2lXc A6FctRMLA36G+ufWojhZfGOkxppBh1Y39JbQGn68iutvV5Ljy5z0pRlSDOhJVQqB 5zv9jLxRQ9xVEa1NhE0OSH2eCWkc4FtNSVu+gi0UV+2SkCWYKqhRNHZjtrvxFD3G T9B/Bwt+JHj8VbuSSx1CTkrSdIGR6L33fkqSA35GkiPLWX8nlUBqpOiJBS7/6j6P 3qvDM8Edwl1771G9hDkP8DgUs3i5zx0iXAbeYahhT8S4aPQ/JJHie+gSyHpnCBn/ QxJh2U6tE6WUKL3piBVTW2sxDdg= -----END CERTIFICATE----- kind: ConfigMap metadata: annotations: kubernetes.io/description: Contains a CA bundle that can be used to verify the kube-apiserver when using internal endpoints such as the internal service IP or kubernetes.default.svc. No other usage is guaranteed across distributions of Kubernetes clusters. creationTimestamp: "2026-07-08T11:57:56Z" managedFields: - apiVersion: v1 fieldsType: FieldsV1 fieldsV1: f:data: .: {} f:ca.crt: {} f:metadata: f:annotations: .: {} f:kubernetes.io/description: {} manager: kube-controller-manager operation: Update time: "2026-07-08T11:57:56Z" name: kube-root-ca.crt namespace: openshift-multus resourceVersion: "3282" uid: c8bf6770-2f1d-40b7-a608-c20ee6046f50 - apiVersion: v1 data: daemon-config.json: | { "cniVersion": "0.3.1", "chrootDir": "/hostroot", "logToStderr": true, "logLevel": "verbose", "binDir": "/var/lib/cni/bin", "perNodeCertificate": { "enabled": true, "bootstrapKubeconfig": "/var/lib/kubelet/kubeconfig", "certDir": "/etc/cni/multus/certs", "certDuration": "24h" }, "cniConfigDir": "/host/etc/cni/net.d", "multusConfigFile": "auto", "multusAutoconfigDir": "/host/run/multus/cni/net.d", "namespaceIsolation": true, "globalNamespaces": "default,openshift-multus,openshift-sriov-network-operator,openshift-cnv", "readinessindicatorfile": "/host/run/multus/cni/net.d/10-ovn-kubernetes.conf", "daemonSocketDir": "/run/multus/socket", "socketDir": "/host/run/multus/socket", "auxiliaryCNIChainName": "vendor-cni-chain" } kind: ConfigMap metadata: creationTimestamp: "2026-07-08T11:57:56Z" labels: app: multus tier: node managedFields: - apiVersion: v1 fieldsType: FieldsV1 fieldsV1: f:data: f:daemon-config.json: {} f:metadata: f:labels: f:app: {} f:tier: {} f:ownerReferences: k:{"uid":"63497350-dc9a-4d18-bff8-e5563ecce870"}: {} manager: cluster-network-operator/operconfig operation: Apply time: "2026-07-08T11:57:56Z" name: multus-daemon-config namespace: openshift-multus ownerReferences: - apiVersion: operator.openshift.io/v1 blockOwnerDeletion: true controller: true kind: Network name: cluster uid: 63497350-dc9a-4d18-bff8-e5563ecce870 resourceVersion: "3357" uid: feb52a98-d2a9-4531-a4a8-6f8afbd463ee - apiVersion: v1 data: cabundle.crt: |- -----BEGIN CERTIFICATE----- MIIDUTCCAjmgAwIBAgIIJwH+szp08+gwDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UE Awwrb3BlbnNoaWZ0LXNlcnZpY2Utc2VydmluZy1zaWduZXJAMTc4MzUxMjIwODAe Fw0yNjA3MDgxMjAzMjhaFw0yODA5MDUxMjAzMjlaMDYxNDAyBgNVBAMMK29wZW5z aGlmdC1zZXJ2aWNlLXNlcnZpbmctc2lnbmVyQDE3ODM1MTIyMDgwggEiMA0GCSqG SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDBTNFWWSN3ayX8xb7eSU5JvBvUKEkT4mUQ cQ8YY2VZqhFqMmHdFNF8XYp5vuaXiFn+rdU0iZTedXb+qhZJTb7Ezy8ZgNFk1SY+ Iw9SIwlDTg+MgE3mTR/+3HMgokC74Ke7wj/ibELw1nNWPTtbi+uj/0Vj8Rsj9o17 NCQ+yG8H6gXyhCvJcAYsVOQi45gM1i/1x46LOTGIIaDVsJ6uMlm4x4eA7K+gRaev 4S9cNSDSKlaDPEBOSP2K+LKlIxCDLCi69lJQeWooPdq3FhZ5fz4giFMvPePSYc6Q w6RKBA5tU0t1CRUbYJqLRQyki85EKxk1lHM2ka6Wg39g0dfn79PpAgMBAAGjYzBh MA4GA1UdDwEB/wQEAwICpDAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRRBnou exGMuOYEGSiJYarM0btenzAfBgNVHSMEGDAWgBRRBnouexGMuOYEGSiJYarM0bte nzANBgkqhkiG9w0BAQsFAAOCAQEAv5C3Mr+DnuiClP4v+k5IXMdO7SCL0SBn/svs TlQFXfWniP3ZfWhg1O9nG8h4IMyhfSJVubpxEXX2HE7VUG04zpHPC7xIIV9a9bUF Cibd1HnmCh47KXtnfftQcwGj2JYirx/4FTE4aDbItWglegoZHioJUcEgrKjc60Qb tsvDgPxFyafJ5yLSvVBp2cH09RiiLASbv7F1ffxfT2C0nck8H+6rb4/itiSB6m6B t1YbK1toN6I8NC5DfrWHuD8FC6oyp16KIscg47NJnrDlXmQ717JY5S57Vzb6B3xP 1SWvEgGl7L/TmsKSsSuwGK2bSiBAXmEXVPUm65tVkvh1jpfNSQ== -----END CERTIFICATE----- kind: ConfigMap metadata: creationTimestamp: "2026-07-08T12:07:57Z" labels: opendatahub.io/managed: "true" managedFields: - apiVersion: v1 fieldsType: FieldsV1 fieldsV1: f:data: .: {} f:cabundle.crt: {} f:metadata: f:labels: .: {} f:opendatahub.io/managed: {} manager: manager operation: Update time: "2026-07-08T12:07:57Z" name: odh-kserve-custom-ca-bundle namespace: openshift-multus resourceVersion: "14211" uid: d51345a9-3f8c-4089-8267-cb7b8ab1d22d - apiVersion: v1 data: service-ca.crt: | -----BEGIN CERTIFICATE----- MIIDUTCCAjmgAwIBAgIIJwH+szp08+gwDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UE Awwrb3BlbnNoaWZ0LXNlcnZpY2Utc2VydmluZy1zaWduZXJAMTc4MzUxMjIwODAe Fw0yNjA3MDgxMjAzMjhaFw0yODA5MDUxMjAzMjlaMDYxNDAyBgNVBAMMK29wZW5z aGlmdC1zZXJ2aWNlLXNlcnZpbmctc2lnbmVyQDE3ODM1MTIyMDgwggEiMA0GCSqG SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDBTNFWWSN3ayX8xb7eSU5JvBvUKEkT4mUQ cQ8YY2VZqhFqMmHdFNF8XYp5vuaXiFn+rdU0iZTedXb+qhZJTb7Ezy8ZgNFk1SY+ Iw9SIwlDTg+MgE3mTR/+3HMgokC74Ke7wj/ibELw1nNWPTtbi+uj/0Vj8Rsj9o17 NCQ+yG8H6gXyhCvJcAYsVOQi45gM1i/1x46LOTGIIaDVsJ6uMlm4x4eA7K+gRaev 4S9cNSDSKlaDPEBOSP2K+LKlIxCDLCi69lJQeWooPdq3FhZ5fz4giFMvPePSYc6Q w6RKBA5tU0t1CRUbYJqLRQyki85EKxk1lHM2ka6Wg39g0dfn79PpAgMBAAGjYzBh MA4GA1UdDwEB/wQEAwICpDAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRRBnou exGMuOYEGSiJYarM0btenzAfBgNVHSMEGDAWgBRRBnouexGMuOYEGSiJYarM0bte nzANBgkqhkiG9w0BAQsFAAOCAQEAv5C3Mr+DnuiClP4v+k5IXMdO7SCL0SBn/svs TlQFXfWniP3ZfWhg1O9nG8h4IMyhfSJVubpxEXX2HE7VUG04zpHPC7xIIV9a9bUF Cibd1HnmCh47KXtnfftQcwGj2JYirx/4FTE4aDbItWglegoZHioJUcEgrKjc60Qb tsvDgPxFyafJ5yLSvVBp2cH09RiiLASbv7F1ffxfT2C0nck8H+6rb4/itiSB6m6B t1YbK1toN6I8NC5DfrWHuD8FC6oyp16KIscg47NJnrDlXmQ717JY5S57Vzb6B3xP 1SWvEgGl7L/TmsKSsSuwGK2bSiBAXmEXVPUm65tVkvh1jpfNSQ== -----END CERTIFICATE----- kind: ConfigMap metadata: annotations: service.beta.openshift.io/inject-cabundle: "true" creationTimestamp: "2026-07-08T11:57:55Z" managedFields: - apiVersion: v1 fieldsType: FieldsV1 fieldsV1: f:data: {} f:metadata: f:annotations: .: {} f:service.beta.openshift.io/inject-cabundle: {} manager: kube-controller-manager operation: Update time: "2026-07-08T11:57:55Z" - apiVersion: v1 fieldsType: FieldsV1 fieldsV1: f:data: f:service-ca.crt: {} manager: service-ca-operator operation: Update time: "2026-07-08T12:03:41Z" name: openshift-service-ca.crt namespace: openshift-multus resourceVersion: "7893" uid: 37740d0c-92bb-4d99-91c1-570fac2c4853 - apiVersion: v1 data: whereabouts.conf: | { "datastore": "kubernetes", "kubernetes": { "kubeconfig": "/etc/kubernetes/cni/net.d/whereabouts.d/whereabouts.kubeconfig" }, "reconciler_cron_expression": "30 4 * * *", "log_level": "verbose", "configuration_path": "/etc/kubernetes/cni/net.d/whereabouts.d" } kind: ConfigMap metadata: creationTimestamp: "2026-07-08T11:57:56Z" managedFields: - apiVersion: v1 fieldsType: FieldsV1 fieldsV1: f:data: f:whereabouts.conf: {} f:metadata: f:ownerReferences: k:{"uid":"63497350-dc9a-4d18-bff8-e5563ecce870"}: {} manager: cluster-network-operator/operconfig operation: Apply time: "2026-07-08T11:57:56Z" name: whereabouts-flatfile-config namespace: openshift-multus ownerReferences: - apiVersion: operator.openshift.io/v1 blockOwnerDeletion: true controller: true kind: Network name: cluster uid: 63497350-dc9a-4d18-bff8-e5563ecce870 resourceVersion: "3329" uid: 19f5d2f0-1162-40b4-b8ff-e474d5d054f4 kind: ConfigMapList metadata: resourceVersion: "54519"