---
apiVersion: apps/v1
items:
- apiVersion: apps/v1
  kind: Deployment
  metadata:
    annotations:
      console.openshift.io/console-config-version: "21579"
      console.openshift.io/default-ingress-cert-config-version: "16626"
      console.openshift.io/image: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:08259a3570f43a3dc707ead84f600d27dfe881532c1a4fc6f0aadb6cc297ae8d
      console.openshift.io/oauth-secret-version: "16769"
      console.openshift.io/proxy-config-version: "524"
      console.openshift.io/service-ca-config-version: "16716"
      console.openshift.io/trusted-ca-config-version: "16728"
      deployment.kubernetes.io/revision: "2"
      operator.openshift.io/spec-hash: fb1bb71fbba511ed007e1a8ab050de37aeb91dd3170527ecf3faf358c7d3adbb
    creationTimestamp: "2022-03-08T10:47:37Z"
    generation: 2
    labels:
      app: console
      component: ui
    managedFields:
    - apiVersion: apps/v1
      fieldsType: FieldsV1
      fieldsV1:
        f:metadata:
          f:annotations:
            .: {}
            f:console.openshift.io/console-config-version: {}
            f:console.openshift.io/default-ingress-cert-config-version: {}
            f:console.openshift.io/image: {}
            f:console.openshift.io/oauth-secret-version: {}
            f:console.openshift.io/proxy-config-version: {}
            f:console.openshift.io/service-ca-config-version: {}
            f:console.openshift.io/trusted-ca-config-version: {}
            f:operator.openshift.io/spec-hash: {}
          f:labels:
            .: {}
            f:app: {}
            f:component: {}
        f:spec:
          f:progressDeadlineSeconds: {}
          f:replicas: {}
          f:revisionHistoryLimit: {}
          f:selector:
            f:matchLabels:
              .: {}
              f:app: {}
              f:component: {}
          f:strategy:
            f:rollingUpdate:
              .: {}
              f:maxSurge: {}
              f:maxUnavailable: {}
            f:type: {}
          f:template:
            f:metadata:
              f:annotations:
                .: {}
                f:console.openshift.io/console-config-version: {}
                f:console.openshift.io/default-ingress-cert-config-version: {}
                f:console.openshift.io/image: {}
                f:console.openshift.io/oauth-secret-version: {}
                f:console.openshift.io/proxy-config-version: {}
                f:console.openshift.io/service-ca-config-version: {}
                f:console.openshift.io/trusted-ca-config-version: {}
              f:labels:
                .: {}
                f:app: {}
                f:component: {}
              f:name: {}
            f:spec:
              f:affinity:
                .: {}
                f:podAntiAffinity:
                  .: {}
                  f:preferredDuringSchedulingIgnoredDuringExecution: {}
              f:containers:
                k:{"name":"console"}:
                  .: {}
                  f:command: {}
                  f:image: {}
                  f:imagePullPolicy: {}
                  f:lifecycle:
                    .: {}
                    f:preStop:
                      .: {}
                      f:exec:
                        .: {}
                        f:command: {}
                  f:livenessProbe:
                    .: {}
                    f:failureThreshold: {}
                    f:httpGet:
                      .: {}
                      f:path: {}
                      f:port: {}
                      f:scheme: {}
                    f:initialDelaySeconds: {}
                    f:periodSeconds: {}
                    f:successThreshold: {}
                    f:timeoutSeconds: {}
                  f:name: {}
                  f:ports:
                    .: {}
                    k:{"containerPort":8443,"protocol":"TCP"}:
                      .: {}
                      f:containerPort: {}
                      f:name: {}
                      f:protocol: {}
                  f:readinessProbe:
                    .: {}
                    f:failureThreshold: {}
                    f:httpGet:
                      .: {}
                      f:path: {}
                      f:port: {}
                      f:scheme: {}
                    f:periodSeconds: {}
                    f:successThreshold: {}
                    f:timeoutSeconds: {}
                  f:resources:
                    .: {}
                    f:requests:
                      .: {}
                      f:cpu: {}
                      f:memory: {}
                  f:terminationMessagePath: {}
                  f:terminationMessagePolicy: {}
                  f:volumeMounts:
                    .: {}
                    k:{"mountPath":"/etc/pki/ca-trust/extracted/pem"}:
                      .: {}
                      f:mountPath: {}
                      f:name: {}
                      f:readOnly: {}
                    k:{"mountPath":"/var/console-config"}:
                      .: {}
                      f:mountPath: {}
                      f:name: {}
                      f:readOnly: {}
                    k:{"mountPath":"/var/default-ingress-cert"}:
                      .: {}
                      f:mountPath: {}
                      f:name: {}
                      f:readOnly: {}
                    k:{"mountPath":"/var/oauth-config"}:
                      .: {}
                      f:mountPath: {}
                      f:name: {}
                      f:readOnly: {}
                    k:{"mountPath":"/var/service-ca"}:
                      .: {}
                      f:mountPath: {}
                      f:name: {}
                      f:readOnly: {}
                    k:{"mountPath":"/var/serving-cert"}:
                      .: {}
                      f:mountPath: {}
                      f:name: {}
                      f:readOnly: {}
              f:dnsPolicy: {}
              f:nodeSelector:
                .: {}
                f:node-role.kubernetes.io/master: {}
              f:priorityClassName: {}
              f:restartPolicy: {}
              f:schedulerName: {}
              f:securityContext: {}
              f:serviceAccount: {}
              f:serviceAccountName: {}
              f:terminationGracePeriodSeconds: {}
              f:tolerations: {}
              f:volumes:
                .: {}
                k:{"name":"console-config"}:
                  .: {}
                  f:configMap:
                    .: {}
                    f:defaultMode: {}
                    f:name: {}
                  f:name: {}
                k:{"name":"console-oauth-config"}:
                  .: {}
                  f:name: {}
                  f:secret:
                    .: {}
                    f:defaultMode: {}
                    f:secretName: {}
                k:{"name":"console-serving-cert"}:
                  .: {}
                  f:name: {}
                  f:secret:
                    .: {}
                    f:defaultMode: {}
                    f:secretName: {}
                k:{"name":"default-ingress-cert"}:
                  .: {}
                  f:configMap:
                    .: {}
                    f:defaultMode: {}
                    f:name: {}
                  f:name: {}
                k:{"name":"service-ca"}:
                  .: {}
                  f:configMap:
                    .: {}
                    f:defaultMode: {}
                    f:name: {}
                  f:name: {}
                k:{"name":"trusted-ca-bundle"}:
                  .: {}
                  f:configMap:
                    .: {}
                    f:defaultMode: {}
                    f:items: {}
                    f:name: {}
                  f:name: {}
      manager: console
      operation: Update
      time: "2022-03-08T10:47:37Z"
    - apiVersion: apps/v1
      fieldsType: FieldsV1
      fieldsV1:
        f:metadata:
          f:annotations:
            f:deployment.kubernetes.io/revision: {}
        f:status:
          f:availableReplicas: {}
          f:conditions:
            .: {}
            k:{"type":"Available"}:
              .: {}
              f:lastTransitionTime: {}
              f:lastUpdateTime: {}
              f:message: {}
              f:reason: {}
              f:status: {}
              f:type: {}
            k:{"type":"Progressing"}:
              .: {}
              f:lastTransitionTime: {}
              f:lastUpdateTime: {}
              f:message: {}
              f:reason: {}
              f:status: {}
              f:type: {}
          f:observedGeneration: {}
          f:readyReplicas: {}
          f:replicas: {}
          f:updatedReplicas: {}
      manager: kube-controller-manager
      operation: Update
      time: "2022-03-08T10:52:05Z"
    name: console
    namespace: openshift-console
    resourceVersion: "23529"
    selfLink: /apis/apps/v1/namespaces/openshift-console/deployments/console
    uid: 1d6b4c6b-8cc8-47c6-beb0-f9919c0fe49a
  spec:
    progressDeadlineSeconds: 600
    replicas: 2
    revisionHistoryLimit: 10
    selector:
      matchLabels:
        app: console
        component: ui
    strategy:
      rollingUpdate:
        maxSurge: 25%
        maxUnavailable: 25%
      type: RollingUpdate
    template:
      metadata:
        annotations:
          console.openshift.io/console-config-version: "21579"
          console.openshift.io/default-ingress-cert-config-version: "16626"
          console.openshift.io/image: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:08259a3570f43a3dc707ead84f600d27dfe881532c1a4fc6f0aadb6cc297ae8d
          console.openshift.io/oauth-secret-version: "16769"
          console.openshift.io/proxy-config-version: "524"
          console.openshift.io/service-ca-config-version: "16716"
          console.openshift.io/trusted-ca-config-version: "16728"
        creationTimestamp: null
        labels:
          app: console
          component: ui
        name: console
      spec:
        affinity:
          podAntiAffinity:
            preferredDuringSchedulingIgnoredDuringExecution:
            - podAffinityTerm:
                labelSelector:
                  matchLabels:
                    app: console
                topologyKey: kubernetes.io/hostname
              weight: 100
        containers:
        - command:
          - /opt/bridge/bin/bridge
          - --public-dir=/opt/bridge/static
          - --config=/var/console-config/console-config.yaml
          - --service-ca-file=/var/service-ca/service-ca.crt
          - --log-level=*=NOTICE
          image: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:08259a3570f43a3dc707ead84f600d27dfe881532c1a4fc6f0aadb6cc297ae8d
          imagePullPolicy: IfNotPresent
          lifecycle:
            preStop:
              exec:
                command:
                - sleep
                - "25"
          livenessProbe:
            failureThreshold: 3
            httpGet:
              path: /health
              port: 8443
              scheme: HTTPS
            initialDelaySeconds: 150
            periodSeconds: 10
            successThreshold: 1
            timeoutSeconds: 1
          name: console
          ports:
          - containerPort: 8443
            name: https
            protocol: TCP
          readinessProbe:
            failureThreshold: 3
            httpGet:
              path: /health
              port: 8443
              scheme: HTTPS
            periodSeconds: 10
            successThreshold: 1
            timeoutSeconds: 1
          resources:
            requests:
              cpu: 10m
              memory: 100Mi
          terminationMessagePath: /dev/termination-log
          terminationMessagePolicy: FallbackToLogsOnError
          volumeMounts:
          - mountPath: /var/serving-cert
            name: console-serving-cert
            readOnly: true
          - mountPath: /var/oauth-config
            name: console-oauth-config
            readOnly: true
          - mountPath: /var/console-config
            name: console-config
            readOnly: true
          - mountPath: /var/service-ca
            name: service-ca
            readOnly: true
          - mountPath: /var/default-ingress-cert
            name: default-ingress-cert
            readOnly: true
          - mountPath: /etc/pki/ca-trust/extracted/pem
            name: trusted-ca-bundle
            readOnly: true
        dnsPolicy: ClusterFirst
        nodeSelector:
          node-role.kubernetes.io/master: ""
        priorityClassName: system-cluster-critical
        restartPolicy: Always
        schedulerName: default-scheduler
        securityContext: {}
        serviceAccount: console
        serviceAccountName: console
        terminationGracePeriodSeconds: 40
        tolerations:
        - effect: NoSchedule
          key: node-role.kubernetes.io/master
          operator: Exists
        - effect: NoExecute
          key: node.kubernetes.io/unreachable
          operator: Exists
          tolerationSeconds: 120
        - effect: NoExecute
          key: node.kubernetes.io/not-reachable
          operator: Exists
          tolerationSeconds: 120
        volumes:
        - name: console-serving-cert
          secret:
            defaultMode: 420
            secretName: console-serving-cert
        - name: console-oauth-config
          secret:
            defaultMode: 420
            secretName: console-oauth-config
        - configMap:
            defaultMode: 420
            name: console-config
          name: console-config
        - configMap:
            defaultMode: 420
            name: service-ca
          name: service-ca
        - configMap:
            defaultMode: 420
            name: default-ingress-cert
          name: default-ingress-cert
        - configMap:
            defaultMode: 420
            items:
            - key: ca-bundle.crt
              path: tls-ca-bundle.pem
            name: trusted-ca-bundle
          name: trusted-ca-bundle
  status:
    availableReplicas: 2
    conditions:
    - lastTransitionTime: "2022-03-08T10:47:37Z"
      lastUpdateTime: "2022-03-08T10:51:36Z"
      message: ReplicaSet "console-7d6f969d46" has successfully progressed.
      reason: NewReplicaSetAvailable
      status: "True"
      type: Progressing
    - lastTransitionTime: "2022-03-08T10:52:05Z"
      lastUpdateTime: "2022-03-08T10:52:05Z"
      message: Deployment has minimum availability.
      reason: MinimumReplicasAvailable
      status: "True"
      type: Available
    observedGeneration: 2
    readyReplicas: 2
    replicas: 2
    updatedReplicas: 2
