--- 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.26 creationTimestamp: "2026-07-27T20:57:52Z" 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":"e5538c8d-a717-4dd6-8631-793b3644feda"}: {} manager: cluster-network-operator/operconfig operation: Apply time: "2026-07-27T20:57:52Z" name: cni-copy-resources namespace: openshift-multus ownerReferences: - apiVersion: operator.openshift.io/v1 blockOwnerDeletion: true controller: true kind: Network name: cluster uid: e5538c8d-a717-4dd6-8631-793b3644feda resourceVersion: "2504" uid: 881acba4-a4fd-4a77-8d1c-cccd2a459b69 - 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.26 creationTimestamp: "2026-07-27T20:57:52Z" 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-27T20:57:52Z" name: cni-sysctl-allowlist namespace: openshift-multus resourceVersion: "2462" uid: c99b0391-00ae-46f3-b238-6cceba9d09fa - 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.26 creationTimestamp: "2026-07-27T20:57:52Z" 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":"e5538c8d-a717-4dd6-8631-793b3644feda"}: {} manager: cluster-network-operator/operconfig operation: Apply time: "2026-07-27T20:57:52Z" name: default-cni-sysctl-allowlist namespace: openshift-multus ownerReferences: - apiVersion: operator.openshift.io/v1 blockOwnerDeletion: true controller: true kind: Network name: cluster uid: e5538c8d-a717-4dd6-8631-793b3644feda resourceVersion: "2451" uid: eac4001d-ca41-486b-9a11-e1b7f388c667 - apiVersion: v1 data: ca.crt: | -----BEGIN CERTIFICATE----- MIIDPDCCAiSgAwIBAgIIfF8angBKkcMwDQYJKoZIhvcNAQELBQAwJjESMBAGA1UE CxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdyb290LWNhMB4XDTI2MDcyNzIwNTUyMFoX DTM2MDcyNDIwNTUyMFowJjESMBAGA1UECxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdy b290LWNhMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAz2lbN45t4Yes jPhm5jJUFqu/Fnd7XK132K6qaW+/dMA23Owz+NH+VRO5Lw/k4igbuL1KaKpvWvxh ledAftvQN90n+QvX4KCrMAiektbL9BiQGCoDQLJaPcsl9Jn9sPxJrFYUAiIXLolE D1qKm/eB0kvPdb8Yil8tp+RReqJi2wAt7pjeLOQSck9jqnfRJbz5D49fwvpcF+go +I6kSVfh9no1MhUWbnGVVaYz8QtNP2bPQoj4Et9xacnt7V69fmsMLoE2lRrdo4tt KSlWYaQATt5p7drhfQoQKRW9VJVhqLaOG0yERH/25HqJkqtEwRyyYhywGzHFmcJB kY+VXoAY6wIDAQABo24wbDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH/BAUwAwEB /zBJBgNVHQ4EQgRAmF3g990BJmCBDQ7XE7b/hPQTHFJYdSaos0GWzhw5Dq5j5bfJ AY4DxdGquAGvA0VKoKtkKNTm5QFFxe/dDRRGXzANBgkqhkiG9w0BAQsFAAOCAQEA Hqa2iv/Zg3myRmo7Qva8fBFRZtDrEnlD90sZv5nsANmWUNnQ3n6YE4wjsu8t/gbH TK8ml6ILwj+uI6VI/YfM4BfwPu9o6tGqF5lJAtoIft/HOPkELSRGtnjfxdyjguqP FjPgcy06WmR+W8hSC0WQeSyo66A9w5NRnEwPQDui5g3vWXapnQ/ySkIIeEy2rh7Y jvawRbRMK1XYwpTBCCqyP3jZJK4YMfHVylpJZAiZm6gBAas1Y/jWmoDEBFZbTMjw 5JBESywy2Cy2OExOx0qHYAgSk+hTD3/HXouVcQnrfo+AEEUyZ1Fzw8TOI8snquwE NHsZ65atoZz4XNrLlz1mXw== -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIEADCCAuigAwIBAgIIaqAcbpF85MswDQYJKoZIhvcNAQELBQAwJjESMBAGA1UE CxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdyb290LWNhMB4XDTI2MDcyNzIwNTU0OFoX DTI3MDcyNzIwNTU0OFowMDESMBAGA1UEChMJb3BlbnNoaWZ0MRowGAYDVQQDExFv cGVuc2hpZnQtaW5ncmVzczCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB AMJqlPhhaspSH5wP516p2RMUeGfLVdnJjR+lgEq40trN4F8uI9sqG5G2PoLd3EKd rkf3KzcjfwbyltTGwcxZVPkjrDZe0/4fjkZIHVg+b+8nI34kFmEMVhFfn6nI72SB LsvV+NmVB1uZ1N7XIo0OfSKCHvKKkqJtmBEvLzgxlvgHvOXIw0PUhWL0q2mrPOWH IT2BZuOHMOHvVvyfbUTUwdpNugNebgP5sqsU0ZijS3WF7emv1C3JBfCVeTRqzWxy HFcpcPYFLHXMcLgAaDB+5ntx9rEKOthFmqRtQRsIXEXxQ1mosEWQFgTpRuF56R/j e34CmJ3XpomoLo3HgTcKWNsCAwEAAaOCASYwggEiMA4GA1UdDwEB/wQEAwIFoDAd BgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADBJBgNV HQ4EQgRAr3KuewqEaoFv2SBDGyhjSLJ50GhqhdyWR7FJDHDVGhEqn7wONuK6rwfd +u+28elgbWYDyO4g5y1hsg2ZofIiuzBLBgNVHSMERDBCgECYXeD33QEmYIENDtcT tv+E9BMcUlh1JqizQZbOHDkOrmPlt8kBjgPF0aq4Aa8DRUqgq2Qo1OblAUXF790N FEZfMEsGA1UdEQREMEKCQCouYXBwcy5kNGQ1NzQwMy1jZTllLTQwYmQtOWM1Yy0z YTdlZTFiNzRjMDgucHJvZC5rb25mbHV4ZWFhcy5jb20wDQYJKoZIhvcNAQELBQAD ggEBAAz093v7WAv2XTy2zBcZXx+ljfCY38eQuepJSGVJLkbJ7oZUsN3GX+Ennbsc +myIIRdc8GBL+WC73NUp6yQtCJhRy1xIOTyrM9C6v8ibfKZjx6o/yjTny85J97f2 X9KRwYO6lfvljcwprKcexxpfmdSrihhKG286701bppRN1KgUwXQyVDgkU5Jx8Nr1 z2iu3MccBcVTaqaAIMEGwAuiTsnoZHdxzKO2OkRYuBQGnAsTCDRCCyNxiTmtE1p9 jGC2CrrHWxSVC3t6qYhe3EGiye7RdkNQWjOE/f8DYT+gsvlYV65jrl8dj2vN6aij SUTnN77UKrFM6uhHJP/zJteXpGI= -----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-27T20:57:49Z" 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-27T20:58:45Z" name: kube-root-ca.crt namespace: openshift-multus resourceVersion: "4407" uid: 37634092-2b6f-4157-a9b5-ee358c092b88 - 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-27T20:57:52Z" 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":"e5538c8d-a717-4dd6-8631-793b3644feda"}: {} manager: cluster-network-operator/operconfig operation: Apply time: "2026-07-27T20:57:52Z" name: multus-daemon-config namespace: openshift-multus ownerReferences: - apiVersion: operator.openshift.io/v1 blockOwnerDeletion: true controller: true kind: Network name: cluster uid: e5538c8d-a717-4dd6-8631-793b3644feda resourceVersion: "2594" uid: 39599396-3a7d-40de-a881-cd1464ed7bdd - apiVersion: v1 data: cabundle.crt: |- -----BEGIN CERTIFICATE----- MIIDUTCCAjmgAwIBAgIIdGFYOpL9hsAwDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UE Awwrb3BlbnNoaWZ0LXNlcnZpY2Utc2VydmluZy1zaWduZXJAMTc4NTE4NjI2MjAe Fw0yNjA3MjcyMTA0MjFaFw0yODA5MjQyMTA0MjJaMDYxNDAyBgNVBAMMK29wZW5z aGlmdC1zZXJ2aWNlLXNlcnZpbmctc2lnbmVyQDE3ODUxODYyNjIwggEiMA0GCSqG SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDdqbNJPnkaIt0k6V6R2U4V1e4Ei6w4lpyD J3GsM56FgzF1CalzDEnSgdPvhpddZaUVb3YQvcI2DI88S5UUVW4l/+hRDOUH3iC9 N205Q4kf5yeFdz4LqIpCG+k6iu6CDTi34rZ/CHj4Cy6KG5C30x4GNrKGNrjBHCIT 2Srhgg3SlMamQJ3STyw8CMI0zwHH0DSnvzRZ7nSq/289S51bfrGIe34NA/Wao6A+ dm6uhEDPH0zyiKvb4LiccJs0QlY7iKCwJHyrBdgx/DT7vWd53toyvw/KC1Xv9YrN OHpfq4Sf8ix9y1ZJm4BvWnnDMR1cTvnNonaB7N6PqIfEs/ygHQp5AgMBAAGjYzBh MA4GA1UdDwEB/wQEAwICpDAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTUooUm fKKvsCGS66CVOBCz+QLFtjAfBgNVHSMEGDAWgBTUooUmfKKvsCGS66CVOBCz+QLF tjANBgkqhkiG9w0BAQsFAAOCAQEAJpfqswQZJp03B+hNk7kWQOlo467Le9RQjoQQ WLD7+jnlZDkLXWydhhWi3y/58ENFSxq+WAW55TyQSIqw8r4GlRQrO8P+mDZElHDi /XA96LZg4Z0QEXFSKpWugVuu61oHhw8xXbwiVtk/eg6dY3bThmMvpVr5b8E9k/I1 Zpf6JhfJ9V8twkXLa7G2OHJ9lyTyZATgjPPErl98/mLuCqYVUrnugQspi4K6uRE6 VufsEwen8SVqb1AO48bCUkgYV5stJwADw1Tr+8Qut6sbQ/UpHw0MFYJm04DONrWz loRYQvVq6BCv7RGmmPOx1ykMUWj1/q7YmXe1CKFWyywbp/4FKg== -----END CERTIFICATE----- kind: ConfigMap metadata: creationTimestamp: "2026-07-27T21:12:51Z" 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-27T21:12:51Z" name: odh-kserve-custom-ca-bundle namespace: openshift-multus resourceVersion: "14238" uid: a0f659d3-5707-4d02-be44-f361a2c1db95 - apiVersion: v1 data: service-ca.crt: | -----BEGIN CERTIFICATE----- MIIDUTCCAjmgAwIBAgIIdGFYOpL9hsAwDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UE Awwrb3BlbnNoaWZ0LXNlcnZpY2Utc2VydmluZy1zaWduZXJAMTc4NTE4NjI2MjAe Fw0yNjA3MjcyMTA0MjFaFw0yODA5MjQyMTA0MjJaMDYxNDAyBgNVBAMMK29wZW5z aGlmdC1zZXJ2aWNlLXNlcnZpbmctc2lnbmVyQDE3ODUxODYyNjIwggEiMA0GCSqG SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDdqbNJPnkaIt0k6V6R2U4V1e4Ei6w4lpyD J3GsM56FgzF1CalzDEnSgdPvhpddZaUVb3YQvcI2DI88S5UUVW4l/+hRDOUH3iC9 N205Q4kf5yeFdz4LqIpCG+k6iu6CDTi34rZ/CHj4Cy6KG5C30x4GNrKGNrjBHCIT 2Srhgg3SlMamQJ3STyw8CMI0zwHH0DSnvzRZ7nSq/289S51bfrGIe34NA/Wao6A+ dm6uhEDPH0zyiKvb4LiccJs0QlY7iKCwJHyrBdgx/DT7vWd53toyvw/KC1Xv9YrN OHpfq4Sf8ix9y1ZJm4BvWnnDMR1cTvnNonaB7N6PqIfEs/ygHQp5AgMBAAGjYzBh MA4GA1UdDwEB/wQEAwICpDAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTUooUm fKKvsCGS66CVOBCz+QLFtjAfBgNVHSMEGDAWgBTUooUmfKKvsCGS66CVOBCz+QLF tjANBgkqhkiG9w0BAQsFAAOCAQEAJpfqswQZJp03B+hNk7kWQOlo467Le9RQjoQQ WLD7+jnlZDkLXWydhhWi3y/58ENFSxq+WAW55TyQSIqw8r4GlRQrO8P+mDZElHDi /XA96LZg4Z0QEXFSKpWugVuu61oHhw8xXbwiVtk/eg6dY3bThmMvpVr5b8E9k/I1 Zpf6JhfJ9V8twkXLa7G2OHJ9lyTyZATgjPPErl98/mLuCqYVUrnugQspi4K6uRE6 VufsEwen8SVqb1AO48bCUkgYV5stJwADw1Tr+8Qut6sbQ/UpHw0MFYJm04DONrWz loRYQvVq6BCv7RGmmPOx1ykMUWj1/q7YmXe1CKFWyywbp/4FKg== -----END CERTIFICATE----- kind: ConfigMap metadata: annotations: service.beta.openshift.io/inject-cabundle: "true" creationTimestamp: "2026-07-27T20:57:49Z" 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-27T20:57:49Z" - apiVersion: v1 fieldsType: FieldsV1 fieldsV1: f:data: f:service-ca.crt: {} manager: service-ca-operator operation: Update time: "2026-07-27T21:04:36Z" name: openshift-service-ca.crt namespace: openshift-multus resourceVersion: "8247" uid: 6af0efc0-09dc-46fe-b537-84543e44b753 - 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-27T20:57:52Z" managedFields: - apiVersion: v1 fieldsType: FieldsV1 fieldsV1: f:data: f:whereabouts.conf: {} f:metadata: f:ownerReferences: k:{"uid":"e5538c8d-a717-4dd6-8631-793b3644feda"}: {} manager: cluster-network-operator/operconfig operation: Apply time: "2026-07-27T20:57:52Z" name: whereabouts-flatfile-config namespace: openshift-multus ownerReferences: - apiVersion: operator.openshift.io/v1 blockOwnerDeletion: true controller: true kind: Network name: cluster uid: e5538c8d-a717-4dd6-8631-793b3644feda resourceVersion: "2544" uid: b86c8b46-3dad-4356-bcd0-2193d5dcae40 kind: ConfigMapList metadata: resourceVersion: "34948"