--- 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.25 creationTimestamp: "2026-07-17T18:04:12Z" 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":"f24a5e2a-af20-4a22-8a1d-96600343b58b"}: {} manager: cluster-network-operator/operconfig operation: Apply time: "2026-07-17T18:04:12Z" name: cni-copy-resources namespace: openshift-multus ownerReferences: - apiVersion: operator.openshift.io/v1 blockOwnerDeletion: true controller: true kind: Network name: cluster uid: f24a5e2a-af20-4a22-8a1d-96600343b58b resourceVersion: "2370" uid: 0aad36f0-a46b-4fc2-a255-abebb1ad56eb - 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.25 creationTimestamp: "2026-07-17T18:04:12Z" 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-17T18:04:12Z" name: cni-sysctl-allowlist namespace: openshift-multus resourceVersion: "2367" uid: 5532efd8-5250-4b06-97ed-f548377954f9 - 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.25 creationTimestamp: "2026-07-17T18:04:12Z" 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":"f24a5e2a-af20-4a22-8a1d-96600343b58b"}: {} manager: cluster-network-operator/operconfig operation: Apply time: "2026-07-17T18:04:12Z" name: default-cni-sysctl-allowlist namespace: openshift-multus ownerReferences: - apiVersion: operator.openshift.io/v1 blockOwnerDeletion: true controller: true kind: Network name: cluster uid: f24a5e2a-af20-4a22-8a1d-96600343b58b resourceVersion: "2366" uid: fa8c819d-3c4e-4af0-9663-4a317ce2e0ce - apiVersion: v1 data: ca.crt: | -----BEGIN CERTIFICATE----- MIIDPDCCAiSgAwIBAgIIV8YiOjkl5ZYwDQYJKoZIhvcNAQELBQAwJjESMBAGA1UE CxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdyb290LWNhMB4XDTI2MDcxNzE4MDEyMFoX DTM2MDcxNDE4MDEyMFowJjESMBAGA1UECxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdy b290LWNhMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA23ftgS/lpSkT B3svUSYTmc+j2/v/9TzoHyojFM5GJO7NeOEKu5LRT8wjJzQvegEOfKaza9oCoSQZ LsE0JTMSrSTKzEzzpJ2di5iQHcAtj3DOVW+IhLlHCmWyBvJFeg/AAEuB7jz4U0Dq A7hXrTMdeL+q6KGCD9aOtMYEvhMyjT0tuX3WnAK0ETX0jny7aRFGVWmy02gnZtde Oh2sZ8Dcmbp2V9qGcpN62aU30I+xxQrqCtJIUNMeVzYEY/xV34TW2A7UfWyRI/+Q jEKv4kuZnaqZFIoGUhkMOqaiwlB5NUnAH/UG4neXq6GJF5LihgPfCuRKn4ql/pSH 8iO/mElh+wIDAQABo24wbDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH/BAUwAwEB /zBJBgNVHQ4EQgRAZ/2ZSdEG1n7nbxiliu7VIY4eaiBPUcsp2+s5Va0o4F3ISlTg xf/5+2rdKAy/LeRtum0Ap4JGasA7pOQWGvoctzANBgkqhkiG9w0BAQsFAAOCAQEA GjXoFVvL8e6Y5Jb9ZmZm9LCOPYTm0Pu/jmn2VUjB6tNtUNvyWKAmqzGooNe0GCXj aftYQwaK29JX5LTSd68mvxSIAfO6dL+UiX56BU3j7XCyJ/C6QXPFpslgBSd5AysH IpjaCzpER9F8i7NbSAY8Y3MoKj58hA7Tmepjjsv3HZDy8damVUojNE5CMH2RJbHH 4tCxJL2kb4g9WilTr3+SZJlRiB8KZEWtj2ABNyeMo+gwiSwytHSClJJArK0aK6IP mP6OYdGW4q4oZ+6r+9m5y8BIwOqjTHCLh03ujjbW4nhakK/bjTNsnVDwGfkyZAo2 JmC/4EGelgBhNEbs14DpyA== -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIEADCCAuigAwIBAgIIEjTNe19LxNEwDQYJKoZIhvcNAQELBQAwJjESMBAGA1UE CxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdyb290LWNhMB4XDTI2MDcxNzE4MDE1OVoX DTI3MDcxNzE4MDE1OVowMDESMBAGA1UEChMJb3BlbnNoaWZ0MRowGAYDVQQDExFv cGVuc2hpZnQtaW5ncmVzczCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB ANTck53HGX1hSrtnEVrWon3m9mYS10T9jNGdreFEP8aWi+VZs4AN5NeXhVaJk8i/ TjcEHTaPcstPFGuQ9NfsmevOa/vvn4n0BhigOrSKt7pJFGQTaqRBOy+dsIZFQu3p mX2f9vKXdVKYA8QMIQKUk/yBEyA+FsV80u+lg1Q9sReq3f5sPRLyK4jpypQffK2p CpGgubzy3NzUR3YUFGzu/TriEoxczuSUYcLhWO1tmIDgbpwwS73a8Va+All7f/mr WhGrhN3BdQrbuDfxtyBNsxRBSOhNW0PJTogg9Abq63Hrtlnngu1f6zz/0ag4KDmZ XbqJ0j7Re1S8V04Vf7pu220CAwEAAaOCASYwggEiMA4GA1UdDwEB/wQEAwIFoDAd BgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADBJBgNV HQ4EQgRAyMzhL9jCQe8h9X/a11i16mwvIyvXxqPR1GcGwl+RQEbLeoV7EAXLZBEH pDLJCXf5W+vmwAs6uip1oMedBF84azBLBgNVHSMERDBCgEBn/ZlJ0QbWfudvGKWK 7tUhjh5qIE9Ryynb6zlVrSjgXchKVODF//n7at0oDL8t5G26bQCngkZqwDuk5BYa +hy3MEsGA1UdEQREMEKCQCouYXBwcy5jMDU1MWQ2YS1mYWNiLTRmN2UtYjcwOC0w MTdiN2Q4YWQwNWMucHJvZC5rb25mbHV4ZWFhcy5jb20wDQYJKoZIhvcNAQELBQAD ggEBAGKf/ngAu2lV2x8v1X34PuRB7n6pZPQb4/XF4IMaiYTQUPKl1VZNOWwJvJCG V7+VLPTd88FGBWFaHn5RTZjJaT6RJyPzESTwmqrXrsttbVsopoKjXnB638Qms/uE XbAeJhVZCR4yo8ixfGk5m5hBE1b0hqJ3NDXghd0EeeIo863t3CKhH/pUybHgO/tm vjce1fYbT2hg9opxLp/qyofagkfdbHywSGi2QIXYZfVVEaygsTCkbdi6qMimW4bh aGHosjFUMTifZHO3W8eBlKscrEaYRgC1CxMjtYcRAjClQRl7ytMtjKdaD/v6jCkX q5xTl9Ql0cLibME9PybxvVVLQGA= -----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-17T18:04:09Z" 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-17T18:04:35Z" name: kube-root-ca.crt namespace: openshift-multus resourceVersion: "4156" uid: f65131c8-c748-404a-aebb-4e7cb4267041 - 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-17T18:04:13Z" 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":"f24a5e2a-af20-4a22-8a1d-96600343b58b"}: {} manager: cluster-network-operator/operconfig operation: Apply time: "2026-07-17T18:04:13Z" name: multus-daemon-config namespace: openshift-multus ownerReferences: - apiVersion: operator.openshift.io/v1 blockOwnerDeletion: true controller: true kind: Network name: cluster uid: f24a5e2a-af20-4a22-8a1d-96600343b58b resourceVersion: "2378" uid: 19cb8da4-a930-4bdf-bae9-30a3977a0e63 - apiVersion: v1 data: cabundle.crt: |- -----BEGIN CERTIFICATE----- MIIDUTCCAjmgAwIBAgIIXbktk4VewRgwDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UE Awwrb3BlbnNoaWZ0LXNlcnZpY2Utc2VydmluZy1zaWduZXJAMTc4NDMxMTgzNDAe Fw0yNjA3MTcxODEwMzNaFw0yODA5MTQxODEwMzRaMDYxNDAyBgNVBAMMK29wZW5z aGlmdC1zZXJ2aWNlLXNlcnZpbmctc2lnbmVyQDE3ODQzMTE4MzQwggEiMA0GCSqG SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDOxbHLbb2BkKRNeJqkxFRe0Sur2UcDRPr0 /S2xGn7FJs15rK5lthtQX/i1gXFopaRKFh6nzYM/6rRxOVKMBXHyqJDfAYcsTikY i7bGITa2NL8Qsc3YrhkeAUtpDTb3xt0ewhFqDw8yeJ9Yo+7gO45MXJBtosojZmK/ JCktaUucbRDolkMY7EOIW1VsPaivO/2MMy8PSAXQHtw7PbceLIeCoKEwFaDrhEhm 9eQAjHXm8h0iYf/EbNPGWgJW9q3fpQwG436pRcfL54RERHpVTKCOj9iY8QuRMFOv IylwODU1SkDSdPbc97q81sKNS9SaEDIhyYwTjjVBvUMxQLyqSQozAgMBAAGjYzBh MA4GA1UdDwEB/wQEAwICpDAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBS+CWA2 JLW1olrmj4dep2KBJ/vCkjAfBgNVHSMEGDAWgBS+CWA2JLW1olrmj4dep2KBJ/vC kjANBgkqhkiG9w0BAQsFAAOCAQEAJLown0n1GGVMf0GG0bm4v0JI+k4EAaE9jirG y8rGgabYwROHySUmJJ9/wvAVux7YNxfvLTszLxt46345MaK1VaOdUc75IZqyrRYB qjer9k8a2FtVrXCDw8JaRSTBRcQNaAgrlOjo32Wwmk5/fm94Gib9HOMjn4fa5QAL OIREmBX3f7Y7gC6BDlaX+pP3YplHGEsjudaCTMIkKVEsoDN1hTJV0SFOHNUItGzp wHkzKpCAJJu8jrnMSjiNoopfXiuj6N1+N6+475Pn/XoLnD8i+yj63fUX5fDpv1ZI xucOB1EQCmjqev3IBzFVt3dP22ey2WYv3BlXjwbOLaEIl/odtQ== -----END CERTIFICATE----- kind: ConfigMap metadata: creationTimestamp: "2026-07-17T18:15:19Z" 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-17T18:15:19Z" name: odh-kserve-custom-ca-bundle namespace: openshift-multus resourceVersion: "14779" uid: a7193e77-e47b-467f-8443-6726fcb89f26 - apiVersion: v1 data: service-ca.crt: | -----BEGIN CERTIFICATE----- MIIDUTCCAjmgAwIBAgIIXbktk4VewRgwDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UE Awwrb3BlbnNoaWZ0LXNlcnZpY2Utc2VydmluZy1zaWduZXJAMTc4NDMxMTgzNDAe Fw0yNjA3MTcxODEwMzNaFw0yODA5MTQxODEwMzRaMDYxNDAyBgNVBAMMK29wZW5z aGlmdC1zZXJ2aWNlLXNlcnZpbmctc2lnbmVyQDE3ODQzMTE4MzQwggEiMA0GCSqG SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDOxbHLbb2BkKRNeJqkxFRe0Sur2UcDRPr0 /S2xGn7FJs15rK5lthtQX/i1gXFopaRKFh6nzYM/6rRxOVKMBXHyqJDfAYcsTikY i7bGITa2NL8Qsc3YrhkeAUtpDTb3xt0ewhFqDw8yeJ9Yo+7gO45MXJBtosojZmK/ JCktaUucbRDolkMY7EOIW1VsPaivO/2MMy8PSAXQHtw7PbceLIeCoKEwFaDrhEhm 9eQAjHXm8h0iYf/EbNPGWgJW9q3fpQwG436pRcfL54RERHpVTKCOj9iY8QuRMFOv IylwODU1SkDSdPbc97q81sKNS9SaEDIhyYwTjjVBvUMxQLyqSQozAgMBAAGjYzBh MA4GA1UdDwEB/wQEAwICpDAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBS+CWA2 JLW1olrmj4dep2KBJ/vCkjAfBgNVHSMEGDAWgBS+CWA2JLW1olrmj4dep2KBJ/vC kjANBgkqhkiG9w0BAQsFAAOCAQEAJLown0n1GGVMf0GG0bm4v0JI+k4EAaE9jirG y8rGgabYwROHySUmJJ9/wvAVux7YNxfvLTszLxt46345MaK1VaOdUc75IZqyrRYB qjer9k8a2FtVrXCDw8JaRSTBRcQNaAgrlOjo32Wwmk5/fm94Gib9HOMjn4fa5QAL OIREmBX3f7Y7gC6BDlaX+pP3YplHGEsjudaCTMIkKVEsoDN1hTJV0SFOHNUItGzp wHkzKpCAJJu8jrnMSjiNoopfXiuj6N1+N6+475Pn/XoLnD8i+yj63fUX5fDpv1ZI xucOB1EQCmjqev3IBzFVt3dP22ey2WYv3BlXjwbOLaEIl/odtQ== -----END CERTIFICATE----- kind: ConfigMap metadata: annotations: service.beta.openshift.io/inject-cabundle: "true" creationTimestamp: "2026-07-17T18:04:09Z" 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-17T18:04:09Z" - apiVersion: v1 fieldsType: FieldsV1 fieldsV1: f:data: f:service-ca.crt: {} manager: service-ca-operator operation: Update time: "2026-07-17T18:10:49Z" name: openshift-service-ca.crt namespace: openshift-multus resourceVersion: "8100" uid: 9b9b7f30-8bf4-40cc-88b3-d741208855d4 - 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-17T18:04:12Z" managedFields: - apiVersion: v1 fieldsType: FieldsV1 fieldsV1: f:data: f:whereabouts.conf: {} f:metadata: f:ownerReferences: k:{"uid":"f24a5e2a-af20-4a22-8a1d-96600343b58b"}: {} manager: cluster-network-operator/operconfig operation: Apply time: "2026-07-17T18:04:12Z" name: whereabouts-flatfile-config namespace: openshift-multus ownerReferences: - apiVersion: operator.openshift.io/v1 blockOwnerDeletion: true controller: true kind: Network name: cluster uid: f24a5e2a-af20-4a22-8a1d-96600343b58b resourceVersion: "2372" uid: bf85098a-e334-4161-94b0-ea9be8fc3082 kind: ConfigMapList metadata: resourceVersion: "60451"