From d37c1627458de230d9e277b00d506eb64278d0b2 Mon Sep 17 00:00:00 2001 From: Wolfgang Kulhanek <WolfgangKulhanek@gmail.com> Date: Thu, 08 Aug 2019 23:27:50 +0200 Subject: [PATCH] Various fixes for operators. Major rework of logging workload. --- ansible/roles/ocp4-workload-logging/tasks/workload.yml | 81 ++++++++++++++++++++++------------------ ansible/roles/ocp4-workload-template-service-broker/defaults/main.yml | 1 ansible/roles/ocp4-workload-automation-broker/templates/subscription.j2 | 1 ansible/roles/ocp4-workload-template-service-broker/tasks/test.yaml | 23 +++++++++++ ansible/roles/ocp4-workload-template-service-broker/tasks/workload.yml | 3 - ansible/roles/ocp4-workload-template-service-broker/templates/subscription.j2 | 1 ansible/roles/ocp4-workload-automation-broker/tasks/workload.yml | 2 ansible/roles/ocp4-workload-template-service-broker/readme.adoc | 1 ansible/roles/ocp4-workload-automation-broker/readme.adoc | 1 ansible/roles/ocp4-workload-logging/tasks/remove_workload.yml | 4 +- ansible/roles/ocp4-workload-automation-broker/defaults/main.yml | 1 11 files changed, 72 insertions(+), 47 deletions(-) diff --git a/ansible/roles/ocp4-workload-automation-broker/defaults/main.yml b/ansible/roles/ocp4-workload-automation-broker/defaults/main.yml index 2e6be05..c0012f2 100644 --- a/ansible/roles/ocp4-workload-automation-broker/defaults/main.yml +++ b/ansible/roles/ocp4-workload-automation-broker/defaults/main.yml @@ -5,7 +5,6 @@ _asb_broker_project: openshift-automation-broker _asb_broker_project_display: "OpenShift Automation Broker" -_asb_broker_subscription_csv: "openshiftansibleservicebroker.v4.1.2" # One of the following needs to be True diff --git a/ansible/roles/ocp4-workload-automation-broker/readme.adoc b/ansible/roles/ocp4-workload-automation-broker/readme.adoc index ef0d07c..39f6828 100644 --- a/ansible/roles/ocp4-workload-automation-broker/readme.adoc +++ b/ansible/roles/ocp4-workload-automation-broker/readme.adoc @@ -29,7 +29,6 @@ * Other variables: ** *_asb_broker_project*: The name of the project to create and install the Automation Broker to. Default: `openshift-automation-broker` ** *_asb_broker_project_display*: The display name of the project. Default: `OpenShift Automation Broker` -** *_asb_broker_subscription_csv*: The ClusterServiceVersion to be deployed. Default: `automationbrokeroperator.v4.1.0` * You can modify any of these default values by adding `-e "variable_name=variable_value"` to the command line === Deploy a Workload with the `ocp-workload` playbook [Mostly for testing] diff --git a/ansible/roles/ocp4-workload-automation-broker/tasks/workload.yml b/ansible/roles/ocp4-workload-automation-broker/tasks/workload.yml index 7d061bc..525b741 100644 --- a/ansible/roles/ocp4-workload-automation-broker/tasks/workload.yml +++ b/ansible/roles/ocp4-workload-automation-broker/tasks/workload.yml @@ -35,8 +35,8 @@ register: csv retries: 25 delay: 10 - until: csv.stdout == "Succeeded" ignore_errors: yes + until: csv.stdout == "Succeeded" - name: Notify user if Automation Broker operator deployment failed when: not csv.stdout == "Succeeded" diff --git a/ansible/roles/ocp4-workload-automation-broker/templates/subscription.j2 b/ansible/roles/ocp4-workload-automation-broker/templates/subscription.j2 index 434a6df..07af79e 100644 --- a/ansible/roles/ocp4-workload-automation-broker/templates/subscription.j2 +++ b/ansible/roles/ocp4-workload-automation-broker/templates/subscription.j2 @@ -12,4 +12,3 @@ name: openshiftansibleservicebroker source: "installed-redhat-{{ _asb_broker_project }}" sourceNamespace: "{{ _asb_broker_project }}" -# startingCSV: "{{ _asb_broker_subscription_csv }}" diff --git a/ansible/roles/ocp4-workload-logging/tasks/remove_workload.yml b/ansible/roles/ocp4-workload-logging/tasks/remove_workload.yml index cfa986b..89eaa03 100644 --- a/ansible/roles/ocp4-workload-logging/tasks/remove_workload.yml +++ b/ansible/roles/ocp4-workload-logging/tasks/remove_workload.yml @@ -1,7 +1,7 @@ # vim: set ft=ansible --- # Implement your Workload removal tasks here -- name: remove logging cr +- name: Remove Logging CR k8s: state: absent definition: @@ -20,7 +20,7 @@ namespace: openshift-logging register: logging_pods until: logging_pods.resources | list | length <= 1 - retries: 100 + retries: 20 delay: 10 - name: logging operatorgroup diff --git a/ansible/roles/ocp4-workload-logging/tasks/workload.yml b/ansible/roles/ocp4-workload-logging/tasks/workload.yml index 6b3219e..2f5d1c5 100644 --- a/ansible/roles/ocp4-workload-logging/tasks/workload.yml +++ b/ansible/roles/ocp4-workload-logging/tasks/workload.yml @@ -18,63 +18,72 @@ - ./files/logging_catalog_source.yaml - ./files/logging_subscription.yaml -- name: Wait for Elasticsearch and Logging CRDs - ignore_errors: yes +- name: Wait for Elasticsearch CRD k8s_facts: api_version: apiextensions.k8s.io/v1beta1 kind: CustomResourceDefinition - name: "{{ item }}" - register: crd_exists - until: crd_exists.resources | list | length >= 1 + name: elasticsearches.logging.openshift.io + register: r_elasticsearch_crd retries: 20 delay: 10 - with_items: - - "clusterloggings.logging.openshift.io" - - "elasticsearches.logging.openshift.io" + ignore_errors: yes + until: r_elasticsearch_crd.resources | list | length == 1 -- name: Notify user if Logging operator deployment failed - when: crd_exists.resources | list | length == 0 +- name: Notify user if Elasticsearch deployment failed + when: not r_elasticsearch_crd.resources | list | length == 1 debug: - msg: "user.info: *** Elasticsearch / Logging could not be installed ***" + msg: "user.info: *** Elasticsearch operator could not be installed ***" + +- name: Wait for Logging CRD + k8s_facts: + api_version: apiextensions.k8s.io/v1beta1 + kind: CustomResourceDefinition + name: clusterloggings.logging.openshift.io + register: r_logging_crd + retries: 20 + delay: 10 + ignore_errors: yes + until: r_logging_crd.resources | list | length == 1 + +- name: Notify user if Logging deployment failed + when: not r_logging_crd.resources | list | length == 1 + debug: + msg: "user.info: *** Logging operator could not be installed ***" - name: Deploy Logging - when: crd_exists.resources | list | length >= 1 + when: + - r_logging_crd.resources | list | length == 1 + - r_elasticsearch_crd.resources | list | length == 1 block: - name: Create OpenShift Objects for ClusterLogging - ignore_errors: yes k8s: state: present merge_type: - strategic-merge - merge definition: "{{ lookup('template', item ) | from_yaml }}" + ignore_errors: yes loop: - ./templates/cluster_logging.j2 - - - name: Wait for Elasticsearch Deployments to exist - ignore_errors: yes - k8s_facts: - api_version: extensions/v1beta1 - kind: Deployment - namespace: openshift-logging - label_selectors: - - component = elasticsearch - register: elastic_deployments - until: elastic_deployments.resources | list | length >= 1 - retries: 100 - delay: 10 - # could this also use k8s_facts in some way? - - name: wait for running elasticsearch - ignore_errors: yes - when: - - _logging_wait_for_deployment|bool - shell: "oc get deployment {{ item.metadata.name }} -n openshift-logging -o jsonpath='{.status.readyReplicas}'" - register: replicas_out - retries: 100 + - name: Sleep to give the status field a chance to populate + when: _logging_wait_for_deployment | bool + pause: + seconds: 60 + + - name: Wait until Elasticsearch Cluster Status is green + when: _logging_wait_for_deployment| bool + k8s_facts: + api_version: logging.openshift.io/v1 + kind: ClusterLogging + name: instance + namespace: openshift-logging + register: r_logging + retries: 30 delay: 10 - with_items: "{{ elastic_deployments.resources }}" - until: replicas_out.stdout | int == 1 + ignore_errors: yes + until: + - r_logging.resources[0].status.logStore.elasticsearchStatus[0].clusterHealth == "green" # Leave this as the last task in the playbook. - name: workload tasks complete diff --git a/ansible/roles/ocp4-workload-template-service-broker/defaults/main.yml b/ansible/roles/ocp4-workload-template-service-broker/defaults/main.yml index 78acf69..8d5c522 100644 --- a/ansible/roles/ocp4-workload-template-service-broker/defaults/main.yml +++ b/ansible/roles/ocp4-workload-template-service-broker/defaults/main.yml @@ -5,5 +5,4 @@ _tsb_broker_project: openshift-template-service-broker _tsb_broker_project_display: "OpenShift Template Service Broker" -_tsb_broker_subscription_csv: "openshifttemplateservicebrokeroperator.v4.1.2" _tsb_broker_size: "1" diff --git a/ansible/roles/ocp4-workload-template-service-broker/readme.adoc b/ansible/roles/ocp4-workload-template-service-broker/readme.adoc index 144d39f..e346a5d 100644 --- a/ansible/roles/ocp4-workload-template-service-broker/readme.adoc +++ b/ansible/roles/ocp4-workload-template-service-broker/readme.adoc @@ -29,7 +29,6 @@ * Other variables: ** *_tsb_broker_project*: The name of the project to create and install the Template Service Broker to. Default: `openshift-template-service-broker` ** *_tsb_broker_project_display*: The display name of the project. Default: `OpenShift Template Service Broker` -** *_tsb_broker_subscription_csv*: The ClusterServiceVersion to be deployed. Default: `templateservicebrokeroperator.v4.1.0` * You can modify any of these default values by adding `-e "variable_name=variable_value"` to the command line === Deploy a Workload with the `ocp-workload` playbook [Mostly for testing] diff --git a/ansible/roles/ocp4-workload-template-service-broker/tasks/test.yaml b/ansible/roles/ocp4-workload-template-service-broker/tasks/test.yaml new file mode 100644 index 0000000..dc0149a --- /dev/null +++ b/ansible/roles/ocp4-workload-template-service-broker/tasks/test.yaml @@ -0,0 +1,23 @@ +--- +- name: Get CSV + hosts: localhost + become: no + tasks: + - name: Wait for CSV to be successful + k8s_facts: + api_version: + kind: + namespace: openshift-template-service-broker + register: r_csv + ignore_errors: yes + delay: 10 + retries: 25 + until: r_csv | selectattr('metadata.name', 'match', '^openshifttemplateservicebrokeroperator') | list + + # - name: Wait until CSV is Installed + # command: oc get csv -o jsonpath --template='{$.items[:1].status.phase}' -n "{{ _tsb_broker_project }}" + # register: csv + # retries: 25 + # delay: 10 + # ignore_errors: yes + # until: csv.stdout == "Succeeded" diff --git a/ansible/roles/ocp4-workload-template-service-broker/tasks/workload.yml b/ansible/roles/ocp4-workload-template-service-broker/tasks/workload.yml index 37467fb..bfecdd2 100644 --- a/ansible/roles/ocp4-workload-template-service-broker/tasks/workload.yml +++ b/ansible/roles/ocp4-workload-template-service-broker/tasks/workload.yml @@ -33,13 +33,12 @@ - ./templates/cluster_role_binding.j2 - name: Wait until CSV is Installed - ignore_errors: yes command: oc get csv -o jsonpath --template='{$.items[:1].status.phase}' -n "{{ _tsb_broker_project }}" register: csv retries: 25 delay: 10 - until: csv.stdout == "Succeeded" ignore_errors: yes + until: csv.stdout == "Succeeded" - name: Notify user if Template Service Broker operator deployment failed when: not csv.stdout == "Succeeded" diff --git a/ansible/roles/ocp4-workload-template-service-broker/templates/subscription.j2 b/ansible/roles/ocp4-workload-template-service-broker/templates/subscription.j2 index 8f1eb63..d475ad6 100644 --- a/ansible/roles/ocp4-workload-template-service-broker/templates/subscription.j2 +++ b/ansible/roles/ocp4-workload-template-service-broker/templates/subscription.j2 @@ -12,4 +12,3 @@ name: openshifttemplateservicebroker source: "installed-redhat-{{ _tsb_broker_project }}" sourceNamespace: "{{ _tsb_broker_project }}" -# startingCSV: "{{ _tsb_broker_subscription_csv }}" -- Gitblit v1.9.3