--- 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-21T12:05:25Z" 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":"6d0dfcd1-545b-47b1-9848-1f2685487a66"}: {} manager: cluster-network-operator/operconfig operation: Apply time: "2026-07-21T12:05:25Z" name: cni-copy-resources namespace: openshift-multus ownerReferences: - apiVersion: operator.openshift.io/v1 blockOwnerDeletion: true controller: true kind: Network name: cluster uid: 6d0dfcd1-545b-47b1-9848-1f2685487a66 resourceVersion: "2278" uid: 0d28134a-f8cd-4836-9ac0-e1bbe2788547 - 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-21T12:05:25Z" 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-21T12:05:25Z" name: cni-sysctl-allowlist namespace: openshift-multus resourceVersion: "2266" uid: 2f92271b-3c00-49c6-8816-4eacabf6a758 - 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-21T12:05:25Z" 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":"6d0dfcd1-545b-47b1-9848-1f2685487a66"}: {} manager: cluster-network-operator/operconfig operation: Apply time: "2026-07-21T12:05:25Z" name: default-cni-sysctl-allowlist namespace: openshift-multus ownerReferences: - apiVersion: operator.openshift.io/v1 blockOwnerDeletion: true controller: true kind: Network name: cluster uid: 6d0dfcd1-545b-47b1-9848-1f2685487a66 resourceVersion: "2263" uid: 02828a67-15c1-49fc-88f9-96b3dc7248fd - apiVersion: v1 data: ca.crt: | -----BEGIN CERTIFICATE----- MIIDPDCCAiSgAwIBAgIIOFH+jB/oam0wDQYJKoZIhvcNAQELBQAwJjESMBAGA1UE CxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdyb290LWNhMB4XDTI2MDcyMTEyMDIyM1oX DTM2MDcxODEyMDIyM1owJjESMBAGA1UECxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdy b290LWNhMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsV5H6KdmGaKJ PkXZpjkiFE65QLF4E5XypLLlAhkRlddmN4coAPCnc6je4Gh0vgLTIHe+esKUeDwT d3v4GePi1OOgcfEM5nbkN6rOqXH6wt7RUc/RrYt31KgoFBKyrdX2OE+5O6AOqIcV r3041V10WiOdx7a5IA5aczMhCa7E2/f0IJuzRK9VxFdoHEEcwLjsBZqub3SPM7IK v0aqVFOX17OZnZwcd7Y3Wg9c4+0ms6KUJIuYSHrj7jDHW/lwmVl15uBttV3CZyDc q5+NbciaEJm0U6hIPuRaFgGcGUL8NFT38DW6/Og96Ax0hZzIXW1me1Ts0DBy/gYz hnCQ6XGIFQIDAQABo24wbDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH/BAUwAwEB /zBJBgNVHQ4EQgRAT/2igm4pXD/zyzzzKIiA8a2OQPPEnyn5iQW4LVzHDqu7RKVt y8LBLS/p85gDEJo6VY9LW5VF3iKLNztUHsC48DANBgkqhkiG9w0BAQsFAAOCAQEA QXu7skTpISG8c+tVST28NCZGtiScp7MuqkyuFRnwhvOuxV+cbLkRDKWw+1ScXRWX hvfY0rOt5486P5terOFVTWUut8vC225gBz7jn6Z88Or0GLrpsGO7W4gbLLmXFe8D ac0PTa+juZeKlDvJdxjVhshYhF7N7oT8et1rd5Zqd8HM+zCqf6P5Q1U3WdfZbHgi +5A6XRMsxsxxb8QbTcYzw0swT8rA454Pdtt0H/headOkF/OIlH4K+U+QB895U1iM nPWbzUwvit0eV7YMxTWWI9oZIg/QZpcJ9WKZWz/BFzyzgsvVG6W9ZJcQQHSWPhBR jem/NyPvjXl6udynwxGY1w== -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIEADCCAuigAwIBAgIIFonUluab7yowDQYJKoZIhvcNAQELBQAwJjESMBAGA1UE CxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdyb290LWNhMB4XDTI2MDcyMTEyMDMxMFoX DTI3MDcyMTEyMDMxMFowMDESMBAGA1UEChMJb3BlbnNoaWZ0MRowGAYDVQQDExFv cGVuc2hpZnQtaW5ncmVzczCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB AOPAPI+O0QWOrkdMSVLeIpqouRp75mtHcLAuMNx8lh2h5dRN/Xm174bAeCJoWePk xAlTwBu1br5KjPFELK0eJb+9NkhUSRbvCaUWKklZp8lLx3i/6gqOTDRX66oUa7Ul qVOHPuM0Je96w0uGvih3Bkzey6u2jvUItaKlV6ObxpJ3eJuc1VSluRqjzXJVGapn jscRjyDthh+gKLM1IgYYVvynQxkuMQRvFqVMNCjxtd7ELHAqoJWn28IjZv0+x3OK kFA8QcRVL8nKTpne32gtTjtd6CVBKpTCQhnd3D1HW+jOz53S5uCNvsC7LHCH1XnG kg6nwcB0LL750FXpIb9AEK0CAwEAAaOCASYwggEiMA4GA1UdDwEB/wQEAwIFoDAd BgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADBJBgNV HQ4EQgRAfXdfX5MFct9a7pAXUhIv/a+Oj2AFaP2De8EJTQNlWHSuNHnc2LkXTDtQ arAaJHFDh3lxvWFoW2dlutSIGEEwPDBLBgNVHSMERDBCgEBP/aKCbilcP/PLPPMo iIDxrY5A88SfKfmJBbgtXMcOq7tEpW3LwsEtL+nzmAMQmjpVj0tblUXeIos3O1Qe wLjwMEsGA1UdEQREMEKCQCouYXBwcy5jNDllYTlhOS0xZDczLTQ5YzgtYTJkMi1l ZDkyNTQyNTQ3ODgucHJvZC5rb25mbHV4ZWFhcy5jb20wDQYJKoZIhvcNAQELBQAD ggEBAFvLe/pgFWkAjXhAAXGPuyRy3hai08el9aVGT7GztRqu0AAIKNTpthFcT89x vWpv9c+e7pWswvyWzuj3eYJCyOWYM5yD4w/jjvo37JTqKRTBn19/xprKO7gfEL/x T9QUTFGkCqKo0Tp4LWdXDBA1ZykjEemyBSaviyLMWcav+X9PZ9NpluG3Le1V2smv QQ75WUxW8SEAzRc5zfL7k0rFK7k58/AR8ekvQxaQeCoYVhUBy/nwN46zXP2/0qP+ IejI9FgcxpC0lz+jVdEcw+AsJvTyhAkcrLTQwVqmK3opzHCs3C4Dy0AyA8YPv2B+ Bx/sLpK8HyBR204OdEg2e/NTWm8= -----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-21T12:05:22Z" 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-21T12:05:59Z" name: kube-root-ca.crt namespace: openshift-multus resourceVersion: "4250" uid: eebf6548-9945-4ce1-affa-67d5f39c6804 - 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-21T12:05:26Z" 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":"6d0dfcd1-545b-47b1-9848-1f2685487a66"}: {} manager: cluster-network-operator/operconfig operation: Apply time: "2026-07-21T12:05:26Z" name: multus-daemon-config namespace: openshift-multus ownerReferences: - apiVersion: operator.openshift.io/v1 blockOwnerDeletion: true controller: true kind: Network name: cluster uid: 6d0dfcd1-545b-47b1-9848-1f2685487a66 resourceVersion: "2287" uid: 55939584-301e-4625-96ae-8d40a82a4988 - apiVersion: v1 data: cabundle.crt: |- -----BEGIN CERTIFICATE----- MIIDUTCCAjmgAwIBAgIIM61kh5vLiCwwDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UE Awwrb3BlbnNoaWZ0LXNlcnZpY2Utc2VydmluZy1zaWduZXJAMTc4NDYzNTkxNjAe Fw0yNjA3MjExMjExNTVaFw0yODA5MTgxMjExNTZaMDYxNDAyBgNVBAMMK29wZW5z aGlmdC1zZXJ2aWNlLXNlcnZpbmctc2lnbmVyQDE3ODQ2MzU5MTYwggEiMA0GCSqG SIb3DQEBAQUAA4IBDwAwggEKAoIBAQCbbRuLDpSekBWetTZAj+LQE9tj/ieT/Opo tKaQzzXM1BtrSxS+EIiMYzYOf/Kno4t6vTYN+D7yr5+wKXLKvuhXDogAtDKXo376 /fsVwKpdNDVCzpvZ2w4M1LdKp05k4wlgLu4wOSC13y+6CHVov6anL4Btn/6lvi/j McxtWbg07iin3Cku33qSeRjRUGhQt87o2+DTS2ro9JywLbn7qwKMCyW2kV7DVWw5 PXPxYlx/if/czICHcVON3uWiGcMdtsTLeCv4FDtkY7rZmP2ui1RKxSVdcQkIB7zi JA/x6m6Edl+ZU8VgDD84aaGo7jrma4j3pEcOtNyIr5BahGR9iJ+HAgMBAAGjYzBh MA4GA1UdDwEB/wQEAwICpDAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRRR5cc uj+tH7UptIod+PwpVMlOZzAfBgNVHSMEGDAWgBRRR5ccuj+tH7UptIod+PwpVMlO ZzANBgkqhkiG9w0BAQsFAAOCAQEAfd5c3XTq95SYuIMsC6wBz0/12ScPuYOK1OvN RPzkIDd+OM/tYbuePHwKYcBDE3wio4lCydS+uL6aCJsn4m/oWAEVZ3NRjET/XdLX hQH4Vfe8xoAFL35zg0cJAnIesvpQV8cPT4FJRasWfZ7+Q7AfkJJsgQJr94sl+k1+ GVZmdtYRPRyfxwCX+rLalAannuZM8WDf392eV7UzT8Ke4vU3DjTOjgpHu8sADkG6 aAbfhHnBEDuFg9wV2puD/vdha7PrO+cMJM0HJs33iQUSy0qYsHXHc/FD1/aZ308/ I8hPwjx6wY8aF0b6UWyzXvTEqqd9KCCs+biMAeRLC4np3VneKA== -----END CERTIFICATE----- kind: ConfigMap metadata: creationTimestamp: "2026-07-21T12:22:02Z" 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-21T12:22:02Z" name: odh-kserve-custom-ca-bundle namespace: openshift-multus resourceVersion: "15794" uid: da83b3b1-0433-475c-9ad6-8a3bf08c1d27 - apiVersion: v1 data: service-ca.crt: | -----BEGIN CERTIFICATE----- MIIDUTCCAjmgAwIBAgIIM61kh5vLiCwwDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UE Awwrb3BlbnNoaWZ0LXNlcnZpY2Utc2VydmluZy1zaWduZXJAMTc4NDYzNTkxNjAe Fw0yNjA3MjExMjExNTVaFw0yODA5MTgxMjExNTZaMDYxNDAyBgNVBAMMK29wZW5z aGlmdC1zZXJ2aWNlLXNlcnZpbmctc2lnbmVyQDE3ODQ2MzU5MTYwggEiMA0GCSqG SIb3DQEBAQUAA4IBDwAwggEKAoIBAQCbbRuLDpSekBWetTZAj+LQE9tj/ieT/Opo tKaQzzXM1BtrSxS+EIiMYzYOf/Kno4t6vTYN+D7yr5+wKXLKvuhXDogAtDKXo376 /fsVwKpdNDVCzpvZ2w4M1LdKp05k4wlgLu4wOSC13y+6CHVov6anL4Btn/6lvi/j McxtWbg07iin3Cku33qSeRjRUGhQt87o2+DTS2ro9JywLbn7qwKMCyW2kV7DVWw5 PXPxYlx/if/czICHcVON3uWiGcMdtsTLeCv4FDtkY7rZmP2ui1RKxSVdcQkIB7zi JA/x6m6Edl+ZU8VgDD84aaGo7jrma4j3pEcOtNyIr5BahGR9iJ+HAgMBAAGjYzBh MA4GA1UdDwEB/wQEAwICpDAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRRR5cc uj+tH7UptIod+PwpVMlOZzAfBgNVHSMEGDAWgBRRR5ccuj+tH7UptIod+PwpVMlO ZzANBgkqhkiG9w0BAQsFAAOCAQEAfd5c3XTq95SYuIMsC6wBz0/12ScPuYOK1OvN RPzkIDd+OM/tYbuePHwKYcBDE3wio4lCydS+uL6aCJsn4m/oWAEVZ3NRjET/XdLX hQH4Vfe8xoAFL35zg0cJAnIesvpQV8cPT4FJRasWfZ7+Q7AfkJJsgQJr94sl+k1+ GVZmdtYRPRyfxwCX+rLalAannuZM8WDf392eV7UzT8Ke4vU3DjTOjgpHu8sADkG6 aAbfhHnBEDuFg9wV2puD/vdha7PrO+cMJM0HJs33iQUSy0qYsHXHc/FD1/aZ308/ I8hPwjx6wY8aF0b6UWyzXvTEqqd9KCCs+biMAeRLC4np3VneKA== -----END CERTIFICATE----- kind: ConfigMap metadata: annotations: service.beta.openshift.io/inject-cabundle: "true" creationTimestamp: "2026-07-21T12:05: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-21T12:05:22Z" - apiVersion: v1 fieldsType: FieldsV1 fieldsV1: f:data: f:service-ca.crt: {} manager: service-ca-operator operation: Update time: "2026-07-21T12:12:11Z" name: openshift-service-ca.crt namespace: openshift-multus resourceVersion: "8061" uid: 66592949-c811-4c6e-894e-4e06d3aea72c - 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-21T12:05:25Z" managedFields: - apiVersion: v1 fieldsType: FieldsV1 fieldsV1: f:data: f:whereabouts.conf: {} f:metadata: f:ownerReferences: k:{"uid":"6d0dfcd1-545b-47b1-9848-1f2685487a66"}: {} manager: cluster-network-operator/operconfig operation: Apply time: "2026-07-21T12:05:25Z" name: whereabouts-flatfile-config namespace: openshift-multus ownerReferences: - apiVersion: operator.openshift.io/v1 blockOwnerDeletion: true controller: true kind: Network name: cluster uid: 6d0dfcd1-545b-47b1-9848-1f2685487a66 resourceVersion: "2280" uid: 582c578c-209e-42fa-8680-9e5633d800ed kind: ConfigMapList metadata: resourceVersion: "65489"