--- 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-13T20:14:09Z" 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":"db0c6ca4-807a-4182-b736-d9b86854fc41"}: {} manager: cluster-network-operator/operconfig operation: Apply time: "2026-07-13T20:14:09Z" name: cni-copy-resources namespace: openshift-multus ownerReferences: - apiVersion: operator.openshift.io/v1 blockOwnerDeletion: true controller: true kind: Network name: cluster uid: db0c6ca4-807a-4182-b736-d9b86854fc41 resourceVersion: "2477" uid: 33357c1f-988b-45e2-b482-e9375f8d790d - 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-13T20:14:09Z" 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-13T20:14:09Z" name: cni-sysctl-allowlist namespace: openshift-multus resourceVersion: "2471" uid: 614ae1f2-f0a1-433f-a336-48033cce16f8 - 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-13T20:14:09Z" 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":"db0c6ca4-807a-4182-b736-d9b86854fc41"}: {} manager: cluster-network-operator/operconfig operation: Apply time: "2026-07-13T20:14:09Z" name: default-cni-sysctl-allowlist namespace: openshift-multus ownerReferences: - apiVersion: operator.openshift.io/v1 blockOwnerDeletion: true controller: true kind: Network name: cluster uid: db0c6ca4-807a-4182-b736-d9b86854fc41 resourceVersion: "2470" uid: 24e94750-ab4f-4c2a-965c-d411f5a69b61 - apiVersion: v1 data: ca.crt: | -----BEGIN CERTIFICATE----- MIIDPDCCAiSgAwIBAgIIbzoGB71U184wDQYJKoZIhvcNAQELBQAwJjESMBAGA1UE CxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdyb290LWNhMB4XDTI2MDcxMzIwMTAyMVoX DTM2MDcxMDIwMTAyMVowJjESMBAGA1UECxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdy b290LWNhMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAq604/uWt3IEX 40ZiQT7JkW1oMIUkuK6DwcmWmp6dVTFTFjnlpzrDP/T6dJybrOfm0SOduwk8msOX 3MUQsDDGklYrcQn7kB2TSuiiWOHjrIV0W7TvObfvsqOH5G6VCJQZuwxqlsesCKtw xZs4prHyGusmUmD33pm/F0zetjhLQ40N3GgGU6poBYsmLcDFOlsOog4tC0MixkKN UMAqCCafyi2UpfDJ4mN3UZUEHdXWStn3rE0m/FZngJoQWhzetcWQ6JCahyOYCAAf /5GJekV91KMNNg9OA/uY65izpQzd6Jy92IzSfeF4IYUh9q3FSbuPnaVeTHxP+NjQ 6nzpNDFCzwIDAQABo24wbDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH/BAUwAwEB /zBJBgNVHQ4EQgRA6DaOEUxP1thh2RoJkCzHgTGAM5plimu2iCWmu6Y7K/LW5eaX +QBafac54v2nZEhSicjiK6qCBPJZPXu/t25SkjANBgkqhkiG9w0BAQsFAAOCAQEA QGw0J1A/IFK+12LScXTg3oSRWCzMC1Z0w9cCPTGo8K4djSyi4ZIhR8F9RzW7DiP1 hBGljHC/pIRJwpNDCOpp0ohEv2qsGwLzGEyvygITgoX1QMIW2ke7NlaKE2mP+vTg TdD9NRGilR8wEPUJ0PRcydTPjVW0G0isjU5wQIf/YA1l/LasXchB8SPZiQAgBGd1 Wc4RoSQ2/bJdzR5W93YUjtQuFOtRxX109ZzV6ggRPPMivjyxmELAOF+R/qLcdD4/ giDHhTfE2mm9R9GFWJOKNHO0OBc9o7QJ3I2f4MALnYWjRadvyyS2nBECOobqb9pt h8AbrgLUcdbAks06UfjFPQ== -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIEADCCAuigAwIBAgIIVCxeZb+OfFwwDQYJKoZIhvcNAQELBQAwJjESMBAGA1UE CxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdyb290LWNhMB4XDTI2MDcxMzIwMTEwOVoX DTI3MDcxMzIwMTEwOVowMDESMBAGA1UEChMJb3BlbnNoaWZ0MRowGAYDVQQDExFv cGVuc2hpZnQtaW5ncmVzczCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB AK9PtgzrlH1C0Gezvo4QyJLruqer9LPwOGSvUj1yRO7caZR0jtfGvKOvUO86tyeH G/EH00eJHSimv3p6ilSqkdihWSblck/No1DscKoLEmpLHZ9DUMrZfM9QqSvF/mBe atcZKGV1MwBwwsZF48BQI07ldiY7waTJsaXVrSrVPj0QSr6+JGQAK68KM7MPzZka pmP4D4MkBhOFJj0BKvB+NeyDZMa4HuiAcpXlWVQMF7vHXaQFou0m2joijoYfMdqZ Q+ovokI6DAktIhWyB+awS0MHoCf5VQdOVqe6x67kwjytHit1fKJKlD/nPntPGBkb Zp5t3Z8/JRHzs+GOnhuUOTMCAwEAAaOCASYwggEiMA4GA1UdDwEB/wQEAwIFoDAd BgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADBJBgNV HQ4EQgRAtAyx7x6xxN5BBv/z44kNmg6qhtxlna3OKcBBa0nMcSFiC/ZXrHWFdIRc YWJ7TgWBOeU8/MqTGntHyxyvDVxNnTBLBgNVHSMERDBCgEDoNo4RTE/W2GHZGgmQ LMeBMYAzmmWKa7aIJaa7pjsr8tbl5pf5AFp9pzni/adkSFKJyOIrqoIE8lk9e7+3 blKSMEsGA1UdEQREMEKCQCouYXBwcy5hMDA4ZTBiYS1kODI1LTQzNGMtOTRlOS1j MGFhMGQzZTI3NWQucHJvZC5rb25mbHV4ZWFhcy5jb20wDQYJKoZIhvcNAQELBQAD ggEBACLs3k59tkREWpWHJ1imvXqqoufJRpFKVmis8rvF/KbTNm8eV232QkM5tjQn uVYerH313U0WT8/UH7XUDGXDyHBu44YVk02eoANU1jbppa0Wzvv9hUnDowc+tFnP XyQ6e7fhQvCk87RsqD3UD+BWpIrJQXjmksl3LidSOcMPBqntQoqieuSMQrdX2dk9 gwZblP+A3N0ppPVeC6Eue+fgmuS6EKQCeVY1LfE2donEUNsVArvT8LAR3n7n6oef wOIrPV3uL671e4eEvt0Kj5j5uMq38S2YVFVN2xSZrgpkreg4ZFoyKZf4FD1wOI62 lNADttMwSzskfbCglGmwLOGuwL8= -----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-13T20:14:23Z" 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-13T20:14:23Z" name: kube-root-ca.crt namespace: openshift-multus resourceVersion: "4022" uid: 43ef0202-d935-4084-a577-681feb37e96d - 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-13T20:14:10Z" 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":"db0c6ca4-807a-4182-b736-d9b86854fc41"}: {} manager: cluster-network-operator/operconfig operation: Apply time: "2026-07-13T20:14:10Z" name: multus-daemon-config namespace: openshift-multus ownerReferences: - apiVersion: operator.openshift.io/v1 blockOwnerDeletion: true controller: true kind: Network name: cluster uid: db0c6ca4-807a-4182-b736-d9b86854fc41 resourceVersion: "2486" uid: 337d92b0-f2c6-42e1-b661-273c63f90633 - apiVersion: v1 data: cabundle.crt: |- -----BEGIN CERTIFICATE----- MIIDUTCCAjmgAwIBAgIIQNJ7m1wL7iswDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UE Awwrb3BlbnNoaWZ0LXNlcnZpY2Utc2VydmluZy1zaWduZXJAMTc4Mzk3Mzk5OTAe Fw0yNjA3MTMyMDE5NThaFw0yODA5MTAyMDE5NTlaMDYxNDAyBgNVBAMMK29wZW5z aGlmdC1zZXJ2aWNlLXNlcnZpbmctc2lnbmVyQDE3ODM5NzM5OTkwggEiMA0GCSqG SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDIJRSDLEvxAK2AzMvMz3za/pOXeqQIVFML TLbD9Xunc4db/syq2rodIWSKXn735TuTYff5uWQze6bcTVEtlYS0ZvMm16yKQDwA 9tphHQ6/w4keqrrHksrILqG25jPsjAzUm3hSJeH1pw2FWOniZhb/moYlJw8ncwvS 9ANHWdEmK7ka2URskHvHqEcqwBhE36kzDIwNLVYk7CsT2W9zI91RswT9dQ6AxQdl PNex3TXjjIPj0G0ETQJJ9Sv9fHd1TU39bWr30l52Tj3D6FzLpfMa4NEg2laSpcrq U0lcu5BU3HYEjy4K9FpCPCt3g9KIFFy/BiNawbh5pF4LSstfvPcVAgMBAAGjYzBh MA4GA1UdDwEB/wQEAwICpDAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBSgsN04 0PP8xNE4ILvbHOPk40qo4TAfBgNVHSMEGDAWgBSgsN040PP8xNE4ILvbHOPk40qo 4TANBgkqhkiG9w0BAQsFAAOCAQEAovmp+TLtWvIq923Bh7aTk1B3MHgH/Mj9Gu9Z Ar0APlbVTPdEhplwHVPRNNgcI2N/cJkJSwqmfJxc1WZOOQyyeDW+sOdEAUlJqMyz bkrBiLTnG9oaTwQpVxcyIf0SRWnGRSN5J2KzAORYYiOh0Xb6POXrLwbCieYSNyCd Ee4Ghge/TlFoST0LWz0/kFdqfckk2WSY6cROsfC6c6Sv5rrEjy0+TsxWRrquMs53 LyzpJu7SXcbZ4tSKkOzQTqB2ogVPVPjZ4OEYRm8kM+CelCA96nHPX3w+r0NP42cQ YB/WuhXA1ou9VAC5GA3UQnJzIruMwiwziCtDXJRosgTm2HRCLw== -----END CERTIFICATE----- kind: ConfigMap metadata: creationTimestamp: "2026-07-13T20:26:53Z" 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-13T20:26:53Z" name: odh-kserve-custom-ca-bundle namespace: openshift-multus resourceVersion: "13275" uid: 889f1e95-0e39-4c68-9d29-2c999900ea08 - apiVersion: v1 data: service-ca.crt: | -----BEGIN CERTIFICATE----- MIIDUTCCAjmgAwIBAgIIQNJ7m1wL7iswDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UE Awwrb3BlbnNoaWZ0LXNlcnZpY2Utc2VydmluZy1zaWduZXJAMTc4Mzk3Mzk5OTAe Fw0yNjA3MTMyMDE5NThaFw0yODA5MTAyMDE5NTlaMDYxNDAyBgNVBAMMK29wZW5z aGlmdC1zZXJ2aWNlLXNlcnZpbmctc2lnbmVyQDE3ODM5NzM5OTkwggEiMA0GCSqG SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDIJRSDLEvxAK2AzMvMz3za/pOXeqQIVFML TLbD9Xunc4db/syq2rodIWSKXn735TuTYff5uWQze6bcTVEtlYS0ZvMm16yKQDwA 9tphHQ6/w4keqrrHksrILqG25jPsjAzUm3hSJeH1pw2FWOniZhb/moYlJw8ncwvS 9ANHWdEmK7ka2URskHvHqEcqwBhE36kzDIwNLVYk7CsT2W9zI91RswT9dQ6AxQdl PNex3TXjjIPj0G0ETQJJ9Sv9fHd1TU39bWr30l52Tj3D6FzLpfMa4NEg2laSpcrq U0lcu5BU3HYEjy4K9FpCPCt3g9KIFFy/BiNawbh5pF4LSstfvPcVAgMBAAGjYzBh MA4GA1UdDwEB/wQEAwICpDAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBSgsN04 0PP8xNE4ILvbHOPk40qo4TAfBgNVHSMEGDAWgBSgsN040PP8xNE4ILvbHOPk40qo 4TANBgkqhkiG9w0BAQsFAAOCAQEAovmp+TLtWvIq923Bh7aTk1B3MHgH/Mj9Gu9Z Ar0APlbVTPdEhplwHVPRNNgcI2N/cJkJSwqmfJxc1WZOOQyyeDW+sOdEAUlJqMyz bkrBiLTnG9oaTwQpVxcyIf0SRWnGRSN5J2KzAORYYiOh0Xb6POXrLwbCieYSNyCd Ee4Ghge/TlFoST0LWz0/kFdqfckk2WSY6cROsfC6c6Sv5rrEjy0+TsxWRrquMs53 LyzpJu7SXcbZ4tSKkOzQTqB2ogVPVPjZ4OEYRm8kM+CelCA96nHPX3w+r0NP42cQ YB/WuhXA1ou9VAC5GA3UQnJzIruMwiwziCtDXJRosgTm2HRCLw== -----END CERTIFICATE----- kind: ConfigMap metadata: annotations: service.beta.openshift.io/inject-cabundle: "true" creationTimestamp: "2026-07-13T20:14:22Z" 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-13T20:14:22Z" - apiVersion: v1 fieldsType: FieldsV1 fieldsV1: f:data: f:service-ca.crt: {} manager: service-ca-operator operation: Update time: "2026-07-13T20:20:13Z" name: openshift-service-ca.crt namespace: openshift-multus resourceVersion: "8052" uid: 310ea1f3-401f-45e6-a0c3-8027b0863032 - 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-13T20:14:10Z" managedFields: - apiVersion: v1 fieldsType: FieldsV1 fieldsV1: f:data: f:whereabouts.conf: {} f:metadata: f:ownerReferences: k:{"uid":"db0c6ca4-807a-4182-b736-d9b86854fc41"}: {} manager: cluster-network-operator/operconfig operation: Apply time: "2026-07-13T20:14:10Z" name: whereabouts-flatfile-config namespace: openshift-multus ownerReferences: - apiVersion: operator.openshift.io/v1 blockOwnerDeletion: true controller: true kind: Network name: cluster uid: db0c6ca4-807a-4182-b736-d9b86854fc41 resourceVersion: "2481" uid: 1faf86bc-9d8b-42e8-9a96-5281e9bd96c3 kind: ConfigMapList metadata: resourceVersion: "34079"