Siamak Sadeghianfar
2018-02-16 f9a09357c7ef5af3b38f79f90a4aee4c66d29518
Fix db deployments before others in coolstore verify (#125)

* verify deployments after demos are deployed

* verify databases before other deployments in coolstore
1 files deleted
5 files modified
339 ■■■■■ changed files
ansible/configs/openshift-demos/msa-cicd-eap-full.yml 110 ●●●● patch | view | raw | blame | history
ansible/configs/openshift-demos/msa-cicd-eap-min.yml 98 ●●●● patch | view | raw | blame | history
ansible/configs/openshift-demos/msa-full.yml 22 ●●●● patch | view | raw | blame | history
ansible/configs/openshift-demos/msa-min.yml 23 ●●●● patch | view | raw | blame | history
ansible/configs/openshift-demos/verify.yml 72 ●●●●● patch | view | raw | blame | history
ansible/configs/openshift-demos/verify_tasks.yml 14 ●●●● patch | view | raw | blame | history
ansible/configs/openshift-demos/msa-cicd-eap-full.yml
@@ -8,6 +8,10 @@
  tasks:
    - include_role:
        name: "{{ ANSIBLE_REPO_PATH }}/roles/openshift_commons_facts"
      tags:
        - cicd
        - guides
        - demo
    - import_role:
        name: "{{ ANSIBLE_REPO_PATH }}/roles/openshift_gogs"
@@ -17,6 +21,7 @@
        project_desc: "{{ project_cicd_desc }}"
        project_annotations: "demo=demo-modern-arch-{{ project_suffix }}"
        gogs_route: "gogs-{{ project_cicd }}.{{ apps_hostname_suffix }}"
      tags: cicd
    - import_role:
        name: "{{ ANSIBLE_REPO_PATH }}/roles/openshift_sonatype_nexus"
@@ -26,6 +31,7 @@
        maven_mirror_url is not defined or
        maven_mirror_url is none or
        maven_mirror_url|trim() == ""
      tags: cicd
    - import_role:
        name: "{{ ANSIBLE_REPO_PATH }}/roles/openshift_jenkins"
@@ -33,6 +39,7 @@
        project_name: "{{ project_cicd }}"
        jenkins_image_tag: "v3.7"
        jenkins_image_force_import: "true"
      tags: cicd
    - import_role:
        name: "{{ ANSIBLE_REPO_PATH }}/roles/openshift_workshopper"
@@ -52,6 +59,7 @@
          GOGS_REVIEWER_USER: "{{ gogs_admin_user }}"
          GOGS_REVIEWER_PASSWORD: "{{ gogs_admin_password }}"
      when: deploy_guides
      tags: guides
    - import_role:
        name: "{{ ANSIBLE_REPO_PATH }}/roles/openshift_coolstore"
@@ -61,58 +69,120 @@
        gogs_hostname: "gogs-{{ project_cicd }}.{{ apps_hostname_suffix }}"
        prune_deployments_selector_prod: ""
        prune_deployments_selector_stage: "comp-required!=true,app!=inventory"
      tags: demo
    # verify deployments in ci/cd project
    - name: wait for deployments in project {{ project_cicd }} to complete (succeed or fail)
      shell: "oc get pods -n {{ project_cicd }} | grep '\\-deploy' | grep 'Running'"
    # verify database deployments in cicd project
    - name: wait for database deployments in project {{ project_cicd }} to complete (succeed or fail)
      shell: "oc get pods -n {{ project_cicd }} -l comp-type=database | grep '\\-deploy\\s' | grep 'Running'"
      register: deployment_running
      until: deployment_running|failed
      retries: 20
      delay: 30
      ignore_errors: true
      tags: verify
    - include_tasks: verify_tasks.yml project_name={{ project_cicd }}
    - include_tasks: verify_tasks.yml project_name={{ project_cicd }} selector="comp-type=database"
      tags: verify
    # verify deployments in prod project
    - name: wait for deployments in project {{ project_prod }} to complete (succeed or fail)
      shell: "oc get pods -n {{ project_prod }} | grep '\\-deploy' | grep 'Running'"
    # verify database deployments in prod project
    - name: wait for database deployments in project {{ project_prod }} to complete (succeed or fail)
      shell: "oc get pods -n {{ project_prod }} -l comp-type=database | grep '\\-deploy\\s' | grep 'Running'"
      register: deployment_running
      until: deployment_running|failed
      retries: 20
      delay: 30
      ignore_errors: true
      tags: verify
    - include_tasks: verify_tasks.yml project_name={{ project_prod }}
    - include_tasks: verify_tasks.yml project_name={{ project_prod }} selector="comp-type=database"
    # verify deployments in stage project
    - name: wait for deployments in project {{ project_stage }} to complete (succeed or fail)
      shell: "oc get pods -n {{ project_stage }} | grep '\\-deploy' | grep 'Running'"
    # verify database deployments in test project
    - name: wait for database deployments in project {{ project_test }} to complete (succeed or fail)
      shell: "oc get pods -n {{ project_test }} -l comp-type=database | grep '\\-deploy\\s' | grep 'Running'"
      register: deployment_running
      until: deployment_running|failed
      retries: 20
      delay: 30
      ignore_errors: true
      tags: verify
    - include_tasks: verify_tasks.yml project_name={{ project_stage }}
    - include_tasks: verify_tasks.yml project_name={{ project_test }} selector="comp-type=database"
    # verify deployments in test project
    - name: wait for deployments in project {{ project_test }} to complete (succeed or fail)
      shell: "oc get pods -n {{ project_test }} | grep '\\-deploy' | grep 'Running'"
    # verify database deployments in dev project
    - name: wait for database deployments in project {{ project_dev }} to complete (succeed or fail)
      shell: "oc get pods -n {{ project_dev }} -l comp-type=database | grep '\\-deploy\\s' | grep 'Running'"
      register: deployment_running
      until: deployment_running|failed
      retries: 20
      delay: 30
      ignore_errors: true
      tags: verify
    - include_tasks: verify_tasks.yml project_name={{ project_test }}
    - include_tasks: verify_tasks.yml project_name={{ project_dev }} selector="comp-type=database"
      tags: verify
    # verify deployments in dev project
    - name: wait for deployments in project {{ project_dev }} to complete (succeed or fail)
      shell: "oc get pods -n {{ project_dev }} | grep '\\-deploy' | grep 'Running'"
    # verify other deployments in cicd project
    - name: wait for other deployments in project {{ project_cicd }} to complete (succeed or fail)
      shell: "oc get pods -n {{ project_cicd }} -l comp-type!=database | grep '\\-deploy\\s' | grep 'Running'"
      register: deployment_running
      until: deployment_running|failed
      retries: 20
      delay: 30
      ignore_errors: true
      tags: verify
    - include_tasks: verify_tasks.yml project_name={{ project_dev }}
    - include_tasks: verify_tasks.yml project_name={{ project_cicd }} selector="comp-type!=database"
      tags: verify
    # verify other deployments in prod project
    - name: wait for other deployments in project {{ project_prod }} to complete (succeed or fail)
      shell: "oc get pods -n {{ project_prod }} -l comp-type!=database | grep '\\-deploy\\s' | grep 'Running'"
      register: deployment_running
      until: deployment_running|failed
      retries: 20
      delay: 30
      ignore_errors: true
      tags: verify
    - include_tasks: verify_tasks.yml project_name={{ project_prod }} selector="comp-type!=database"
      tags: verify
    # verify other deployments in stage project
    - name: wait for other deployments in project {{ project_stage }} to complete (succeed or fail)
      shell: "oc get pods -n {{ project_stage }} -l comp-type!=database | grep '\\-deploy\\s' | grep 'Running'"
      register: deployment_running
      until: deployment_running|failed
      retries: 20
      delay: 30
      ignore_errors: true
      tags: verify
    - include_tasks: verify_tasks.yml project_name={{ project_stage }} selector="comp-type!=database"
      tags: verify
    # verify other deployments in test project
    - name: wait for other deployments in project {{ project_test }} to complete (succeed or fail)
      shell: "oc get pods -n {{ project_test }} -l comp-type!=database | grep '\\-deploy\\s' | grep 'Running'"
      register: deployment_running
      until: deployment_running|failed
      retries: 20
      delay: 30
      ignore_errors: true
      tags: verify
    - include_tasks: verify_tasks.yml project_name={{ project_test }} selector="comp-type!=database"
      tags: verify
    # verify other deployments in dev project
    - name: wait for other deployments in project {{ project_dev }} to complete (succeed or fail)
      shell: "oc get pods -n {{ project_dev }} -l comp-type!=database | grep '\\-deploy\\s' | grep 'Running'"
      register: deployment_running
      until: deployment_running|failed
      retries: 20
      delay: 30
      ignore_errors: true
      tags: verify
    - include_tasks: verify_tasks.yml project_name={{ project_dev }} selector="comp-type!=database"
      tags: verify
ansible/configs/openshift-demos/msa-cicd-eap-min.yml
@@ -9,6 +9,10 @@
  tasks:
    - include_role:
        name: "{{ ANSIBLE_REPO_PATH }}/roles/openshift_commons_facts"
      tags:
        - cicd
        - guides
        - demo
    - import_role:
        name: "{{ ANSIBLE_REPO_PATH }}/roles/openshift_gogs"
@@ -18,6 +22,7 @@
        project_desc: "{{ project_cicd_desc }}"
        project_annotations: "demo=demo-modern-arch-{{ project_suffix }}"
        gogs_route: "gogs-{{ project_cicd }}.{{ apps_hostname_suffix }}"
      tags: cicd
    - import_role:
        name: "{{ ANSIBLE_REPO_PATH }}/roles/openshift_sonatype_nexus"
@@ -27,6 +32,7 @@
        maven_mirror_url is not defined or
        maven_mirror_url is none or
        maven_mirror_url|trim() == ""
      tags: cicd
    - import_role:
        name: "{{ ANSIBLE_REPO_PATH }}/roles/openshift_jenkins"
@@ -34,6 +40,7 @@
        project_name: "{{ project_cicd }}"
        jenkins_image_tag: "v3.7"
        jenkins_image_force_import: "true"
      tags: cicd
    - import_role:
        name: "{{ ANSIBLE_REPO_PATH }}/roles/openshift_workshopper"
@@ -53,6 +60,7 @@
          GOGS_REVIEWER_USER: "{{ gogs_admin_user }}"
          GOGS_REVIEWER_PASSWORD: "{{ gogs_admin_password }}"
      when: deploy_guides
      tags: guides
    - import_role:
        name: "{{ ANSIBLE_REPO_PATH }}/roles/openshift_coolstore"
@@ -63,58 +71,108 @@
        prune_deployments_selector: "comp-required!=true,app!=inventory"
        prune_builds_selector: "comp-required!=true,app!=inventory"
        disable_stage_project: true
      tags: demo
    # verify deployments in ci/cd project
    - name: wait for deployments in project {{ project_cicd }} to complete (succeed or fail)
      shell: "oc get pods -n {{ project_cicd }} | grep '\\-deploy' | grep 'Running'"
    # verify database deployments in cicd project
    - name: wait for database deployments in project {{ project_cicd }} to complete (succeed or fail)
      shell: "oc get pods -n {{ project_cicd }} -l comp-type=database | grep '\\-deploy\\s' | grep 'Running'"
      register: deployment_running
      until: deployment_running|failed
      retries: 20
      delay: 30
      ignore_errors: true
      tags: verify
    - include_tasks: verify_tasks.yml project_name={{ project_cicd }}
    - include_tasks: verify_tasks.yml project_name={{ project_cicd }} selector="comp-type=database"
      tags: verify
    # verify deployments in prod project
    - name: wait for deployments in project {{ project_prod }} to complete (succeed or fail)
      shell: "oc get pods -n {{ project_prod }} | grep '\\-deploy' | grep 'Running'"
    # verify database deployments in prod project
    - name: wait for database deployments in project {{ project_prod }} to complete (succeed or fail)
      shell: "oc get pods -n {{ project_prod }} -l comp-type=database | grep '\\-deploy\\s' | grep 'Running'"
      register: deployment_running
      until: deployment_running|failed
      retries: 20
      delay: 30
      ignore_errors: true
      tags: verify
    - include_tasks: verify_tasks.yml project_name={{ project_prod }}
    - include_tasks: verify_tasks.yml project_name={{ project_prod }} selector="comp-type=database"
    # verify deployments in stage project
    - name: wait for deployments in project {{ project_stage }} to complete (succeed or fail)
      shell: "oc get pods -n {{ project_stage }} | grep '\\-deploy' | grep 'Running'"
    # verify database deployments in test project
    - name: wait for database deployments in project {{ project_test }} to complete (succeed or fail)
      shell: "oc get pods -n {{ project_test }} -l comp-type=database | grep '\\-deploy\\s' | grep 'Running'"
      register: deployment_running
      until: deployment_running|failed
      retries: 20
      delay: 30
      ignore_errors: true
      tags: verify
    - include_tasks: verify_tasks.yml project_name={{ project_stage }}
    - include_tasks: verify_tasks.yml project_name={{ project_test }} selector="comp-type=database"
    # verify deployments in test project
    - name: wait for deployments in project {{ project_test }} to complete (succeed or fail)
      shell: "oc get pods -n {{ project_test }} | grep '\\-deploy' | grep 'Running'"
    # verify database deployments in dev project
    - name: wait for database deployments in project {{ project_dev }} to complete (succeed or fail)
      shell: "oc get pods -n {{ project_dev }} -l comp-type=database | grep '\\-deploy\\s' | grep 'Running'"
      register: deployment_running
      until: deployment_running|failed
      retries: 20
      delay: 30
      ignore_errors: true
      tags: verify
    - include_tasks: verify_tasks.yml project_name={{ project_test }}
    - include_tasks: verify_tasks.yml project_name={{ project_dev }} selector="comp-type=database"
      tags: verify
    # verify deployments in dev project
    - name: wait for deployments in project {{ project_dev }} to complete (succeed or fail)
      shell: "oc get pods -n {{ project_dev }} | grep '\\-deploy' | grep 'Running'"
    # verify other deployments in cicd project
    - name: wait for other deployments in project {{ project_cicd }} to complete (succeed or fail)
      shell: "oc get pods -n {{ project_cicd }} -l comp-type!=database | grep '\\-deploy\\s' | grep 'Running'"
      register: deployment_running
      until: deployment_running|failed
      retries: 20
      delay: 30
      ignore_errors: true
      tags: verify
    - include_tasks: verify_tasks.yml project_name={{ project_dev }}
    - include_tasks: verify_tasks.yml project_name={{ project_cicd }} selector="comp-type!=database"
      tags: verify
    # verify other deployments in prod project
    - name: wait for other deployments in project {{ project_prod }} to complete (succeed or fail)
      shell: "oc get pods -n {{ project_prod }} -l comp-type!=database | grep '\\-deploy\\s' | grep 'Running'"
      register: deployment_running
      until: deployment_running|failed
      retries: 20
      delay: 30
      ignore_errors: true
      tags: verify
    - include_tasks: verify_tasks.yml project_name={{ project_prod }} selector="comp-type!=database"
      tags: verify
    # verify other deployments in test project
    - name: wait for other deployments in project {{ project_test }} to complete (succeed or fail)
      shell: "oc get pods -n {{ project_test }} -l comp-type!=database | grep '\\-deploy\\s' | grep 'Running'"
      register: deployment_running
      until: deployment_running|failed
      retries: 20
      delay: 30
      ignore_errors: true
      tags: verify
    - include_tasks: verify_tasks.yml project_name={{ project_test }} selector="comp-type!=database"
      tags: verify
    # verify other deployments in dev project
    - name: wait for other deployments in project {{ project_dev }} to complete (succeed or fail)
      shell: "oc get pods -n {{ project_dev }} -l comp-type!=database | grep '\\-deploy\\s' | grep 'Running'"
      register: deployment_running
      until: deployment_running|failed
      retries: 20
      delay: 30
      ignore_errors: true
      tags: verify
    - include_tasks: verify_tasks.yml project_name={{ project_dev }} selector="comp-type!=database"
      tags: verify
ansible/configs/openshift-demos/msa-full.yml
@@ -17,12 +17,28 @@
        hostname_suffix: "{{ apps_hostname_suffix }}"
        enable_cicd: false
    - name: wait for deployments to complete (succeed or fail)
      shell: "oc get pods -n {{ project_default }} | grep '\\-deploy' | grep 'Running'"
    # verify database deployments
    - name: wait for database deployments to complete (succeed or fail)
      shell: "oc get pods -n {{ project_default }} -l comp-type=database | grep '\\-deploy\\s' | grep 'Running'"
      register: deployment_running
      until: deployment_running|failed
      retries: 20
      delay: 30
      ignore_errors: true
      tags: verify
    - include_tasks: verify_tasks.yml project_name={{ project_default }}
    - include_tasks: verify_tasks.yml project_name={{ project_default }} selector="comp-type=database"
      tags: verify
    # verify other deployments
    - name: wait for other deployments to complete (succeed or fail)
      shell: "oc get pods -n {{ project_default }} -l comp-type!=database | grep '\\-deploy\\s' | grep 'Running'"
      register: deployment_running
      until: deployment_running|failed
      retries: 20
      delay: 30
      ignore_errors: true
      tags: verify
    - include_tasks: verify_tasks.yml project_name={{ project_default }} selector="comp-type!=database"
      tags: verify
ansible/configs/openshift-demos/msa-min.yml
@@ -19,12 +19,29 @@
        prune_builds_selector: "comp-required!=true"
        prune_deployments_selector: "comp-required!=true"
    - name: wait for deployments to complete (succeed or fail)
      shell: "oc get pods -n {{ project_default }} | grep '\\-deploy' | grep 'Running'"
    # verify database deployments
    - name: wait for database deployments to complete (succeed or fail)
      shell: "oc get pods -n {{ project_default }} -l comp-type=database | grep '\\-deploy\\s' | grep 'Running'"
      register: deployment_running
      until: deployment_running|failed
      retries: 20
      delay: 30
      ignore_errors: true
      tags: verify
    - include_tasks: verify_tasks.yml project_name={{ project_default }}
    - include_tasks: verify_tasks.yml project_name={{ project_default }} selector="comp-type=database"
      tags: verify
    # verify other deployments
    - name: wait for other deployments to complete (succeed or fail)
      shell: "oc get pods -n {{ project_default }} -l comp-type!=database | grep '\\-deploy\\s' | grep 'Running'"
      register: deployment_running
      until: deployment_running|failed
      retries: 20
      delay: 30
      ignore_errors: true
      tags: verify
    - include_tasks: verify_tasks.yml project_name={{ project_default }} selector="comp-type!=database"
      tags: verify
ansible/configs/openshift-demos/verify.yml
File was deleted
ansible/configs/openshift-demos/verify_tasks.yml
@@ -5,20 +5,14 @@
  ignore_errors: true
  changed_when: false
- name: get database deployment config names in {{ project_name }}
  shell: "{{ openshift_cli }} get dc -l comp-type=database -o jsonpath='{.items[*].metadata.name}' -n {{ project_name }}"
  register: database_deploymentconfigs_list
  when: result|succeeded
  changed_when: false
- name: get other deployment config names in {{ project_name }}
  shell: "{{ openshift_cli }} get dc -l comp-type!=database -o jsonpath='{.items[*].metadata.name}' -n {{ project_name }}"
  register: other_deploymentconfigs_list
- name: get deploymentconfig names in {{ project_name }}
  shell: "{{ openshift_cli }} get dc -l {{ selector }} -o jsonpath='{.items[*].metadata.name}' -n {{ project_name }}"
  register: deploymentconfigs_list
  when: result|succeeded
  changed_when: false
- name: get deployment config replica counts in {{ project_name }}
  shell: "{{ openshift_cli }} get dc {{ database_deploymentconfigs_list.stdout }} {{ other_deploymentconfigs_list.stdout }} -o json -n {{ project_name }}"
  shell: "{{ openshift_cli }} get dc {{ deploymentconfigs_list.stdout }} -o json -n {{ project_name }}"
  register: deploymentconfigs_list_json
  when: result|succeeded
  changed_when: false