--- 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.20.23 creationTimestamp: "2026-05-28T17:06:08Z" 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":"a0b58662-998d-4b30-a514-ce019eb523fa"}: {} manager: cluster-network-operator/operconfig operation: Apply time: "2026-05-28T17:06:08Z" name: cni-copy-resources namespace: openshift-multus ownerReferences: - apiVersion: operator.openshift.io/v1 blockOwnerDeletion: true controller: true kind: Network name: cluster uid: a0b58662-998d-4b30-a514-ce019eb523fa resourceVersion: "2373" uid: 4d48cab0-ba50-468d-a169-e0b119450a64 - 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.20.23 creationTimestamp: "2026-05-28T17:06:08Z" 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-05-28T17:06:08Z" name: cni-sysctl-allowlist namespace: openshift-multus resourceVersion: "2358" uid: 9e5c8fc0-af0c-461d-b4f9-4211e4712516 - 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.20.23 creationTimestamp: "2026-05-28T17:06:08Z" 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":"a0b58662-998d-4b30-a514-ce019eb523fa"}: {} manager: cluster-network-operator/operconfig operation: Apply time: "2026-05-28T17:06:08Z" name: default-cni-sysctl-allowlist namespace: openshift-multus ownerReferences: - apiVersion: operator.openshift.io/v1 blockOwnerDeletion: true controller: true kind: Network name: cluster uid: a0b58662-998d-4b30-a514-ce019eb523fa resourceVersion: "2357" uid: 27a48d3e-c2b5-4196-8ede-4e3f43c82b07 - apiVersion: v1 data: ca.crt: | -----BEGIN CERTIFICATE----- MIIDPDCCAiSgAwIBAgIIEVXBVvHpCDkwDQYJKoZIhvcNAQELBQAwJjESMBAGA1UE CxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdyb290LWNhMB4XDTI2MDUyODE3MDM1OFoX DTM2MDUyNTE3MDM1OFowJjESMBAGA1UECxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdy b290LWNhMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmLJZD7X9MK7t a3RnmboIeAZz83CQx8f2z+hQW/FBo6P6w0qjtUSHYQNnJ37RD6FmCNUK+YZ2XLNs f9wrSvKDTN9kc9dp3Aen6H2tkIfXYzwxNOj/094aAZL+l8N4D/mkvORNUI5uzyxg rR90ODX9wvDsqHUSa7qdBIRkvs5snyLcz7b/5nQA47/cg3UUXcI+h9PGZwq61fi7 LNFINUthTSsUU82wYNnlUg0X+BJpi5uTa0OFLW/2mE1ijmpM/WYNjmZab0Zbu/FY +YgiMWESXM6D/BvbfBhM6hwFKmGkpHAtnLaiggcrnuurtt27GyagmBACVDbgEeTo y963LNodvQIDAQABo24wbDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH/BAUwAwEB /zBJBgNVHQ4EQgRALY/8cyt+CLrguv4941Bf/u/flZ0LEeWiF5BRHGx/ukeQ6XpT UMtGFvHZrQSdWIQ9L0ixcUEVKn7GBe+4+3L+rTANBgkqhkiG9w0BAQsFAAOCAQEA HqFHc3jxWG3VerrhXYRE3HRP+2RE2isJ10wKdiN5vBOsvashkwPz0GQ5SYzmR86B Bt77jbyzX3QFj+SKr+V+7+JbHJFSiQROr+O4LqxciQAxT3nAlXjZt6/h/fw6Ux5h QnFlZZ/Ml4sGcDZGS6RsI8Oc0tNp6i2YrBjPOiUO0wMgNzkcr6Jxki3OqbdBflKh XhimYguDqCacK9BYPNNASpg7l2jVRGovxndaHYr7yKL3nWXxJZOcJTJtS4kvHQ2m RWNi8hBAbulFjbSb3n7Sh7yrJS3piUtw3XVWC/0aovmgtS8ipReip46y1/M5UdqS 6nEYNOAHROuVVjqQMxCH4A== -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIEADCCAuigAwIBAgIIVH1gxJfOlEQwDQYJKoZIhvcNAQELBQAwJjESMBAGA1UE CxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdyb290LWNhMB4XDTI2MDUyODE3MDQzMVoX DTI3MDUyODE3MDQzMVowMDESMBAGA1UEChMJb3BlbnNoaWZ0MRowGAYDVQQDExFv cGVuc2hpZnQtaW5ncmVzczCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB AMF7AHAL5QTlzMmVYbvEuDok0L8r3aGDYR3xdjKTrzMdY4ygu0DM2Ajo6t1JS8ET yCEuPJiOcwfvyyVdJ42S+7NC2VAr4I4qFQcGYvuCqAo2itgcaLrIHQ0m2lqGIAWP 9h2GWCKMapiRl4xKduiZq4L1ciwc6GSb9/SfGxKeidiJuA9jW7+3FOFUVyHxRWPI gl2JODQrUF2QtO1XOzI8cFQGSYPEvsd1grXr5oy31KUxz6ywM2B1ePEmL7GRYQMA ezkF2EhzmZwr+6cY3kpkoOnjhnCqD+UKQzBh35+98NiEq5zy90l30a5ksOrrfon3 /nUtntq0QCEdwfCE4jIL9rkCAwEAAaOCASYwggEiMA4GA1UdDwEB/wQEAwIFoDAd BgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADBJBgNV HQ4EQgRA0+ZLDRuom1wVb10mh0+0XPNvUnAS/2Ht0bKiQX8jjh2BNF56MByiQzrQ r1wTMZVJB7ZqEt6XFaCMy8FxL4YvNDBLBgNVHSMERDBCgEAtj/xzK34IuuC6/j3j UF/+79+VnQsR5aIXkFEcbH+6R5DpelNQy0YW8dmtBJ1YhD0vSLFxQRUqfsYF77j7 cv6tMEsGA1UdEQREMEKCQCouYXBwcy4yODhiMzQ3Ny0xNTdmLTQ0NWItYjczOC1l ODRmNWIyNDY5MGYucHJvZC5rb25mbHV4ZWFhcy5jb20wDQYJKoZIhvcNAQELBQAD ggEBAJJfbkSmnccEhYuPC7Q1KOaC1PnSyhjKAGRou61gl7h4YetaAlzHHDEZrjwb RBjsjhXKC23eP8UxZuUomcHkj3z/RgwII2o2QL/yYdqK9letfnwBQk80jRxqRyZV dJNKmn43aL0v2F0ZQ524DLI7komQgMpfD+szvrKTcBV3AKzYVIxkAOsKnzfC2Fdv 6Jpggjo3s67PW261SE4F8zz3VvF9UjKYlE766eOnDXIaJTp22jpJtxhz6DRR0ttJ B1bCF+n6zLtvNFV4bgZ6XIFQbBChmrWLBI1bCAKsScvK0eyD8isgft96rqBIxvH2 0IOnTSwW3Gou6hRcu5v9HR2ewCI= -----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-05-28T17:06: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-05-28T17:06:55Z" name: kube-root-ca.crt namespace: openshift-multus resourceVersion: "4432" uid: b66842da-62f2-488e-b4d9-14070ba5b880 - 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-05-28T17:06:09Z" 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":"a0b58662-998d-4b30-a514-ce019eb523fa"}: {} manager: cluster-network-operator/operconfig operation: Apply time: "2026-05-28T17:06:09Z" name: multus-daemon-config namespace: openshift-multus ownerReferences: - apiVersion: operator.openshift.io/v1 blockOwnerDeletion: true controller: true kind: Network name: cluster uid: a0b58662-998d-4b30-a514-ce019eb523fa resourceVersion: "2391" uid: 536122d8-588f-4114-b649-a3eadfd61faf - apiVersion: v1 data: cabundle.crt: |- -----BEGIN CERTIFICATE----- MIIDUTCCAjmgAwIBAgIIJkQqdGED4KUwDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UE Awwrb3BlbnNoaWZ0LXNlcnZpY2Utc2VydmluZy1zaWduZXJAMTc3OTk4ODM0ODAe Fw0yNjA1MjgxNzEyMjdaFw0yODA3MjYxNzEyMjhaMDYxNDAyBgNVBAMMK29wZW5z aGlmdC1zZXJ2aWNlLXNlcnZpbmctc2lnbmVyQDE3Nzk5ODgzNDgwggEiMA0GCSqG SIb3DQEBAQUAA4IBDwAwggEKAoIBAQCv3aQU477dCx5s8eH2+0K9i1Nv0LT6zuoN oRdAgQwM9AVG3vm6h1b20KPWq/SAuYi8UzNmj8WDjM/70rWGdIiHQb5hnmMwMb0Y QQ4TOJyitgV3G9Fo5w2ocqz3/3Jr5ItcVskzueuoa7oHfcIAfo3cReVKkW92QCNB RwKe/3ZTR+VbxZy3u8TCf0fgLDqsVDbhlQfy7+GukPFfy5/qnItkgSDLRP1nYLdF 66jbTo9bzdnAsXAxB4rBp0XQhrJYhlCYVp5qf+dUWJGGajMeKTzL3V5gq3Isf/Qq 1SrD8E5SbnYhMBdHVWvYq0k35nHuysFo5oWOZn1VJWfMSTIsrTkNAgMBAAGjYzBh MA4GA1UdDwEB/wQEAwICpDAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBQahx+4 vCpocRRV8VKWgaqU1INdjzAfBgNVHSMEGDAWgBQahx+4vCpocRRV8VKWgaqU1INd jzANBgkqhkiG9w0BAQsFAAOCAQEATWkS/hXKaIAN+RK7/TlLELCd4td/0Blqc7BZ SbKdoWrdY5QWrf876awQvRUuKJsbS9XWBqU0nnZjwgGhIzUSnl/8j7+YXt1CK7lJ 1wZ/YxGq8NVRjxSrdZnkKjF8nF0u5DFTaMJP0DAJ0JFg23c5f2x2TnAIZqeAzKaf ePte/cbBQqoknaExvLvu2px1cHsVc39iywMIjedzT5fEfyBSnNIyFCiarsdD/M7x 2tiDC7/PhbNTUiPw7I4v85MllTBTR3ZCcUx2J1k1qVagUWhj16oTG2Ya5YwFhPXc os9uNR2vReJwrF2RuiJpr7At24n8rqHkVPiDFhlOogXfObi20A== -----END CERTIFICATE----- kind: ConfigMap metadata: creationTimestamp: "2026-05-28T17:17:42Z" 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-05-28T17:17:42Z" name: odh-kserve-custom-ca-bundle namespace: openshift-multus resourceVersion: "15590" uid: 9507ce04-334e-444b-a89f-16c088c9061e - apiVersion: v1 data: service-ca.crt: | -----BEGIN CERTIFICATE----- MIIDUTCCAjmgAwIBAgIIJkQqdGED4KUwDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UE Awwrb3BlbnNoaWZ0LXNlcnZpY2Utc2VydmluZy1zaWduZXJAMTc3OTk4ODM0ODAe Fw0yNjA1MjgxNzEyMjdaFw0yODA3MjYxNzEyMjhaMDYxNDAyBgNVBAMMK29wZW5z aGlmdC1zZXJ2aWNlLXNlcnZpbmctc2lnbmVyQDE3Nzk5ODgzNDgwggEiMA0GCSqG SIb3DQEBAQUAA4IBDwAwggEKAoIBAQCv3aQU477dCx5s8eH2+0K9i1Nv0LT6zuoN oRdAgQwM9AVG3vm6h1b20KPWq/SAuYi8UzNmj8WDjM/70rWGdIiHQb5hnmMwMb0Y QQ4TOJyitgV3G9Fo5w2ocqz3/3Jr5ItcVskzueuoa7oHfcIAfo3cReVKkW92QCNB RwKe/3ZTR+VbxZy3u8TCf0fgLDqsVDbhlQfy7+GukPFfy5/qnItkgSDLRP1nYLdF 66jbTo9bzdnAsXAxB4rBp0XQhrJYhlCYVp5qf+dUWJGGajMeKTzL3V5gq3Isf/Qq 1SrD8E5SbnYhMBdHVWvYq0k35nHuysFo5oWOZn1VJWfMSTIsrTkNAgMBAAGjYzBh MA4GA1UdDwEB/wQEAwICpDAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBQahx+4 vCpocRRV8VKWgaqU1INdjzAfBgNVHSMEGDAWgBQahx+4vCpocRRV8VKWgaqU1INd jzANBgkqhkiG9w0BAQsFAAOCAQEATWkS/hXKaIAN+RK7/TlLELCd4td/0Blqc7BZ SbKdoWrdY5QWrf876awQvRUuKJsbS9XWBqU0nnZjwgGhIzUSnl/8j7+YXt1CK7lJ 1wZ/YxGq8NVRjxSrdZnkKjF8nF0u5DFTaMJP0DAJ0JFg23c5f2x2TnAIZqeAzKaf ePte/cbBQqoknaExvLvu2px1cHsVc39iywMIjedzT5fEfyBSnNIyFCiarsdD/M7x 2tiDC7/PhbNTUiPw7I4v85MllTBTR3ZCcUx2J1k1qVagUWhj16oTG2Ya5YwFhPXc os9uNR2vReJwrF2RuiJpr7At24n8rqHkVPiDFhlOogXfObi20A== -----END CERTIFICATE----- kind: ConfigMap metadata: annotations: service.beta.openshift.io/inject-cabundle: "true" creationTimestamp: "2026-05-28T17:06: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-05-28T17:06:05Z" - apiVersion: v1 fieldsType: FieldsV1 fieldsV1: f:data: f:service-ca.crt: {} manager: service-ca-operator operation: Update time: "2026-05-28T17:12:42Z" name: openshift-service-ca.crt namespace: openshift-multus resourceVersion: "8560" uid: bab0a1cc-4361-4d52-bf60-49ccf1195173 - 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-05-28T17:06:09Z" managedFields: - apiVersion: v1 fieldsType: FieldsV1 fieldsV1: f:data: f:whereabouts.conf: {} f:metadata: f:ownerReferences: k:{"uid":"a0b58662-998d-4b30-a514-ce019eb523fa"}: {} manager: cluster-network-operator/operconfig operation: Apply time: "2026-05-28T17:06:09Z" name: whereabouts-flatfile-config namespace: openshift-multus ownerReferences: - apiVersion: operator.openshift.io/v1 blockOwnerDeletion: true controller: true kind: Network name: cluster uid: a0b58662-998d-4b30-a514-ce019eb523fa resourceVersion: "2376" uid: a1d57eeb-7c8e-445d-b94d-e701e0480468 kind: ConfigMapList metadata: resourceVersion: "46974"