--- # Install one OLM operator (Automatic approval) and wait for its CSV. # Expects __rhoai_maas_operator: {name, namespace, channel, # operator_group_target_namespaces?, namespace_labels?} - name: Create operator namespace {{ __rhoai_maas_operator.namespace }} kubernetes.core.k8s: state: present definition: apiVersion: v1 kind: Namespace metadata: name: "{{ __rhoai_maas_operator.namespace }}" labels: "{{ __rhoai_maas_operator.namespace_labels | default({}) }}" # openshift-operators already has the global-operators OperatorGroup - name: Create OperatorGroup for {{ __rhoai_maas_operator.name }} kubernetes.core.k8s: state: present definition: apiVersion: operators.coreos.com/v1 kind: OperatorGroup metadata: name: "{{ __rhoai_maas_operator.name }}" namespace: "{{ __rhoai_maas_operator.namespace }}" spec: >- {{ {'targetNamespaces': __rhoai_maas_operator.operator_group_target_namespaces} if __rhoai_maas_operator.operator_group_target_namespaces is defined else {} }} when: __rhoai_maas_operator.namespace != 'openshift-operators' - name: Subscribe to {{ __rhoai_maas_operator.name }} kubernetes.core.k8s: state: present definition: apiVersion: operators.coreos.com/v1alpha1 kind: Subscription metadata: name: "{{ __rhoai_maas_operator.name }}" namespace: "{{ __rhoai_maas_operator.namespace }}" spec: channel: "{{ __rhoai_maas_operator.channel }}" installPlanApproval: Automatic name: "{{ __rhoai_maas_operator.name }}" source: "{{ __rhoai_maas_operator.source | default('redhat-operators') }}" sourceNamespace: openshift-marketplace - name: Wait for Subscription to report an installed CSV - {{ __rhoai_maas_operator.name }} kubernetes.core.k8s_info: api_version: operators.coreos.com/v1alpha1 kind: Subscription namespace: "{{ __rhoai_maas_operator.namespace }}" name: "{{ __rhoai_maas_operator.name }}" register: __rhoai_maas_sub until: (__rhoai_maas_sub.resources[0].status.installedCSV | default('')) | length > 0 retries: "{{ __rhoai_maas_wait_retries }}" delay: 10 - name: Wait for CSV to succeed - {{ __rhoai_maas_operator.name }} kubernetes.core.k8s_info: api_version: operators.coreos.com/v1alpha1 kind: ClusterServiceVersion namespace: "{{ __rhoai_maas_operator.namespace }}" name: "{{ __rhoai_maas_sub.resources[0].status.installedCSV }}" register: __rhoai_maas_csv until: >- __rhoai_maas_csv.resources | length > 0 and __rhoai_maas_csv.resources[0].status.phase | default('') == 'Succeeded' retries: "{{ __rhoai_maas_wait_retries }}" delay: 10