apiVersion: operators.coreos.com/v1alpha1
kind: ClusterServiceVersion
metadata:
  annotations:
    operators.openshift.io/valid-subscription: '["Red Hat OpenShift support for Windows Containers"]'
    operators.operatorframework.io/builder: operator-sdk-v1.15.0+git
    operators.operatorframework.io/project_layout: go.kubebuilder.io/v3
    certified: 'false'
    olm.targetNamespaces: openshift-windows-machine-config-operator
    operatorframework.io/properties: >-
      {"properties":[{"type":"olm.package","value":{"packageName":"windows-machine-config-operator","version":"7.1.1"}}]}
    repository: 'https://github.com/openshift/windows-machine-config-operator'
    support: Red Hat
    operatorframework.io/cluster-monitoring: 'true'
    alm-examples: '[]'
    capabilities: Seamless Upgrades
    olm.operatorNamespace: openshift-windows-machine-config-operator
    createdAt: '2023-08-25T00:24:45Z'
    categories: OpenShift Optional
    operatorframework.io/suggested-namespace: openshift-windows-machine-config-operator
    description: An operator that enables Windows container workloads on OCP
    olm.operatorGroup: openshift-windows-machine-config-operator-fm25z
  resourceVersion: '31435'
  name: windows-machine-config-operator.v7.1.1
  uid: ff7785ed-d7c5-44da-9871-d1e34bf6084e
  creationTimestamp: '2023-08-28T23:07:10Z'
  generation: 1
  namespace: openshift-windows-machine-config-operator
  labels:
    operators.coreos.com/windows-machine-config-operator.openshift-windows-machine-confi: ''
