--- 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.24 creationTimestamp: "2026-07-12T15:03:44Z" 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":"4ea142d8-2629-4545-86ee-eb6bd607dadd"}: {} manager: cluster-network-operator/operconfig operation: Apply time: "2026-07-12T15:03:44Z" name: cni-copy-resources namespace: openshift-multus ownerReferences: - apiVersion: operator.openshift.io/v1 blockOwnerDeletion: true controller: true kind: Network name: cluster uid: 4ea142d8-2629-4545-86ee-eb6bd607dadd resourceVersion: "2391" uid: dd20cf4a-ecbc-4306-9614-9308d13c627e - 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.24 creationTimestamp: "2026-07-12T15:03:44Z" 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-12T15:03:44Z" name: cni-sysctl-allowlist namespace: openshift-multus resourceVersion: "2379" uid: 3f3a1fc5-fccc-4af8-b9b9-2ef3cb18ff03 - 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.24 creationTimestamp: "2026-07-12T15:03:44Z" 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":"4ea142d8-2629-4545-86ee-eb6bd607dadd"}: {} manager: cluster-network-operator/operconfig operation: Apply time: "2026-07-12T15:03:44Z" name: default-cni-sysctl-allowlist namespace: openshift-multus ownerReferences: - apiVersion: operator.openshift.io/v1 blockOwnerDeletion: true controller: true kind: Network name: cluster uid: 4ea142d8-2629-4545-86ee-eb6bd607dadd resourceVersion: "2378" uid: 05907ddd-4717-40b8-bd22-f8fdac06a3f3 - apiVersion: v1 data: ca.crt: | -----BEGIN CERTIFICATE----- MIIDPDCCAiSgAwIBAgIIPliBdP7sIbswDQYJKoZIhvcNAQELBQAwJjESMBAGA1UE CxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdyb290LWNhMB4XDTI2MDcxMjE1MDEzMloX DTM2MDcwOTE1MDEzMlowJjESMBAGA1UECxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdy b290LWNhMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvQeJzfN22o7r XJZeuwIEvaL1I/Bk2QXPVOLtDAgM/mj6zLl8RxwDGQCwah0K9XvUGs6BIKvMFYeX W8XkWxaSGzXHuKzHya6twXVSxgK7WOoXCb6QAQ1BM6BCKK4HbH87drO8WxBtpD0P wo9WCmrOXZdpCmdSFBkGTISV/QymiGQDovLng4xof8k+7IFK01Z2/b3aII2QZDrh WbKboIsqgTyxPdIzQjov6pYFlloi0MncfzgyfE2vdyb1phXSaH5UIHSn0zmmqlY9 2KZV2grwKfKrp9fjqkjAgDt28ZtX1a24WlFyYWtPbbDI6f5dT6HiAmoLolvoAILO q+EAgGRwpwIDAQABo24wbDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH/BAUwAwEB /zBJBgNVHQ4EQgRA9fBwqM2R9+P9GyAp/hvUa9IIdZre0MjazO5A1OE8HIh9tZhF P4NA/pcdehWjSL3gZ7kp5qVVRKUi8Px+yYLTfTANBgkqhkiG9w0BAQsFAAOCAQEA CaZtS7MgrPiXmBfVS1Q4Pug14ZEgjptf/VfHp8Msc088v+WFWU1SGiGjFWiwDE+u /G6i8ori8c1UgGJkRrZi727FVKJsow5InT+CprWojHNOa09mLdQGfJs+CxTHdlrb Ttdsz7wcGvlnAO24/KpouGqVf3n7yUuxkylptnAyApk7UUgB8rKD+4nHZe2m10UW FwOsi1pLnxiPTys2/YT/tcVl78JVtaIk6L+zD4TEvZHxn4qgFVOIHqh3lic+bsjX GdEDc4iyQlqgmUDsczhrlfLp+sgIpTsvsw2f5rwu1kjuNYJhjquJByChlXgqslSC AG1jJ3qUPCDGhUDJKHsTBw== -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIEADCCAuigAwIBAgIIVvEmD907Q3owDQYJKoZIhvcNAQELBQAwJjESMBAGA1UE CxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdyb290LWNhMB4XDTI2MDcxMjE1MDE1N1oX DTI3MDcxMjE1MDE1N1owMDESMBAGA1UEChMJb3BlbnNoaWZ0MRowGAYDVQQDExFv cGVuc2hpZnQtaW5ncmVzczCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB ANkvQ9GzhB0/MGqjnVgvnkJdB37OkRAzTtAouw34KKd+WJYA877CRYAucos7LV3Q dvpBZCQcWUrS4yMqtRjz2lFcMFQQwEhZsM5tzRuo/7M8zz+/tYhacEXFjgLvcr39 f1Yh2WJ1oxG/ObLM3YpPg0iUzPL5uT5slYXX9DWaGOJHBjpvjUWqvF01detmCpYF OFrZ84R0pqux4Z0E0e1aIkE2Lyntp3fkGayoUiVHYOmgEKkFzJ5a8p5HJipqemQm FZhiAzLnkPM8YAx8n/Yz3RxOilhxuLawO+VhVyYcwH02ETYhG2tJR6G4oW/qya/V /TfpEFK4XnPoTxb/sIMc9KMCAwEAAaOCASYwggEiMA4GA1UdDwEB/wQEAwIFoDAd BgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADBJBgNV HQ4EQgRAecr3+i+cu3j6T65hENSgyMFLnvxKRRKPIATzROshwnAudatk4DvRV96P b7fkStyWANRjmIFlRnJlVEbCoV4bETBLBgNVHSMERDBCgED18HCozZH34/0bICn+ G9Rr0gh1mt7QyNrM7kDU4TwciH21mEU/g0D+lx16FaNIveBnuSnmpVVEpSLw/H7J gtN9MEsGA1UdEQREMEKCQCouYXBwcy45ZTUzOTMzMy00ZmI3LTQwYjktOWIzNC0y ZjU3MjcwNjZlYjkucHJvZC5rb25mbHV4ZWFhcy5jb20wDQYJKoZIhvcNAQELBQAD ggEBAF3h+CO8e0DFxqBOEru5xp2oZuA7q9fCxZWEWFTPB6bkkwfVxfOUD4yQxSPC +1Mn/IFAdP+KNHlw1W4pYAwTDo4icUfoeoPg0E1fYl/lgwki4lgWtu99Bjz2gh2C +wJF8hw76NT5s5ci8IGnnVkcSyIr99rBSxmohm171AqusvLoap/ZNsr8mLfDvDEJ xQgPwx1jklNQkisd6N6gpAMl7325pKipGLtBndrIwojOJFKZsIgp+f8ILrBEYSSz DX5FKsiCl36sHtUXERElt1/1QswzJ2dn9C4lfs486dk62D+rnxUWf7kNkpx4ZFlX zDaD24dqwdX7tKm4FAcTjNT8+KI= -----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-12T15:03:41Z" 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-12T15:04:04Z" name: kube-root-ca.crt namespace: openshift-multus resourceVersion: "4058" uid: f3d42012-8c41-4053-93cd-e1116417c6ef - 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-12T15:03:45Z" 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":"4ea142d8-2629-4545-86ee-eb6bd607dadd"}: {} manager: cluster-network-operator/operconfig operation: Apply time: "2026-07-12T15:03:45Z" name: multus-daemon-config namespace: openshift-multus ownerReferences: - apiVersion: operator.openshift.io/v1 blockOwnerDeletion: true controller: true kind: Network name: cluster uid: 4ea142d8-2629-4545-86ee-eb6bd607dadd resourceVersion: "2401" uid: dc914c32-8acf-4d3c-a892-9951d02f0eaa - apiVersion: v1 data: cabundle.crt: |- -----BEGIN CERTIFICATE----- MIIDUTCCAjmgAwIBAgIIYrmXhFh5XsowDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UE Awwrb3BlbnNoaWZ0LXNlcnZpY2Utc2VydmluZy1zaWduZXJAMTc4Mzg2OTI0OTAe Fw0yNjA3MTIxNTE0MDhaFw0yODA5MDkxNTE0MDlaMDYxNDAyBgNVBAMMK29wZW5z aGlmdC1zZXJ2aWNlLXNlcnZpbmctc2lnbmVyQDE3ODM4NjkyNDkwggEiMA0GCSqG SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDEPaiPs7lKBciDFc+JpPJSZImoP+y5PxZ4 Z5c7HFcsyHTIRfAyws58JGVwTlkl9kcwHAKUDeKP9KkXCL0sfoFGHOzBlR6jsseC RicWcHf7ZTKWJ/bntXvIxtgIrCIdDOoKX/rFw67V8x4voV2f1zt+saLszv5szEUu +2QEkr1wMaHhjPbQuvFHeHFdH6tnFRrLkDh1fhgq8hr8FgKWletpR+kLCgDMa9hT vW37VXukQV1ih9Qq6guNlOiWT4NghdlHIK6CNh/lvxAQYngea1FNRpz7xOmcjFA9 2RUTNg1dxw6vm81OJuThHqUACuu+a3KJx8xEQ8saowGG6jFnsBoJAgMBAAGjYzBh MA4GA1UdDwEB/wQEAwICpDAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRn36gz LjH7llAaYq8U6Dsx1vqTWzAfBgNVHSMEGDAWgBRn36gzLjH7llAaYq8U6Dsx1vqT WzANBgkqhkiG9w0BAQsFAAOCAQEAIK5ENFrYh1SRKBLv8l25sCECCjSGgYJWE6HG VkhJ1l+KdAX+tx8hhmDGud/fhvusQkEW/IsPe0uHxbTOyryHSx9EkouGkyhzANR+ PXXyFigo5j1cr6/6cy8VKrxoXzWYpEfDFef7v2RLB7Q8UXX0iM9q/BT0dW/OPvtz B1x2+OKmlps/ffu4ae9vRU2vEsbnxD25qxsHFNSxy1FHYS2VMQrX6e1S9lxMZ7jo 2zwOmhuVqGeNRwGi2UC/eg159LRkubkjQDaayID+t0ZZ4hc/6FL270kM/9ZDRq54 qxmKm44099lXccPEMBA4vAzE+jDgaCxiMCJ5dxGWM0ldZoNqKg== -----END CERTIFICATE----- kind: ConfigMap metadata: creationTimestamp: "2026-07-12T15:20:13Z" 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-12T15:20:13Z" name: odh-kserve-custom-ca-bundle namespace: openshift-multus resourceVersion: "16562" uid: 68ff1937-4ff8-428c-8572-79486d713bb3 - apiVersion: v1 data: service-ca.crt: | -----BEGIN CERTIFICATE----- MIIDUTCCAjmgAwIBAgIIYrmXhFh5XsowDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UE Awwrb3BlbnNoaWZ0LXNlcnZpY2Utc2VydmluZy1zaWduZXJAMTc4Mzg2OTI0OTAe Fw0yNjA3MTIxNTE0MDhaFw0yODA5MDkxNTE0MDlaMDYxNDAyBgNVBAMMK29wZW5z aGlmdC1zZXJ2aWNlLXNlcnZpbmctc2lnbmVyQDE3ODM4NjkyNDkwggEiMA0GCSqG SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDEPaiPs7lKBciDFc+JpPJSZImoP+y5PxZ4 Z5c7HFcsyHTIRfAyws58JGVwTlkl9kcwHAKUDeKP9KkXCL0sfoFGHOzBlR6jsseC RicWcHf7ZTKWJ/bntXvIxtgIrCIdDOoKX/rFw67V8x4voV2f1zt+saLszv5szEUu +2QEkr1wMaHhjPbQuvFHeHFdH6tnFRrLkDh1fhgq8hr8FgKWletpR+kLCgDMa9hT vW37VXukQV1ih9Qq6guNlOiWT4NghdlHIK6CNh/lvxAQYngea1FNRpz7xOmcjFA9 2RUTNg1dxw6vm81OJuThHqUACuu+a3KJx8xEQ8saowGG6jFnsBoJAgMBAAGjYzBh MA4GA1UdDwEB/wQEAwICpDAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRn36gz LjH7llAaYq8U6Dsx1vqTWzAfBgNVHSMEGDAWgBRn36gzLjH7llAaYq8U6Dsx1vqT WzANBgkqhkiG9w0BAQsFAAOCAQEAIK5ENFrYh1SRKBLv8l25sCECCjSGgYJWE6HG VkhJ1l+KdAX+tx8hhmDGud/fhvusQkEW/IsPe0uHxbTOyryHSx9EkouGkyhzANR+ PXXyFigo5j1cr6/6cy8VKrxoXzWYpEfDFef7v2RLB7Q8UXX0iM9q/BT0dW/OPvtz B1x2+OKmlps/ffu4ae9vRU2vEsbnxD25qxsHFNSxy1FHYS2VMQrX6e1S9lxMZ7jo 2zwOmhuVqGeNRwGi2UC/eg159LRkubkjQDaayID+t0ZZ4hc/6FL270kM/9ZDRq54 qxmKm44099lXccPEMBA4vAzE+jDgaCxiMCJ5dxGWM0ldZoNqKg== -----END CERTIFICATE----- kind: ConfigMap metadata: annotations: service.beta.openshift.io/inject-cabundle: "true" creationTimestamp: "2026-07-12T15:03:41Z" 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-12T15:03:41Z" - apiVersion: v1 fieldsType: FieldsV1 fieldsV1: f:data: f:service-ca.crt: {} manager: service-ca-operator operation: Update time: "2026-07-12T15:14:21Z" name: openshift-service-ca.crt namespace: openshift-multus resourceVersion: "9381" uid: 72e0bc8b-1bf6-4624-8d59-2dc5a104ced6 - 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-12T15:03:44Z" managedFields: - apiVersion: v1 fieldsType: FieldsV1 fieldsV1: f:data: f:whereabouts.conf: {} f:metadata: f:ownerReferences: k:{"uid":"4ea142d8-2629-4545-86ee-eb6bd607dadd"}: {} manager: cluster-network-operator/operconfig operation: Apply time: "2026-07-12T15:03:44Z" name: whereabouts-flatfile-config namespace: openshift-multus ownerReferences: - apiVersion: operator.openshift.io/v1 blockOwnerDeletion: true controller: true kind: Network name: cluster uid: 4ea142d8-2629-4545-86ee-eb6bd607dadd resourceVersion: "2396" uid: 51d4bba4-7b81-4a68-a3d2-560465373787 kind: ConfigMapList metadata: resourceVersion: "58567"