From d3e814cd468d39c5b38f8a81d1d4bc2d165b7842 Mon Sep 17 00:00:00 2001 From: Gareth Healy <garethahealy@gmail.com> Date: Sun, 01 Mar 2020 15:24:29 +0100 Subject: [PATCH] Improved checks to not deploy running components (#1211) --- ansible/roles/ocp4-workload-pam-fraudmanagement-workshop/tasks/workload_per_project_businessautomationworkload.yml | 13 +-- ansible/roles/ocp4-workload-pam-fraudmanagement-workshop/defaults/main.yml | 4 + ansible/roles/ocp4-workload-pam-fraudmanagement-workshop-verification/tasks/workload_project.yml | 7 ++ ansible/roles/ocp4-workload-pam-fraudmanagement-workshop/tasks/workload_project.yml | 2 ansible/roles/ocp4-workload-pam-fraudmanagement-workshop-verification/defaults/main.yml | 4 + ansible/roles/ocp4-workload-pam-fraudmanagement-workshop-verification/tasks/workload_per_project_businessautomationworkload.yml | 49 ---------------- ansible/roles/ocp4-workload-pam-fraudmanagement-workshop/tasks/workload_per_project_fuseworkload.yml | 13 +++ ansible/roles/ocp4-workload-pam-fraudmanagement-workshop-verification/tasks/workload_per_project_businessautomation.yml | 49 ++++++++++++++++ ansible/roles/ocp4-workload-pam-fraudmanagement-workshop/templates/bucketrepo/deployment.j2 | 6 +- 9 files changed, 82 insertions(+), 65 deletions(-) diff --git a/ansible/roles/ocp4-workload-pam-fraudmanagement-workshop-verification/defaults/main.yml b/ansible/roles/ocp4-workload-pam-fraudmanagement-workshop-verification/defaults/main.yml index 1e6dc77..c2cb179 100644 --- a/ansible/roles/ocp4-workload-pam-fraudmanagement-workshop-verification/defaults/main.yml +++ b/ansible/roles/ocp4-workload-pam-fraudmanagement-workshop-verification/defaults/main.yml @@ -12,4 +12,6 @@ _user_login_password: openshift -_kie_container_id: proactive-fraud-detection-case_1.0.0-SNAPSHOT \ No newline at end of file +_kie_container_id: proactive-fraud-detection-case_1.0.0-SNAPSHOT + +_deploy_workload: true \ No newline at end of file diff --git a/ansible/roles/ocp4-workload-pam-fraudmanagement-workshop-verification/tasks/workload_per_project_businessautomation.yml b/ansible/roles/ocp4-workload-pam-fraudmanagement-workshop-verification/tasks/workload_per_project_businessautomation.yml new file mode 100644 index 0000000..447477d --- /dev/null +++ b/ansible/roles/ocp4-workload-pam-fraudmanagement-workshop-verification/tasks/workload_per_project_businessautomation.yml @@ -0,0 +1,49 @@ +--- +- name: Check BusinessCentral is running + command: > + oc rollout status DeploymentConfig/rhpam-authoring-rhpamcentr --watch=true -n "{{ _namespace }}" + +- name: Check KieServer is running + command: > + oc rollout status DeploymentConfig/rhpam-authoring-kieserver --watch=true -n "{{ _namespace }}" + +- name: Get Business Central route host + command: > + oc get route/rhpam-authoring-rhpamcentr -o jsonpath='{.spec.host}' -n "{{ _namespace }}" + register: businesscentral_host + retries: "{{ _retry }}" + delay: "{{ _delay }}" + until: businesscentral_host.stdout != "" + +- name: Get Business Central route host + command: > + oc get route/rhpam-authoring-kieserver -o jsonpath='{.spec.host}' -n "{{ _namespace }}" + register: kieserver_host + retries: "{{ _retry }}" + delay: "{{ _delay }}" + until: kieserver_host.stdout != "" + +- name: Wait for Business Central route to respond with 200 + uri: + url: "https://{{ businesscentral_host.stdout }}" + method: GET + validate_certs: false + follow_redirects: yes + register: bizcentralresult + retries: "{{ _retry }}" + delay: "{{ _delay }}" + until: bizcentralresult.status == 200 + +- name: Wait for Kie Server route to respond with 200 + uri: + url: "https://{{ kieserver_host.stdout }}/services/rest/server" + method: GET + validate_certs: false + follow_redirects: yes + user: "{{ _namespace }}" + password: "{{ _account_password }}" + force_basic_auth: true + register: kieserverresult + retries: "{{ _retry }}" + delay: "{{ _delay }}" + until: kieserverresult.status == 200 \ No newline at end of file diff --git a/ansible/roles/ocp4-workload-pam-fraudmanagement-workshop-verification/tasks/workload_per_project_businessautomationworkload.yml b/ansible/roles/ocp4-workload-pam-fraudmanagement-workshop-verification/tasks/workload_per_project_businessautomationworkload.yml index c7414fe..e7fb6bb 100644 --- a/ansible/roles/ocp4-workload-pam-fraudmanagement-workshop-verification/tasks/workload_per_project_businessautomationworkload.yml +++ b/ansible/roles/ocp4-workload-pam-fraudmanagement-workshop-verification/tasks/workload_per_project_businessautomationworkload.yml @@ -1,53 +1,4 @@ --- -- name: Check BusinessCentral is running - command: > - oc rollout status DeploymentConfig/rhpam-authoring-rhpamcentr --watch=true -n "{{ _namespace }}" - -- name: Check KieServer is running - command: > - oc rollout status DeploymentConfig/rhpam-authoring-kieserver --watch=true -n "{{ _namespace }}" - -- name: Get Business Central route host - command: > - oc get route/rhpam-authoring-rhpamcentr -o jsonpath='{.spec.host}' -n "{{ _namespace }}" - register: businesscentral_host - retries: "{{ _retry }}" - delay: "{{ _delay }}" - until: businesscentral_host.stdout != "" - -- name: Get Business Central route host - command: > - oc get route/rhpam-authoring-kieserver -o jsonpath='{.spec.host}' -n "{{ _namespace }}" - register: kieserver_host - retries: "{{ _retry }}" - delay: "{{ _delay }}" - until: kieserver_host.stdout != "" - -- name: Wait for Business Central route to respond with 200 - uri: - url: "https://{{ businesscentral_host.stdout }}" - method: GET - validate_certs: false - follow_redirects: yes - register: bizcentralresult - retries: "{{ _retry }}" - delay: "{{ _delay }}" - until: bizcentralresult.status == 200 - -- name: Wait for Kie Server route to respond with 200 - uri: - url: "https://{{ kieserver_host.stdout }}/services/rest/server" - method: GET - validate_certs: false - follow_redirects: yes - user: "{{ _namespace }}" - password: "{{ _account_password }}" - force_basic_auth: true - register: kieserverresult - retries: "{{ _retry }}" - delay: "{{ _delay }}" - until: kieserverresult.status == 200 - - name: Check proactive-fraud-detection-case responds with 201 uri: url: "https://{{ kieserver_host.stdout }}/services/rest/server/containers/{{ _kie_container_id }}/cases/proactivefrauddetectioncase.fraud-case/instances" diff --git a/ansible/roles/ocp4-workload-pam-fraudmanagement-workshop-verification/tasks/workload_project.yml b/ansible/roles/ocp4-workload-pam-fraudmanagement-workshop-verification/tasks/workload_project.yml index b26cb58..9ee7ab2 100644 --- a/ansible/roles/ocp4-workload-pam-fraudmanagement-workshop-verification/tasks/workload_project.yml +++ b/ansible/roles/ocp4-workload-pam-fraudmanagement-workshop-verification/tasks/workload_project.yml @@ -12,6 +12,9 @@ - name: DataGrid for {{ _namespace }} include_tasks: workload_per_project_datagrid.yml +- name: Business Automation for {{ _namespace }} + include_tasks: workload_per_project_businessautomation.yml + - name: Prometheus for {{ _namespace }} include_tasks: workload_per_project_prometheus.yml @@ -20,6 +23,8 @@ - name: Business Automation workload for {{ _namespace }} include_tasks: workload_per_project_businessautomationworkload.yml + when: _deploy_workload == true - name: Fuse workdload for {{ _namespace }} - include_tasks: workload_per_project_fuseworkload.yml \ No newline at end of file + include_tasks: workload_per_project_fuseworkload.yml + when: _deploy_workload == true \ No newline at end of file diff --git a/ansible/roles/ocp4-workload-pam-fraudmanagement-workshop/defaults/main.yml b/ansible/roles/ocp4-workload-pam-fraudmanagement-workshop/defaults/main.yml index 090b6e8..2441850 100644 --- a/ansible/roles/ocp4-workload-pam-fraudmanagement-workshop/defaults/main.yml +++ b/ansible/roles/ocp4-workload-pam-fraudmanagement-workshop/defaults/main.yml @@ -27,4 +27,6 @@ _kie_container_id: proactive-fraud-detection-case_1.0.0-SNAPSHOT _kjar_group_id: com.demo _kjar_artefact_id: proactive-fraud-detection-case -_kjar_version: "1.0.0-SNAPSHOT" \ No newline at end of file +_kjar_version: "1.0.0-SNAPSHOT" + +_deploy_workload: true \ No newline at end of file diff --git a/ansible/roles/ocp4-workload-pam-fraudmanagement-workshop/tasks/workload_per_project_businessautomationworkload.yml b/ansible/roles/ocp4-workload-pam-fraudmanagement-workshop/tasks/workload_per_project_businessautomationworkload.yml index f655f68..8fa19fb 100644 --- a/ansible/roles/ocp4-workload-pam-fraudmanagement-workshop/tasks/workload_per_project_businessautomationworkload.yml +++ b/ansible/roles/ocp4-workload-pam-fraudmanagement-workshop/tasks/workload_per_project_businessautomationworkload.yml @@ -60,7 +60,7 @@ - name: Check project exists in Business Central (note; error can be ignored) uri: - url: "https://{{ businesscentral_host.stdout }}/rest/spaces/workshop/projects/{{ _kie_container_id }}" + url: "https://{{ businesscentral_host.stdout }}/rest/spaces/workshop/projects/{{ _kie_project_id }}" method: GET validate_certs: false follow_redirects: yes @@ -69,8 +69,6 @@ force_basic_auth: true register: bizcentralproject ignore_errors: true - -### todo: only clone if it doesnt exist - name: Clone case into Business Central uri: @@ -177,21 +175,19 @@ - bizcentraldeploy_job.json is defined - bizcentraldeploy_job.json.status == "SUCCESS" -- name: Delete KIE Container proactive-fraud-detection-case (note; error can be ignored) +- name: Check KIE Container proactive-fraud-detection-case exists (note; error can be ignored) uri: url: "https://{{ businesscentral_host.stdout }}/rest/controller/management/servers/{{ _kie_server_id }}/containers/{{ _kie_container_id }}" - method: DELETE + method: GET validate_certs: false follow_redirects: yes user: "{{ _namespace }}" password: "{{ _account_password }}" force_basic_auth: true - status_code: 200 - register: bizcentraldelete_container + register: bizcentralget_container ignore_errors: true retries: "{{ _retry }}" delay: "{{ _delay }}" - until: bizcentraldelete_container.status == 404 - name: Create KIE Container proactive-fraud-detection-case uri: @@ -209,6 +205,7 @@ retries: "{{ _retry }}" delay: "{{ _delay }}" until: bizcentralcreate_container.status == 201 + when: bizcentralget_container.status == 404 vars: body: container-id: "{{ _kie_container_id }}" diff --git a/ansible/roles/ocp4-workload-pam-fraudmanagement-workshop/tasks/workload_per_project_fuseworkload.yml b/ansible/roles/ocp4-workload-pam-fraudmanagement-workshop/tasks/workload_per_project_fuseworkload.yml index 0b7aec6..97ce992 100644 --- a/ansible/roles/ocp4-workload-pam-fraudmanagement-workshop/tasks/workload_per_project_fuseworkload.yml +++ b/ansible/roles/ocp4-workload-pam-fraudmanagement-workshop/tasks/workload_per_project_fuseworkload.yml @@ -1,4 +1,10 @@ --- +- name: Check Fuse workload is running (note; error can be ignored) + command: > + oc rollout status DeploymentConfig/pam-fraudmanagement-fuse --watch=true -n {{ _namespace }} + register: fuserollout + ignore_errors: true + - name: Get Fuse template uri: url: "https://{{ gitea_route.stdout }}/{{ _namespace }}/proactive-fraud-detection-fuse/raw/branch/master/.openshiftio/application.yaml" @@ -7,16 +13,19 @@ validate_certs: false return_content: true register: fusetemplate + when: '"successfully rolled out" not in fuserollout.stdout' - name: Process Fuse workload template command: > - oc process -p SOURCE_REPOSITORY_URL=http://mygitea.gitea.svc.cluster.local:3000/{{ _namespace }}/proactive-fraud-detection-fuse.git -p KAFKA_BROKERS={{ _namespace }}-cluster-kafka-brokers:9092 -f - + oc process -p SOURCE_REPOSITORY_URL=http://mygitea.gitea.svc.cluster.local:3000/{{ _namespace }}/proactive-fraud-detection-fuse.git -p KAFKA_BROKERS={{ _namespace }}-cluster-kafka-brokers:9092 -n {{ _namespace }} -f - args: stdin: "{{ fusetemplate.content | string }}" register: fusework + when: '"successfully rolled out" not in fuserollout.stdout' - name: Create Fuse workload k8s: state: present namespace: "{{ _namespace }}" - definition: "{{ fusework.stdout | from_json }}" \ No newline at end of file + definition: "{{ fusework.stdout | from_json }}" + when: '"successfully rolled out" not in fuserollout.stdout' \ No newline at end of file diff --git a/ansible/roles/ocp4-workload-pam-fraudmanagement-workshop/tasks/workload_project.yml b/ansible/roles/ocp4-workload-pam-fraudmanagement-workshop/tasks/workload_project.yml index ce93fb1..c10a4da 100644 --- a/ansible/roles/ocp4-workload-pam-fraudmanagement-workshop/tasks/workload_project.yml +++ b/ansible/roles/ocp4-workload-pam-fraudmanagement-workshop/tasks/workload_project.yml @@ -57,9 +57,11 @@ - name: Business Automation workload for {{ _namespace }} include_tasks: workload_per_project_businessautomationworkload.yml + when: _deploy_workload == true - name: Fuse workload for {{ _namespace }} include_tasks: workload_per_project_fuseworkload.yml + when: _deploy_workload == true - name: Print Overview debug: diff --git a/ansible/roles/ocp4-workload-pam-fraudmanagement-workshop/templates/bucketrepo/deployment.j2 b/ansible/roles/ocp4-workload-pam-fraudmanagement-workshop/templates/bucketrepo/deployment.j2 index d391806..9087308 100644 --- a/ansible/roles/ocp4-workload-pam-fraudmanagement-workshop/templates/bucketrepo/deployment.j2 +++ b/ansible/roles/ocp4-workload-pam-fraudmanagement-workshop/templates/bucketrepo/deployment.j2 @@ -7,14 +7,14 @@ - apiVersion: image.openshift.io/v1 kind: ImageStream metadata: - name: summit-2020-bucketrepo + name: proactive-fraud-detection-bucketrepo spec: lookupPolicy: local: false tags: - from: kind: DockerImage - name: quay.io/redhat-consulting-uk/summit-2020-bucketrepo:latest + name: quay.io/redhat-consulting-uk/proactive-fraud-detection-bucketrepo:latest name: latest referencePolicy: type: Local @@ -73,7 +73,7 @@ spec: containers: - name: bucketrepo - image: "image-registry.openshift-image-registry.svc:5000/{{ _namespace }}/summit-2020-bucketrepo" + image: "image-registry.openshift-image-registry.svc:5000/{{ _namespace }}/proactive-fraud-detection-bucketrepo" imagePullPolicy: IfNotPresent command: ["/bucketrepo"] args: -- Gitblit v1.9.3