Files
toallab-automation/roles/rhoai_maas/tasks/operator.yml

70 lines
2.7 KiB
YAML

---
# 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