--- 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.23 creationTimestamp: "2026-07-02T18:25:26Z" 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":"5fc27dc5-50df-42a2-b1a8-22535418bde8"}: {} manager: cluster-network-operator/operconfig operation: Apply time: "2026-07-02T18:25:26Z" name: cni-copy-resources namespace: openshift-multus ownerReferences: - apiVersion: operator.openshift.io/v1 blockOwnerDeletion: true controller: true kind: Network name: cluster uid: 5fc27dc5-50df-42a2-b1a8-22535418bde8 resourceVersion: "4003" uid: 20a1602f-29d2-4586-aeb8-2c73f6354cc8 - 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.23 creationTimestamp: "2026-07-02T18:25:26Z" 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-02T18:25:26Z" name: cni-sysctl-allowlist namespace: openshift-multus resourceVersion: "3999" uid: c007a10f-3cbb-4bcd-809c-bbe3cfe0b484 - 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.23 creationTimestamp: "2026-07-02T18:25:26Z" 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":"5fc27dc5-50df-42a2-b1a8-22535418bde8"}: {} manager: cluster-network-operator/operconfig operation: Apply time: "2026-07-02T18:25:26Z" name: default-cni-sysctl-allowlist namespace: openshift-multus ownerReferences: - apiVersion: operator.openshift.io/v1 blockOwnerDeletion: true controller: true kind: Network name: cluster uid: 5fc27dc5-50df-42a2-b1a8-22535418bde8 resourceVersion: "3998" uid: 4d499376-c4cd-4052-b7af-65f93e019d02 - apiVersion: v1 data: ca.crt: | -----BEGIN CERTIFICATE----- MIIDPDCCAiSgAwIBAgIIbkBqb0I5mGUwDQYJKoZIhvcNAQELBQAwJjESMBAGA1UE CxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdyb290LWNhMB4XDTI2MDcwMjE4MjIwNloX DTM2MDYyOTE4MjIwNlowJjESMBAGA1UECxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdy b290LWNhMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAx9PUZHP/WUQF 3z36/JxbosXmM4+KHyDq3hhd3NdPmex8HVkWBCs4R51c+E4sWa3/e4m2AVoFaYeS yCIWb2rmflnTFyttI3k5DWwRGUZ1v2Xh3Hm3eLEoiMBovymE864O/jhj0dEwwHEo yfjKw1LrevsAHx1CCL/9JZkpdcqLO0AeqXSeYvGC5qUFVanVh5D+CH/kjuataihB TE+nPggZyAR4LT0umaKiayw7+4ZOHd7qhCMmJLif00cak/xwBVLkWLmiBAoycbB8 +I9g3FiTWE8Jw1RfsOKjHPfyLXg7O0lpfITMxWqtzbk0Kjw57hZDxiTdoOgy31OL hBI7YjSJ1QIDAQABo24wbDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH/BAUwAwEB /zBJBgNVHQ4EQgRA1k2d2h6EQ8X3CvSt9oSB1AIl25/raZJAt283+hHCHSpYzjU8 lU24QEbswGARuRxztbeF+CuEL/LwJqnjkXyvqjANBgkqhkiG9w0BAQsFAAOCAQEA h/MnsI79I8X/gFzcxXOZ/vU0rCSKeO8DA0oV9Se0S2ltC9BiVPxdc6Udf/a5IcE+ fO43ODJP3byZS7xRNORmUFBAbemlpbdJKYIjl4Ztkr7NVN/HRYeIvKyPr7P5SrCn wVJpTk0IQx9I+6inRrtRH0/myO7YpxxyU8HrEbPhzVrGHneg1VxB8gXYfQa22u47 qziXNIMLyy0mMTNZ0ScNys9pLqsHWdsV9GdFMNfxQTJ+G/sqVY/cX0s5tITZQ4Ve MK0dC2AN8aCrvP2Mf1xcMH0pbr4nbsg2l8iA3IhAgH23JuCMI5DMYYrbkRLLsFdU ABkKBV+zADuxTQlBJIRGpw== -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIEADCCAuigAwIBAgIIUsgtvq+Ma04wDQYJKoZIhvcNAQELBQAwJjESMBAGA1UE CxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdyb290LWNhMB4XDTI2MDcwMjE4MjIzNFoX DTI3MDcwMjE4MjIzNFowMDESMBAGA1UEChMJb3BlbnNoaWZ0MRowGAYDVQQDExFv cGVuc2hpZnQtaW5ncmVzczCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB ALiH1yMKHJO69Di2yG7AEXJ45WGEN/uNkrga6htOQaZZD51vsaAgRdeKoWxN0qhF YVTQEFFNC6nFgy+lgafNSipAIyuBSCFV0wfXUusSKCdVlEwx//9/4fyZ5UiS6sPM mihKoifNI+bprtazGZz53fmpHBx0FY6KEubryIziAPfEbAJbp983dNamKgGGAqfH UWMOQmrjNq0+cfcThOYv8gM5ABEj0zwwQi0j87qLHW5myz2LMiiLgSTyCT9R1p8+ eRn9lfitMp91jxI+c0fFd99p3KpLj6PfEQ2Kw9XnSLw9d0wv2NUpATtK65y57ToB DaHlYAhmOM9oHjtS+5XHuGcCAwEAAaOCASYwggEiMA4GA1UdDwEB/wQEAwIFoDAd BgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADBJBgNV HQ4EQgRAXFPtU2b/tcZlWnpQd52rYTARxmWnmOx6F/pgFyDdwSzNFv8gAJXh07rH dAZtd7T+AkF1PRAPClJ9tblfzaoapTBLBgNVHSMERDBCgEDWTZ3aHoRDxfcK9K32 hIHUAiXbn+tpkkC3bzf6EcIdKljONTyVTbhARuzAYBG5HHO1t4X4K4Qv8vAmqeOR fK+qMEsGA1UdEQREMEKCQCouYXBwcy40YTgyZWJhMS0zMzJkLTQ1MDYtOTJhYS0x OGZmY2JhMGVhNjkucHJvZC5rb25mbHV4ZWFhcy5jb20wDQYJKoZIhvcNAQELBQAD ggEBAE/9ENq1lEuBrz/WRRykJxElMF1Hnc1syyo+CSLsRfycfxXLW/ZokPcGx6AF K17EHCuHF+xCRnmW7F26761gzXajboIS3uB79j2q//MUbQwzYY5fkDMSw3jnebtB sfPAHLcM6HKpXLl56Ha1udj0rvdbA7g1nQ6cJw3/3a3JaQO0Ujw8hXFqwrMg63H8 8L9mZspCcC42DLrb8brqo05j0LFXL01fwjw5d6JERLV/OBelJ3VoEvGx1uZy2W1f wzlG+TMFPZzT0NqtqPlsjF0nCeMSmNDaED3z3mnzcPLq3ySXCUmQ4q62RjHX18u5 JvnN34dPay1cmcgFkFHMWT4sIs4= -----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-02T18:25:23Z" 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-02T18:25:23Z" name: kube-root-ca.crt namespace: openshift-multus resourceVersion: "3934" uid: fcf9611f-1b77-4ba0-bcf8-b23c67dddfb6 - 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-02T18:25:26Z" 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":"5fc27dc5-50df-42a2-b1a8-22535418bde8"}: {} manager: cluster-network-operator/operconfig operation: Apply time: "2026-07-02T18:25:26Z" name: multus-daemon-config namespace: openshift-multus ownerReferences: - apiVersion: operator.openshift.io/v1 blockOwnerDeletion: true controller: true kind: Network name: cluster uid: 5fc27dc5-50df-42a2-b1a8-22535418bde8 resourceVersion: "4006" uid: c67243bb-e0a6-4b8b-8284-4aed6050d33f - apiVersion: v1 data: cabundle.crt: |- -----BEGIN CERTIFICATE----- MIIDUTCCAjmgAwIBAgIIBI8Q3ts3n+YwDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UE Awwrb3BlbnNoaWZ0LXNlcnZpY2Utc2VydmluZy1zaWduZXJAMTc4MzAxNzA1NzAe Fw0yNjA3MDIxODMwNTZaFw0yODA4MzAxODMwNTdaMDYxNDAyBgNVBAMMK29wZW5z aGlmdC1zZXJ2aWNlLXNlcnZpbmctc2lnbmVyQDE3ODMwMTcwNTcwggEiMA0GCSqG SIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvYzi7kwMzh5WotUHXen3V4Ni3cYp96z32 Qahm02xrlNR2nND+uV+O74vDyoOUer1aAb5pXdPZTUWPAU857tgCARaB2dtszInR 7RXv5Qxce7QmPhOVAv2YgwLSseAgkD17yGLdm+MtaJIOY06Wqc/8AkLqLnyumN7J TRY8TpqI3oDQa98XbIbVqBiaC+jUFXGl1JvcOeMPILcVYOr2BPifKum1jKzN1lMk CUa7mpnbGHOUK+IBI9XSXQuREE7htgXXCQHdnTdJ+dJ7rfJGi72W6t8kz3FikDr1 6utDwykHPXGkvGyIByh6rP2LesKCDJG6Y6EayiCS0zubGDv6gNk3AgMBAAGjYzBh MA4GA1UdDwEB/wQEAwICpDAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRmQguP QTR76ynqfG98dJbGnkIRWzAfBgNVHSMEGDAWgBRmQguPQTR76ynqfG98dJbGnkIR WzANBgkqhkiG9w0BAQsFAAOCAQEAU1iRrFvnMyMO5sfgQ5Xk8ssTDyre4Jb7HqsL RpwPaY8zmv4rJvz1c7VPVchNgMfEfNqqWWZhTFLoMsbK8H+Srj8NP5CN6la3SqNc rnN8Nh4fjZbE2lDPSbBvxZ2vWz4Y0aFphpvt9zEfFRheTQSqLMSS/aWnafuWmZ8c 69hG7t70FXb5IFHSxWEL9NURwzQpuOn5owDd+pcrr4nQzGw/Akw/EEorGLDDWc9Y EPEomzDhzLBeFg9gPvjsjRWJXOWBBb81Assy72ut+rBhfNQCoqoLtkvGOnK4bmiq vS92V6iMI+u/uN93d4iT7F2lzwb9L1XHtQJHNXS0plldEKqj0g== -----END CERTIFICATE----- kind: ConfigMap metadata: creationTimestamp: "2026-07-02T18:37:27Z" 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-02T18:37:27Z" name: odh-kserve-custom-ca-bundle namespace: openshift-multus resourceVersion: "13318" uid: fc8b75fd-3a20-4ca4-9509-c3928f7273c9 - apiVersion: v1 data: service-ca.crt: | -----BEGIN CERTIFICATE----- MIIDUTCCAjmgAwIBAgIIBI8Q3ts3n+YwDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UE Awwrb3BlbnNoaWZ0LXNlcnZpY2Utc2VydmluZy1zaWduZXJAMTc4MzAxNzA1NzAe Fw0yNjA3MDIxODMwNTZaFw0yODA4MzAxODMwNTdaMDYxNDAyBgNVBAMMK29wZW5z aGlmdC1zZXJ2aWNlLXNlcnZpbmctc2lnbmVyQDE3ODMwMTcwNTcwggEiMA0GCSqG SIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvYzi7kwMzh5WotUHXen3V4Ni3cYp96z32 Qahm02xrlNR2nND+uV+O74vDyoOUer1aAb5pXdPZTUWPAU857tgCARaB2dtszInR 7RXv5Qxce7QmPhOVAv2YgwLSseAgkD17yGLdm+MtaJIOY06Wqc/8AkLqLnyumN7J TRY8TpqI3oDQa98XbIbVqBiaC+jUFXGl1JvcOeMPILcVYOr2BPifKum1jKzN1lMk CUa7mpnbGHOUK+IBI9XSXQuREE7htgXXCQHdnTdJ+dJ7rfJGi72W6t8kz3FikDr1 6utDwykHPXGkvGyIByh6rP2LesKCDJG6Y6EayiCS0zubGDv6gNk3AgMBAAGjYzBh MA4GA1UdDwEB/wQEAwICpDAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRmQguP QTR76ynqfG98dJbGnkIRWzAfBgNVHSMEGDAWgBRmQguPQTR76ynqfG98dJbGnkIR WzANBgkqhkiG9w0BAQsFAAOCAQEAU1iRrFvnMyMO5sfgQ5Xk8ssTDyre4Jb7HqsL RpwPaY8zmv4rJvz1c7VPVchNgMfEfNqqWWZhTFLoMsbK8H+Srj8NP5CN6la3SqNc rnN8Nh4fjZbE2lDPSbBvxZ2vWz4Y0aFphpvt9zEfFRheTQSqLMSS/aWnafuWmZ8c 69hG7t70FXb5IFHSxWEL9NURwzQpuOn5owDd+pcrr4nQzGw/Akw/EEorGLDDWc9Y EPEomzDhzLBeFg9gPvjsjRWJXOWBBb81Assy72ut+rBhfNQCoqoLtkvGOnK4bmiq vS92V6iMI+u/uN93d4iT7F2lzwb9L1XHtQJHNXS0plldEKqj0g== -----END CERTIFICATE----- kind: ConfigMap metadata: annotations: service.beta.openshift.io/inject-cabundle: "true" creationTimestamp: "2026-07-02T18:25:23Z" 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-02T18:25:23Z" - apiVersion: v1 fieldsType: FieldsV1 fieldsV1: f:data: f:service-ca.crt: {} manager: service-ca-operator operation: Update time: "2026-07-02T18:31:11Z" name: openshift-service-ca.crt namespace: openshift-multus resourceVersion: "7892" uid: d2d10b1a-d616-4fdc-abda-4ea379f8ad56 - 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-02T18:25:26Z" managedFields: - apiVersion: v1 fieldsType: FieldsV1 fieldsV1: f:data: f:whereabouts.conf: {} f:metadata: f:ownerReferences: k:{"uid":"5fc27dc5-50df-42a2-b1a8-22535418bde8"}: {} manager: cluster-network-operator/operconfig operation: Apply time: "2026-07-02T18:25:26Z" name: whereabouts-flatfile-config namespace: openshift-multus ownerReferences: - apiVersion: operator.openshift.io/v1 blockOwnerDeletion: true controller: true kind: Network name: cluster uid: 5fc27dc5-50df-42a2-b1a8-22535418bde8 resourceVersion: "4005" uid: 5ea7535a-1888-487b-a97d-62989dad064f kind: ConfigMapList metadata: resourceVersion: "34034"