spec:
  customresourcedefinitions: {}
  relatedImages:
    - image: >-
        registry.redhat.io/openshift4-wincw/windows-machine-config-rhel8-operator@sha256:6f35395690bf724d470ff50426c8541ef06f64a9a15d6f271f4be7f1e964875e
      name: manager
  cleanup:
    enabled: false
  apiservicedefinitions: {}
  keywords:
    - windows
  displayName: Windows Machine Config Operator
  provider:
    name: Red Hat
  maturity: stable
  installModes:
    - supported: true
      type: OwnNamespace
    - supported: false
      type: SingleNamespace
    - supported: false
      type: MultiNamespace
    - supported: false
      type: AllNamespaces
  version: 7.1.1
  icon:
    - base64data: >-
        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
      mediatype: image/png
  minKubeVersion: 1.25.0
  install:
    spec:
      clusterPermissions:
        - rules:
            - apiGroups:
                - ''
              resources:
                - configmaps
              verbs:
                - create
                - delete
                - get
                - list
                - patch
                - update
                - watch
            - apiGroups:
                - ''
              resources:
                - configmaps/finalizers
              verbs:
                - update
            - apiGroups:
                - ''
              resources:
                - configmaps/status
              verbs:
                - get
                - patch
                - update
            - apiGroups:
                - ''
              resources:
                - endpoints
              verbs:
                - create
                - delete
                - get
                - patch
                - update
            - apiGroups:
                - ''
              resources:
                - events
              verbs:
                - '*'
            - apiGroups:
                - ''
              resources:
                - namespaces
              verbs:
                - get
            - apiGroups:
                - ''
              resources:
                - nodes
              verbs:
                - delete
                - get
                - list
                - patch
                - watch
            - apiGroups:
                - ''
              resources:
                - pods
              verbs:
                - get
                - list
            - apiGroups:
                - ''
              resources:
                - pods/eviction
              verbs:
                - create
            - apiGroups:
                - ''
              resources:
                - secrets
              verbs:
                - create
                - get
                - list
                - update
                - watch
            - apiGroups:
                - ''
              resources:
                - services
                - services/finalizers
              verbs:
                - create
                - delete
                - get
            - apiGroups:
                - apps
              resources:
                - daemonsets
              verbs:
                - get
            - apiGroups:
                - certificates.k8s.io
              resources:
                - certificatesigningrequests
              verbs:
                - get
                - list
                - watch
            - apiGroups:
                - certificates.k8s.io
              resources:
                - certificatesigningrequests/approval
              verbs:
                - update
            - apiGroups:
                - certificates.k8s.io
              resources:
                - certificatesigningrequests/finalizers
              verbs:
                - update
            - apiGroups:
                - certificates.k8s.io
              resources:
                - certificatesigningrequests/status
              verbs:
                - get
                - patch
                - update
            - apiGroups:
                - certificates.k8s.io
              resourceNames:
                - kubernetes.io/kube-apiserver-client-kubelet
                - kubernetes.io/kubelet-serving
              resources:
                - signers
              verbs:
                - approve
            - apiGroups:
                - config.openshift.io
              resources:
                - clusteroperators
              verbs:
                - get
                - list
                - watch
            - apiGroups:
                - config.openshift.io
              resources:
                - clusterversions
                - infrastructures
              verbs:
                - get
            - apiGroups:
                - config.openshift.io
                - operator.openshift.io
              resources:
                - networks
              verbs:
                - get
            - apiGroups:
                - machine.openshift.io
              resources:
                - machines
              verbs:
                - delete
                - get
                - list
                - watch
            - apiGroups:
                - machine.openshift.io
              resources:
                - machinesets
              verbs:
                - get
                - list
                - watch
            - apiGroups:
                - machineconfiguration.openshift.io
              resources:
                - machineconfigs
              verbs:
                - list
                - watch
            - apiGroups:
                - operators.coreos.com
              resources:
                - operatorconditions
              verbs:
                - get
                - list
                - patch
                - update
                - watch
            - apiGroups:
                - rbac.authorization.k8s.io
              resources:
                - clusterrolebindings
              verbs:
                - create
                - delete
                - get
            - apiGroups:
                - rbac.authorization.k8s.io
              resources:
                - rolebindings
              verbs:
                - create
                - delete
                - get
            - apiGroups:
                - security.openshift.io
              resourceNames:
                - hostnetwork
              resources:
                - securitycontextconstraints
              verbs:
                - use
          serviceAccountName: windows-machine-config-operator
      deployments:
        - name: windows-machine-config-operator
          spec:
            replicas: 1
            selector:
              matchLabels:
                name: windows-machine-config-operator
            strategy: {}
            template:
              metadata:
                creationTimestamp: null
                labels:
                  name: windows-machine-config-operator
              spec:
                containers:
                  - command:
                      - windows-machine-config-operator
                    env:
                      - name: WATCH_NAMESPACE
                        valueFrom:
                          fieldRef:
                            fieldPath: 'metadata.annotations[''olm.targetNamespaces'']'
                      - name: POD_NAME
                        valueFrom:
                          fieldRef:
                            fieldPath: metadata.name
                      - name: OPERATOR_NAME
                        value: windows-machine-config-operator
                    image: >-
                      registry.redhat.io/openshift4-wincw/windows-machine-config-rhel8-operator@sha256:6f35395690bf724d470ff50426c8541ef06f64a9a15d6f271f4be7f1e964875e
                    imagePullPolicy: IfNotPresent
                    name: manager
                    resources: {}
                hostNetwork: true
                nodeSelector:
                  node-role.kubernetes.io/master: ''
                priorityClassName: system-cluster-critical
                serviceAccountName: windows-machine-config-operator
                terminationGracePeriodSeconds: 10
                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
      permissions:
        - rules:
            - apiGroups:
                - ''
              resources:
                - configmaps
              verbs:
                - get
                - list
                - watch
                - create
                - update
                - patch
                - delete
            - apiGroups:
                - coordination.k8s.io
              resources:
                - leases
              verbs:
                - get
                - list
                - watch
                - create
                - update
                - patch
                - delete
            - apiGroups:
                - ''
              resources:
                - events
              verbs:
                - create
                - patch
          serviceAccountName: windows-machine-config-operator
    strategy: deployment
  maintainers:
    - email: team-winc@redhat.com
      name: 'Red Hat, Windows Container Support for OpenShift'
  description: >-
    ### Introduction

    The Windows Machine Config Operator configures Windows Machines into nodes,
    enabling Windows container workloads to

    be run on OCP clusters. Windows instances can be added either by creating a
    [MachineSet](https://docs.openshift.com/container-platform/4.12/machine_management/creating_machinesets/creating-machineset-aws.html#machine-api-overview_creating-machineset-aws),

    or by specifying existing instances through a
    [ConfigMap](https://docs.openshift.com/container-platform/4.12/windows_containers/byoh-windows-instance.html)

    The operator completes all the necessary steps to configure the Windows
    instance so that it can join the cluster as a worker node.


    Usage of this operator requires an OpenShift Container Platform for Windows
    Containers subscription. Users looking to

    deploy Windows containers workloads in production clusters should acquire a
    subscription before attempting to

    install this operator. Users without a subscription can try the community
    operator, a distribution which lacks

    official support.


    ### Pre-requisites

    * A Red Hat OpenShift Container Platform for Windows Containers
    [subscription](https://access.redhat.com/support/policy/updates/openshift#windows)

    * OCP 4.12 cluster running on Azure, AWS, GCP or vSphere configured with
    hybrid OVN Kubernetes networking

    * [WMCO
    prerequisites](https://docs.openshift.com/container-platform/4.12/windows_containers/understanding-windows-container-workloads.html#wmco-prerequisites__understanding-windows-container-workloads)


    ### Usage

    Once the `openshift-windows-machine-config-operator` namespace has been
    created, a secret must be created containing

    the private key that will be used to access the Windows VMs:

    ```

    # Create secret containing the private key in the
    openshift-windows-machine-config-operator namespace

    oc create secret generic cloud-private-key
    --from-file=private-key.pem=/path/to/key -n
    openshift-windows-machine-config-operator

    ```

    We strongly recommend not using the same

    [private
    key](https://docs.openshift.com/container-platform/4.12/installing/installing_azure/installing-azure-default.html#ssh-agent-using_installing-azure-default)

    used when installing the cluster


    Below is an example of a vSphere Windows MachineSet which can create Windows
    Machines that the WMCO can react upon.

    Please note that the windows-user-data secret will be created by the WMCO
    lazily when it is configuring the first

    Windows Machine. After that, the windows-user-data will be available for the
    subsequent MachineSets to be consumed.

    It might take around 10 minutes for the Windows VM to be configured so that
    it joins the cluster. Please note that

    the MachineSet should have following labels:

    * `machine.openshift.io/os-id: Windows`

    * `machine.openshift.io/cluster-api-machine-role: worker`

    * `machine.openshift.io/cluster-api-machine-type: worker`


    The following label must be added to the Machine spec within the MachineSet
    spec:

    * `node-role.kubernetes.io/worker: ""`


    Not having these labels will result in the Windows node not being marked as
    a worker.


    `<infrastructureID>` should be replaced with the output of:

    ```

    oc get -o jsonpath='{.status.infrastructureName}{"\n"}' infrastructure
    cluster

    ```


    The following template variables need to be replaced as follows with values
    from your vSphere environment:

    * `<Windows_VM_template>`: template name

    * `<VM Network Name>`: network name

    * `<vCenter DataCenter Name>`: datacenter name

    * `<Path to VM Folder in vCenter>`: path where your OpenShift cluster is
    running

    * `<vCenter Datastore Name>`: datastore name

    * `<vCenter Server FQDN/IP>`: IP address or FQDN of the vCenter server


    Please note that on vSphere, Windows Machine names cannot be more than 15
    characters long. The MachineSet name therefore

    cannot be more than 9 characters long, due to the way Machine names are
    generated from it.

    ```

    apiVersion: machine.openshift.io/v1beta1

    kind: MachineSet

    metadata:
      labels:
        machine.openshift.io/cluster-api-cluster: <infrastructureID>
      name: winworker
      namespace: openshift-machine-api
    spec:
      replicas: 1
      selector:
        matchLabels:
          machine.openshift.io/cluster-api-cluster: <infrastructureID>
          machine.openshift.io/cluster-api-machineset: winworker
      template:
        metadata:
          labels:
            machine.openshift.io/cluster-api-cluster: <infrastructureID>
            machine.openshift.io/cluster-api-machine-role: worker
            machine.openshift.io/cluster-api-machine-type: worker
            machine.openshift.io/cluster-api-machineset: winworker
            machine.openshift.io/os-id: Windows
        spec:
          metadata:
            labels:
              node-role.kubernetes.io/worker: ""
          providerSpec:
            value:
              apiVersion: vsphereprovider.openshift.io/v1beta1
              credentialsSecret:
                name: vsphere-cloud-credentials
                namespace: openshift-machine-api
              diskGiB: 128
              kind: VSphereMachineProviderSpec
              memoryMiB: 16384
              metadata:
                creationTimestamp: null
              network:
                devices:
                - networkName: "<VM Network Name>"
              numCPUs: 4
              numCoresPerSocket: 1
              snapshot: ""
              template: <Windows_VM_template
              userDataSecret:
                name: windows-user-data
              workspace:
                datacenter: <vCenter DataCenter Name>
                datastore: <vCenter Datastore Name>
                folder: <Path to VM Folder in vCenter> # e.g. /DC/vm/ocp45-2tdrm
                server: <vCenter Server FQDN/IP>
    ```

    Example MachineSet for other cloud providers:

    -
    [AWS](https://docs.openshift.com/container-platform/4.12/windows_containers/creating_windows_machinesets/creating-windows-machineset-aws.html)

    -
    [Azure](https://docs.openshift.com/container-platform/4.12/windows_containers/creating_windows_machinesets/creating-windows-machineset-azure.html)

    -
    [GCP](https://docs.openshift.com/container-platform/4.12/windows_containers/creating_windows_machinesets/creating-windows-machineset-gcp.html)


    ### Limitations

    #### DeploymentConfigs

    Windows Nodes do not support workloads created via DeploymentConfigs. Please
    use a normal Deployment, or other method to

    deploy workloads.


    ### Reporting issues

    Support for this distribution of WMCO requires a Red Hat OpenShfit
    subscription. Support should be requested through the Red Hat Customer
    Portal.

    Please read through the [troubleshooting
    document](https://docs.openshift.com/container-platform/4.12/support/troubleshooting/troubleshooting-windows-container-workload-issues.html)

    before opening a support case.
  replaces: windows-machine-config-operator.v7.1.0
status:
  cleanup: {}
  conditions:
    - lastTransitionTime: '2023-08-28T23:07:10Z'
      lastUpdateTime: '2023-08-28T23:07:10Z'
      message: requirements not yet checked
      phase: Pending
      reason: RequirementsUnknown
    - lastTransitionTime: '2023-08-28T23:07:10Z'
      lastUpdateTime: '2023-08-28T23:07:10Z'
      message: one or more requirements couldn't be found
      phase: Pending
      reason: RequirementsNotMet
    - lastTransitionTime: '2023-08-28T23:07:12Z'
      lastUpdateTime: '2023-08-28T23:07:12Z'
      message: 'all requirements found, attempting install'
      phase: InstallReady
      reason: AllRequirementsMet
    - lastTransitionTime: '2023-08-28T23:07:13Z'
      lastUpdateTime: '2023-08-28T23:07:13Z'
      message: waiting for install components to report healthy
      phase: Installing
      reason: InstallSucceeded
    - lastTransitionTime: '2023-08-28T23:07:13Z'
      lastUpdateTime: '2023-08-28T23:07:13Z'
      message: >-
        installing: waiting for deployment windows-machine-config-operator to
        become ready: waiting for spec update of deployment
        "windows-machine-config-operator" to be observed...
      phase: Installing
      reason: InstallWaiting
    - lastTransitionTime: '2023-08-28T23:07:32Z'
      lastUpdateTime: '2023-08-28T23:07:32Z'
      message: install strategy completed with no errors
      phase: Succeeded
      reason: InstallSucceeded
    - lastTransitionTime: '2023-08-28T23:10:55Z'
      lastUpdateTime: '2023-08-28T23:10:55Z'
      message: >-
        installing: waiting for deployment windows-machine-config-operator to
        become ready: deployment "windows-machine-config-operator" not
        available: Deployment does not have minimum availability.
      phase: Failed
      reason: ComponentUnhealthy
    - lastTransitionTime: '2023-08-28T23:10:55Z'
      lastUpdateTime: '2023-08-28T23:10:55Z'
      message: >-
        installing: waiting for deployment windows-machine-config-operator to
        become ready: deployment "windows-machine-config-operator" not
        available: Deployment does not have minimum availability.
      phase: Pending
      reason: NeedsReinstall
    - lastTransitionTime: '2023-08-28T23:10:55Z'
      lastUpdateTime: '2023-08-28T23:10:55Z'
      message: 'all requirements found, attempting install'
      phase: InstallReady
      reason: AllRequirementsMet
    - lastTransitionTime: '2023-08-28T23:10:55Z'
      lastUpdateTime: '2023-08-28T23:10:55Z'
      message: waiting for install components to report healthy
      phase: Installing
      reason: InstallSucceeded
    - lastTransitionTime: '2023-08-28T23:10:55Z'
      lastUpdateTime: '2023-08-28T23:10:55Z'
      message: >-
        installing: waiting for deployment windows-machine-config-operator to
        become ready: waiting for spec update of deployment
        "windows-machine-config-operator" to be observed...
      phase: Installing
      reason: InstallWaiting
    - lastTransitionTime: '2023-08-28T23:10:56Z'
      lastUpdateTime: '2023-08-28T23:10:56Z'
      message: install strategy completed with no errors
      phase: Succeeded
      reason: InstallSucceeded
  lastTransitionTime: '2023-08-28T23:10:56Z'
  lastUpdateTime: '2023-08-28T23:10:56Z'
  message: install strategy completed with no errors
  phase: Succeeded
  reason: InstallSucceeded
  requirementStatus:
    - group: operators.coreos.com
      kind: ClusterServiceVersion
      message: CSV minKubeVersion (1.25.0) less than server version (v1.25.12+26bab08)
      name: windows-machine-config-operator.v7.1.1
      status: Present
      version: v1alpha1
    - dependents:
        - group: rbac.authorization.k8s.io
          kind: PolicyRule
          message: >-
            namespaced
            rule:{"verbs":["get","list","watch","create","update","patch","delete"],"apiGroups":[""],"resources":["configmaps"]}
          status: Satisfied
          version: v1
        - group: rbac.authorization.k8s.io
          kind: PolicyRule
          message: >-
            namespaced
            rule:{"verbs":["get","list","watch","create","update","patch","delete"],"apiGroups":["coordination.k8s.io"],"resources":["leases"]}
          status: Satisfied
          version: v1
        - group: rbac.authorization.k8s.io
          kind: PolicyRule
          message: >-
            namespaced
            rule:{"verbs":["create","patch"],"apiGroups":[""],"resources":["events"]}
          status: Satisfied
          version: v1
        - group: rbac.authorization.k8s.io
          kind: PolicyRule
          message: >-
            cluster
            rule:{"verbs":["create","delete","get","list","patch","update","watch"],"apiGroups":[""],"resources":["configmaps"]}
          status: Satisfied
          version: v1
        - group: rbac.authorization.k8s.io
          kind: PolicyRule
          message: >-
            cluster
            rule:{"verbs":["update"],"apiGroups":[""],"resources":["configmaps/finalizers"]}
          status: Satisfied
          version: v1
        - group: rbac.authorization.k8s.io
          kind: PolicyRule
          message: >-
            cluster
            rule:{"verbs":["get","patch","update"],"apiGroups":[""],"resources":["configmaps/status"]}
          status: Satisfied
          version: v1
        - group: rbac.authorization.k8s.io
          kind: PolicyRule
          message: >-
            cluster
            rule:{"verbs":["create","delete","get","patch","update"],"apiGroups":[""],"resources":["endpoints"]}
          status: Satisfied
          version: v1
        - group: rbac.authorization.k8s.io
          kind: PolicyRule
          message: 'cluster rule:{"verbs":["*"],"apiGroups":[""],"resources":["events"]}'
          status: Satisfied
          version: v1
        - group: rbac.authorization.k8s.io
          kind: PolicyRule
          message: >-
            cluster
            rule:{"verbs":["get"],"apiGroups":[""],"resources":["namespaces"]}
          status: Satisfied
          version: v1
        - group: rbac.authorization.k8s.io
          kind: PolicyRule
          message: >-
            cluster
            rule:{"verbs":["delete","get","list","patch","watch"],"apiGroups":[""],"resources":["nodes"]}
          status: Satisfied
          version: v1
        - group: rbac.authorization.k8s.io
          kind: PolicyRule
          message: >-
            cluster
            rule:{"verbs":["get","list"],"apiGroups":[""],"resources":["pods"]}
          status: Satisfied
          version: v1
        - group: rbac.authorization.k8s.io
          kind: PolicyRule
          message: >-
            cluster
            rule:{"verbs":["create"],"apiGroups":[""],"resources":["pods/eviction"]}
          status: Satisfied
          version: v1
        - group: rbac.authorization.k8s.io
          kind: PolicyRule
          message: >-
            cluster
            rule:{"verbs":["create","get","list","update","watch"],"apiGroups":[""],"resources":["secrets"]}
          status: Satisfied
          version: v1
        - group: rbac.authorization.k8s.io
          kind: PolicyRule
          message: >-
            cluster
            rule:{"verbs":["create","delete","get"],"apiGroups":[""],"resources":["services","services/finalizers"]}
          status: Satisfied
          version: v1
        - group: rbac.authorization.k8s.io
          kind: PolicyRule
          message: >-
            cluster
            rule:{"verbs":["get"],"apiGroups":["apps"],"resources":["daemonsets"]}
          status: Satisfied
          version: v1
        - group: rbac.authorization.k8s.io
          kind: PolicyRule
          message: >-
            cluster
            rule:{"verbs":["get","list","watch"],"apiGroups":["certificates.k8s.io"],"resources":["certificatesigningrequests"]}
          status: Satisfied
          version: v1
        - group: rbac.authorization.k8s.io
          kind: PolicyRule
          message: >-
            cluster
            rule:{"verbs":["update"],"apiGroups":["certificates.k8s.io"],"resources":["certificatesigningrequests/approval"]}
          status: Satisfied
          version: v1
        - group: rbac.authorization.k8s.io
          kind: PolicyRule
          message: >-
            cluster
            rule:{"verbs":["update"],"apiGroups":["certificates.k8s.io"],"resources":["certificatesigningrequests/finalizers"]}
          status: Satisfied
          version: v1
        - group: rbac.authorization.k8s.io
          kind: PolicyRule
          message: >-
            cluster
            rule:{"verbs":["get","patch","update"],"apiGroups":["certificates.k8s.io"],"resources":["certificatesigningrequests/status"]}
          status: Satisfied
          version: v1
        - group: rbac.authorization.k8s.io
          kind: PolicyRule
          message: >-
            cluster
            rule:{"verbs":["approve"],"apiGroups":["certificates.k8s.io"],"resources":["signers"],"resourceNames":["kubernetes.io/kube-apiserver-client-kubelet","kubernetes.io/kubelet-serving"]}
          status: Satisfied
          version: v1
        - group: rbac.authorization.k8s.io
          kind: PolicyRule
          message: >-
            cluster
            rule:{"verbs":["get","list","watch"],"apiGroups":["config.openshift.io"],"resources":["clusteroperators"]}
          status: Satisfied
          version: v1
        - group: rbac.authorization.k8s.io
          kind: PolicyRule
          message: >-
            cluster
            rule:{"verbs":["get"],"apiGroups":["config.openshift.io"],"resources":["clusterversions","infrastructures"]}
          status: Satisfied
          version: v1
        - group: rbac.authorization.k8s.io
          kind: PolicyRule
          message: >-
            cluster
            rule:{"verbs":["get"],"apiGroups":["config.openshift.io","operator.openshift.io"],"resources":["networks"]}
          status: Satisfied
          version: v1
        - group: rbac.authorization.k8s.io
          kind: PolicyRule
          message: >-
            cluster
            rule:{"verbs":["delete","get","list","watch"],"apiGroups":["machine.openshift.io"],"resources":["machines"]}
          status: Satisfied
          version: v1
        - group: rbac.authorization.k8s.io
          kind: PolicyRule
          message: >-
            cluster
            rule:{"verbs":["get","list","watch"],"apiGroups":["machine.openshift.io"],"resources":["machinesets"]}
          status: Satisfied
          version: v1
        - group: rbac.authorization.k8s.io
          kind: PolicyRule
          message: >-
            cluster
            rule:{"verbs":["list","watch"],"apiGroups":["machineconfiguration.openshift.io"],"resources":["machineconfigs"]}
          status: Satisfied
          version: v1
        - group: rbac.authorization.k8s.io
          kind: PolicyRule
          message: >-
            cluster
            rule:{"verbs":["get","list","patch","update","watch"],"apiGroups":["operators.coreos.com"],"resources":["operatorconditions"]}
          status: Satisfied
          version: v1
        - group: rbac.authorization.k8s.io
          kind: PolicyRule
          message: >-
            cluster
            rule:{"verbs":["create","delete","get"],"apiGroups":["rbac.authorization.k8s.io"],"resources":["clusterrolebindings"]}
          status: Satisfied
          version: v1
        - group: rbac.authorization.k8s.io
          kind: PolicyRule
          message: >-
            cluster
            rule:{"verbs":["create","delete","get"],"apiGroups":["rbac.authorization.k8s.io"],"resources":["rolebindings"]}
          status: Satisfied
          version: v1
        - group: rbac.authorization.k8s.io
          kind: PolicyRule
          message: >-
            cluster
            rule:{"verbs":["use"],"apiGroups":["security.openshift.io"],"resources":["securitycontextconstraints"],"resourceNames":["hostnetwork"]}
          status: Satisfied
          version: v1
      group: ''
      kind: ServiceAccount
      message: ''
      name: windows-machine-config-operator
      status: Present
      version: v1
