--- 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.19 creationTimestamp: "2026-06-08T18:08:46Z" 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":"b66727ab-eb45-4410-9041-c6728e44040e"}: {} manager: cluster-network-operator/operconfig operation: Apply time: "2026-06-08T18:08:46Z" name: cni-copy-resources namespace: openshift-multus ownerReferences: - apiVersion: operator.openshift.io/v1 blockOwnerDeletion: true controller: true kind: Network name: cluster uid: b66727ab-eb45-4410-9041-c6728e44040e resourceVersion: "2645" uid: cce7d2e9-7a70-4845-af66-4eabb14dbb81 - 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.19 creationTimestamp: "2026-06-08T18:08:45Z" 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-08T18:08:45Z" name: cni-sysctl-allowlist namespace: openshift-multus resourceVersion: "2639" uid: d86a944e-a8f9-4f60-a494-ab95ea1da032 - 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.19 creationTimestamp: "2026-06-08T18:08:45Z" 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":"b66727ab-eb45-4410-9041-c6728e44040e"}: {} manager: cluster-network-operator/operconfig operation: Apply time: "2026-06-08T18:08:45Z" name: default-cni-sysctl-allowlist namespace: openshift-multus ownerReferences: - apiVersion: operator.openshift.io/v1 blockOwnerDeletion: true controller: true kind: Network name: cluster uid: b66727ab-eb45-4410-9041-c6728e44040e resourceVersion: "2638" uid: 3655b5f0-5d63-437f-a1b0-1ece36e2e254 - apiVersion: v1 data: ca.crt: | -----BEGIN CERTIFICATE----- MIIDPDCCAiSgAwIBAgIIUpTQSLpN8LIwDQYJKoZIhvcNAQELBQAwJjESMBAGA1UE CxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdyb290LWNhMB4XDTI2MDYwODE4MDYwNFoX DTM2MDYwNTE4MDYwNFowJjESMBAGA1UECxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdy b290LWNhMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4G3YEQlXUcyL t3Tc6S3z5YDOCOuG6W/a3Uc62B/UQXQSXlBjm5y04A/SJ4UOaImYy6j9AnoIsrr8 U4cKaGOkBr4RR+8SkU6n1Y376wC32ZZ10E/ZCiSIdBIzsifd8I6AO48iVUx/hX+o HQEQOz+u18pAyoi/WvbA8wQemsQi3TADn+5O+nDKM0UxJWNoJaCVP+9KUZQicVxQ XftPvMnHvNUx9NpMoSQVd3AqexBZ8s9P+F1u6wTCWnzI9M18bhYrolTE3qM1IErw zWfbQksToIrp0EgNPvo9yBBwUxmkB+O6j/Wt2xR7xRfx1Ttcihj4QaoGg9Fnh9TJ Hka8qzrV4QIDAQABo24wbDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH/BAUwAwEB /zBJBgNVHQ4EQgRAU11wfOheIp05YH5HmSbnvV4Nrmn4zwuufvz05/b3TYpNusle cV80u8ALQDSglsPZ+KMHLQvgarCcvPClSd0GgjANBgkqhkiG9w0BAQsFAAOCAQEA TWaM0ThRp6IBTny5pqXvTARwiuaWEP58hdqVXdNYkwHXUL0sM4xcQK8qmBJYDFQO 4KAWMP/nanzOd2IEzSOUKaVxXpzz48bdRQ/NgZEcW/CpqKIzEj2xlU/fUpz72O5t Z4YivOB+Mlf1DvC7uONyt4OicRXkdLt+ksV2fyP/aVa3PT3DcauU17kS5YoHA8Ve wvpPlHtnBz5oJezhr1a4LoXMGIzIi7+CuYWvHbE+cLKVHBraUNffPJQn9x1ykbmk zFVRJ4j0+tMtRd6j6/wHOkxnaCIMx7FlO4E3sTwLXOBLqiXxdB6dXurgQgXpLTtN 03aCKfaHQlamYaOfohKSwA== -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIEADCCAuigAwIBAgIIXrVKuusUIF0wDQYJKoZIhvcNAQELBQAwJjESMBAGA1UE CxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdyb290LWNhMB4XDTI2MDYwODE4MDY0MFoX DTI3MDYwODE4MDY0MFowMDESMBAGA1UEChMJb3BlbnNoaWZ0MRowGAYDVQQDExFv cGVuc2hpZnQtaW5ncmVzczCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB ALwUojFWDiIZAKqlMGsb+9/anfVsb20RNdQwHRYYc70j78c3MqVdiD50y4zlqqME eEPKW9SNCm9fncEi3S7i2o0rd1harZytvdGb96o6UjVjquQM5NezraNGZSOPGZWc vKzAjqOHxBvDVeV1lkbl1U8sZHKTCExHNVcuO6jOji+8p9T16aXakqVyy457eXqc QxHz1syq0xEIo4NtDcqDiOi9wRb+vgZKQBHn+Fux0qebj0zqbwuRW0qWCDM5avIi adVqYA4fscd2rI7mch4k1cZl9UK4a5FJQRz+u3SA5YGqnprx/YA3Made8qj2Qyu0 68YPGjOCyK8iHRkgYFNxS8sCAwEAAaOCASYwggEiMA4GA1UdDwEB/wQEAwIFoDAd BgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADBJBgNV HQ4EQgRAzmIupZ2QgRJDFDJguoozaToQ/jpWqiceYAA4SJQopcZ0fnTHHsyq+swh vw+wJH6R4MyRnrZDk6ybAFY4y3N1RTBLBgNVHSMERDBCgEBTXXB86F4inTlgfkeZ Jue9Xg2uafjPC65+/PTn9vdNik26yV5xXzS7wAtANKCWw9n4owctC+BqsJy88KVJ 3QaCMEsGA1UdEQREMEKCQCouYXBwcy44NDUwNDQxNC1jNjFhLTQ4MjEtYWM5NC01 NzM2MjNhYWMzNTMucHJvZC5rb25mbHV4ZWFhcy5jb20wDQYJKoZIhvcNAQELBQAD ggEBALEzScp1Blsv8henHbPwkurf4ZT/whdIbdCdb9AoxYZ3RN3yY+8IREIkRf3w 9x3CPEmsPuXj76TTLDJhoLZXYzGijngF9gZwF2DMdkO14knUEdbNdyJWp8dHsmY1 Ds/04Y4G7dOKtzJGKlsyP30S1desS5TFPXAtxL0ab33p/v1UnqL6IyCwMxbtcbJE 68jpz1Iq/CqHiSz3VjmLX/hw6LlVQGkQU7M3GFYxIqKeEzEvof2N8GgCJye6v2Le d4ULN95VYbIHK5cFiU2HPL4P1TU7PVg++bX8KkyfbAdlH3ZP9598VM44GdtF8sxj ix1KqnS7i+FM5TGThhB1FORtaJs= -----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-08T18:08:43Z" 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-08T18:09:28Z" name: kube-root-ca.crt namespace: openshift-multus resourceVersion: "4444" uid: 6f0e308c-ee97-4453-b4c3-2427167db10d - 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-08T18:08:46Z" 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":"b66727ab-eb45-4410-9041-c6728e44040e"}: {} manager: cluster-network-operator/operconfig operation: Apply time: "2026-06-08T18:08:46Z" name: multus-daemon-config namespace: openshift-multus ownerReferences: - apiVersion: operator.openshift.io/v1 blockOwnerDeletion: true controller: true kind: Network name: cluster uid: b66727ab-eb45-4410-9041-c6728e44040e resourceVersion: "2649" uid: 3e7a34c5-d41e-40e0-9ef2-e1b35d3903f4 - apiVersion: v1 data: cabundle.crt: |- -----BEGIN CERTIFICATE----- MIIDUTCCAjmgAwIBAgIIYxfROLaxorswDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UE Awwrb3BlbnNoaWZ0LXNlcnZpY2Utc2VydmluZy1zaWduZXJAMTc4MDk0Mjc3MjAe Fw0yNjA2MDgxODE5MzJaFw0yODA4MDYxODE5MzNaMDYxNDAyBgNVBAMMK29wZW5z aGlmdC1zZXJ2aWNlLXNlcnZpbmctc2lnbmVyQDE3ODA5NDI3NzIwggEiMA0GCSqG SIb3DQEBAQUAA4IBDwAwggEKAoIBAQC0m3ZwimGKbU/RP9MRtrlPCXZ5SEY5P3PR QLAr1+l6W0lgeocSzvvG9KWDd2yb5AOJPlAoZJWzbGtbr/ZfZX7XLzYQauyGKGyl UQaoFkN97kVyYkDYyzMFxysVyrEoEGgCka4Syl6C4dQx03YxzrNyHAn6C7Fa8p1H y/lG94TMYpINN2tHgGrhrOu78P4VSfe2sr0uyXIkRHXE7j50IdNYx6TATvtu7CHy y1upPaqfkI2udG3gOQs8OdowpZdV/wpQuExTLO+Rwa5blcgaptZ4iAqgJ3FWEo9m PJWFWyYda0Q2lk3JZUjzVlpHqYUc6DJJLDTzJeUx2Xy1ubFhlHjpAgMBAAGjYzBh MA4GA1UdDwEB/wQEAwICpDAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRbS0z4 LIGH8sboEC8LUj7E90AiJDAfBgNVHSMEGDAWgBRbS0z4LIGH8sboEC8LUj7E90Ai JDANBgkqhkiG9w0BAQsFAAOCAQEAbgXlF56GyYQ/BRHFg1AdDbAtB+DlZsfbIi7o k3aRN0l28AK2UQzs6eMNUbnW/JPkCCa6R3dkHEs7KX8PlAFEjQtkeLySteVfL1O9 Rvgt8OHH3zkO0sCRAcqBemXcBakrbS1azqe/A9oW0+tIJfgKqcJthtK/ZRkvHvaH lQ48Fy4oFEbmXBKq9E0Ogk7u2H8qURQP6lRjEelKfCRRdG5YrRBgkLddA2maNf8Y ZGilKm5KyVJs2maBC4ZSs2NZGqFLZxFboaVTIjSLKnkNqtI1ZCMr7D2b6VoFGT4U gc2K/9z2BfRIOyrmSDwnDcV9biTIQMIgQ56dvmXE3X+bt3i5SQ== -----END CERTIFICATE----- kind: ConfigMap metadata: creationTimestamp: "2026-06-08T18:25:33Z" 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-08T18:25:33Z" name: odh-kserve-custom-ca-bundle namespace: openshift-multus resourceVersion: "16185" uid: 61d3ff25-fe51-4b99-b620-c9750b9176ae - apiVersion: v1 data: service-ca.crt: | -----BEGIN CERTIFICATE----- MIIDUTCCAjmgAwIBAgIIYxfROLaxorswDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UE Awwrb3BlbnNoaWZ0LXNlcnZpY2Utc2VydmluZy1zaWduZXJAMTc4MDk0Mjc3MjAe Fw0yNjA2MDgxODE5MzJaFw0yODA4MDYxODE5MzNaMDYxNDAyBgNVBAMMK29wZW5z aGlmdC1zZXJ2aWNlLXNlcnZpbmctc2lnbmVyQDE3ODA5NDI3NzIwggEiMA0GCSqG SIb3DQEBAQUAA4IBDwAwggEKAoIBAQC0m3ZwimGKbU/RP9MRtrlPCXZ5SEY5P3PR QLAr1+l6W0lgeocSzvvG9KWDd2yb5AOJPlAoZJWzbGtbr/ZfZX7XLzYQauyGKGyl UQaoFkN97kVyYkDYyzMFxysVyrEoEGgCka4Syl6C4dQx03YxzrNyHAn6C7Fa8p1H y/lG94TMYpINN2tHgGrhrOu78P4VSfe2sr0uyXIkRHXE7j50IdNYx6TATvtu7CHy y1upPaqfkI2udG3gOQs8OdowpZdV/wpQuExTLO+Rwa5blcgaptZ4iAqgJ3FWEo9m PJWFWyYda0Q2lk3JZUjzVlpHqYUc6DJJLDTzJeUx2Xy1ubFhlHjpAgMBAAGjYzBh MA4GA1UdDwEB/wQEAwICpDAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRbS0z4 LIGH8sboEC8LUj7E90AiJDAfBgNVHSMEGDAWgBRbS0z4LIGH8sboEC8LUj7E90Ai JDANBgkqhkiG9w0BAQsFAAOCAQEAbgXlF56GyYQ/BRHFg1AdDbAtB+DlZsfbIi7o k3aRN0l28AK2UQzs6eMNUbnW/JPkCCa6R3dkHEs7KX8PlAFEjQtkeLySteVfL1O9 Rvgt8OHH3zkO0sCRAcqBemXcBakrbS1azqe/A9oW0+tIJfgKqcJthtK/ZRkvHvaH lQ48Fy4oFEbmXBKq9E0Ogk7u2H8qURQP6lRjEelKfCRRdG5YrRBgkLddA2maNf8Y ZGilKm5KyVJs2maBC4ZSs2NZGqFLZxFboaVTIjSLKnkNqtI1ZCMr7D2b6VoFGT4U gc2K/9z2BfRIOyrmSDwnDcV9biTIQMIgQ56dvmXE3X+bt3i5SQ== -----END CERTIFICATE----- kind: ConfigMap metadata: annotations: service.beta.openshift.io/inject-cabundle: "true" creationTimestamp: "2026-06-08T18:08:43Z" 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-08T18:08:43Z" - apiVersion: v1 fieldsType: FieldsV1 fieldsV1: f:data: f:service-ca.crt: {} manager: service-ca-operator operation: Update time: "2026-06-08T18:19:45Z" name: openshift-service-ca.crt namespace: openshift-multus resourceVersion: "9500" uid: 42532a97-cfd4-4091-985c-9c648a89767d - 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-08T18:08:46Z" managedFields: - apiVersion: v1 fieldsType: FieldsV1 fieldsV1: f:data: f:whereabouts.conf: {} f:metadata: f:ownerReferences: k:{"uid":"b66727ab-eb45-4410-9041-c6728e44040e"}: {} manager: cluster-network-operator/operconfig operation: Apply time: "2026-06-08T18:08:46Z" name: whereabouts-flatfile-config namespace: openshift-multus ownerReferences: - apiVersion: operator.openshift.io/v1 blockOwnerDeletion: true controller: true kind: Network name: cluster uid: b66727ab-eb45-4410-9041-c6728e44040e resourceVersion: "2648" uid: 8b4769df-08da-47a0-ae2b-a59cfed1785f kind: ConfigMapList metadata: resourceVersion: "50625"