--- 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.23 creationTimestamp: "2026-07-02T18:59:53Z" 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":"025234b8-3e5e-44f2-9101-359b904f3393"}: {} manager: cluster-network-operator/operconfig operation: Apply time: "2026-07-02T18:59:53Z" name: cni-copy-resources namespace: openshift-multus ownerReferences: - apiVersion: operator.openshift.io/v1 blockOwnerDeletion: true controller: true kind: Network name: cluster uid: 025234b8-3e5e-44f2-9101-359b904f3393 resourceVersion: "2668" uid: c6c5756f-0cb1-4fdc-bb8b-2d897059fe04 - 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.23 creationTimestamp: "2026-07-02T18:59:53Z" 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-02T18:59:53Z" name: cni-sysctl-allowlist namespace: openshift-multus resourceVersion: "2665" uid: 964df993-d0ec-43c6-aad5-656eb5e70416 - 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.23 creationTimestamp: "2026-07-02T18:59:53Z" 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":"025234b8-3e5e-44f2-9101-359b904f3393"}: {} manager: cluster-network-operator/operconfig operation: Apply time: "2026-07-02T18:59:53Z" name: default-cni-sysctl-allowlist namespace: openshift-multus ownerReferences: - apiVersion: operator.openshift.io/v1 blockOwnerDeletion: true controller: true kind: Network name: cluster uid: 025234b8-3e5e-44f2-9101-359b904f3393 resourceVersion: "2664" uid: 63e0dec4-7d98-4e31-895a-b67f5d89a372 - apiVersion: v1 data: ca.crt: | -----BEGIN CERTIFICATE----- MIIDPDCCAiSgAwIBAgIIEpyGPWS/y2QwDQYJKoZIhvcNAQELBQAwJjESMBAGA1UE CxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdyb290LWNhMB4XDTI2MDcwMjE4NTYzOFoX DTM2MDYyOTE4NTYzOFowJjESMBAGA1UECxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdy b290LWNhMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtNkllN9k8qA3 RtovUgFrtQgx9/dLq6wQ+xPbAVD/ogBjzJdq/ykpt5YvhinA/K+J6bkhSYGZqPWD 7T1DaJ9cJRlUbgYZ+JO9ZMoa9wdtDcffPVxdAMtNWK3agnA5Dk9ssXvf0KMgHcqG CGWFYx37NVUTPpJXL2VEfomFbDi0XD9i6R1+ts4o8K0Ka3I1u8e0rKErL7p3aiOZ Rfm2UhfW5hZXeba6KZjIfJqnmQbodKcnO0z/ZakbKjBxk1niH3IuHBpIBF/aSCdx U0LEjOSFC7g2YBwzmIFHT+2176WR9idCVAhyzIKqj0NPzJnrhz/5hHg/DXEfDlxC E/AyzkASMwIDAQABo24wbDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH/BAUwAwEB /zBJBgNVHQ4EQgRATsuxA42Qg5SnQpxrvzuPl2x2VWPIG7bI+8FgNu4H7tSDcUMy WLORbsuq0DTGDtBnHjkmypIcOE73oosRySd7zDANBgkqhkiG9w0BAQsFAAOCAQEA s7y6Tr/p5gYCi1FHpVC0TJIPybkWJTgDMkZxW/qt4Fx7cCnlrs0Fa/RCcT0n/opx iDwZer17GY8piX4eV7W+LW7ku8DJF9q4cv7inx9tr2AIEimR07aBJw5gD2RqLIia sVN78YAr2905dixu1i13Mr23af7ZtPNJKXt2mJRqQw6Gt1MNv8ZJaTXyp22Jt8Qk vOzRa5k8iOdXo9BUyW4cLOGHKYz1W3FzmKqY2G64xvk23NAJrgOTWx6dTvNGi7Kn nAU6NH5Z5CbRVyDdfGVB2jvi3l3+rijDsDfRmpMxAc9kr4bXumL/7soPv6bSIjqz 3RTo2bVBGPQeLeWF4h3FFg== -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIEADCCAuigAwIBAgIIFRpwhlrUZIMwDQYJKoZIhvcNAQELBQAwJjESMBAGA1UE CxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdyb290LWNhMB4XDTI2MDcwMjE4NTcxM1oX DTI3MDcwMjE4NTcxM1owMDESMBAGA1UEChMJb3BlbnNoaWZ0MRowGAYDVQQDExFv cGVuc2hpZnQtaW5ncmVzczCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB AOikN3tN/towirPampRuUC9thkSnZffNFCw7tCnOnO81VNZWAsfrxoG28+McX/D+ H61U3dCT1FwIlgDwmTxg871zwj0+/djYrJPBBGQnypfbg8vGU+CzZo5P6JzpS9+R rAptV+/fwfLuwwINPM/isc3/JPIxLFDCp66Gv6qO6DNjquCOZ1hp2W91RF0BTVmu DEeth0aN/vJ0FtIhLPktmFlKI7DQF7mLARqE1LDDSn1xsVfWXGb+Ufw8Ph3ADQhX l0X/5mV8eY9sHcRYTCWoPQeOf1LRlgXbZpY7FLubTgdeM8p3BNb4RYgnDJ/B4X8L ivAdv4aDDISc2X7TKDD01RUCAwEAAaOCASYwggEiMA4GA1UdDwEB/wQEAwIFoDAd BgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADBJBgNV HQ4EQgRAYt84cuOWoa3rArWiy0sR6HI1Tw+qko+QO6W/zGJQ+XwGJYkv41ypEpHj 1GrSm/r3bhDxCDsCCBgRngDoXdbIJzBLBgNVHSMERDBCgEBOy7EDjZCDlKdCnGu/ O4+XbHZVY8gbtsj7wWA27gfu1INxQzJYs5Fuy6rQNMYO0GceOSbKkhw4TveiixHJ J3vMMEsGA1UdEQREMEKCQCouYXBwcy45MDNmZTkxMi1lY2NjLTQ5ZTUtOWNmZC0w MTllMzg2OGI3YmIucHJvZC5rb25mbHV4ZWFhcy5jb20wDQYJKoZIhvcNAQELBQAD ggEBAB8WMp1xwbeQPkWJRmhBlUH+iqqG3ZXgZsOU7Su7Y+vzrP9w5SLd7ahapT31 eC3xYXCg6ip94sP5rsp2B6QDX4IXdAN8h4AJ7vC6NH6hLVKPIr1of46jAdJznWEI 87InGrP2yuuiH10QNjukIu7K0YI4Eu8uB3slPHJFtdaxQExg0Ddv0CL2n5nEUK33 yKF8jWc4pmbCZHYV2AO+GZqT0pnn0duhoI1yJTuAsoXi3E6g4xwH3UX9DbZ7XTB6 oAXR9GqUaaZeYrObwtVJyS8r3ee/IRJtQios6vN3VBBHnuYyTr5emcihdRjEVy5n AsrwWnKiFmWvNoB52+04iU8H9T4= -----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-02T19:00:05Z" 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-02T19:00:05Z" name: kube-root-ca.crt namespace: openshift-multus resourceVersion: "2876" uid: 5597fd18-6170-4584-b7b2-2a0d427eafe0 - 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-02T18:59:53Z" 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":"025234b8-3e5e-44f2-9101-359b904f3393"}: {} manager: cluster-network-operator/operconfig operation: Apply time: "2026-07-02T18:59:53Z" name: multus-daemon-config namespace: openshift-multus ownerReferences: - apiVersion: operator.openshift.io/v1 blockOwnerDeletion: true controller: true kind: Network name: cluster uid: 025234b8-3e5e-44f2-9101-359b904f3393 resourceVersion: "2671" uid: be6b78b2-9793-4334-b669-454d93d0ea35 - apiVersion: v1 data: cabundle.crt: |- -----BEGIN CERTIFICATE----- MIIDUTCCAjmgAwIBAgIIQ47iwPvSH6swDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UE Awwrb3BlbnNoaWZ0LXNlcnZpY2Utc2VydmluZy1zaWduZXJAMTc4MzAxOTE2NTAe Fw0yNjA3MDIxOTA2MDVaFw0yODA4MzAxOTA2MDZaMDYxNDAyBgNVBAMMK29wZW5z aGlmdC1zZXJ2aWNlLXNlcnZpbmctc2lnbmVyQDE3ODMwMTkxNjUwggEiMA0GCSqG SIb3DQEBAQUAA4IBDwAwggEKAoIBAQC8PbnjZmdHrAe9I5QLl/XW6BRKNmsKvwX2 W0v0c8hGp25PfUGtunRmtnqi9KYZ9yeC3NfqwbyGD00SQaqzEtTdOGxEZVJf9JN1 WAhN0QVSaEJe16AD2xqojnekrrOT+JkatTK8PoRdrcmXGi2IXnCaxAZqv41KEjkF ovm4/vkCYUMdAUrNnnWGkVlj6g7iCbKzhAUbGCyIGStWwH2P68m84T6nKCv4T8BM 9XAM8nNOYtanI86vBZe8ihJPiNR63tV1IX/oW0aqh36eojetzzoAb7IvpqumSxu2 JU1sHoS4X2crJ0eeUA8aORqq7y/IxXr7zx3+1Wq8I3if3iUOnAOlAgMBAAGjYzBh MA4GA1UdDwEB/wQEAwICpDAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRdm6Ef sMIHvRUk3f0QlEBp8iuWAjAfBgNVHSMEGDAWgBRdm6EfsMIHvRUk3f0QlEBp8iuW AjANBgkqhkiG9w0BAQsFAAOCAQEARztDdyvhj0j1SljbGnOTFQDvktfwiL2lIq/0 v0Z+8Z7aZnj4nGrkCqI1TTdcyT5/PLHRPzFF+l8KzNrbdp8PFq6ThV752GnbXKIG OYpbLV12L3wDujR+dQr9t3R13NMus1pe3CcF7XobsTfaYaq/Bb8hWH1twmajnE6u qXQubhxnXzgmarIjpfhqqBbgtNJ520L6BVTIadRI91ufo9xByjAizqV5f8fOTCgo tH+aoCTyPTfVwZDiyHsFnMHcSpLp/5prXs26Rq6bpfplRjBf4zseBPLbaevU35U0 YhadAzmvZyLiCo68ETfp02uIAVHVhqsTkP22VQpkF+SjK8zFPA== -----END CERTIFICATE----- kind: ConfigMap metadata: creationTimestamp: "2026-07-02T19:12:12Z" 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-02T19:12:12Z" name: odh-kserve-custom-ca-bundle namespace: openshift-multus resourceVersion: "15372" uid: 71d75cf6-d679-434f-8c74-41733492ef8d - apiVersion: v1 data: service-ca.crt: | -----BEGIN CERTIFICATE----- MIIDUTCCAjmgAwIBAgIIQ47iwPvSH6swDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UE Awwrb3BlbnNoaWZ0LXNlcnZpY2Utc2VydmluZy1zaWduZXJAMTc4MzAxOTE2NTAe Fw0yNjA3MDIxOTA2MDVaFw0yODA4MzAxOTA2MDZaMDYxNDAyBgNVBAMMK29wZW5z aGlmdC1zZXJ2aWNlLXNlcnZpbmctc2lnbmVyQDE3ODMwMTkxNjUwggEiMA0GCSqG SIb3DQEBAQUAA4IBDwAwggEKAoIBAQC8PbnjZmdHrAe9I5QLl/XW6BRKNmsKvwX2 W0v0c8hGp25PfUGtunRmtnqi9KYZ9yeC3NfqwbyGD00SQaqzEtTdOGxEZVJf9JN1 WAhN0QVSaEJe16AD2xqojnekrrOT+JkatTK8PoRdrcmXGi2IXnCaxAZqv41KEjkF ovm4/vkCYUMdAUrNnnWGkVlj6g7iCbKzhAUbGCyIGStWwH2P68m84T6nKCv4T8BM 9XAM8nNOYtanI86vBZe8ihJPiNR63tV1IX/oW0aqh36eojetzzoAb7IvpqumSxu2 JU1sHoS4X2crJ0eeUA8aORqq7y/IxXr7zx3+1Wq8I3if3iUOnAOlAgMBAAGjYzBh MA4GA1UdDwEB/wQEAwICpDAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRdm6Ef sMIHvRUk3f0QlEBp8iuWAjAfBgNVHSMEGDAWgBRdm6EfsMIHvRUk3f0QlEBp8iuW AjANBgkqhkiG9w0BAQsFAAOCAQEARztDdyvhj0j1SljbGnOTFQDvktfwiL2lIq/0 v0Z+8Z7aZnj4nGrkCqI1TTdcyT5/PLHRPzFF+l8KzNrbdp8PFq6ThV752GnbXKIG OYpbLV12L3wDujR+dQr9t3R13NMus1pe3CcF7XobsTfaYaq/Bb8hWH1twmajnE6u qXQubhxnXzgmarIjpfhqqBbgtNJ520L6BVTIadRI91ufo9xByjAizqV5f8fOTCgo tH+aoCTyPTfVwZDiyHsFnMHcSpLp/5prXs26Rq6bpfplRjBf4zseBPLbaevU35U0 YhadAzmvZyLiCo68ETfp02uIAVHVhqsTkP22VQpkF+SjK8zFPA== -----END CERTIFICATE----- kind: ConfigMap metadata: annotations: service.beta.openshift.io/inject-cabundle: "true" creationTimestamp: "2026-07-02T19:00:05Z" 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-02T19:00:05Z" - apiVersion: v1 fieldsType: FieldsV1 fieldsV1: f:data: f:service-ca.crt: {} manager: service-ca-operator operation: Update time: "2026-07-02T19:06:20Z" name: openshift-service-ca.crt namespace: openshift-multus resourceVersion: "8189" uid: 70c0d51a-5e96-44cf-9b42-3288522b2ab0 - 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-02T18:59:53Z" managedFields: - apiVersion: v1 fieldsType: FieldsV1 fieldsV1: f:data: f:whereabouts.conf: {} f:metadata: f:ownerReferences: k:{"uid":"025234b8-3e5e-44f2-9101-359b904f3393"}: {} manager: cluster-network-operator/operconfig operation: Apply time: "2026-07-02T18:59:53Z" name: whereabouts-flatfile-config namespace: openshift-multus ownerReferences: - apiVersion: operator.openshift.io/v1 blockOwnerDeletion: true controller: true kind: Network name: cluster uid: 025234b8-3e5e-44f2-9101-359b904f3393 resourceVersion: "2669" uid: f0299b3c-1812-43db-a1ee-f4659eeeadce kind: ConfigMapList metadata: resourceVersion: "57382"