--- 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.22 creationTimestamp: "2026-07-02T14:10:19Z" 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":"c403027a-3472-4c99-9ec5-59d81bf642a2"}: {} manager: cluster-network-operator/operconfig operation: Apply time: "2026-07-02T14:10:19Z" name: cni-copy-resources namespace: openshift-multus ownerReferences: - apiVersion: operator.openshift.io/v1 blockOwnerDeletion: true controller: true kind: Network name: cluster uid: c403027a-3472-4c99-9ec5-59d81bf642a2 resourceVersion: "3110" uid: 3723ea7f-6858-4dc1-b6e0-cbfe990b6bc7 - 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.22 creationTimestamp: "2026-07-02T14:10:19Z" 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-02T14:10:19Z" name: cni-sysctl-allowlist namespace: openshift-multus resourceVersion: "3091" uid: 599a9a78-14b3-4ee0-a529-510061317b4d - 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.22 creationTimestamp: "2026-07-02T14:10:19Z" 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":"c403027a-3472-4c99-9ec5-59d81bf642a2"}: {} manager: cluster-network-operator/operconfig operation: Apply time: "2026-07-02T14:10:19Z" name: default-cni-sysctl-allowlist namespace: openshift-multus ownerReferences: - apiVersion: operator.openshift.io/v1 blockOwnerDeletion: true controller: true kind: Network name: cluster uid: c403027a-3472-4c99-9ec5-59d81bf642a2 resourceVersion: "3086" uid: 6615b55a-2694-4767-9a20-452ee4cdcdea - apiVersion: v1 data: ca.crt: | -----BEGIN CERTIFICATE----- MIIDPDCCAiSgAwIBAgIIZF1HvQEEOdIwDQYJKoZIhvcNAQELBQAwJjESMBAGA1UE CxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdyb290LWNhMB4XDTI2MDcwMjE0MDY1M1oX DTM2MDYyOTE0MDY1M1owJjESMBAGA1UECxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdy b290LWNhMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5ZBrwtyS41UM Cktbuyqfz0KGlLkZw1DBt7KvUX81rSDSJVEcAuUkT2d/A4YRuoaZub6YVknavMzJ NZIaNtRUumO/83dlC3NmdW+Ol+l7xcTZmJHTMh+feqBdHJTnkVw7MBesOEVhQ/Fq jKx+HLfbCS6jQ79MRATGSDwHhvx6qYa8hijkwFfZQfSvjYEdJBcJZZg6WrO0KyuC Yo2aaIBY6kVruEuVeVOhJeDtpc/2Xk5ktTpgALesfJq87imbnQ+VDW0/kgyceURK E1XPIEZ2LGUdA/QTCDcMyPqrrGa3Vw5r3QZh7QR1zm4/dMRxScIXdW+ATXQ8MTz/ Y2xsuRaxFwIDAQABo24wbDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH/BAUwAwEB /zBJBgNVHQ4EQgRA+f2PzUWszULkzx9zRTwtAGdGnn2twhYJEAzix0imIxycFZU8 VaaIqNPHQvy1a/VAtFYjJgBH4x4kigHPmg3RDTANBgkqhkiG9w0BAQsFAAOCAQEA wwSIisxbbQJal3SK5gLXZKB7nxIzPs3NLfGbdIPypLdYY6Eysr/ZCu+/BlDQiYe6 YzOdbmFUkAMZh8lfkHuWXzFqtmkUjzOJQshm2YO8jyxVgPppn1pZ32TSF4dtkDpS +55MLvJv6sGGsNDK2T/NeZ810Xj5w/6k6fZhLWipH8aCDi/a0MDuzP3pdtpMxp9D YSrZTwRzxMnI4A3Jr0eQrqu9M7YYnZCYu2Udw/uB42hKdlILCegtDK2kA7lltnn0 EwtGFAAHYdFyHL/jk+TTRiTkdRFUA7hoyj7bJsXWY2VXIJoAaKhSscC5Onbww77P hcFTgGIuqeqc0Sj06PLRZA== -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIEADCCAuigAwIBAgIIa6xK7mTLJj0wDQYJKoZIhvcNAQELBQAwJjESMBAGA1UE CxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdyb290LWNhMB4XDTI2MDcwMjE0MDcyOFoX DTI3MDcwMjE0MDcyOFowMDESMBAGA1UEChMJb3BlbnNoaWZ0MRowGAYDVQQDExFv cGVuc2hpZnQtaW5ncmVzczCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB AMi2YWAsplVBbmLWm505jr54Ow900umKic47BHY5LLrniI7r2CqksPFHy0YetWS9 BNx0CbK4s2n+Y4jiuI7rlbCTCQhGVxQTKQswcDTzNhGrukXyZTffJj+muVTFko38 k2eGmz5kggZdjjDKP3soFD59jjA+q2tfdZfppANzWHY1gtKAhBxusoRFpBIUJSOx W/Is6E5XsphqjJxNHHtDQbJ0wPwK3HH+Dpum1hQSsGHD68+LNo2ZwZVM8Pc7/AT3 wvxKhjDXl+rA/V7VVU9N+2beST806Iq8+6Wp5AnV/EL70RZ12it/WKNZurw+rFtN IcDtAszEFLOurSAIHBxyRmkCAwEAAaOCASYwggEiMA4GA1UdDwEB/wQEAwIFoDAd BgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADBJBgNV HQ4EQgRAmQVtapCITEkeXPGkgBM6HwA3BH+q+X/DDYwuBJb0vPr7X9CUauUmXesS S7zOo26KycaynZHL/rLQU7jqDYEKCjBLBgNVHSMERDBCgED5/Y/NRazNQuTPH3NF PC0AZ0aefa3CFgkQDOLHSKYjHJwVlTxVpoio08dC/LVr9UC0ViMmAEfjHiSKAc+a DdENMEsGA1UdEQREMEKCQCouYXBwcy5jN2ZjNDM1Yy02ZDhmLTQ1NDEtYjExNS1k YjE4NGJkNzk2M2EucHJvZC5rb25mbHV4ZWFhcy5jb20wDQYJKoZIhvcNAQELBQAD ggEBAK1YwMoBgD05dQiC+oLILKlLKpSvHq4Ofc0VcRarYZCPMQ3tbGOC1jRzGS/r VSQNvUYFGECSTHyj8miA8ZLicXt3xUGeR5rpp82ymwRK8160a0A2IZtK6XCO4P9+ zkDSm8qIEqE3bF8L04eJHhis4pKi6OCAVdwV+9no0UyA+kRuIvU1u1q8U10V2sXY 8g4H2M8QWFwoOEXuyOXMQEbj2oTAm+zYhDnxOZioyG1AuNq4PgnxetHcNelVJY5U GCvQ3/hH8grxkSN7Ckp2pD9agC/nr4EI1iGRmssbeS7UEidnnCUDsBvbgf+VT2MT VnLg7tohhax29sk5LbLoi9s/5TE= -----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-02T14:10: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-02T14:10:26Z" name: kube-root-ca.crt namespace: openshift-multus resourceVersion: "3936" uid: 9fa78562-c166-4ac3-bc4b-93e3e1337538 - 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-02T14:10:20Z" 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":"c403027a-3472-4c99-9ec5-59d81bf642a2"}: {} manager: cluster-network-operator/operconfig operation: Apply time: "2026-07-02T14:10:20Z" name: multus-daemon-config namespace: openshift-multus ownerReferences: - apiVersion: operator.openshift.io/v1 blockOwnerDeletion: true controller: true kind: Network name: cluster uid: c403027a-3472-4c99-9ec5-59d81bf642a2 resourceVersion: "3161" uid: ab29c5b4-e846-4c11-b90b-b315118751d2 - apiVersion: v1 data: cabundle.crt: |- -----BEGIN CERTIFICATE----- MIIDUTCCAjmgAwIBAgIIbHF08wD83ZswDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UE Awwrb3BlbnNoaWZ0LXNlcnZpY2Utc2VydmluZy1zaWduZXJAMTc4MzAwMTc4MDAe Fw0yNjA3MDIxNDE2MjBaFw0yODA4MzAxNDE2MjFaMDYxNDAyBgNVBAMMK29wZW5z aGlmdC1zZXJ2aWNlLXNlcnZpbmctc2lnbmVyQDE3ODMwMDE3ODAwggEiMA0GCSqG SIb3DQEBAQUAA4IBDwAwggEKAoIBAQC+aKxuSWplydU91BVVIjF7MlvBtQO/wLKj L6Bx9YIgOfPrJc1KP0PQhdbyUNmrVtZ4JPi7Cle+b+9YUmJWjtbK2alyUgZyuLFJ ort7tDvvOIT91yy2+oZuLJaITxwbwdJmQRlrQo1bBVKfoHShpREtYq1EQutzMKlk eUAtYy0vDe7pGoqqRL6sVQBYIvHQc343RkL9+wY6sUW3x8ZuDVG1qstw+jxx0BmM hwoyycjiW0X4V8pBIw+P4zwgV5AbmWDy6Lly08c52IUdsA9++rjy/eRlWLP0D6AO hal41CzryM2TjBCsyejVjQBC/JQmr0duo7RnSj+b4a+0798+YsRvAgMBAAGjYzBh MA4GA1UdDwEB/wQEAwICpDAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBQX9fB2 mTbb6Dxdh0chuGYjOg6cITAfBgNVHSMEGDAWgBQX9fB2mTbb6Dxdh0chuGYjOg6c ITANBgkqhkiG9w0BAQsFAAOCAQEAPWU2/5c896HNPsg2OE+e+HvkbjBbXFPQ5lLY hdKjY/c859h+AWuJNXmhi++Y0sOALtl16ewpB+W+4/vWQQ7NUjpvbquitO7bnMCD 7FwBfZa5T83q/7jTxXZoVCe7jfbdeskznK3INUoajYUrFIme8eDi0XRi87dFEK3Y lSBOLPkrFC+UxuCbxC/jiVYNpYJAA76A8FLJ7qnA4QDhMg+fKbdVxZK3i7e33rLs 8nz2P175mSZnsy434Xul/ONP786ZhcjEqWJHOnSphFrDnbCqaSuO/xbRsgd+hG63 6WbRxWTgM8byqchs1gE8WNMrqnNK/MwL4yVIfeGh+5B0aCKgLQ== -----END CERTIFICATE----- kind: ConfigMap metadata: creationTimestamp: "2026-07-02T14:23: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-02T14:23:19Z" name: odh-kserve-custom-ca-bundle namespace: openshift-multus resourceVersion: "13565" uid: 5074d3dd-9fa5-4393-89f2-6b24427f6eaf - apiVersion: v1 data: service-ca.crt: | -----BEGIN CERTIFICATE----- MIIDUTCCAjmgAwIBAgIIbHF08wD83ZswDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UE Awwrb3BlbnNoaWZ0LXNlcnZpY2Utc2VydmluZy1zaWduZXJAMTc4MzAwMTc4MDAe Fw0yNjA3MDIxNDE2MjBaFw0yODA4MzAxNDE2MjFaMDYxNDAyBgNVBAMMK29wZW5z aGlmdC1zZXJ2aWNlLXNlcnZpbmctc2lnbmVyQDE3ODMwMDE3ODAwggEiMA0GCSqG SIb3DQEBAQUAA4IBDwAwggEKAoIBAQC+aKxuSWplydU91BVVIjF7MlvBtQO/wLKj L6Bx9YIgOfPrJc1KP0PQhdbyUNmrVtZ4JPi7Cle+b+9YUmJWjtbK2alyUgZyuLFJ ort7tDvvOIT91yy2+oZuLJaITxwbwdJmQRlrQo1bBVKfoHShpREtYq1EQutzMKlk eUAtYy0vDe7pGoqqRL6sVQBYIvHQc343RkL9+wY6sUW3x8ZuDVG1qstw+jxx0BmM hwoyycjiW0X4V8pBIw+P4zwgV5AbmWDy6Lly08c52IUdsA9++rjy/eRlWLP0D6AO hal41CzryM2TjBCsyejVjQBC/JQmr0duo7RnSj+b4a+0798+YsRvAgMBAAGjYzBh MA4GA1UdDwEB/wQEAwICpDAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBQX9fB2 mTbb6Dxdh0chuGYjOg6cITAfBgNVHSMEGDAWgBQX9fB2mTbb6Dxdh0chuGYjOg6c ITANBgkqhkiG9w0BAQsFAAOCAQEAPWU2/5c896HNPsg2OE+e+HvkbjBbXFPQ5lLY hdKjY/c859h+AWuJNXmhi++Y0sOALtl16ewpB+W+4/vWQQ7NUjpvbquitO7bnMCD 7FwBfZa5T83q/7jTxXZoVCe7jfbdeskznK3INUoajYUrFIme8eDi0XRi87dFEK3Y lSBOLPkrFC+UxuCbxC/jiVYNpYJAA76A8FLJ7qnA4QDhMg+fKbdVxZK3i7e33rLs 8nz2P175mSZnsy434Xul/ONP786ZhcjEqWJHOnSphFrDnbCqaSuO/xbRsgd+hG63 6WbRxWTgM8byqchs1gE8WNMrqnNK/MwL4yVIfeGh+5B0aCKgLQ== -----END CERTIFICATE----- kind: ConfigMap metadata: annotations: service.beta.openshift.io/inject-cabundle: "true" creationTimestamp: "2026-07-02T14:10: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-02T14:10:26Z" - apiVersion: v1 fieldsType: FieldsV1 fieldsV1: f:data: f:service-ca.crt: {} manager: service-ca-operator operation: Update time: "2026-07-02T14:16:35Z" name: openshift-service-ca.crt namespace: openshift-multus resourceVersion: "8188" uid: 77437548-c74a-492a-a07d-335120a5671e - 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-02T14:10:19Z" managedFields: - apiVersion: v1 fieldsType: FieldsV1 fieldsV1: f:data: f:whereabouts.conf: {} f:metadata: f:ownerReferences: k:{"uid":"c403027a-3472-4c99-9ec5-59d81bf642a2"}: {} manager: cluster-network-operator/operconfig operation: Apply time: "2026-07-02T14:10:19Z" name: whereabouts-flatfile-config namespace: openshift-multus ownerReferences: - apiVersion: operator.openshift.io/v1 blockOwnerDeletion: true controller: true kind: Network name: cluster uid: c403027a-3472-4c99-9ec5-59d81bf642a2 resourceVersion: "3139" uid: ad2444d2-89bf-4b84-9d54-6e3748b9772d kind: ConfigMapList metadata: resourceVersion: "22741"