--- 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.20 creationTimestamp: "2026-06-15T14:59:35Z" 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":"68e869f9-71cc-4218-8e1a-59b4ad576b2d"}: {} manager: cluster-network-operator/operconfig operation: Apply time: "2026-06-15T14:59:35Z" name: cni-copy-resources namespace: openshift-multus ownerReferences: - apiVersion: operator.openshift.io/v1 blockOwnerDeletion: true controller: true kind: Network name: cluster uid: 68e869f9-71cc-4218-8e1a-59b4ad576b2d resourceVersion: "2605" uid: ff04ab0b-34b3-4171-bf59-714d52f3e232 - 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.20 creationTimestamp: "2026-06-15T14:59:35Z" 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-06-15T14:59:35Z" name: cni-sysctl-allowlist namespace: openshift-multus resourceVersion: "2584" uid: 653ee11e-5d5b-4a30-96d2-533dc6e9eb8d - 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.20 creationTimestamp: "2026-06-15T14:59:35Z" 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":"68e869f9-71cc-4218-8e1a-59b4ad576b2d"}: {} manager: cluster-network-operator/operconfig operation: Apply time: "2026-06-15T14:59:35Z" name: default-cni-sysctl-allowlist namespace: openshift-multus ownerReferences: - apiVersion: operator.openshift.io/v1 blockOwnerDeletion: true controller: true kind: Network name: cluster uid: 68e869f9-71cc-4218-8e1a-59b4ad576b2d resourceVersion: "2583" uid: c357f2d9-1ff9-4274-8b23-a33338e49966 - apiVersion: v1 data: ca.crt: | -----BEGIN CERTIFICATE----- MIIDPDCCAiSgAwIBAgIIegGAISNL7ZkwDQYJKoZIhvcNAQELBQAwJjESMBAGA1UE CxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdyb290LWNhMB4XDTI2MDYxNTE0NTcyOVoX DTM2MDYxMjE0NTcyOVowJjESMBAGA1UECxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdy b290LWNhMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0RWkiv8rwfJf 09THJ2X+2g5Kl4zreGJi0jkPvLXHdEi3PHJpKTH6UXInspme9YIGQ2t8yoZDAFaR UyNBCpmddERwgAxaf48SNsTnN7Ap03FRFcRn0ttp5ujt/5K1grdGKRDTVXNLftDw W+DEPsXoxT1M6jOTJxcN+xj6+58kdPMH7j+feG4Z+zJZMAUJF8g+bQTMC3elufAK GGjYAymUJlsmShl4i8OiNoUhvssqbTojGhZJsi9rCbzq7IoxncjyEf1NIy7tgtyQ 8QoDje3jiGaYhoW4y2BQVgvuq3cQbBa+1xGJYNjC744krKDh0GpA4tstv9gNa/eo 8ncI4O91bwIDAQABo24wbDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH/BAUwAwEB /zBJBgNVHQ4EQgRAVnhYRJNAwAWTiRqvuWAbCMDiCA4mUDMFUg43rdLbRdBtTvR1 26/5ZAoESa/0vFDuu4MJKhM58yiN514fh9E42TANBgkqhkiG9w0BAQsFAAOCAQEA KdIY9NnaMblKW5TBCzr7L3KwyfmvrfIYoB521jelgWPReJefdAVV65U0Mlcun2Xy 4A0HloTSFIs3KbPDFHgEfpIyyLjppqQZoB4y6QwWIVaM0kQdBz+HSrZ9cBE9jBNx 4lHOEbQNHdi3EljX2v+jxNrSk1HR8DVv6UE53rSP4RDFcADc4OM5cg2r1AJGPKJD AAjRs2QHs2csugHBXhBV83oIqzok9gq5OQif+NUWWe/XX37QldRUidhJHyB23qdt zzP0Gpg3IMMTRnh61KvrAqRx8Eakl80PDfpiYjjrIXo8SsnIHfK2TJQyBsi5VIzb YBFqsyr18kGYg4k/KMuYBg== -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIEADCCAuigAwIBAgIIBm2k5HUkrhUwDQYJKoZIhvcNAQELBQAwJjESMBAGA1UE CxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdyb290LWNhMB4XDTI2MDYxNTE0NTgwMFoX DTI3MDYxNTE0NTgwMFowMDESMBAGA1UEChMJb3BlbnNoaWZ0MRowGAYDVQQDExFv cGVuc2hpZnQtaW5ncmVzczCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB APUcB6prfQrPfEub5kMJUtIWca86t6rxMsh+kez+m/4heBd14Z4Ic1zEtfzsEZ2c HigMO2NZmqElaHaraFbJvjQvnYTK43wyojJU9r8HXRAz9LIk7glWrQ1O7tZz9ycK hOGtsodMy6XobKDFWZ8iPsyuJEY3h5yXSABPr1KmJ72lTdBu91P6yRyL6Ta54XBg rSwo55igQOR/hgQjd2ZNYSLgXZI/MYQGlo4537W4d03uPLdz9uG798rZayykduFk gVwVXrbKb/ENSJNlEqK7rLDq9zr0dFoNWw17C84wNIXQeYh1KAe+L23qHoijF+N9 LOYqBKWReEbu/IkTXwp4DwECAwEAAaOCASYwggEiMA4GA1UdDwEB/wQEAwIFoDAd BgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADBJBgNV HQ4EQgRAlSX9sYHYfLiUbxEQdbgBXBsDRCcSeLChUva0l88vsNFso1Z+Yn96TLxY mTIa5uSubCLpbDdIFboEPQr1PG4WYDBLBgNVHSMERDBCgEBWeFhEk0DABZOJGq+5 YBsIwOIIDiZQMwVSDjet0ttF0G1O9HXbr/lkCgRJr/S8UO67gwkqEznzKI3nXh+H 0TjZMEsGA1UdEQREMEKCQCouYXBwcy40YTZiOTQzMS1mOTVlLTRjZGItODUyNi1k N2ZkOTdiYTQ3MjkucHJvZC5rb25mbHV4ZWFhcy5jb20wDQYJKoZIhvcNAQELBQAD ggEBAKz6U+9Qjcnab9m1A5VLUVufBbHjzSCwxmmkI5wwxvfcPuO4F1WyGhp+FqPO n8DiYLgKj/r0AOQYXP5pkALBK8dvlPesWoW4f6jFp3vKA1dIsFE3sL9nKh5Olvvi H5IoY9Z4b/zC4VSavIE79S2TPAfhm3TqxX/x+ZxHwN+t6CRXqWSLnIwOZmxxdTV1 Y15FgN5+zaD+1ifjEJY0Mh7P896YDPJPicM7wfi0cmRPU//ScVMVEY20Bts6eaQg w2lnxwit9ACDy54a99AMRwgvoJPXZj90Pucy68xvBA8Y9duWRiTYPdtEV+C/zxB5 vRuwCzUb1pOlg0Q8L6DwdWIFJp8= -----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-06-15T14:59:42Z" 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-06-15T14:59:42Z" name: kube-root-ca.crt namespace: openshift-multus resourceVersion: "3589" uid: 7a187aa9-2cc2-471c-8c1e-42568ce0c426 - 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-06-15T14:59:36Z" 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":"68e869f9-71cc-4218-8e1a-59b4ad576b2d"}: {} manager: cluster-network-operator/operconfig operation: Apply time: "2026-06-15T14:59:36Z" name: multus-daemon-config namespace: openshift-multus ownerReferences: - apiVersion: operator.openshift.io/v1 blockOwnerDeletion: true controller: true kind: Network name: cluster uid: 68e869f9-71cc-4218-8e1a-59b4ad576b2d resourceVersion: "2648" uid: f1a9261b-b12a-437c-808c-7ee374199a5a - apiVersion: v1 data: cabundle.crt: |- -----BEGIN CERTIFICATE----- MIIDUTCCAjmgAwIBAgIIZ5MVfNomBh4wDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UE Awwrb3BlbnNoaWZ0LXNlcnZpY2Utc2VydmluZy1zaWduZXJAMTc4MTUzNjE4NzAe Fw0yNjA2MTUxNTA5NDZaFw0yODA4MTMxNTA5NDdaMDYxNDAyBgNVBAMMK29wZW5z aGlmdC1zZXJ2aWNlLXNlcnZpbmctc2lnbmVyQDE3ODE1MzYxODcwggEiMA0GCSqG SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDRgwF/N8fM6KmGcC20iDDEZsYefgM/pYkH 82MOky1Bz+WGPvJpPa0EH9kBfShRHCBalnUVp/zgW9EcNf42Sow+hoRqPzmnJ9f1 oCo6ne1qq75tIlNRBv+ORY/AIDZrD9gxJncok57cSQRLKlTq1MO6EDfTDJBtZVDG 1oJUilsdtWfWYq0826DanZY3LYBISVnr559mLqUGmrbo6ozOetTuS844PVYtgTxz 7PMXW/lXtDexGdHyIAzTM1SGV9Xn3ZkJ7h4Z4dbaH7U3TQQaE7ZCeN0vYtG1B3qj XgMiJQf/U4DeFngjDphN0/QRprNVhds445rKgTLiXCUo0M7sBSbHAgMBAAGjYzBh MA4GA1UdDwEB/wQEAwICpDAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBSBtq2o KCt5GWNZmpLmXZxyQl9XazAfBgNVHSMEGDAWgBSBtq2oKCt5GWNZmpLmXZxyQl9X azANBgkqhkiG9w0BAQsFAAOCAQEAv2HDVAex6fRjluRLIfFoiSCITE8XKdWCXIa4 jx9Xrbl4qJMqu6G5qioWRGmfpprcmejgDV3cpuBeBc7V1f/jHv/61me7vMH6x6kQ vdj1ZKPFFoiatjBF+Dn0AxyQEk3Ervf9rUuNQCAbo80hZjl17paLWfOGjSMOX3EF jwEput3oAOi+XwWBMUiVen/nr+5SchVHURLLJcDSDkl9lW0UymvzFV6Qeg/hQesE HmJUwAP4uGBNwsCkpYFlHZ4V7l6F2QtIdn1cOzG686+F06rcw4Xu08QhMtap7rHF aUuIMS4JB1AYw4mBDYWqt9Azolaz4A8oOEH6vTkDIJu798sTRg== -----END CERTIFICATE----- kind: ConfigMap metadata: creationTimestamp: "2026-06-15T15:16:36Z" 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-06-15T15:16:36Z" name: odh-kserve-custom-ca-bundle namespace: openshift-multus resourceVersion: "15910" uid: 64f75b30-9b97-480d-a3c1-7c7ef28d916d - apiVersion: v1 data: service-ca.crt: | -----BEGIN CERTIFICATE----- MIIDUTCCAjmgAwIBAgIIZ5MVfNomBh4wDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UE Awwrb3BlbnNoaWZ0LXNlcnZpY2Utc2VydmluZy1zaWduZXJAMTc4MTUzNjE4NzAe Fw0yNjA2MTUxNTA5NDZaFw0yODA4MTMxNTA5NDdaMDYxNDAyBgNVBAMMK29wZW5z aGlmdC1zZXJ2aWNlLXNlcnZpbmctc2lnbmVyQDE3ODE1MzYxODcwggEiMA0GCSqG SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDRgwF/N8fM6KmGcC20iDDEZsYefgM/pYkH 82MOky1Bz+WGPvJpPa0EH9kBfShRHCBalnUVp/zgW9EcNf42Sow+hoRqPzmnJ9f1 oCo6ne1qq75tIlNRBv+ORY/AIDZrD9gxJncok57cSQRLKlTq1MO6EDfTDJBtZVDG 1oJUilsdtWfWYq0826DanZY3LYBISVnr559mLqUGmrbo6ozOetTuS844PVYtgTxz 7PMXW/lXtDexGdHyIAzTM1SGV9Xn3ZkJ7h4Z4dbaH7U3TQQaE7ZCeN0vYtG1B3qj XgMiJQf/U4DeFngjDphN0/QRprNVhds445rKgTLiXCUo0M7sBSbHAgMBAAGjYzBh MA4GA1UdDwEB/wQEAwICpDAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBSBtq2o KCt5GWNZmpLmXZxyQl9XazAfBgNVHSMEGDAWgBSBtq2oKCt5GWNZmpLmXZxyQl9X azANBgkqhkiG9w0BAQsFAAOCAQEAv2HDVAex6fRjluRLIfFoiSCITE8XKdWCXIa4 jx9Xrbl4qJMqu6G5qioWRGmfpprcmejgDV3cpuBeBc7V1f/jHv/61me7vMH6x6kQ vdj1ZKPFFoiatjBF+Dn0AxyQEk3Ervf9rUuNQCAbo80hZjl17paLWfOGjSMOX3EF jwEput3oAOi+XwWBMUiVen/nr+5SchVHURLLJcDSDkl9lW0UymvzFV6Qeg/hQesE HmJUwAP4uGBNwsCkpYFlHZ4V7l6F2QtIdn1cOzG686+F06rcw4Xu08QhMtap7rHF aUuIMS4JB1AYw4mBDYWqt9Azolaz4A8oOEH6vTkDIJu798sTRg== -----END CERTIFICATE----- kind: ConfigMap metadata: annotations: service.beta.openshift.io/inject-cabundle: "true" creationTimestamp: "2026-06-15T14:59:42Z" 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-06-15T14:59:42Z" - apiVersion: v1 fieldsType: FieldsV1 fieldsV1: f:data: f:service-ca.crt: {} manager: service-ca-operator operation: Update time: "2026-06-15T15:09:58Z" name: openshift-service-ca.crt namespace: openshift-multus resourceVersion: "9293" uid: fa6ee029-c1c8-4a04-b7af-a744856f84f8 - 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-06-15T14:59:36Z" managedFields: - apiVersion: v1 fieldsType: FieldsV1 fieldsV1: f:data: f:whereabouts.conf: {} f:metadata: f:ownerReferences: k:{"uid":"68e869f9-71cc-4218-8e1a-59b4ad576b2d"}: {} manager: cluster-network-operator/operconfig operation: Apply time: "2026-06-15T14:59:36Z" name: whereabouts-flatfile-config namespace: openshift-multus ownerReferences: - apiVersion: operator.openshift.io/v1 blockOwnerDeletion: true controller: true kind: Network name: cluster uid: 68e869f9-71cc-4218-8e1a-59b4ad576b2d resourceVersion: "2626" uid: b7d81bdf-8e90-41e8-a515-9ad8ed651216 kind: ConfigMapList metadata: resourceVersion: "30657"