--- 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-09T21:45:02Z" 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":"6addcb51-780b-4272-ac20-534238cbfba7"}: {} manager: cluster-network-operator/operconfig operation: Apply time: "2026-07-09T21:45:02Z" name: cni-copy-resources namespace: openshift-multus ownerReferences: - apiVersion: operator.openshift.io/v1 blockOwnerDeletion: true controller: true kind: Network name: cluster uid: 6addcb51-780b-4272-ac20-534238cbfba7 resourceVersion: "2478" uid: ce64d7c4-fda8-488d-a30b-980e33e9dc5a - 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-09T21:45:02Z" 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-09T21:45:02Z" name: cni-sysctl-allowlist namespace: openshift-multus resourceVersion: "2472" uid: 09eba6da-8b5f-47a9-98c0-f1cc34d5f86a - 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-09T21:45:02Z" 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":"6addcb51-780b-4272-ac20-534238cbfba7"}: {} manager: cluster-network-operator/operconfig operation: Apply time: "2026-07-09T21:45:02Z" name: default-cni-sysctl-allowlist namespace: openshift-multus ownerReferences: - apiVersion: operator.openshift.io/v1 blockOwnerDeletion: true controller: true kind: Network name: cluster uid: 6addcb51-780b-4272-ac20-534238cbfba7 resourceVersion: "2471" uid: afa9a51f-32e1-4deb-85f5-954f3140d028 - apiVersion: v1 data: ca.crt: | -----BEGIN CERTIFICATE----- MIIDPDCCAiSgAwIBAgIIP0OqUA3R+T0wDQYJKoZIhvcNAQELBQAwJjESMBAGA1UE CxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdyb290LWNhMB4XDTI2MDcwOTIxNDI0NFoX DTM2MDcwNjIxNDI0NFowJjESMBAGA1UECxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdy b290LWNhMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqm51bmiZJENB mGcSR+lJaigo9uONWHZJNWWBz5lenTZL3+qJIBYkfB4sZpuPI+nqUlJM9buw41na A+kaTMkaZU8AG9ER6uGLOq8EdpTlTo0A0hsaZD914wB+f0MZOVPtDREhaDaG5+gk 3SX1qtj+4AgtvoRlKsNIZj/uV4VwCoEhxlle1MbfE+5q2bK24KJz+CEgQbDJwWdo cXEtCQLp5KwAnmjLFaM7zTEXXM2HuWsTrvTA9goR6RSk/jRBdmBiHOizpM8f+vyf F9qEbb9c48EdNYJjWbu9SPjjfZ/cTtzBW6a/w0ewpieHm76S06lnpDvh+aFDJxrv E8orTSIQHwIDAQABo24wbDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH/BAUwAwEB /zBJBgNVHQ4EQgRA8qqEuVz2u2jALHzfgKVk21AqLbAiNb81xczAxd8zRQYYEgfz 0xom0p1oHTdBfMeFr/nl6rSWnTlSBrIBahDv8DANBgkqhkiG9w0BAQsFAAOCAQEA dZFTkX7u4YAG3lzIA8TH86kdvsGzjD/6Kj9iv0meBdOTbEQz6kTCaawWcxTJ8fgU Bv1pvsTjN2deKKlruSjubRStnzGuV4MvWbdC8E0nonYfJ18HI/Uc8bz8lAJw6WXf Q2IphRFkpje2Yv9PxXvzikNOhIioJLGdGCEJt8RM6cKGaifUqWtcN+ag889mYsoA esA5r3L1LCbNhOh9MXsRPVOMxwR2ZpL1KfuRtqneI3Qnlk3DqC0/DarO2/vSCTad Vq7y0so/doT/aCVECNKsEgcSVLRr082rsa3mZvGxZsJORTb/1K93rXX3yZYR9oAh VBCqIBb2wVJt5eixWziHfA== -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIEADCCAuigAwIBAgIIAeDnyclYKQMwDQYJKoZIhvcNAQELBQAwJjESMBAGA1UE CxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdyb290LWNhMB4XDTI2MDcwOTIxNDMxM1oX DTI3MDcwOTIxNDMxM1owMDESMBAGA1UEChMJb3BlbnNoaWZ0MRowGAYDVQQDExFv cGVuc2hpZnQtaW5ncmVzczCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB ALAhxKHmSpj1dQt5pTKw3mXhXkXuY23r+dSZ5MjsxhKPuxxkMVq3LbiK8ED7wERq kyF2gMPRNT5c8Pws3dspQhcUlyYDGZFOp8ssFB51c64wJl5g/giPxDLQHmpnHyNq J8fDUp1PnQLNt3K9/GCQz7+WonzgAkFsMfYbJi2GsvLZh0sHLZ+7fxh66iuaj29t 98wmchGgjVXMt04jqP8bXx2oC1JndOXg3LPxuhFCpZvKEfSfOpyLOR7EAlSjWm3i gOMhuomi5o1cdnee5Mg8TuZeKqdVg/LexvO5DYwqjZpCLV2PZu+o9aTnIw5qUEOB FMgJq+i6JQnnoc2ZrogCHDsCAwEAAaOCASYwggEiMA4GA1UdDwEB/wQEAwIFoDAd BgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADBJBgNV HQ4EQgRAHOsKZH8lNyx4vYwHv0AKliLa/4E0ra+3G5mew3CSsUUSrE4qdyRAkXLg RfOhtiDrIGQMrDeNX6FDB4gCeYfiQDBLBgNVHSMERDBCgEDyqoS5XPa7aMAsfN+A pWTbUCotsCI1vzXFzMDF3zNFBhgSB/PTGibSnWgdN0F8x4Wv+eXqtJadOVIGsgFq EO/wMEsGA1UdEQREMEKCQCouYXBwcy4wMmY2MGNjYi0yNjczLTQ3NmMtOWE4OC0w ZWU4NzgzNTlkMWYucHJvZC5rb25mbHV4ZWFhcy5jb20wDQYJKoZIhvcNAQELBQAD ggEBAEvIeDvMAX+nBJnbwWJD/Zu6Zd2uv8guT/zdSklZhgTZbbVoHQDF0i68ygnC 6khGVJg5zbfDZYXyFahvVqdGoL9zu2BN4+xbtzSc7FkuHGJjvWLfrKQW4FF2iJEW zFiXhUGKfAesqs3MIe+dhV7IF8tcQi78IYUFWE1n08X0RQPEbHlkvYpjYeA3Pzoq HaBGxC01qzdBszr0VlgJ9rv6UXStOFtiKAn2RoLm5/ZnWCPTGYVckKJjYEbGEdNy 1Qvufer2jIHE93ZBZ2qMc568z7nWxCwLz3uwzjfmM5TsC3swlnIaBCNDpQnJhbul vl8crHje00iaXXIOb9w7LYLCZxE= -----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-09T21:45:14Z" 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-09T21:45:14Z" name: kube-root-ca.crt namespace: openshift-multus resourceVersion: "3585" uid: c0f938c4-2c1f-4e4c-8d1e-2c3a30750497 - 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-09T21:45:03Z" 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":"6addcb51-780b-4272-ac20-534238cbfba7"}: {} manager: cluster-network-operator/operconfig operation: Apply time: "2026-07-09T21:45:03Z" name: multus-daemon-config namespace: openshift-multus ownerReferences: - apiVersion: operator.openshift.io/v1 blockOwnerDeletion: true controller: true kind: Network name: cluster uid: 6addcb51-780b-4272-ac20-534238cbfba7 resourceVersion: "2490" uid: ee00f63b-6297-49f4-abc8-e6607d6735b8 - apiVersion: v1 data: cabundle.crt: |- -----BEGIN CERTIFICATE----- MIIDUTCCAjmgAwIBAgIIdHWWpwCXct0wDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UE Awwrb3BlbnNoaWZ0LXNlcnZpY2Utc2VydmluZy1zaWduZXJAMTc4MzYzNDExODAe Fw0yNjA3MDkyMTU1MThaFw0yODA5MDYyMTU1MTlaMDYxNDAyBgNVBAMMK29wZW5z aGlmdC1zZXJ2aWNlLXNlcnZpbmctc2lnbmVyQDE3ODM2MzQxMTgwggEiMA0GCSqG SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDNIWsUx+QBcPhZj+pvO7SfT9OAZROur4GK 3hS0RagE6bfkX9vv2hqaYplUC07z6TGl+EFVnbr6WYSzVtpA4bjnK8VrsWfJv9QE eSM4psUfMuecxGUd+rAhx90kFFm2uUgAvT5A1G/arQNbL4OBZDGx6pVTCL6zsyGp dS15D4635/jHSbdsVNhBxxaVQcNx3he4IUnWPDqAazaj9I6K8llgkje/tMSWhSA1 /EbuXNoSoLWrYFDPPMDAnmRfPfX4COrXGnXrzrRXvaBkhfizEgbgn0ChoMUS8zNo Kv2hdEtFp5MJFR9wsqUC5SDyRZ2KMj5cfx3NJc5CB9JGSjy2prSfAgMBAAGjYzBh MA4GA1UdDwEB/wQEAwICpDAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTEhK63 k5Bol6B6ygEl6dhNl0WmpTAfBgNVHSMEGDAWgBTEhK63k5Bol6B6ygEl6dhNl0Wm pTANBgkqhkiG9w0BAQsFAAOCAQEAHnotdvMtB6G07gpXWejdCCrMMFOgdA8PpO0X b8bEpTBGR/NizgwGHrQ3rNMamWts5n6hoZ156D+4nSBQY1FWSsPDlIRm5NLF0DHW r534F/uiRObuTzmTdn3sM3nvLg9ZUB8UFaD8KNysv4cDJ+2ci++5BhkMpcnr8yQR cuhBtNieP4gT/5ku0R6yshAHJSt2uZt9/N1U0g1VFn+ClsjXGn+YjUGsFMptKczL QJxRsVMhwAAUjIFbA1FHQwUrGr87PhvocZFm4Um+4rtGro7uyuLbg2cw02IdqLKh OlprzKveIykaycR3x0gqk9ZUddSMaCRnYWSpb9+RfKPVwib8QQ== -----END CERTIFICATE----- kind: ConfigMap metadata: creationTimestamp: "2026-07-09T22:01:34Z" 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-09T22:01:34Z" name: odh-kserve-custom-ca-bundle namespace: openshift-multus resourceVersion: "16460" uid: a428ff44-b20d-4c31-ba3a-90d1f1ab522d - apiVersion: v1 data: service-ca.crt: | -----BEGIN CERTIFICATE----- MIIDUTCCAjmgAwIBAgIIdHWWpwCXct0wDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UE Awwrb3BlbnNoaWZ0LXNlcnZpY2Utc2VydmluZy1zaWduZXJAMTc4MzYzNDExODAe Fw0yNjA3MDkyMTU1MThaFw0yODA5MDYyMTU1MTlaMDYxNDAyBgNVBAMMK29wZW5z aGlmdC1zZXJ2aWNlLXNlcnZpbmctc2lnbmVyQDE3ODM2MzQxMTgwggEiMA0GCSqG SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDNIWsUx+QBcPhZj+pvO7SfT9OAZROur4GK 3hS0RagE6bfkX9vv2hqaYplUC07z6TGl+EFVnbr6WYSzVtpA4bjnK8VrsWfJv9QE eSM4psUfMuecxGUd+rAhx90kFFm2uUgAvT5A1G/arQNbL4OBZDGx6pVTCL6zsyGp dS15D4635/jHSbdsVNhBxxaVQcNx3he4IUnWPDqAazaj9I6K8llgkje/tMSWhSA1 /EbuXNoSoLWrYFDPPMDAnmRfPfX4COrXGnXrzrRXvaBkhfizEgbgn0ChoMUS8zNo Kv2hdEtFp5MJFR9wsqUC5SDyRZ2KMj5cfx3NJc5CB9JGSjy2prSfAgMBAAGjYzBh MA4GA1UdDwEB/wQEAwICpDAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTEhK63 k5Bol6B6ygEl6dhNl0WmpTAfBgNVHSMEGDAWgBTEhK63k5Bol6B6ygEl6dhNl0Wm pTANBgkqhkiG9w0BAQsFAAOCAQEAHnotdvMtB6G07gpXWejdCCrMMFOgdA8PpO0X b8bEpTBGR/NizgwGHrQ3rNMamWts5n6hoZ156D+4nSBQY1FWSsPDlIRm5NLF0DHW r534F/uiRObuTzmTdn3sM3nvLg9ZUB8UFaD8KNysv4cDJ+2ci++5BhkMpcnr8yQR cuhBtNieP4gT/5ku0R6yshAHJSt2uZt9/N1U0g1VFn+ClsjXGn+YjUGsFMptKczL QJxRsVMhwAAUjIFbA1FHQwUrGr87PhvocZFm4Um+4rtGro7uyuLbg2cw02IdqLKh OlprzKveIykaycR3x0gqk9ZUddSMaCRnYWSpb9+RfKPVwib8QQ== -----END CERTIFICATE----- kind: ConfigMap metadata: annotations: service.beta.openshift.io/inject-cabundle: "true" creationTimestamp: "2026-07-09T21:45:14Z" 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-09T21:45:14Z" - apiVersion: v1 fieldsType: FieldsV1 fieldsV1: f:data: f:service-ca.crt: {} manager: service-ca-operator operation: Update time: "2026-07-09T21:55:31Z" name: openshift-service-ca.crt namespace: openshift-multus resourceVersion: "9340" uid: a8b79c3f-db2f-4be5-b252-1b2f243fce56 - 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-09T21:45:03Z" managedFields: - apiVersion: v1 fieldsType: FieldsV1 fieldsV1: f:data: f:whereabouts.conf: {} f:metadata: f:ownerReferences: k:{"uid":"6addcb51-780b-4272-ac20-534238cbfba7"}: {} manager: cluster-network-operator/operconfig operation: Apply time: "2026-07-09T21:45:03Z" name: whereabouts-flatfile-config namespace: openshift-multus ownerReferences: - apiVersion: operator.openshift.io/v1 blockOwnerDeletion: true controller: true kind: Network name: cluster uid: 6addcb51-780b-4272-ac20-534238cbfba7 resourceVersion: "2484" uid: d3387f15-cef3-4530-af7c-c02cbaef3ede kind: ConfigMapList metadata: resourceVersion: "55222"