---
apiVersion: v1
kind: Pod
metadata:
  annotations:
    cluster-autoscaler.kubernetes.io/enable-ds-eviction: "false"
  creationTimestamp: "2025-10-27T11:29:50Z"
  generateName: multus-additional-cni-plugins-
  labels:
    app: multus-additional-cni-plugins
    component: network
    controller-revision-hash: 977ffd98
    openshift.io/component: network
    pod-template-generation: "1"
    type: infra
  managedFields:
  - apiVersion: v1
    fieldsType: FieldsV1
    fieldsV1:
      f:metadata:
        f:annotations:
          .: {}
          f:cluster-autoscaler.kubernetes.io/enable-ds-eviction: {}
          f:target.workload.openshift.io/management: {}
        f:generateName: {}
        f:labels:
          .: {}
          f:app: {}
          f:component: {}
          f:controller-revision-hash: {}
          f:openshift.io/component: {}
          f:pod-template-generation: {}
          f:type: {}
        f:ownerReferences:
          .: {}
          k:{"uid":"74a72002-510d-4b7d-ae00-52cca64e315f"}: {}
      f:spec:
        f:affinity:
          .: {}
          f:nodeAffinity:
            .: {}
            f:requiredDuringSchedulingIgnoredDuringExecution: {}
        f:containers:
          k:{"name":"kube-multus-additional-cni-plugins"}:
            .: {}
            f:args: {}
            f:command: {}
            f:image: {}
            f:imagePullPolicy: {}
            f:name: {}
            f:resources:
              .: {}
              f:requests:
                .: {}
                f:cpu: {}
                f:memory: {}
            f:securityContext:
              .: {}
              f:privileged: {}
            f:terminationMessagePath: {}
            f:terminationMessagePolicy: {}
        f:dnsPolicy: {}
        f:enableServiceLinks: {}
        f:hostNetwork: {}
        f:initContainers:
          .: {}
          k:{"name":"bond-cni-plugin"}:
            .: {}
            f:command: {}
            f:env:
              .: {}
              k:{"name":"DEFAULT_SOURCE_DIRECTORY"}:
                .: {}
                f:name: {}
                f:value: {}
              k:{"name":"RHEL8_SOURCE_DIRECTORY"}:
                .: {}
                f:name: {}
                f:value: {}
              k:{"name":"RHEL9_SOURCE_DIRECTORY"}:
                .: {}
                f:name: {}
                f:value: {}
            f:image: {}
            f:imagePullPolicy: {}
            f:name: {}
            f:resources: {}
            f:terminationMessagePath: {}
            f:terminationMessagePolicy: {}
            f:volumeMounts:
              .: {}
              k:{"mountPath":"/entrypoint"}:
                .: {}
                f:mountPath: {}
                f:name: {}
              k:{"mountPath":"/host/etc/os-release"}:
                .: {}
                f:mountPath: {}
                f:name: {}
                f:readOnly: {}
              k:{"mountPath":"/host/opt/cni/bin"}:
                .: {}
                f:mountPath: {}
                f:name: {}
          k:{"name":"cni-plugins"}:
            .: {}
            f:command: {}
            f:env:
              .: {}
              k:{"name":"DEFAULT_SOURCE_DIRECTORY"}:
                .: {}
                f:name: {}
                f:value: {}
              k:{"name":"RHEL8_SOURCE_DIRECTORY"}:
                .: {}
                f:name: {}
                f:value: {}
              k:{"name":"RHEL9_SOURCE_DIRECTORY"}:
                .: {}
                f:name: {}
                f:value: {}
            f:image: {}
            f:imagePullPolicy: {}
            f:name: {}
            f:resources: {}
            f:terminationMessagePath: {}
            f:terminationMessagePolicy: {}
            f:volumeMounts:
              .: {}
              k:{"mountPath":"/entrypoint"}:
                .: {}
                f:mountPath: {}
                f:name: {}
              k:{"mountPath":"/host/etc/cni/tuning/"}:
                .: {}
                f:mountPath: {}
                f:name: {}
              k:{"mountPath":"/host/etc/os-release"}:
                .: {}
                f:mountPath: {}
                f:name: {}
                f:readOnly: {}
              k:{"mountPath":"/host/opt/cni/bin"}:
                .: {}
                f:mountPath: {}
                f:name: {}
              k:{"mountPath":"/sysctls"}:
                .: {}
                f:mountPath: {}
                f:name: {}
          k:{"name":"egress-router-binary-copy"}:
            .: {}
            f:command: {}
            f:env:
              .: {}
              k:{"name":"DEFAULT_SOURCE_DIRECTORY"}:
                .: {}
                f:name: {}
                f:value: {}
              k:{"name":"RHEL8_SOURCE_DIRECTORY"}:
                .: {}
                f:name: {}
                f:value: {}
              k:{"name":"RHEL9_SOURCE_DIRECTORY"}:
                .: {}
                f:name: {}
                f:value: {}
            f:image: {}
            f:imagePullPolicy: {}
            f:name: {}
            f:resources: {}
            f:terminationMessagePath: {}
            f:terminationMessagePolicy: {}
            f:volumeMounts:
              .: {}
              k:{"mountPath":"/entrypoint"}:
                .: {}
                f:mountPath: {}
                f:name: {}
              k:{"mountPath":"/host/etc/os-release"}:
                .: {}
                f:mountPath: {}
                f:name: {}
                f:readOnly: {}
              k:{"mountPath":"/host/opt/cni/bin"}:
                .: {}
                f:mountPath: {}
                f:name: {}
          k:{"name":"routeoverride-cni"}:
            .: {}
            f:command: {}
            f:env:
              .: {}
              k:{"name":"DEFAULT_SOURCE_DIRECTORY"}:
                .: {}
                f:name: {}
                f:value: {}
              k:{"name":"RHEL8_SOURCE_DIRECTORY"}:
                .: {}
                f:name: {}
                f:value: {}
              k:{"name":"RHEL9_SOURCE_DIRECTORY"}:
                .: {}
                f:name: {}
                f:value: {}
            f:image: {}
            f:imagePullPolicy: {}
            f:name: {}
            f:resources: {}
            f:terminationMessagePath: {}
            f:terminationMessagePolicy: {}
            f:volumeMounts:
              .: {}
              k:{"mountPath":"/entrypoint"}:
                .: {}
                f:mountPath: {}
                f:name: {}
              k:{"mountPath":"/host/etc/os-release"}:
                .: {}
                f:mountPath: {}
                f:name: {}
                f:readOnly: {}
              k:{"mountPath":"/host/opt/cni/bin"}:
                .: {}
                f:mountPath: {}
                f:name: {}
          k:{"name":"whereabouts-cni"}:
            .: {}
            f:command: {}
            f:env:
              .: {}
              k:{"name":"CNI_BIN_DIR"}:
                .: {}
                f:name: {}
                f:value: {}
              k:{"name":"CNI_CONF_DIR"}:
                .: {}
                f:name: {}
                f:value: {}
              k:{"name":"KUBERNETES_SERVICE_HOST"}:
                .: {}
                f:name: {}
                f:value: {}
              k:{"name":"KUBERNETES_SERVICE_PORT"}:
                .: {}
                f:name: {}
                f:value: {}
              k:{"name":"NODENAME"}:
                .: {}
                f:name: {}
                f:valueFrom:
                  .: {}
                  f:fieldRef: {}
              k:{"name":"SLEEP"}:
                .: {}
                f:name: {}
                f:value: {}
              k:{"name":"WHEREABOUTS_NAMESPACE"}:
                .: {}
                f:name: {}
                f:value: {}
            f:image: {}
            f:imagePullPolicy: {}
            f:name: {}
            f:resources:
              .: {}
              f:requests:
                .: {}
                f:cpu: {}
                f:memory: {}
            f:terminationMessagePath: {}
            f:terminationMessagePolicy: {}
            f:volumeMounts:
              .: {}
              k:{"mountPath":"/etc/whereabouts/config"}:
                .: {}
                f:mountPath: {}
                f:name: {}
              k:{"mountPath":"/host/etc/cni/net.d"}:
                .: {}
                f:mountPath: {}
                f:name: {}
              k:{"mountPath":"/host/opt/cni/bin"}:
                .: {}
                f:mountPath: {}
                f:name: {}
          k:{"name":"whereabouts-cni-bincopy"}:
            .: {}
            f:command: {}
            f:env:
              .: {}
              k:{"name":"DEFAULT_SOURCE_DIRECTORY"}:
                .: {}
                f:name: {}
                f:value: {}
              k:{"name":"RHEL8_SOURCE_DIRECTORY"}:
                .: {}
                f:name: {}
                f:value: {}
              k:{"name":"RHEL9_SOURCE_DIRECTORY"}:
                .: {}
                f:name: {}
                f:value: {}
            f:image: {}
            f:imagePullPolicy: {}
            f:name: {}
            f:resources:
              .: {}
              f:requests:
                .: {}
                f:cpu: {}
                f:memory: {}
            f:terminationMessagePath: {}
            f:terminationMessagePolicy: {}
            f:volumeMounts:
              .: {}
              k:{"mountPath":"/entrypoint"}:
                .: {}
                f:mountPath: {}
                f:name: {}
              k:{"mountPath":"/host/etc/os-release"}:
                .: {}
                f:mountPath: {}
                f:name: {}
                f:readOnly: {}
              k:{"mountPath":"/host/opt/cni/bin"}:
                .: {}
                f:mountPath: {}
                f:name: {}
        f:nodeSelector: {}
        f:priorityClassName: {}
        f:restartPolicy: {}
        f:schedulerName: {}
        f:securityContext: {}
        f:serviceAccount: {}
        f:serviceAccountName: {}
        f:terminationGracePeriodSeconds: {}
        f:tolerations: {}
        f:volumes:
          .: {}
          k:{"name":"cni-binary-copy"}:
            .: {}
            f:configMap:
              .: {}
              f:defaultMode: {}
              f:name: {}
            f:name: {}
          k:{"name":"cni-sysctl-allowlist"}:
            .: {}
            f:configMap:
              .: {}
              f:defaultMode: {}
              f:name: {}
            f:name: {}
          k:{"name":"cnibin"}:
            .: {}
            f:hostPath:
              .: {}
              f:path: {}
              f:type: {}
            f:name: {}
          k:{"name":"multus-cni-dir"}:
            .: {}
            f:hostPath:
              .: {}
              f:path: {}
              f:type: {}
            f:name: {}
          k:{"name":"os-release"}:
            .: {}
            f:hostPath:
              .: {}
              f:path: {}
              f:type: {}
            f:name: {}
          k:{"name":"system-cni-dir"}:
            .: {}
            f:hostPath:
              .: {}
              f:path: {}
              f:type: {}
            f:name: {}
          k:{"name":"tuning-conf-dir"}:
            .: {}
            f:hostPath:
              .: {}
              f:path: {}
              f:type: {}
            f:name: {}
          k:{"name":"whereabouts-configmap"}:
            .: {}
            f:configMap:
              .: {}
              f:defaultMode: {}
              f:name: {}
            f:name: {}
    manager: kube-controller-manager
    operation: Update
    time: "2025-10-27T11:29:50Z"
  - apiVersion: v1
    fieldsType: FieldsV1
    fieldsV1:
      f:status:
        f:conditions:
          k:{"type":"ContainersReady"}:
            .: {}
            f:lastProbeTime: {}
            f:lastTransitionTime: {}
            f:status: {}
            f:type: {}
          k:{"type":"Initialized"}:
            .: {}
            f:lastProbeTime: {}
            f:lastTransitionTime: {}
            f:status: {}
            f:type: {}
          k:{"type":"PodReadyToStartContainers"}:
            .: {}
            f:lastProbeTime: {}
            f:lastTransitionTime: {}
            f:status: {}
            f:type: {}
          k:{"type":"Ready"}:
            .: {}
            f:lastProbeTime: {}
            f:lastTransitionTime: {}
            f:status: {}
            f:type: {}
        f:containerStatuses: {}
        f:hostIP: {}
        f:hostIPs: {}
        f:initContainerStatuses: {}
        f:phase: {}
        f:podIP: {}
        f:podIPs:
          .: {}
          k:{"ip":"10.46.248.42"}:
            .: {}
            f:ip: {}
          k:{"ip":"2620:52:0:2ef8::2a"}:
            .: {}
            f:ip: {}
        f:startTime: {}
    manager: kubelet
    operation: Update
    subresource: status
    time: "2025-10-27T12:17:21Z"
  name: multus-additional-cni-plugins-vsk46
  namespace: openshift-multus
  ownerReferences:
  - apiVersion: apps/v1
    blockOwnerDeletion: true
    controller: true
    kind: DaemonSet
    name: multus-additional-cni-plugins
    uid: 74a72002-510d-4b7d-ae00-52cca64e315f
  resourceVersion: "37449"
  uid: f8032873-09d8-4b02-a276-dca69c3dcd1e
