--- 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.27 creationTimestamp: "2026-08-03T15:57:56Z" 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":"f066cba6-ffe3-4cce-b292-058a406a36d0"}: {} manager: cluster-network-operator/operconfig operation: Apply time: "2026-08-03T15:57:56Z" name: cni-copy-resources namespace: openshift-multus ownerReferences: - apiVersion: operator.openshift.io/v1 blockOwnerDeletion: true controller: true kind: Network name: cluster uid: f066cba6-ffe3-4cce-b292-058a406a36d0 resourceVersion: "2637" uid: a2f76419-9829-4242-bfab-32af404b3dc6 - 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.27 creationTimestamp: "2026-08-03T15:57:56Z" 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-08-03T15:57:56Z" name: cni-sysctl-allowlist namespace: openshift-multus resourceVersion: "2626" uid: 092db824-ddf7-4bc9-81e5-05d2f5988310 - 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.27 creationTimestamp: "2026-08-03T15:57:56Z" 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":"f066cba6-ffe3-4cce-b292-058a406a36d0"}: {} manager: cluster-network-operator/operconfig operation: Apply time: "2026-08-03T15:57:56Z" name: default-cni-sysctl-allowlist namespace: openshift-multus ownerReferences: - apiVersion: operator.openshift.io/v1 blockOwnerDeletion: true controller: true kind: Network name: cluster uid: f066cba6-ffe3-4cce-b292-058a406a36d0 resourceVersion: "2625" uid: daf1ae3c-a831-407c-8cc8-655821c6d051 - apiVersion: v1 data: ca.crt: | -----BEGIN CERTIFICATE----- MIIDPDCCAiSgAwIBAgIIfw5SjOJ+TIwwDQYJKoZIhvcNAQELBQAwJjESMBAGA1UE CxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdyb290LWNhMB4XDTI2MDgwMzE1NTUwOVoX DTM2MDczMTE1NTUwOVowJjESMBAGA1UECxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdy b290LWNhMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA1v9iVmctUKeq jezvKFOkrV9tb8La3r1sTewa/wyCfNQWAj+qFqcxe6hREygH8YOPq6DqD4UG7krD 64qXeb5ZvCrQeolh4O6I/6H9GkmZsZ0Om7cslj7/d2BqbUrUuG9m7JldPpnRnkWH B/q3CzEG7/tLXWVmsb3DqBIS5BGe+XH0y1Ic2anOlnf6lfwg5GqMp7aqva+5Iid2 5RwOkem99+9YmMGMQuaa8/pJnNa8SV2U4QMtihlYz69JuT8eD8EIcWYf+O6l/v2h 3NdEfpWIOjNhCazqz1lZh//Seg90P6cdsN5HFadlXwSXheHqtuF9j7v5fopXgDw6 X4EQ00l+9wIDAQABo24wbDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH/BAUwAwEB /zBJBgNVHQ4EQgRAjKt+sz0U/QZ5VLg7dHxsVOnljcHd1eqzIZwYmpfPt9GcLJ9w rstuPIqeY2H/mbXb1G7P6vnsIc3+os+9DduxNDANBgkqhkiG9w0BAQsFAAOCAQEA TYs84d0kdeqk08IXsOVF5f8fm/bfNWBezGVkw3bZie89HBvUtBZdh4e9GoWLk/8d njwfWz2hK7w1qMFVV4nkWkykM0xvHbZ5Z0CGvlO9KYZ5VcvkPw07VtDbMSqd48T6 JryLKp+4tVOFyQ6vx/g/ev8PjkBoz9zqVm8DhlTqNpwPQt31VHjLnikcOT40OiX5 sQ+gZMSe74FJpp3hHfR2Vb5JoURNvXz2f+riSon+4bqNIYoCR/yC/Gm70AWCbMV0 KoMYGzzJF5yzaYPESved1zoSMLvUu13V7dAqJB1DEFBoZapY6WMv41Jf/xR7MKkx 1aEOvxA2Y91+ANP86TLaoQ== -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIEADCCAuigAwIBAgIIESdzCB78FtYwDQYJKoZIhvcNAQELBQAwJjESMBAGA1UE CxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdyb290LWNhMB4XDTI2MDgwMzE1NTU0OFoX DTI3MDgwMzE1NTU0OFowMDESMBAGA1UEChMJb3BlbnNoaWZ0MRowGAYDVQQDExFv cGVuc2hpZnQtaW5ncmVzczCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB AK70H/3xu5C84G6PuRn5AdV7DU4t+nJB6YoEN0ipI4390/weuVJwkWIk3G+F4AfO pcreNgIeCyVlAx9G4AGQdCxwaZtlwBvSCVHf1mg0IlNUHC1RUZjAMM4D2q18dKq9 pL87Xy7pjMEKGtgiz1e/5Lqr8jir99MkAK2dYswikdyP0lE5hyjZCDu/lvhSIyJz ma1wmmhdVV8AI3layx+/11GBPOJqgZPxrHVAz8cP0smV1C+Sau5ZQ26E0zljbGjs m30bSm6X0s0dwjjoly3rl/USIeHmnwFaaLe3gmyYS45wTRNYjaM6IdqDOlT+t50o 3rYo8h3beIv9mWst1+CGyFECAwEAAaOCASYwggEiMA4GA1UdDwEB/wQEAwIFoDAd BgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADBJBgNV HQ4EQgRAa7PIBez6yNMFwp4+1WAx/EnF4AlryA1HGafZX+eEG7j6yMyQIE7D1d5Q P7SfGAxEyr05fYYw4Hd/em2uJFMprTBLBgNVHSMERDBCgECMq36zPRT9BnlUuDt0 fGxU6eWNwd3V6rMhnBial8+30Zwsn3Cuy248ip5jYf+ZtdvUbs/q+ewhzf6iz70N 27E0MEsGA1UdEQREMEKCQCouYXBwcy41MDZhZmQ1Ni0wZWJiLTRmYzUtYjllZi0w YmVlNWM0OTdhMmYucHJvZC5rb25mbHV4ZWFhcy5jb20wDQYJKoZIhvcNAQELBQAD ggEBAF9E9iKuJA8XOwM4ShpRzSjXt/mloCcpyT4ygpT0jz6St69rilqP0+iozOMU d7QkXivHNJV6AzGm8aTTn3Tf+ahYfVbL0fm5jwWc/jZFjTW6O5t8vtkGN5DZHY2a eC0UuBOpmX/PsGWlmb+guVTyzl++y7xzHmT2mw2iaGFESTvqQVqbPYmenyn3eIQh rh/m7g96U1bopmN7hPoVVt2Gz++b2UiLafx7puHsoNQAoINAqxSlkKlSzmPUuYuO zOQL6XsdMt7ehIABUYIz2e4uHfXUQpIE6Jn4UZNNWP7v4axVbbD8jnQTIR62avUS FDezCkj1uGNSG7DmEVYjCQQFut8= -----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-08-03T15:57:53Z" 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-08-03T15:58:54Z" name: kube-root-ca.crt namespace: openshift-multus resourceVersion: "4422" uid: a04dc4b4-86d3-4077-b04d-3c55435952d5 - 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-08-03T15:57:56Z" 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":"f066cba6-ffe3-4cce-b292-058a406a36d0"}: {} manager: cluster-network-operator/operconfig operation: Apply time: "2026-08-03T15:57:56Z" name: multus-daemon-config namespace: openshift-multus ownerReferences: - apiVersion: operator.openshift.io/v1 blockOwnerDeletion: true controller: true kind: Network name: cluster uid: f066cba6-ffe3-4cce-b292-058a406a36d0 resourceVersion: "2651" uid: d0adede9-4165-43a2-bf91-9b224620b26e - apiVersion: v1 data: cabundle.crt: |- -----BEGIN CERTIFICATE----- MIIDUTCCAjmgAwIBAgIIA6toFz57jRMwDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UE Awwrb3BlbnNoaWZ0LXNlcnZpY2Utc2VydmluZy1zaWduZXJAMTc4NTc3MzA4ODAe Fw0yNjA4MDMxNjA0NDdaFw0yODEwMDExNjA0NDhaMDYxNDAyBgNVBAMMK29wZW5z aGlmdC1zZXJ2aWNlLXNlcnZpbmctc2lnbmVyQDE3ODU3NzMwODgwggEiMA0GCSqG SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDB+FdbAKxowt8q1e2oR0Vky0ru+oT2C8FJ dIWVVhq1bR5krfr8mBiL0SeYQ/sNtsNtp2ryrQf5eZii9LCMWERkagq0WPwErUNg dTF/Flg3KA+X7kv6Cwmj3UyRsZylO/rZreXX0ghVU+H3BC0RORsCBd8c1Y6/w3kU 7Q+nlIP7IfBAJAU9Dfu+Mnn/0k1ghEZwGa6R8vTZVOYprO8GaQ9h44dQUjHvl9qL mEc1joUhyUixXiRLPlekEoIF7aNDOm0N2s31gw5TSU2O41Y8G8a2plO+Orp/5Ygv KOVwh6IpyrnMTkSnBN0qIFtrq/Ikj1gvYc3lA6eju9aSA+kVziDDAgMBAAGjYzBh MA4GA1UdDwEB/wQEAwICpDAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBQZKj0z wBvH7feOkf5+57K/L4tVPzAfBgNVHSMEGDAWgBQZKj0zwBvH7feOkf5+57K/L4tV PzANBgkqhkiG9w0BAQsFAAOCAQEAdaCigmteYJaY5moGGoA0/b/8cnjWEsxoh9RO 5oYVQEoTmJVbavhoI/oSfe/K77CtuzI1vpUZX+4wPj9zyd3CCJ51r2esV8fQoe4l +LP5n9p6A3YpbQlyFDNuORHd+b8QDbn5LEIr6GEIEK3yC6pk4PJJKH5H/LIhCMub CUI5Lc2TnS54myXmOX/46UCPIdDdg/qQ4/znJUTT+5wpLBw0wQiYwrXZmZL7QJB+ MN4ajdxs86W90TicwqPUSnBhh3bKKq1mznIPs7vhRii0yVOaNZJvCq/sHmwVqmWF DQygiEO2cfHa507HYcGb+6Q3cIRQbT7pTeKQSi26BX3cvaRppQ== -----END CERTIFICATE----- kind: ConfigMap metadata: creationTimestamp: "2026-08-03T16:10:39Z" 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-08-03T16:10:39Z" name: odh-kserve-custom-ca-bundle namespace: openshift-multus resourceVersion: "15220" uid: e45c9545-1625-4f1b-a3c1-404c4b20de9f - apiVersion: v1 data: service-ca.crt: | -----BEGIN CERTIFICATE----- MIIDUTCCAjmgAwIBAgIIA6toFz57jRMwDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UE Awwrb3BlbnNoaWZ0LXNlcnZpY2Utc2VydmluZy1zaWduZXJAMTc4NTc3MzA4ODAe Fw0yNjA4MDMxNjA0NDdaFw0yODEwMDExNjA0NDhaMDYxNDAyBgNVBAMMK29wZW5z aGlmdC1zZXJ2aWNlLXNlcnZpbmctc2lnbmVyQDE3ODU3NzMwODgwggEiMA0GCSqG SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDB+FdbAKxowt8q1e2oR0Vky0ru+oT2C8FJ dIWVVhq1bR5krfr8mBiL0SeYQ/sNtsNtp2ryrQf5eZii9LCMWERkagq0WPwErUNg dTF/Flg3KA+X7kv6Cwmj3UyRsZylO/rZreXX0ghVU+H3BC0RORsCBd8c1Y6/w3kU 7Q+nlIP7IfBAJAU9Dfu+Mnn/0k1ghEZwGa6R8vTZVOYprO8GaQ9h44dQUjHvl9qL mEc1joUhyUixXiRLPlekEoIF7aNDOm0N2s31gw5TSU2O41Y8G8a2plO+Orp/5Ygv KOVwh6IpyrnMTkSnBN0qIFtrq/Ikj1gvYc3lA6eju9aSA+kVziDDAgMBAAGjYzBh MA4GA1UdDwEB/wQEAwICpDAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBQZKj0z wBvH7feOkf5+57K/L4tVPzAfBgNVHSMEGDAWgBQZKj0zwBvH7feOkf5+57K/L4tV PzANBgkqhkiG9w0BAQsFAAOCAQEAdaCigmteYJaY5moGGoA0/b/8cnjWEsxoh9RO 5oYVQEoTmJVbavhoI/oSfe/K77CtuzI1vpUZX+4wPj9zyd3CCJ51r2esV8fQoe4l +LP5n9p6A3YpbQlyFDNuORHd+b8QDbn5LEIr6GEIEK3yC6pk4PJJKH5H/LIhCMub CUI5Lc2TnS54myXmOX/46UCPIdDdg/qQ4/znJUTT+5wpLBw0wQiYwrXZmZL7QJB+ MN4ajdxs86W90TicwqPUSnBhh3bKKq1mznIPs7vhRii0yVOaNZJvCq/sHmwVqmWF DQygiEO2cfHa507HYcGb+6Q3cIRQbT7pTeKQSi26BX3cvaRppQ== -----END CERTIFICATE----- kind: ConfigMap metadata: annotations: service.beta.openshift.io/inject-cabundle: "true" creationTimestamp: "2026-08-03T15:57:53Z" 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-08-03T15:57:53Z" - apiVersion: v1 fieldsType: FieldsV1 fieldsV1: f:data: f:service-ca.crt: {} manager: service-ca-operator operation: Update time: "2026-08-03T16:05:04Z" name: openshift-service-ca.crt namespace: openshift-multus resourceVersion: "8406" uid: ad32d3e4-eae1-4364-9264-089d075106cb - 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-08-03T15:57:56Z" managedFields: - apiVersion: v1 fieldsType: FieldsV1 fieldsV1: f:data: f:whereabouts.conf: {} f:metadata: f:ownerReferences: k:{"uid":"f066cba6-ffe3-4cce-b292-058a406a36d0"}: {} manager: cluster-network-operator/operconfig operation: Apply time: "2026-08-03T15:57:56Z" name: whereabouts-flatfile-config namespace: openshift-multus ownerReferences: - apiVersion: operator.openshift.io/v1 blockOwnerDeletion: true controller: true kind: Network name: cluster uid: f066cba6-ffe3-4cce-b292-058a406a36d0 resourceVersion: "2644" uid: 7ba746aa-6f4a-4a73-8079-2875f2fb4370 kind: ConfigMapList metadata: resourceVersion: "78888"