- apiVersion: apps/v1
  kind: Deployment
  metadata:
    annotations:
      deployment.kubernetes.io/revision: "1"
    creationTimestamp: "2022-03-08T10:43:25Z"
    generation: 1
    managedFields:
    - apiVersion: apps/v1
      fieldsType: FieldsV1
      fieldsV1:
        f:spec:
          f:progressDeadlineSeconds: {}
          f:replicas: {}
          f:revisionHistoryLimit: {}
          f:selector:
            f:matchLabels:
              .: {}
              f:app: {}
              f:component: {}
          f:strategy:
            f:rollingUpdate:
              .: {}
              f:maxSurge: {}
              f:maxUnavailable: {}
            f:type: {}
          f:template:
            f:metadata:
              f:labels:
                .: {}
                f:app: {}
                f:component: {}
              f:name: {}
            f:spec:
              f:containers:
                k:{"name":"download-server"}:
                  .: {}
                  f:args: {}
                  f:command: {}
                  f:image: {}
                  f:imagePullPolicy: {}
                  f:livenessProbe:
                    .: {}
                    f:failureThreshold: {}
                    f:httpGet:
                      .: {}
                      f:path: {}
                      f:port: {}
                      f:scheme: {}
                    f:periodSeconds: {}
                    f:successThreshold: {}
                    f:timeoutSeconds: {}
                  f:name: {}
                  f:ports:
                    .: {}
                    k:{"containerPort":8080,"protocol":"TCP"}:
                      .: {}
                      f:containerPort: {}
                      f:name: {}
                      f:protocol: {}
                  f:readinessProbe:
                    .: {}
                    f:failureThreshold: {}
                    f:httpGet:
                      .: {}
                      f:path: {}
                      f:port: {}
                      f:scheme: {}
                    f:periodSeconds: {}
                    f:successThreshold: {}
                    f:timeoutSeconds: {}
                  f:resources:
                    .: {}
                    f:requests:
                      .: {}
                      f:cpu: {}
                      f:memory: {}
                  f:terminationMessagePath: {}
                  f:terminationMessagePolicy: {}
              f:dnsPolicy: {}
              f:nodeSelector:
                .: {}
                f:kubernetes.io/os: {}
              f:restartPolicy: {}
              f:schedulerName: {}
              f:securityContext: {}
              f:terminationGracePeriodSeconds: {}
              f:tolerations: {}
      manager: cluster-version-operator
      operation: Update
      time: "2022-03-08T10:43:25Z"
    - apiVersion: apps/v1
      fieldsType: FieldsV1
      fieldsV1:
        f:metadata:
          f:annotations:
            .: {}
            f:deployment.kubernetes.io/revision: {}
        f:status:
          f:availableReplicas: {}
          f:conditions:
            .: {}
            k:{"type":"Available"}:
              .: {}
              f:lastTransitionTime: {}
              f:lastUpdateTime: {}
              f:message: {}
              f:reason: {}
              f:status: {}
              f:type: {}
            k:{"type":"Progressing"}:
              .: {}
              f:lastTransitionTime: {}
              f:lastUpdateTime: {}
              f:message: {}
              f:reason: {}
              f:status: {}
              f:type: {}
          f:observedGeneration: {}
          f:readyReplicas: {}
          f:replicas: {}
          f:updatedReplicas: {}
      manager: kube-controller-manager
      operation: Update
      time: "2022-03-08T10:44:52Z"
    name: downloads
    namespace: openshift-console
    resourceVersion: "17625"
    selfLink: /apis/apps/v1/namespaces/openshift-console/deployments/downloads
    uid: 5a6267c6-85d0-4e16-a269-4feecbdc0171
  spec:
    progressDeadlineSeconds: 600
    replicas: 2
    revisionHistoryLimit: 10
    selector:
      matchLabels:
        app: console
        component: downloads
    strategy:
      rollingUpdate:
        maxSurge: 25%
        maxUnavailable: 25%
      type: RollingUpdate
    template:
      metadata:
        creationTimestamp: null
        labels:
          app: console
          component: downloads
        name: downloads
      spec:
        containers:
        - args:
          - -c
          - "cat <<EOF >>/tmp/serve.py\nimport errno, http.server, os, re, signal, socket, sys, tarfile, tempfile, threading, time, zipfile\n\nsignal.signal(signal.SIGTERM, lambda signum, frame: sys.exit(0))\n\ndef write_index(path, message):\n    with open(path, 'wb') as f:\n        f.write('\\n'.join([\n            '<!doctype html>',\n            '<html lang=\"en\">',\n            '<head>',\n            '  <meta charset=\"utf-8\">',\n            '</head>',\n            '<body>',\n            '  {}'.format(message),\n            '</body>',\n            '</html>',\n            '',\n        ]).encode('utf-8'))\n\n# Launch multiple listeners as threads\nclass Thread(threading.Thread):\n    def __init__(self, i, socket):\n        threading.Thread.__init__(self)\n        self.i = i\n        self.socket = socket\n        self.daemon = True\n        self.start()\n\n    def run(self):\n        httpd = http.server.HTTPServer(addr, http.server.SimpleHTTPRequestHandler, False)\n\n        # Prevent the HTTP server from re-binding every handler.\n        # https://stackoverflow.com/questions/46210672/\n        httpd.socket = self.socket\n        httpd.server_bind = self.server_close = lambda self: None\n\n        httpd.serve_forever()\n\ntemp_dir = tempfile.mkdtemp()\nprint('serving from {}'.format(temp_dir))\nos.chdir(temp_dir)\nfor arch in ['amd64']:\n    os.mkdir(arch)\n    for operating_system in ['linux', 'mac', 'windows']:\n        os.mkdir(os.path.join(arch, operating_system))\nfor arch in ['arm64', 'ppc64le', 's390x']:\n    os.mkdir(arch)\n    for operating_system in ['linux']:\n        os.mkdir(os.path.join(arch, operating_system))\ncontent = ['<a href=\"oc-license\">license</a>']\nos.symlink('/usr/share/openshift/LICENSE', 'oc-license')\n\nfor arch, operating_system, path in [\n        ('amd64', 'linux', '/usr/share/openshift/linux_amd64/oc'),\n        ('amd64', 'mac', '/usr/share/openshift/mac/oc'),\n        ('amd64', 'windows', '/usr/share/openshift/windows/oc.exe'),\n        ('arm64', 'linux', '/usr/share/openshift/linux_arm64/oc'),\n        ('ppc64le', 'linux', '/usr/share/openshift/linux_ppc64le/oc'),\n        ('s390x', 'linux', '/usr/share/openshift/linux_s390x/oc'),\n        ]:\n    basename = os.path.basename(path)\n    target_path = os.path.join(arch, operating_system, basename)\n    os.symlink(path, target_path)\n    base_root, _ = os.path.splitext(basename)\n    archive_path_root = os.path.join(arch, operating_system, base_root)\n    with tarfile.open('{}.tar'.format(archive_path_root), 'w') as tar:\n        tar.add(path, basename)\n    with zipfile.ZipFile('{}.zip'.format(archive_path_root), 'w') as zip:\n        zip.write(path, basename)\n    content.append('<a href=\"{0}\">oc ({1} {2})</a> (<a href=\"{0}.tar\">tar</a> <a href=\"{0}.zip\">zip</a>)'.format(target_path, arch, operating_system))\n\nfor root, directories, filenames in os.walk(temp_dir):\n    root_link = os.path.relpath(temp_dir, os.path.join(root, 'child')).replace(os.path.sep, '/')\n    for directory in directories:\n        write_index(\n            path=os.path.join(root, directory, 'index.html'),\n            message='<p>Directory listings are disabled.  See <a href=\"{}\">here</a> for available content.</p>'.format(root_link),\n        )\n\nwrite_index(\n    path=os.path.join(temp_dir, 'index.html'),\n    message='\\n'.join(\n        ['<ul>'] +\n        ['  <li>{}</li>'.format(entry) for entry in content] +\n        ['</ul>']\n    ),\n)\n\n# Create socket\n# IPv6 should handle IPv4 passively so long as it is not bound to a\n# specific address or set to IPv6_ONLY\n# https://stackoverflow.com/questions/25817848/python-3-does-http-server-support-ipv6\ntry:\n    addr = ('::', 8080)\n    sock = socket.socket(socket.AF_INET6, socket.SOCK_STREAM)\nexcept socket.error as err:\n    # errno.EAFNOSUPPORT is \"socket.error: [Errno 97] Address family not supported by protocol\"\n    # When IPv6 is disabled, socket will bind using IPv4.\n    if err.errno == errno.EAFNOSUPPORT:\n        addr = ('', 8080)\n        sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)\n    else:\n        raise    \nsock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)\nsock.bind(addr)\nsock.listen(5)\n\n[Thread(i, socket=sock) for i in range(100)]\ntime.sleep(9e9)\nEOF\nexec python3 /tmp/serve.py\n"
          command:
          - /bin/sh
          image: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:6494c710e14aaa44d36c1f0b16cfa170b905a290b88707b5caac15ae5e5de916
          imagePullPolicy: IfNotPresent
          livenessProbe:
            failureThreshold: 3
            httpGet:
              path: /
              port: 8080
              scheme: HTTP
            periodSeconds: 10
            successThreshold: 1
            timeoutSeconds: 1
          name: download-server
          ports:
          - containerPort: 8080
            name: http
            protocol: TCP
          readinessProbe:
            failureThreshold: 3
            httpGet:
              path: /
              port: 8080
              scheme: HTTP
            periodSeconds: 10
            successThreshold: 1
            timeoutSeconds: 1
          resources:
            requests:
              cpu: 10m
              memory: 50Mi
          terminationMessagePath: /dev/termination-log
          terminationMessagePolicy: FallbackToLogsOnError
        dnsPolicy: ClusterFirst
        nodeSelector:
          kubernetes.io/os: linux
        restartPolicy: Always
        schedulerName: default-scheduler
        securityContext: {}
        terminationGracePeriodSeconds: 1
        tolerations:
        - effect: NoSchedule
          key: node-role.kubernetes.io/master
          operator: Exists
        - effect: NoExecute
          key: node.kubernetes.io/unreachable
          operator: Exists
          tolerationSeconds: 120
        - effect: NoExecute
          key: node.kubernetes.io/not-ready
          operator: Exists
          tolerationSeconds: 120
  status:
    availableReplicas: 2
    conditions:
    - lastTransitionTime: "2022-03-08T10:44:52Z"
      lastUpdateTime: "2022-03-08T10:44:52Z"
      message: Deployment has minimum availability.
      reason: MinimumReplicasAvailable
      status: "True"
      type: Available
    - lastTransitionTime: "2022-03-08T10:43:25Z"
      lastUpdateTime: "2022-03-08T10:44:52Z"
      message: ReplicaSet "downloads-88d4c8dfb" has successfully progressed.
      reason: NewReplicaSetAvailable
      status: "True"
      type: Progressing
    observedGeneration: 1
    readyReplicas: 2
    replicas: 2
    updatedReplicas: 2
kind: DeploymentList
metadata:
  resourceVersion: "82657"
  selfLink: /apis/apps/v1/namespaces/openshift-console/deployments