spec:
  affinity:
    nodeAffinity:
      requiredDuringSchedulingIgnoredDuringExecution:
        nodeSelectorTerms:
        - matchFields:
          - key: metadata.name
            operator: In
            values:
            - cnvqe-071.lab.eng.tlv2.redhat.com
  containers:
  - args:
    - |
      trap : TERM INT; sleep infinity & wait
    command:
    - /bin/bash
    - -ec
    - --
    image: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:c8e2f6b1961efad0c27efa3aa2fdb099590a3f9fa7a0ddc499737703cf1390ba
    imagePullPolicy: IfNotPresent
    name: kube-multus-additional-cni-plugins
    resources:
      requests:
        cpu: 10m
        memory: 10Mi
    securityContext:
      privileged: true
    terminationMessagePath: /dev/termination-log
    terminationMessagePolicy: FallbackToLogsOnError
    volumeMounts:
    - mountPath: /var/run/secrets/kubernetes.io/serviceaccount
      name: kube-api-access-kb98j
      readOnly: true
  dnsPolicy: ClusterFirst
  enableServiceLinks: true
  hostNetwork: true
  initContainers:
  - command:
    - /entrypoint/cnibincopy.sh
    env:
    - name: RHEL8_SOURCE_DIRECTORY
      value: /usr/src/egress-router-cni/rhel8/bin/
    - name: RHEL9_SOURCE_DIRECTORY
      value: /usr/src/egress-router-cni/rhel9/bin/
    - name: DEFAULT_SOURCE_DIRECTORY
      value: /usr/src/egress-router-cni/bin/
    image: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:85e03cb80fe42fa6977966658876ace912a4e4e8051c28a3c8704976d3dfed8b
    imagePullPolicy: IfNotPresent
    name: egress-router-binary-copy
    resources: {}
    terminationMessagePath: /dev/termination-log
    terminationMessagePolicy: FallbackToLogsOnError
    volumeMounts:
    - mountPath: /entrypoint
      name: cni-binary-copy
    - mountPath: /host/opt/cni/bin
      name: cnibin
    - mountPath: /host/etc/os-release
      name: os-release
      readOnly: true
    - mountPath: /var/run/secrets/kubernetes.io/serviceaccount
      name: kube-api-access-kb98j
      readOnly: true
  - command:
    - /bin/bash
    - -c
    - /entrypoint/cnibincopy.sh && cp -n /sysctls/allowlist.conf /host/etc/cni/tuning/
    env:
    - name: RHEL8_SOURCE_DIRECTORY
      value: /usr/src/plugins/rhel8/bin/
    - name: RHEL9_SOURCE_DIRECTORY
      value: /usr/src/plugins/rhel9/bin/
    - name: DEFAULT_SOURCE_DIRECTORY
      value: /usr/src/plugins/bin/
    image: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:9b6214c184fd74b5a6dd48750db17cd82326aaff12e73ff7f95e5e41150095f2
    imagePullPolicy: IfNotPresent
    name: cni-plugins
    resources: {}
    terminationMessagePath: /dev/termination-log
    terminationMessagePolicy: FallbackToLogsOnError
    volumeMounts:
    - mountPath: /entrypoint
      name: cni-binary-copy
    - mountPath: /host/opt/cni/bin
      name: cnibin
    - mountPath: /host/etc/os-release
      name: os-release
      readOnly: true
    - mountPath: /host/etc/cni/tuning/
      name: tuning-conf-dir
    - mountPath: /sysctls
      name: cni-sysctl-allowlist
    - mountPath: /var/run/secrets/kubernetes.io/serviceaccount
      name: kube-api-access-kb98j
      readOnly: true
  - command:
    - /entrypoint/cnibincopy.sh
    env:
    - name: RHEL8_SOURCE_DIRECTORY
      value: /bondcni/rhel8/
    - name: RHEL9_SOURCE_DIRECTORY
      value: /bondcni/rhel9/
    - name: DEFAULT_SOURCE_DIRECTORY
      value: /bondcni/rhel9/
    image: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:da7133ac314fc9348c2afeac818a25005190809265688e5006c72ad33070fc89
    imagePullPolicy: IfNotPresent
    name: bond-cni-plugin
    resources: {}
    terminationMessagePath: /dev/termination-log
    terminationMessagePolicy: FallbackToLogsOnError
    volumeMounts:
    - mountPath: /entrypoint
      name: cni-binary-copy
    - mountPath: /host/opt/cni/bin
      name: cnibin
    - mountPath: /host/etc/os-release
      name: os-release
      readOnly: true
    - mountPath: /var/run/secrets/kubernetes.io/serviceaccount
      name: kube-api-access-kb98j
      readOnly: true
  - command:
    - /entrypoint/cnibincopy.sh
    env:
    - name: RHEL8_SOURCE_DIRECTORY
      value: /usr/src/route-override/rhel8/bin/
    - name: RHEL9_SOURCE_DIRECTORY
      value: /usr/src/route-override/rhel9/bin/
    - name: DEFAULT_SOURCE_DIRECTORY
      value: /usr/src/route-override/bin/
    image: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:eafcf9c3c58c12048e8f6f09f870e59e7d911faf940099f2fe274f5124cea161
    imagePullPolicy: IfNotPresent
    name: routeoverride-cni
    resources: {}
    terminationMessagePath: /dev/termination-log
    terminationMessagePolicy: FallbackToLogsOnError
    volumeMounts:
    - mountPath: /entrypoint
      name: cni-binary-copy
    - mountPath: /host/opt/cni/bin
      name: cnibin
    - mountPath: /host/etc/os-release
      name: os-release
      readOnly: true
    - mountPath: /var/run/secrets/kubernetes.io/serviceaccount
      name: kube-api-access-kb98j
      readOnly: true
  - command:
    - /entrypoint/cnibincopy.sh
    env:
    - name: RHEL8_SOURCE_DIRECTORY
      value: /usr/src/whereabouts/rhel8/bin/
    - name: RHEL9_SOURCE_DIRECTORY
      value: /usr/src/whereabouts/rhel9/bin/
    - name: DEFAULT_SOURCE_DIRECTORY
      value: /usr/src/whereabouts/bin/
    image: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:3bc4172e1ccafcff20efd8a263fc143e70bdc5cbd8d099eae624afda4ae7e3eb
    imagePullPolicy: IfNotPresent
    name: whereabouts-cni-bincopy
    resources:
      requests:
        cpu: 10m
        memory: 10Mi
    terminationMessagePath: /dev/termination-log
    terminationMessagePolicy: FallbackToLogsOnError
    volumeMounts:
    - mountPath: /entrypoint
      name: cni-binary-copy
    - mountPath: /host/opt/cni/bin
      name: cnibin
    - mountPath: /host/etc/os-release
      name: os-release
      readOnly: true
    - mountPath: /var/run/secrets/kubernetes.io/serviceaccount
      name: kube-api-access-kb98j
      readOnly: true
  - command:
    - /bin/sh
    - -c
    - |
      #!/bin/sh

      set -u -e

      CNI_BIN_DIR=${CNI_BIN_DIR:-"/host/opt/cni/bin/"}
      WHEREABOUTS_KUBECONFIG_FILE_HOST=${WHEREABOUTS_KUBECONFIG_FILE_HOST:-"/etc/cni/net.d/whereabouts.d/whereabouts.kubeconfig"}
      CNI_CONF_DIR=${CNI_CONF_DIR:-"/host/etc/kubernetes/cni/net.d"}
      WHEREABOUTS_RECONCILER_CRON=${WHEREABOUTS_RECONCILER_CRON:-30 4 * * *}

      # Make a whereabouts.d directory (for our kubeconfig)

      mkdir -p $CNI_CONF_DIR/whereabouts.d
      WHEREABOUTS_KUBECONFIG=$CNI_CONF_DIR/whereabouts.d/whereabouts.kubeconfig
      WHEREABOUTS_CONF_FILE=$CNI_CONF_DIR/whereabouts.d/whereabouts.conf
      WHEREABOUTS_KUBECONFIG_LITERAL=$(echo "$WHEREABOUTS_KUBECONFIG" | sed -e s'|/host||')

      # Write the nodename to the whereabouts.d directory for standardized hostname reference across cloud providers
      echo $NODENAME > $CNI_CONF_DIR/whereabouts.d/nodename

      SERVICE_ACCOUNT_PATH=/var/run/secrets/kubernetes.io/serviceaccount
      KUBE_CA_FILE=${KUBE_CA_FILE:-$SERVICE_ACCOUNT_PATH/ca.crt}
      SERVICE_ACCOUNT_TOKEN=$(cat $SERVICE_ACCOUNT_PATH/token)
      SERVICE_ACCOUNT_TOKEN_PATH=$SERVICE_ACCOUNT_PATH/token
      SKIP_TLS_VERIFY=${SKIP_TLS_VERIFY:-false}


      function log()
      {
          echo "$(date -Iseconds) ${1}"
      }

      function error()
      {
          log "ERR:  {$1}"
      }

      function warn()
      {
          log "WARN: {$1}"
      }


      function generateKubeConfig {
      # Check if we're running as a k8s pod.
      if [ -f "$SERVICE_ACCOUNT_PATH/token" ]; then
        # We're running as a k8d pod - expect some variables.
        if [ -z ${KUBERNETES_SERVICE_HOST} ]; then
          error "KUBERNETES_SERVICE_HOST not set"; exit 1;
        fi
        if [ -z ${KUBERNETES_SERVICE_PORT} ]; then
          error "KUBERNETES_SERVICE_PORT not set"; exit 1;
        fi

        if [ "$SKIP_TLS_VERIFY" == "true" ]; then
          TLS_CFG="insecure-skip-tls-verify: true"
        elif [ -f "$KUBE_CA_FILE" ]; then
          TLS_CFG="certificate-authority-data: $(cat $KUBE_CA_FILE | base64 | tr -d '\n')"
        fi

        # Kubernetes service address must be wrapped if it is IPv6 address
        KUBERNETES_SERVICE_HOST_WRAP=$KUBERNETES_SERVICE_HOST
        if [ "$KUBERNETES_SERVICE_HOST_WRAP" != "${KUBERNETES_SERVICE_HOST_WRAP#*:[0-9a-fA-F]}" ]; then
          KUBERNETES_SERVICE_HOST_WRAP=\[$KUBERNETES_SERVICE_HOST_WRAP\]
        fi

        # Write a kubeconfig file for the CNI plugin.  Do this
        # to skip TLS verification for now.  We should eventually support
        # writing more complete kubeconfig files. This is only used
        # if the provided CNI network config references it.
        touch $WHEREABOUTS_KUBECONFIG
        chmod ${KUBECONFIG_MODE:-600} $WHEREABOUTS_KUBECONFIG
        cat > $WHEREABOUTS_KUBECONFIG <<EOF
      # Kubeconfig file for the Whereabouts CNI plugin.
      apiVersion: v1
      kind: Config
      clusters:
      - name: local
        cluster:
          server: ${KUBERNETES_SERVICE_PROTOCOL:-https}://${KUBERNETES_SERVICE_HOST_WRAP}:${KUBERNETES_SERVICE_PORT}
          $TLS_CFG
      users:
      - name: whereabouts
        user:
          token: "${SERVICE_ACCOUNT_TOKEN}"
      contexts:
      - name: whereabouts-context
        context:
          cluster: local
          user: whereabouts
          namespace: ${WHEREABOUTS_NAMESPACE}
      current-context: whereabouts-context
      EOF

      # Copy the config from ConfigMap to the desired directory
      cp /etc/whereabouts/config/whereabouts.conf $WHEREABOUTS_CONF_FILE
      chmod 600 $WHEREABOUTS_CONF_FILE

      else
        warn "Doesn't look like we're running in a kubernetes environment (no serviceaccount token)"
      fi

      }

      function generateWhereaboutsConf {

        touch $WHEREABOUTS_CONF_FILE
        chmod ${KUBECONFIG_MODE:-600} $WHEREABOUTS_CONF_FILE
        cat > $WHEREABOUTS_CONF_FILE <<EOF
      {
        "datastore": "kubernetes",
        "kubernetes": {
          "kubeconfig": "${WHEREABOUTS_KUBECONFIG_LITERAL}"
        },
        "reconciler_cron_expression": "${WHEREABOUTS_RECONCILER_CRON}"
      }
      EOF

      }

      generateKubeConfig
      # ------------------ end Generate a "kube-config"

      # ----------------- Generate a whereabouts conf
      # removed because we have the configmap
      #generateWhereaboutsConf
      # ---------------- End generate a whereabouts conf


      # copy whereabouts to the cni bin dir
      # SKIPPED DUE TO FIPS COPY.
      # cp -f /whereabouts $CNI_BIN_DIR

      # ---------------------- end generate a "kube-config".

      # Unless told otherwise, sleep forever.
      # This prevents Kubernetes from restarting the pod repeatedly.
      should_sleep=${SLEEP:-"true"}
      echo "Done configuring CNI.  Sleep=$should_sleep"
      while [ "$should_sleep" == "true"  ]; do
          sleep 1000000000000
      done
    env:
    - name: NODENAME
      valueFrom:
        fieldRef:
          apiVersion: v1
          fieldPath: spec.nodeName
    - name: KUBERNETES_SERVICE_PORT
      value: "6443"
    - name: KUBERNETES_SERVICE_HOST
      value: api-int.bm12b-tlv2.abi.cnv-qe.rhood.us
    - name: CNI_BIN_DIR
      value: /host/opt/cni/bin/
    - name: CNI_CONF_DIR
      value: /host/etc/cni/net.d
    - name: SLEEP
      value: "false"
    - name: WHEREABOUTS_NAMESPACE
      value: openshift-multus
    image: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:3bc4172e1ccafcff20efd8a263fc143e70bdc5cbd8d099eae624afda4ae7e3eb
    imagePullPolicy: IfNotPresent
    name: whereabouts-cni
    resources:
      requests:
        cpu: 10m
        memory: 10Mi
    terminationMessagePath: /dev/termination-log
    terminationMessagePolicy: FallbackToLogsOnError
    volumeMounts:
    - mountPath: /host/opt/cni/bin
      name: cnibin
    - mountPath: /host/etc/cni/net.d
      name: system-cni-dir
    - mountPath: /etc/whereabouts/config
      name: whereabouts-configmap
    - mountPath: /var/run/secrets/kubernetes.io/serviceaccount
      name: kube-api-access-kb98j
      readOnly: true
  nodeName: cnvqe-071.lab.eng.tlv2.redhat.com
  nodeSelector:
    kubernetes.io/os: linux
  preemptionPolicy: PreemptLowerPriority
  priority: 2000001000
  priorityClassName: system-node-critical
  restartPolicy: Always
  schedulerName: default-scheduler
  securityContext: {}
  serviceAccount: multus-ancillary-tools
  serviceAccountName: multus-ancillary-tools
  terminationGracePeriodSeconds: 10
  tolerations:
  - operator: Exists
  volumes:
  - hostPath:
      path: /etc/kubernetes/cni/net.d
      type: ""
    name: system-cni-dir
  - hostPath:
      path: /var/run/multus/cni/net.d
      type: ""
    name: multus-cni-dir
  - hostPath:
      path: /var/lib/cni/bin
      type: ""
    name: cnibin
  - hostPath:
      path: /etc/os-release
      type: File
    name: os-release
  - configMap:
      defaultMode: 484
      name: cni-copy-resources
    name: cni-binary-copy
  - hostPath:
      path: /etc/cni/tuning/
      type: DirectoryOrCreate
    name: tuning-conf-dir
  - configMap:
      defaultMode: 484
      name: default-cni-sysctl-allowlist
    name: cni-sysctl-allowlist
  - configMap:
      defaultMode: 420
      name: whereabouts-config
    name: whereabouts-configmap
  - name: kube-api-access-kb98j
    projected:
      defaultMode: 420
      sources:
      - serviceAccountToken:
          expirationSeconds: 3607
          path: token
      - configMap:
          items:
          - key: ca.crt
            path: ca.crt
          name: kube-root-ca.crt
      - downwardAPI:
          items:
          - fieldRef:
              apiVersion: v1
              fieldPath: metadata.namespace
            path: namespace
      - configMap:
          items:
          - key: service-ca.crt
            path: service-ca.crt
          name: openshift-service-ca.crt
