diff --git a/roles/kustomize_deploy/tasks/install_operators.yml b/roles/kustomize_deploy/tasks/install_operators.yml index eca39c58a2..3adffbdd9d 100644 --- a/roles/kustomize_deploy/tasks/install_operators.yml +++ b/roles/kustomize_deploy/tasks/install_operators.yml @@ -186,6 +186,14 @@ status: "True" wait_timeout: 300 + - name: Create catalog source and switch dependent operators to consume it + when: + - cifmw_openshift_setup_enable_operator_catalog_override | + default(false) | bool + ansible.builtin.import_role: + name: openshift_setup + tasks_from: patch_dependent_operators_source.yml + - name: Wait for controller-manager pods kubernetes.core.k8s_info: kubeconfig: "{{ cifmw_openshift_kubeconfig }}" @@ -198,6 +206,7 @@ type: Ready status: "True" wait_timeout: 300 + - name: Wait for webhook-server pods kubernetes.core.k8s_info: kubeconfig: "{{ cifmw_openshift_kubeconfig }}" diff --git a/roles/openshift_setup/defaults/main.yml b/roles/openshift_setup/defaults/main.yml index 871965c40b..4510e9d3aa 100644 --- a/roles/openshift_setup/defaults/main.yml +++ b/roles/openshift_setup/defaults/main.yml @@ -25,3 +25,6 @@ cifmw_openshift_setup_skip_internal_registry_tls_verify: false cifmw_openshift_setup_ca_bundle_path: "/etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem" cifmw_openshift_setup_digest_mirrors: [] cifmw_openshift_setup_metal3_watch_all_ns: false +cifmw_openshift_setup_operator_override_catalog_name: "redhat-operators-4.17" +cifmw_openshift_setup_operator_override_catalog_namespace: "openshift-marketplace" +cifmw_openshift_setup_operator_override_catalog_image: "registry.redhat.io/redhat/redhat-operator-index:v4.17" diff --git a/roles/openshift_setup/tasks/patch_dependent_operators_source.yml b/roles/openshift_setup/tasks/patch_dependent_operators_source.yml new file mode 100644 index 0000000000..117ad7327a --- /dev/null +++ b/roles/openshift_setup/tasks/patch_dependent_operators_source.yml @@ -0,0 +1,58 @@ +--- +# HACK: (Lewis) This taskfile is used to test pre-release OCP versions +# by intalling the previous OCP release's catalog source for the +# dependent operators to use and overriding there subscriptions + +- name: Write catalog source + kubernetes.core.k8s: + kubeconfig: "{{ cifmw_openshift_kubeconfig }}" + state: present + definition: + apiVersion: operators.coreos.com/v1alpha1 + kind: CatalogSource + metadata: + name: "{{ cifmw_openshift_setup_operator_override_catalog_name }}" + namespace: "{{ cifmw_openshift_setup_operator_override_catalog_namespace }}" + spec: + displayName: "{{ cifmw_openshift_setup_operator_override_catalog_name }}" + image: "{{ cifmw_openshift_setup_operator_override_catalog_image }}" + publisher: CI-Framework + sourceType: grpc + updateStrategy: + registryPoll: + interval: 10m + +- name: Patch metallb operator subscription to use custom CatalogSource + kubernetes.core.k8s: + state: patched + kind: Subscription + api_version: operators.coreos.com/v1alpha1 + kubeconfig: "{{ cifmw_openshift_kubeconfig }}" + name: metallb-operator-sub + namespace: metallb-system + definition: + spec: + source: "{{ cifmw_openshift_setup_operator_override_catalog_name }}" + wait: true + wait_timeout: 300 + wait_condition: + type: CatalogSourcesUnhealthy + status: "False" + +- name: Patch nmstate operator subscription to use custom CatalogSource + kubernetes.core.k8s: + state: patched + kind: Subscription + api_version: operators.coreos.com/v1alpha1 + kubeconfig: "{{ cifmw_openshift_kubeconfig }}" + name: kubernetes-nmstate-operator + namespace: openshift-nmstate + definition: + spec: + source: "{{ cifmw_openshift_setup_operator_override_catalog_name }}" + wait_sleep: 10 + wait: true + wait_timeout: 300 + wait_condition: + type: CatalogSourcesUnhealthy + status: "False"