--- 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.25 creationTimestamp: "2026-07-20T04:33:51Z" 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":"e3bf9213-b463-4d28-9796-0ff427f9722a"}: {} manager: cluster-network-operator/operconfig operation: Apply time: "2026-07-20T04:33:51Z" name: cni-copy-resources namespace: openshift-multus ownerReferences: - apiVersion: operator.openshift.io/v1 blockOwnerDeletion: true controller: true kind: Network name: cluster uid: e3bf9213-b463-4d28-9796-0ff427f9722a resourceVersion: "2689" uid: 35baf7dd-4f4c-449f-93dd-69fa09c4241c - 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.25 creationTimestamp: "2026-07-20T04:33:51Z" 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-20T04:33:51Z" name: cni-sysctl-allowlist namespace: openshift-multus resourceVersion: "2665" uid: d9e46c45-22db-4192-b0c5-7b9de304807a - 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.25 creationTimestamp: "2026-07-20T04:33:51Z" 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":"e3bf9213-b463-4d28-9796-0ff427f9722a"}: {} manager: cluster-network-operator/operconfig operation: Apply time: "2026-07-20T04:33:51Z" name: default-cni-sysctl-allowlist namespace: openshift-multus ownerReferences: - apiVersion: operator.openshift.io/v1 blockOwnerDeletion: true controller: true kind: Network name: cluster uid: e3bf9213-b463-4d28-9796-0ff427f9722a resourceVersion: "2664" uid: a5b38ab2-e3fd-456b-81e7-4d36d0f2b0d7 - apiVersion: v1 data: ca.crt: | -----BEGIN CERTIFICATE----- MIIDPDCCAiSgAwIBAgIIKG0BfGtqLHYwDQYJKoZIhvcNAQELBQAwJjESMBAGA1UE CxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdyb290LWNhMB4XDTI2MDcyMDA0MzE0NloX DTM2MDcxNzA0MzE0NlowJjESMBAGA1UECxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdy b290LWNhMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnXOaTAypIsb4 zjlEina1zrCEo0LO5HVJfpFOtm6M4xMOi73t7gJi9zWPOLspwU2KQAILXWohug8m k+TQ54Az6jsOF0SeTzfl+Y3NqzcMAWE5K2wrWaC3zRdeKnobDJEb6NTY/T/I0HVu OQnGBf1n88pScW9z0HJk2WX5PMdW4v8JJ0nDL8G6kKO21QRWrqWYqCSjR4IGVbEj cbkHlGH31uZvmPQKzRtqdq/RJAuGTLUV4kgIp9rcMiH6O5xZ5pis7YWxsk/3jkwi OKV4ZKO8Joc+1pYIWzCAWZlNbX77cmI4b1rxSXoGoxU7Vd+c6sfAvB3gZv1GGCTo EKVnT/sIHQIDAQABo24wbDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH/BAUwAwEB /zBJBgNVHQ4EQgRAN60mXzk/bmW3SPpYFE3wc747pv96iza1dIevTHrdbBkpU60F 1YHSkR/rGwqBOt7zwm0paiqE6Bi+Tbte9tNuETANBgkqhkiG9w0BAQsFAAOCAQEA CsmrTClAygNhJWjjFvx7cA9sW5x4AD7BUj9VWr807dMP1U6WUlRuv68DqeOn25K+ pnlVeEnsjwSomIhutXOx7suuLLPYsM6y5Ahxjlo6/lJ4ilsnXAJL4tD/f8ZsO1w9 43SV5PqrY+aVYpRius+P+/NFBkaETnjP5ApII7VXsiw3SWZNhe/yu5AlkZdEaQQs IElhN6Yq93BE+PFJGDcRhrDWn2fosTcKF4VqjQTJg27y+7IeZF9K0LNMwOsRF+EB rTMOf2AjgFEGhgvS7wENXkYBctWyaEnP4lPzort/EeZr2j972K3JWEznqHujMMt1 /55R36s7khJmApuj1z5Vxw== -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIEADCCAuigAwIBAgIISVG7R8PM9xwwDQYJKoZIhvcNAQELBQAwJjESMBAGA1UE CxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdyb290LWNhMB4XDTI2MDcyMDA0MzIxMVoX DTI3MDcyMDA0MzIxMVowMDESMBAGA1UEChMJb3BlbnNoaWZ0MRowGAYDVQQDExFv cGVuc2hpZnQtaW5ncmVzczCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB AMX5Y3KlY3y3fXVq4d2XvcEzo6zfNo0yEMKQ60PcT+Vem2ap/F2lL9AeYlBecWeL R78nIVRp2Lyk1TN2VvfHQnx3RIu6CN5Hxo4GkYFGU0LEph0Gpj5/1Yc/yR3NEDdW SnB5Jyj0uVVaEdK1U6bA7I6fpGZMsJ8WwuhMT1S9EyMTq94o0AJbeB4CcGuqYNzP 6GbiVo1hKP0t5a3Gc8mY833bHkHHixZggxU+yz16kNeOc5YiLMRp/4JT4af8OhYB WjU+uo0f2gnlEi271apfnE7RG7oZwTa/uuCvSCl9SbSJyye7CuBQYMpOJ6JBSftn 4zTwr3X9Hd9p/F4U8/OtfGUCAwEAAaOCASYwggEiMA4GA1UdDwEB/wQEAwIFoDAd BgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADBJBgNV HQ4EQgRA3J0Yx94HyC9DpUbJvHjKbAe/2wVh8adH4siHzphRvgFjHHJvHVLTxfem 8BHemowGHnzHZTm816ncbmMQ/LevZzBLBgNVHSMERDBCgEA3rSZfOT9uZbdI+lgU TfBzvjum/3qLNrV0h69Met1sGSlTrQXVgdKRH+sbCoE63vPCbSlqKoToGL5Nu172 024RMEsGA1UdEQREMEKCQCouYXBwcy40ZDU4MmRkZi0yMDk3LTQ0NmItOTMxZi01 MTdjZjc3ZmU0ZDkucHJvZC5rb25mbHV4ZWFhcy5jb20wDQYJKoZIhvcNAQELBQAD ggEBAIL6lWZH+wsNTrE/91SRGrV34HZ+ZFEWdT35DzN1+YNuA3CJEfPRyMIG4MoE Yht/CanSs+V4nG/yYSl1OHP0duhKEMmDsw9jwKy/120vNGZglREN8svuTRMByyMZ nopmQE9S5ZXS4L1t+As6ZsAEf09uTHNOz9A/4mx7JFVSK0k8Lw+lWZKwpS/8RveY QF9inVZ/XY6DSfgojp11fI++rw5xsxRNcGG/dlcMQwAGuhlggtiPA3fxE6+WhyRD FoyyaYRpRvpjnzyUqcYc6n2RA1k3uLiqCjqwjLV8ZeX8xeq76Ra5xXyoZDX97cSo uhfolvf72SZfGwGs7aGj23av4vc= -----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-20T04:33:48Z" 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-20T04:34:22Z" name: kube-root-ca.crt namespace: openshift-multus resourceVersion: "4216" uid: 9b046025-f98e-467b-a0c1-53f7c8f47ad9 - 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-20T04:33: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":"e3bf9213-b463-4d28-9796-0ff427f9722a"}: {} manager: cluster-network-operator/operconfig operation: Apply time: "2026-07-20T04:33:52Z" name: multus-daemon-config namespace: openshift-multus ownerReferences: - apiVersion: operator.openshift.io/v1 blockOwnerDeletion: true controller: true kind: Network name: cluster uid: e3bf9213-b463-4d28-9796-0ff427f9722a resourceVersion: "2744" uid: c50fd03a-859f-493a-9990-0aede50ef2d6 - apiVersion: v1 data: cabundle.crt: |- -----BEGIN CERTIFICATE----- MIIDUTCCAjmgAwIBAgIIB9Yys1a4QCwwDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UE Awwrb3BlbnNoaWZ0LXNlcnZpY2Utc2VydmluZy1zaWduZXJAMTc4NDUyMjY2NzAe Fw0yNjA3MjAwNDQ0MjZaFw0yODA5MTcwNDQ0MjdaMDYxNDAyBgNVBAMMK29wZW5z aGlmdC1zZXJ2aWNlLXNlcnZpbmctc2lnbmVyQDE3ODQ1MjI2NjcwggEiMA0GCSqG SIb3DQEBAQUAA4IBDwAwggEKAoIBAQC7FJG6nxDMFjt3QeEV9bpown9rORqlO2MR t9nnahz6arJbL0cMNnrKxxiQube0+Hj9VVaJDiDj91a7Q2Ld3obuju7cd6IivO2t Rtszx5W7mnCVotjsc5Wvvo483RNGs0fL9w9BJkBvRUYt4uM2/57ylcWGz91EGGz0 FzFCB80O8v5xkVYV1kozzRxfWk/mcCV1Uge5tcZ2WXNSoD9z3kq3XtmWrw53KtPs vCR9Z9EeIO8d4sc159nPMbfbQYje9edls3JXFGqJ9ygOcwUtd3PmWJ9SOUsLtXvq WYRIMacBUG0lcejpzYejmUpwgUZbwnny4xXrsEzK8wqjCg5F/lxdAgMBAAGjYzBh MA4GA1UdDwEB/wQEAwICpDAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBQCxOLC HJTkRp1FVeQdsoDMJ4j9vzAfBgNVHSMEGDAWgBQCxOLCHJTkRp1FVeQdsoDMJ4j9 vzANBgkqhkiG9w0BAQsFAAOCAQEAAT5wzzN05XOtqlevYGfNlirSmbnOn3LPs+el 2aty58sG4E+KZVYGdYZ323IbxLJO6DqBzPmTeCdxQjcquhEkgYBnedGN4YjS9KT+ ULfVGQh01uXSKma3+gmNTCwVeivuXX9h5TJNaGo5gntimQHk8Enrt3ZDqYupvbKC 2V9t+1nl4kwUSw7KtbO8QfoHwLg6tqqrX/N68SfWC/cN6CLFI2BTXmNRgyxuIBoL 9O8G/BTgVyy2Jl6mRnF9fAIpS9FAxmjZvF8GUFJ3I59X7BH2G/Zlwnj8c8dMJpdX NjBr3UHavpBjB/ONowzmQSqvNvypKCQGClLsmer8cT9XztF/1Q== -----END CERTIFICATE----- kind: ConfigMap metadata: creationTimestamp: "2026-07-20T04:49:28Z" 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-20T04:49:28Z" name: odh-kserve-custom-ca-bundle namespace: openshift-multus resourceVersion: "16415" uid: cdd11610-0c40-4d3b-8921-67665bab4205 - apiVersion: v1 data: service-ca.crt: | -----BEGIN CERTIFICATE----- MIIDUTCCAjmgAwIBAgIIB9Yys1a4QCwwDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UE Awwrb3BlbnNoaWZ0LXNlcnZpY2Utc2VydmluZy1zaWduZXJAMTc4NDUyMjY2NzAe Fw0yNjA3MjAwNDQ0MjZaFw0yODA5MTcwNDQ0MjdaMDYxNDAyBgNVBAMMK29wZW5z aGlmdC1zZXJ2aWNlLXNlcnZpbmctc2lnbmVyQDE3ODQ1MjI2NjcwggEiMA0GCSqG SIb3DQEBAQUAA4IBDwAwggEKAoIBAQC7FJG6nxDMFjt3QeEV9bpown9rORqlO2MR t9nnahz6arJbL0cMNnrKxxiQube0+Hj9VVaJDiDj91a7Q2Ld3obuju7cd6IivO2t Rtszx5W7mnCVotjsc5Wvvo483RNGs0fL9w9BJkBvRUYt4uM2/57ylcWGz91EGGz0 FzFCB80O8v5xkVYV1kozzRxfWk/mcCV1Uge5tcZ2WXNSoD9z3kq3XtmWrw53KtPs vCR9Z9EeIO8d4sc159nPMbfbQYje9edls3JXFGqJ9ygOcwUtd3PmWJ9SOUsLtXvq WYRIMacBUG0lcejpzYejmUpwgUZbwnny4xXrsEzK8wqjCg5F/lxdAgMBAAGjYzBh MA4GA1UdDwEB/wQEAwICpDAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBQCxOLC HJTkRp1FVeQdsoDMJ4j9vzAfBgNVHSMEGDAWgBQCxOLCHJTkRp1FVeQdsoDMJ4j9 vzANBgkqhkiG9w0BAQsFAAOCAQEAAT5wzzN05XOtqlevYGfNlirSmbnOn3LPs+el 2aty58sG4E+KZVYGdYZ323IbxLJO6DqBzPmTeCdxQjcquhEkgYBnedGN4YjS9KT+ ULfVGQh01uXSKma3+gmNTCwVeivuXX9h5TJNaGo5gntimQHk8Enrt3ZDqYupvbKC 2V9t+1nl4kwUSw7KtbO8QfoHwLg6tqqrX/N68SfWC/cN6CLFI2BTXmNRgyxuIBoL 9O8G/BTgVyy2Jl6mRnF9fAIpS9FAxmjZvF8GUFJ3I59X7BH2G/Zlwnj8c8dMJpdX NjBr3UHavpBjB/ONowzmQSqvNvypKCQGClLsmer8cT9XztF/1Q== -----END CERTIFICATE----- kind: ConfigMap metadata: annotations: service.beta.openshift.io/inject-cabundle: "true" creationTimestamp: "2026-07-20T04:33:48Z" 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-20T04:33:48Z" - apiVersion: v1 fieldsType: FieldsV1 fieldsV1: f:data: f:service-ca.crt: {} manager: service-ca-operator operation: Update time: "2026-07-20T04:44:41Z" name: openshift-service-ca.crt namespace: openshift-multus resourceVersion: "9273" uid: df7c5374-d480-4f73-88e1-617de7a4fa23 - 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-20T04:33:51Z" managedFields: - apiVersion: v1 fieldsType: FieldsV1 fieldsV1: f:data: f:whereabouts.conf: {} f:metadata: f:ownerReferences: k:{"uid":"e3bf9213-b463-4d28-9796-0ff427f9722a"}: {} manager: cluster-network-operator/operconfig operation: Apply time: "2026-07-20T04:33:51Z" name: whereabouts-flatfile-config namespace: openshift-multus ownerReferences: - apiVersion: operator.openshift.io/v1 blockOwnerDeletion: true controller: true kind: Network name: cluster uid: e3bf9213-b463-4d28-9796-0ff427f9722a resourceVersion: "2723" uid: 1e989b72-250c-4911-aaab-f34f1ee94a73 kind: ConfigMapList metadata: resourceVersion: "21717"