--- 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.24 creationTimestamp: "2026-07-10T02:17:01Z" 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":"69c9ba6e-fb7e-4df9-b67b-81484f37cff4"}: {} manager: cluster-network-operator/operconfig operation: Apply time: "2026-07-10T02:17:01Z" name: cni-copy-resources namespace: openshift-multus ownerReferences: - apiVersion: operator.openshift.io/v1 blockOwnerDeletion: true controller: true kind: Network name: cluster uid: 69c9ba6e-fb7e-4df9-b67b-81484f37cff4 resourceVersion: "2509" uid: 84c184ba-d6b4-47ee-bf18-dd38acf6f166 - 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.24 creationTimestamp: "2026-07-10T02:17:01Z" 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-10T02:17:01Z" name: cni-sysctl-allowlist namespace: openshift-multus resourceVersion: "2464" uid: 7dd848f5-672d-4f5a-a0b4-885381d6e1b9 - 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.24 creationTimestamp: "2026-07-10T02:17:01Z" 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":"69c9ba6e-fb7e-4df9-b67b-81484f37cff4"}: {} manager: cluster-network-operator/operconfig operation: Apply time: "2026-07-10T02:17:01Z" name: default-cni-sysctl-allowlist namespace: openshift-multus ownerReferences: - apiVersion: operator.openshift.io/v1 blockOwnerDeletion: true controller: true kind: Network name: cluster uid: 69c9ba6e-fb7e-4df9-b67b-81484f37cff4 resourceVersion: "2462" uid: b2ef87fa-436b-4f8e-9dbd-9e1913053207 - apiVersion: v1 data: ca.crt: | -----BEGIN CERTIFICATE----- MIIDPDCCAiSgAwIBAgIIJtXSU3F+B9swDQYJKoZIhvcNAQELBQAwJjESMBAGA1UE CxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdyb290LWNhMB4XDTI2MDcxMDAyMTQzM1oX DTM2MDcwNzAyMTQzM1owJjESMBAGA1UECxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdy b290LWNhMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwnsvjyQrqA5h ZYG0a7uSOukSk8Y3M+jiLdm56r/nUobaYvwrHfp/T3S7Vi2AJsOdlo+EM1uTyplN 2HGSk19XM+I2jMALod4B6CpJKwBk8kU36Crap+FwYWsYZNg3a0IcBl0GeRpc0X3e LgFiE6Mlv/TcjUw7Du3WXjyPtdsYIQvEytyP+G7uLDTeFGGjg0u8TGMD/fCjuPXs /5skscuHO+yHnXIXFlBd1xxkqfN4yFwBCp3OtG+UYkRtdEq7dsXChTXds22Us05l g6JuCI4SQh76aomAukoUSOO5IBXLn52N9yrBzoLy2Zq+6aEeR2gtCXirNc6Ghco5 zPgHl+p6rwIDAQABo24wbDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH/BAUwAwEB /zBJBgNVHQ4EQgRAH8UE8bQFXHJNSKrmfvJ/wZoztYJKuomkqgEpoY/KMI5392bN j0/QxHDGtF3UlqpTIH7W5U78M6FD20G50R31eTANBgkqhkiG9w0BAQsFAAOCAQEA Qzbku94zqY+g50a/wJDLoD43EICjEPIF2g0okqNQGYN+NpoOVWD8LAe3w2fxv9Jh 9y3+N8/QYlAwTRIg/bvRmO08tnDabRMr/UZo5CXkICUM5NHl5ipyNoG/OOvCidOR uEZ4YUi9t/GoDSCpdXF8XM47xUHt0D+SfqoUj0qieV/MfcEcocONIH9n/soo69gy TJ2MRWOslEa2f1BnIrRgd51Xo+nsRy6Vmhc84SpQcFrhoAomQXEe9HoGUBV+eb5W DYB4YAoSs4svb+JUjv8xnQk2B27QaWeyspcf2hrfFpJvFFgyzLvK5ld6E5FLwxg4 mX1agIvyFeGnOX/BgHjZkw== -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIEADCCAuigAwIBAgIIdlMVlfzmgu8wDQYJKoZIhvcNAQELBQAwJjESMBAGA1UE CxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdyb290LWNhMB4XDTI2MDcxMDAyMTUxMVoX DTI3MDcxMDAyMTUxMVowMDESMBAGA1UEChMJb3BlbnNoaWZ0MRowGAYDVQQDExFv cGVuc2hpZnQtaW5ncmVzczCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB ALuycQSnhDGZclur4G6Gh26WALwrNSfpnpSWz7AAi+peXEyZdr++8YVGehp0ZIHh ZcoEjYUzuuhmwbqCvZJpaRedrxwaeqjOOApQO/QICoFXK9hWlDclPJfbgkPXH0w3 JNo4nBzMe4Dz5bjeqM+iymGnM/fr9LHa7z6O1WccGm0RA4EX1IZS51sVFr4YJ58K j9y912kg0qUPlZJFC95DXFhSVC/IyWqM1rwo7iQcCaAcm5vvxgeT6Sk8i11B4SQb s3cGdsgIJX7SUc8x70MIYw0KgfZ/GnMOLeycox8Zz/dUfykAAFDBDP6ae/9/uQmU AJ1TQGZii/3hhEuu8tZ5xVECAwEAAaOCASYwggEiMA4GA1UdDwEB/wQEAwIFoDAd BgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADBJBgNV HQ4EQgRAvOsKzWM+q1FLtckhDZGOZd5TW89LM8B+ObAobP/EqK3iLTb0Q/TJaiUo eGwqfsel/5rwUtVioxedlB4eTZn5HjBLBgNVHSMERDBCgEAfxQTxtAVcck1IquZ+ 8n/BmjO1gkq6iaSqASmhj8owjnf3Zs2PT9DEcMa0XdSWqlMgftblTvwzoUPbQbnR HfV5MEsGA1UdEQREMEKCQCouYXBwcy44OWM0MDljMy0wZDgzLTQ5NjEtOWIyNS1i NWUwZjFlM2MyOWIucHJvZC5rb25mbHV4ZWFhcy5jb20wDQYJKoZIhvcNAQELBQAD ggEBACJ02cv2uctDpvJzmyM9FWHeOGhKMrsxqMfS3hwQ4p5DI1ZvB3TA9xRk2JT/ aQJ1jJ/62H9Us3DUGXEZeUCDqRLyMWaLuhSrbL7reGBKFLISJdrKEL5z20v/lp4g rb2oOGC68I5eUKF6JzBHY3Qzw3uEH9gcPaXOniKRvW70/brzbEBqVXhpbHuzDbcB /4yjEuVUGm+xqldc1aPXbm7K15t1kkENMjekQzMJKMr4EmlofYilqG0HNIM2oW1X 5IU81rq2oLE1vfZhtSelIKxyyBeompjyuTp0i+eSZZg4y8ZPxG/VvB2wUNYvaVBM Ge8D/XqTdtEXDWCN+SgeU/myLF8= -----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-10T02:16:58Z" 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-10T02:18:00Z" name: kube-root-ca.crt namespace: openshift-multus resourceVersion: "4423" uid: 05b76841-e185-430a-ab18-7bd2f2ce7518 - 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-10T02:17:01Z" 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":"69c9ba6e-fb7e-4df9-b67b-81484f37cff4"}: {} manager: cluster-network-operator/operconfig operation: Apply time: "2026-07-10T02:17:01Z" name: multus-daemon-config namespace: openshift-multus ownerReferences: - apiVersion: operator.openshift.io/v1 blockOwnerDeletion: true controller: true kind: Network name: cluster uid: 69c9ba6e-fb7e-4df9-b67b-81484f37cff4 resourceVersion: "2525" uid: 1e66ef7c-ec19-458a-b63a-e87f7a835b82 - apiVersion: v1 data: cabundle.crt: |- -----BEGIN CERTIFICATE----- MIIDUDCCAjigAwIBAgIHNKKrrwASJTANBgkqhkiG9w0BAQsFADA2MTQwMgYDVQQD DCtvcGVuc2hpZnQtc2VydmljZS1zZXJ2aW5nLXNpZ25lckAxNzgzNjUwMjE2MB4X DTI2MDcxMDAyMjMzNloXDTI4MDkwNzAyMjMzN1owNjE0MDIGA1UEAwwrb3BlbnNo aWZ0LXNlcnZpY2Utc2VydmluZy1zaWduZXJAMTc4MzY1MDIxNjCCASIwDQYJKoZI hvcNAQEBBQADggEPADCCAQoCggEBAMX07YjoLttDshNbw+jL+Par2eDk6bur1iCl 0QNmgR1bs2jeqnT6BUAeM4+GjvEAh0B+caZUh9rBTcBD8zWkthmKtvOR3cmiuEfl EpGCvwYzi1MZXTq7BK7QCbys4AdAREIH2OJYm62tEJuHkhIjylGxvKHLoge74ab4 9zxQyKmUT1kTZv2sJqriDexzmMQBUVjnFG1Y34FZ5jVFqtUydzly2t37qyf89Mya c1RC6eGs/8V3E7pCb50N1xsIqQLvu6yhSvF//q+xU0voPe8N8yoHvdxDowwIxNEK STN4rRsG30IHiGymc2ETjOU58NNJfhTgrEqRe63FvtHI4Af+1SECAwEAAaNjMGEw DgYDVR0PAQH/BAQDAgKkMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFBcoSjom xdFZ43SLVa6km0sInNB+MB8GA1UdIwQYMBaAFBcoSjomxdFZ43SLVa6km0sInNB+ MA0GCSqGSIb3DQEBCwUAA4IBAQAfHMORdyAYJSQf3vHfeRnuXjAne+nqW/3GvmoT LmepEl+bnJ0gOjamgRSsGqYOvVVhFV4S7bO4lSXOQc3JqI38OYlTZUSqFoDp4aVT roj7fVc63368BR5g2IrpcXzolyDVN7ZmhhmYTk0eug01uqmy4DSvUIya6LBHPaly pWdn6qjfk5tZOo63r3mSx9sBI0ULpYSk1u2VGJmQDXYFU7v0lEwfIiQL5PKNF93I 2xObfpdaakKt/CbXM2HkOA9hDSV59qwufgKGtrkKAVMHtuY7e436CKKgCVGqSVCY 4EwygPqlgCemcUTy6LDxh6qGMpy28jmvCUktlmo4zloP2lIE -----END CERTIFICATE----- kind: ConfigMap metadata: creationTimestamp: "2026-07-10T02:27:48Z" 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-10T02:27:48Z" name: odh-kserve-custom-ca-bundle namespace: openshift-multus resourceVersion: "14833" uid: acbecdd7-624b-4b65-b2ca-007dc5a4d614 - apiVersion: v1 data: service-ca.crt: | -----BEGIN CERTIFICATE----- MIIDUDCCAjigAwIBAgIHNKKrrwASJTANBgkqhkiG9w0BAQsFADA2MTQwMgYDVQQD DCtvcGVuc2hpZnQtc2VydmljZS1zZXJ2aW5nLXNpZ25lckAxNzgzNjUwMjE2MB4X DTI2MDcxMDAyMjMzNloXDTI4MDkwNzAyMjMzN1owNjE0MDIGA1UEAwwrb3BlbnNo aWZ0LXNlcnZpY2Utc2VydmluZy1zaWduZXJAMTc4MzY1MDIxNjCCASIwDQYJKoZI hvcNAQEBBQADggEPADCCAQoCggEBAMX07YjoLttDshNbw+jL+Par2eDk6bur1iCl 0QNmgR1bs2jeqnT6BUAeM4+GjvEAh0B+caZUh9rBTcBD8zWkthmKtvOR3cmiuEfl EpGCvwYzi1MZXTq7BK7QCbys4AdAREIH2OJYm62tEJuHkhIjylGxvKHLoge74ab4 9zxQyKmUT1kTZv2sJqriDexzmMQBUVjnFG1Y34FZ5jVFqtUydzly2t37qyf89Mya c1RC6eGs/8V3E7pCb50N1xsIqQLvu6yhSvF//q+xU0voPe8N8yoHvdxDowwIxNEK STN4rRsG30IHiGymc2ETjOU58NNJfhTgrEqRe63FvtHI4Af+1SECAwEAAaNjMGEw DgYDVR0PAQH/BAQDAgKkMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFBcoSjom xdFZ43SLVa6km0sInNB+MB8GA1UdIwQYMBaAFBcoSjomxdFZ43SLVa6km0sInNB+ MA0GCSqGSIb3DQEBCwUAA4IBAQAfHMORdyAYJSQf3vHfeRnuXjAne+nqW/3GvmoT LmepEl+bnJ0gOjamgRSsGqYOvVVhFV4S7bO4lSXOQc3JqI38OYlTZUSqFoDp4aVT roj7fVc63368BR5g2IrpcXzolyDVN7ZmhhmYTk0eug01uqmy4DSvUIya6LBHPaly pWdn6qjfk5tZOo63r3mSx9sBI0ULpYSk1u2VGJmQDXYFU7v0lEwfIiQL5PKNF93I 2xObfpdaakKt/CbXM2HkOA9hDSV59qwufgKGtrkKAVMHtuY7e436CKKgCVGqSVCY 4EwygPqlgCemcUTy6LDxh6qGMpy28jmvCUktlmo4zloP2lIE -----END CERTIFICATE----- kind: ConfigMap metadata: annotations: service.beta.openshift.io/inject-cabundle: "true" creationTimestamp: "2026-07-10T02:16:58Z" 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-10T02:16:58Z" - apiVersion: v1 fieldsType: FieldsV1 fieldsV1: f:data: f:service-ca.crt: {} manager: service-ca-operator operation: Update time: "2026-07-10T02:23:51Z" name: openshift-service-ca.crt namespace: openshift-multus resourceVersion: "8286" uid: 216a4fa9-92e1-474c-b5c3-f6a6f62933c2 - 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-10T02:17:01Z" managedFields: - apiVersion: v1 fieldsType: FieldsV1 fieldsV1: f:data: f:whereabouts.conf: {} f:metadata: f:ownerReferences: k:{"uid":"69c9ba6e-fb7e-4df9-b67b-81484f37cff4"}: {} manager: cluster-network-operator/operconfig operation: Apply time: "2026-07-10T02:17:01Z" name: whereabouts-flatfile-config namespace: openshift-multus ownerReferences: - apiVersion: operator.openshift.io/v1 blockOwnerDeletion: true controller: true kind: Network name: cluster uid: 69c9ba6e-fb7e-4df9-b67b-81484f37cff4 resourceVersion: "2519" uid: bf954ec2-4e83-4383-ae5d-4ad27558f0dd kind: ConfigMapList metadata: resourceVersion: "57231"