--- 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-15T16:53:22Z" 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":"83841265-20ec-492b-aa18-714550ada6e3"}: {} manager: cluster-network-operator/operconfig operation: Apply time: "2026-07-15T16:53:22Z" name: cni-copy-resources namespace: openshift-multus ownerReferences: - apiVersion: operator.openshift.io/v1 blockOwnerDeletion: true controller: true kind: Network name: cluster uid: 83841265-20ec-492b-aa18-714550ada6e3 resourceVersion: "3494" uid: e6e20955-512a-4154-a667-b0b7e6228e6b - 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-15T16:53:22Z" 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-15T16:53:22Z" name: cni-sysctl-allowlist namespace: openshift-multus resourceVersion: "3491" uid: cd22db23-7661-4575-ad41-ac6046066a95 - 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-15T16:53:22Z" 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":"83841265-20ec-492b-aa18-714550ada6e3"}: {} manager: cluster-network-operator/operconfig operation: Apply time: "2026-07-15T16:53:22Z" name: default-cni-sysctl-allowlist namespace: openshift-multus ownerReferences: - apiVersion: operator.openshift.io/v1 blockOwnerDeletion: true controller: true kind: Network name: cluster uid: 83841265-20ec-492b-aa18-714550ada6e3 resourceVersion: "3490" uid: 8adf2e15-f055-488c-9506-b47d78c16087 - apiVersion: v1 data: ca.crt: | -----BEGIN CERTIFICATE----- MIIDPDCCAiSgAwIBAgIIRGnMFDprqbswDQYJKoZIhvcNAQELBQAwJjESMBAGA1UE CxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdyb290LWNhMB4XDTI2MDcxNTE2NTAyMFoX DTM2MDcxMjE2NTAyMFowJjESMBAGA1UECxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdy b290LWNhMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5wrtLoHTYEu+ CX0MLAFeoPmvcCvRnqaOpBLwSfzTcws/7wTpSR5GBQj9sIu461Rx7rRBr+BBoDAX g/w1OKTogwsVWUg7dwGstqq/RTtMucu1vquSmNWWQfpfkM3lvSWj3A+Z7SD4Xycc scjEEmaJKhrBPP1aTEO+wvBUg8mOyqjBeAAYE4H9KmRKLL4qSRMzoD5p6J1gENPy PpgxYsEj9puRXMVghOsNL+qihUDfHZ/dFutH3xfU5tiG4FqNBBILFOthSPmg2Ojn 6oAGt8KJPUpWaWm2Q9EvPY3SR667RxFPelatLcAM6oxC1Bl9jWbAakYgxIO7Ej+I WefiHvq7awIDAQABo24wbDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH/BAUwAwEB /zBJBgNVHQ4EQgRA3qQB7Fr69roO2xhux7+OwU8XUmSzJkraXUVmBv3QlKGPqs4d 9nzmAvKBxfDck5ebsJJqUqwKEzsYK0/RkXN4tzANBgkqhkiG9w0BAQsFAAOCAQEA ZcjA8AEC4Nuge76DEdsGg8Q5INVuCa26vVs1e+zRh0VLBfqyLnBg0eD1aGrz9HX8 9tTTVxnxAPFmlYL6/4EuxEtg+yTLAM3tbIyDmlJwv+CZ3f9VloR5td5ax6EdkvH8 92fITdlavgSxaAqT56QuYdQz0II3ypOpV0P8pNHvTBS6mOEAyZHD7IhrzqgEEMVE ZGbtov+dQ26HWdK2E1ERG0m+OUI7dX3d4IGafmp8q67QUVNUSs5xf3a7RP24/J8f EbriwXWj+UsuIptu1/H62fNzE5tjf5QmLLEbFYKIbd7oEX18qRJ+knvdMXGPNtIw siv7eagDbRcdkiL7OLxB0A== -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIEADCCAuigAwIBAgIIZAjP6nbTfM0wDQYJKoZIhvcNAQELBQAwJjESMBAGA1UE CxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdyb290LWNhMB4XDTI2MDcxNTE2NTA1NFoX DTI3MDcxNTE2NTA1NFowMDESMBAGA1UEChMJb3BlbnNoaWZ0MRowGAYDVQQDExFv cGVuc2hpZnQtaW5ncmVzczCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB AK36PunC5EsFcQjaICBVPJqxHFN+xdUP3QZ1cTb4IHMZRQHeZCN5Uq/7RzpXPt/0 UKxfWeWUwxYF5cFP03GV5ep/p77G8YBLq61KJi45MBLgyww1jcjDiHULQyuhdbLb muvtUJtNG+h/R7waZKElK2vejVNiFy9XJPfau93uhLdKgPy7s5JzWASEnwwXIfxT SOPehguXIcJK6p4qDgMRtCWwUkPJObtjD6ouzrRmHSBXzEFX/NMhAml3sd/2hLsy 0BL0InVJLOGayXrWlPzm+/HdzDOQFhXfdauAL/pPmWGt3uU9JhJzLRc9Ze/1za2H xXEBYV/Da7AHTl4KdBMTSWkCAwEAAaOCASYwggEiMA4GA1UdDwEB/wQEAwIFoDAd BgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADBJBgNV HQ4EQgRA+4Ac2g/JLa9fzHpf3bckdvU0MdoLY7xEy01JcpsPPYysiBDKyz+g4U6a OPlagmcsZ/VVvRFukHA8jJy5677SkjBLBgNVHSMERDBCgEDepAHsWvr2ug7bGG7H v47BTxdSZLMmStpdRWYG/dCUoY+qzh32fOYC8oHF8NyTl5uwkmpSrAoTOxgrT9GR c3i3MEsGA1UdEQREMEKCQCouYXBwcy5hY2VmYjlkNC0wOTQ3LTQ3NTItYjIyMS0y NDFjMjY2ODU1N2IucHJvZC5rb25mbHV4ZWFhcy5jb20wDQYJKoZIhvcNAQELBQAD ggEBADKglxhGPQjlOoZc8UG+mYOIQPEFUNcP3NcEvXe9u2u47ZtbRygnqIhusVdm C7DCbRMQj+CSAV7keEEHtsmbn/eNgOVkpJYL53xuSJdnfbOM47Pu9LG2iXlfjO28 lN5XgVrRjZ7L5o41O87ONN14rqn6oqZ6FQdToiMJnuFGcSwqt68BQbAeSm9/+mDf glSXyKfe9kBXQ2NSCC78U83ll4r62yPtpBSUilQ7l+oa2lUjqt8wG++1O7FYtgpA 1cD2PPA3sJHE9CrId+TaSJlSq7sZjZ5J5T9ohT4hx5e49XVdUU4Clgj9X/1an3VQ rJZaP7n14ku2Pa3Xi4FauzxgBes= -----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-15T16:53:26Z" 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-15T16:53:26Z" name: kube-root-ca.crt namespace: openshift-multus resourceVersion: "3656" uid: 1f2719d1-08c4-40c5-b404-b3641996e4da - 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-15T16:53:23Z" 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":"83841265-20ec-492b-aa18-714550ada6e3"}: {} manager: cluster-network-operator/operconfig operation: Apply time: "2026-07-15T16:53:23Z" name: multus-daemon-config namespace: openshift-multus ownerReferences: - apiVersion: operator.openshift.io/v1 blockOwnerDeletion: true controller: true kind: Network name: cluster uid: 83841265-20ec-492b-aa18-714550ada6e3 resourceVersion: "3497" uid: 339be818-7185-461d-b2f9-404b8e184822 - apiVersion: v1 data: cabundle.crt: |- -----BEGIN CERTIFICATE----- MIIDUTCCAjmgAwIBAgIIa/QBbvoc39swDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UE Awwrb3BlbnNoaWZ0LXNlcnZpY2Utc2VydmluZy1zaWduZXJAMTc4NDEzNDc0OTAe Fw0yNjA3MTUxNjU5MDhaFw0yODA5MTIxNjU5MDlaMDYxNDAyBgNVBAMMK29wZW5z aGlmdC1zZXJ2aWNlLXNlcnZpbmctc2lnbmVyQDE3ODQxMzQ3NDkwggEiMA0GCSqG SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDL1zJffxUrtgWxxcE/nhCjtuoXkhzqKmc/ xIDHZyxrmD/aaNSc72pK0PV4Eb9+dLXX5Ha8xMRoTaLfWv6rPBp3y2J2KWAY3NoE VMxYpIzB6gBndus3CrejBrc9I+ElVK+OnsdbDnXOkXNWUUuvgUHN74uWoVB9g+XT Mq0a6KYgOsrOkuQZGCCqY5ywwMRKyDixTtpz460uax2n3aoJTHzB48UUpE+PxykP pJAyiDUKTFe82fpXVVkObjDDty0QOBZDq1/Agkq0eV9VJKPeedvybvaWhh7eRe1C OjyQ5ZeSAllSTNuYe5pAkIWicJVovI/fg4GWYcQ10gHNA66u19pJAgMBAAGjYzBh MA4GA1UdDwEB/wQEAwICpDAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBQ4pENi qxb9pFPGso7+QZhxe3q4DTAfBgNVHSMEGDAWgBQ4pENiqxb9pFPGso7+QZhxe3q4 DTANBgkqhkiG9w0BAQsFAAOCAQEAjFzLIeDS9BwIoonuiyTCSwFyudOhgNQO4fNS EbPaS8NOp5GAGZyrPhjg1XfIXjGhct6JAtK9B3aF/Xi3RST9v9b8232fPg+5Zxt+ JlsdLFem7njTbdJq58q/VTXGUnYWM4Gn137aKqKScWUmRgCtL/hj9wREvTA2JybJ am60pFd+vCvf43WZoP9QpLqHxE3N1ZrZsg5opB7+q2s/Y3sg9R44dVDuToHOIgTt wcrInS0CdcE+Bexp9gmt0eccE4YsdJwGKkgSbHNAI7XBox+Pjs3E4yAj0gFly5HL m7G6QN7/QYc0df0NIL3R7qSyhmHf306I52zZVigUD2bBITw0DQ== -----END CERTIFICATE----- kind: ConfigMap metadata: creationTimestamp: "2026-07-15T17:04:13Z" 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-15T17:04:13Z" name: odh-kserve-custom-ca-bundle namespace: openshift-multus resourceVersion: "14788" uid: 6d65f877-b70c-4a91-95bd-50226412b448 - apiVersion: v1 data: service-ca.crt: | -----BEGIN CERTIFICATE----- MIIDUTCCAjmgAwIBAgIIa/QBbvoc39swDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UE Awwrb3BlbnNoaWZ0LXNlcnZpY2Utc2VydmluZy1zaWduZXJAMTc4NDEzNDc0OTAe Fw0yNjA3MTUxNjU5MDhaFw0yODA5MTIxNjU5MDlaMDYxNDAyBgNVBAMMK29wZW5z aGlmdC1zZXJ2aWNlLXNlcnZpbmctc2lnbmVyQDE3ODQxMzQ3NDkwggEiMA0GCSqG SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDL1zJffxUrtgWxxcE/nhCjtuoXkhzqKmc/ xIDHZyxrmD/aaNSc72pK0PV4Eb9+dLXX5Ha8xMRoTaLfWv6rPBp3y2J2KWAY3NoE VMxYpIzB6gBndus3CrejBrc9I+ElVK+OnsdbDnXOkXNWUUuvgUHN74uWoVB9g+XT Mq0a6KYgOsrOkuQZGCCqY5ywwMRKyDixTtpz460uax2n3aoJTHzB48UUpE+PxykP pJAyiDUKTFe82fpXVVkObjDDty0QOBZDq1/Agkq0eV9VJKPeedvybvaWhh7eRe1C OjyQ5ZeSAllSTNuYe5pAkIWicJVovI/fg4GWYcQ10gHNA66u19pJAgMBAAGjYzBh MA4GA1UdDwEB/wQEAwICpDAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBQ4pENi qxb9pFPGso7+QZhxe3q4DTAfBgNVHSMEGDAWgBQ4pENiqxb9pFPGso7+QZhxe3q4 DTANBgkqhkiG9w0BAQsFAAOCAQEAjFzLIeDS9BwIoonuiyTCSwFyudOhgNQO4fNS EbPaS8NOp5GAGZyrPhjg1XfIXjGhct6JAtK9B3aF/Xi3RST9v9b8232fPg+5Zxt+ JlsdLFem7njTbdJq58q/VTXGUnYWM4Gn137aKqKScWUmRgCtL/hj9wREvTA2JybJ am60pFd+vCvf43WZoP9QpLqHxE3N1ZrZsg5opB7+q2s/Y3sg9R44dVDuToHOIgTt wcrInS0CdcE+Bexp9gmt0eccE4YsdJwGKkgSbHNAI7XBox+Pjs3E4yAj0gFly5HL m7G6QN7/QYc0df0NIL3R7qSyhmHf306I52zZVigUD2bBITw0DQ== -----END CERTIFICATE----- kind: ConfigMap metadata: annotations: service.beta.openshift.io/inject-cabundle: "true" creationTimestamp: "2026-07-15T16:53:26Z" 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-15T16:53:26Z" - apiVersion: v1 fieldsType: FieldsV1 fieldsV1: f:data: f:service-ca.crt: {} manager: service-ca-operator operation: Update time: "2026-07-15T16:59:21Z" name: openshift-service-ca.crt namespace: openshift-multus resourceVersion: "7810" uid: 5b996b85-6240-4cec-80ab-4d3698fcf028 - 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-15T16:53:23Z" managedFields: - apiVersion: v1 fieldsType: FieldsV1 fieldsV1: f:data: f:whereabouts.conf: {} f:metadata: f:ownerReferences: k:{"uid":"83841265-20ec-492b-aa18-714550ada6e3"}: {} manager: cluster-network-operator/operconfig operation: Apply time: "2026-07-15T16:53:23Z" name: whereabouts-flatfile-config namespace: openshift-multus ownerReferences: - apiVersion: operator.openshift.io/v1 blockOwnerDeletion: true controller: true kind: Network name: cluster uid: 83841265-20ec-492b-aa18-714550ada6e3 resourceVersion: "3495" uid: 25ffc2b9-9b00-43d5-bd36-dff074c7aac8 kind: ConfigMapList metadata: resourceVersion: "64762"