status:
  conditions:
  - lastProbeTime: null
    lastTransitionTime: "2025-10-27T12:17:13Z"
    status: "True"
    type: PodReadyToStartContainers
  - lastProbeTime: null
    lastTransitionTime: "2025-10-27T12:17:16Z"
    status: "True"
    type: Initialized
  - lastProbeTime: null
    lastTransitionTime: "2025-10-27T12:17:21Z"
    status: "True"
    type: Ready
  - lastProbeTime: null
    lastTransitionTime: "2025-10-27T12:17:21Z"
    status: "True"
    type: ContainersReady
  - lastProbeTime: null
    lastTransitionTime: "2025-10-27T11:29:50Z"
    status: "True"
    type: PodScheduled
  containerStatuses:
  - containerID: cri-o://4d145d15a887395844f55b7971d56642ce0ddc33f20bdc17267271d1db9d1234
    image: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:c8e2f6b1961efad0c27efa3aa2fdb099590a3f9fa7a0ddc499737703cf1390ba
    imageID: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:c8e2f6b1961efad0c27efa3aa2fdb099590a3f9fa7a0ddc499737703cf1390ba
    lastState: {}
    name: kube-multus-additional-cni-plugins
    ready: true
    restartCount: 1
    started: true
    state:
      running:
        startedAt: "2025-10-27T12:17:21Z"
    volumeMounts:
    - mountPath: /var/run/secrets/kubernetes.io/serviceaccount
      name: kube-api-access-kb98j
      readOnly: true
      recursiveReadOnly: Disabled
  hostIP: 10.46.248.42
  hostIPs:
  - ip: 10.46.248.42
  - ip: 2620:52:0:2ef8::2a
  initContainerStatuses:
  - containerID: cri-o://5b9a49ad24d196d9a4655d0b3e61e9bc7c06be7731a3ad3de01b30714f24aa9e
    image: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:85e03cb80fe42fa6977966658876ace912a4e4e8051c28a3c8704976d3dfed8b
    imageID: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:85e03cb80fe42fa6977966658876ace912a4e4e8051c28a3c8704976d3dfed8b
    lastState: {}
    name: egress-router-binary-copy
    ready: true
    restartCount: 1
    started: false
    state:
      terminated:
        containerID: cri-o://5b9a49ad24d196d9a4655d0b3e61e9bc7c06be7731a3ad3de01b30714f24aa9e
        exitCode: 0
        finishedAt: "2025-10-27T12:17:12Z"
        reason: Completed
        startedAt: "2025-10-27T12:17:12Z"
    volumeMounts:
    - mountPath: /entrypoint
      name: cni-binary-copy
    - mountPath: /host/opt/cni/bin
      name: cnibin
    - mountPath: /host/etc/os-release
      name: os-release
      readOnly: true
      recursiveReadOnly: Disabled
    - mountPath: /var/run/secrets/kubernetes.io/serviceaccount
      name: kube-api-access-kb98j
      readOnly: true
      recursiveReadOnly: Disabled
  - containerID: cri-o://3ffae605fdd100f18ecd53a57cc6dc3912a58515b5122382c573d7af27304c79
    image: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:9b6214c184fd74b5a6dd48750db17cd82326aaff12e73ff7f95e5e41150095f2
    imageID: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:9b6214c184fd74b5a6dd48750db17cd82326aaff12e73ff7f95e5e41150095f2
    lastState: {}
    name: cni-plugins
    ready: true
    restartCount: 1
    started: false
    state:
      terminated:
        containerID: cri-o://3ffae605fdd100f18ecd53a57cc6dc3912a58515b5122382c573d7af27304c79
        exitCode: 0
        finishedAt: "2025-10-27T12:17:15Z"
        reason: Completed
        startedAt: "2025-10-27T12:17:15Z"
    volumeMounts:
    - mountPath: /entrypoint
      name: cni-binary-copy
    - mountPath: /host/opt/cni/bin
      name: cnibin
    - mountPath: /host/etc/os-release
      name: os-release
      readOnly: true
      recursiveReadOnly: Disabled
    - mountPath: /host/etc/cni/tuning/
      name: tuning-conf-dir
    - mountPath: /sysctls
      name: cni-sysctl-allowlist
    - mountPath: /var/run/secrets/kubernetes.io/serviceaccount
      name: kube-api-access-kb98j
      readOnly: true
      recursiveReadOnly: Disabled
  - containerID: cri-o://4061ba7ca28f1b666b98f158d7f224c0673a920f704ef4da2e2ef97d8c388d97
    image: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:da7133ac314fc9348c2afeac818a25005190809265688e5006c72ad33070fc89
    imageID: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:da7133ac314fc9348c2afeac818a25005190809265688e5006c72ad33070fc89
    lastState: {}
    name: bond-cni-plugin
    ready: true
    restartCount: 1
    started: false
    state:
      terminated:
        containerID: cri-o://4061ba7ca28f1b666b98f158d7f224c0673a920f704ef4da2e2ef97d8c388d97
        exitCode: 0
        finishedAt: "2025-10-27T12:17:17Z"
        reason: Completed
        startedAt: "2025-10-27T12:17:17Z"
    volumeMounts:
    - mountPath: /entrypoint
      name: cni-binary-copy
    - mountPath: /host/opt/cni/bin
      name: cnibin
    - mountPath: /host/etc/os-release
      name: os-release
      readOnly: true
      recursiveReadOnly: Disabled
    - mountPath: /var/run/secrets/kubernetes.io/serviceaccount
      name: kube-api-access-kb98j
      readOnly: true
      recursiveReadOnly: Disabled
  - containerID: cri-o://eb411ff998c219c8b78a3bb577bdd9cb2c244752fade1c88414bb86587bf3036
    image: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:eafcf9c3c58c12048e8f6f09f870e59e7d911faf940099f2fe274f5124cea161
    imageID: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:eafcf9c3c58c12048e8f6f09f870e59e7d911faf940099f2fe274f5124cea161
    lastState: {}
    name: routeoverride-cni
    ready: true
    restartCount: 1
    started: false
    state:
      terminated:
        containerID: cri-o://eb411ff998c219c8b78a3bb577bdd9cb2c244752fade1c88414bb86587bf3036
        exitCode: 0
        finishedAt: "2025-10-27T12:17:18Z"
        reason: Completed
        startedAt: "2025-10-27T12:17:18Z"
    volumeMounts:
    - mountPath: /entrypoint
      name: cni-binary-copy
    - mountPath: /host/opt/cni/bin
      name: cnibin
    - mountPath: /host/etc/os-release
      name: os-release
      readOnly: true
      recursiveReadOnly: Disabled
    - mountPath: /var/run/secrets/kubernetes.io/serviceaccount
      name: kube-api-access-kb98j
      readOnly: true
      recursiveReadOnly: Disabled
  - containerID: cri-o://1ddc6d29e951d18f5dce3be7eaecf34f96ff8cee0e4ae79ca2ca3d98c48457aa
    image: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:3bc4172e1ccafcff20efd8a263fc143e70bdc5cbd8d099eae624afda4ae7e3eb
    imageID: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:3bc4172e1ccafcff20efd8a263fc143e70bdc5cbd8d099eae624afda4ae7e3eb
    lastState: {}
    name: whereabouts-cni-bincopy
    ready: true
    restartCount: 1
    started: false
    state:
      terminated:
        containerID: cri-o://1ddc6d29e951d18f5dce3be7eaecf34f96ff8cee0e4ae79ca2ca3d98c48457aa
        exitCode: 0
        finishedAt: "2025-10-27T12:17:19Z"
        reason: Completed
        startedAt: "2025-10-27T12:17:19Z"
    volumeMounts:
    - mountPath: /entrypoint
      name: cni-binary-copy
    - mountPath: /host/opt/cni/bin
      name: cnibin
    - mountPath: /host/etc/os-release
      name: os-release
      readOnly: true
      recursiveReadOnly: Disabled
    - mountPath: /var/run/secrets/kubernetes.io/serviceaccount
      name: kube-api-access-kb98j
      readOnly: true
      recursiveReadOnly: Disabled
  - containerID: cri-o://a7ddb89509efadc1d70b008e008189fcb7c608ba73af8c898a7c53845cc113d7
    image: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:3bc4172e1ccafcff20efd8a263fc143e70bdc5cbd8d099eae624afda4ae7e3eb
    imageID: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:3bc4172e1ccafcff20efd8a263fc143e70bdc5cbd8d099eae624afda4ae7e3eb
    lastState: {}
    name: whereabouts-cni
    ready: true
    restartCount: 1
    started: false
    state:
      terminated:
        containerID: cri-o://a7ddb89509efadc1d70b008e008189fcb7c608ba73af8c898a7c53845cc113d7
        exitCode: 0
        finishedAt: "2025-10-27T12:17:20Z"
        reason: Completed
        startedAt: "2025-10-27T12:17:20Z"
    volumeMounts:
    - mountPath: /host/opt/cni/bin
      name: cnibin
    - mountPath: /host/etc/cni/net.d
      name: system-cni-dir
    - mountPath: /etc/whereabouts/config
      name: whereabouts-configmap
    - mountPath: /var/run/secrets/kubernetes.io/serviceaccount
      name: kube-api-access-kb98j
      readOnly: true
      recursiveReadOnly: Disabled
  phase: Running
  podIP: 10.46.248.42
  podIPs:
  - ip: 10.46.248.42
  - ip: 2620:52:0:2ef8::2a
  qosClass: Burstable
  startTime: "2025-10-27T11:29:50Z"
