ansible/roles/ocp-workload-3scale-experienced/defaults/main.yml | ●●●●● patch | view | raw | blame | history | |
ansible/roles/ocp-workload-3scale-experienced/readme.adoc | ●●●●● patch | view | raw | blame | history | |
ansible/roles/ocp-workload-3scale-experienced/tasks/main.yml | ●●●●● patch | view | raw | blame | history | |
ansible/roles/ocp-workload-3scale-experienced/tasks/post_workload.yml | ●●●●● patch | view | raw | blame | history | |
ansible/roles/ocp-workload-3scale-experienced/tasks/pre_workload.yml | ●●●●● patch | view | raw | blame | history | |
ansible/roles/ocp-workload-3scale-experienced/tasks/remove_workload.yml | ●●●●● patch | view | raw | blame | history | |
ansible/roles/ocp-workload-3scale-experienced/tasks/wait_for_build.yml | ●●●●● patch | view | raw | blame | history | |
ansible/roles/ocp-workload-3scale-experienced/tasks/wait_for_deploy.yml | ●●●●● patch | view | raw | blame | history | |
ansible/roles/ocp-workload-3scale-experienced/tasks/workload.yml | ●●●●● patch | view | raw | blame | history |
ansible/roles/ocp-workload-3scale-experienced/defaults/main.yml
New file @@ -0,0 +1,29 @@ --- become_override: false ocp_username: jbride-redhat.com ocp_user_needs_quota: True ocp_user_groups: - OPENTLC-PROJECT-PROVISIONERS quota_requests_cpu: 5 quota_limits_cpu: 10 quota_requests_memory: '7Gi' quota_limits_memory: '25Gi' quota_configmaps: 15 quota_pods: 30 quota_persistentvolumeclaims: 20 quota_services: 30 quota_secrets: 30 quota_requests_storage: 50Gi ocp_apps_domain: apps.{{ocp_domain}} build_status_retries: 20 build_status_delay: 20 deploy_status_retries: 15 deploy_status_delay: 20 ansible/roles/ocp-workload-3scale-experienced/readme.adoc
New file @@ -0,0 +1,45 @@ = ocp-workload-developer-environment - Sample Config === Deploy a Workload with the `ocp-workload` playbook [Mostly for testing] ---- HOST_GUID=dev39 TARGET_HOST="bastion.$HOST_GUID.openshift.opentlc.com" WORKLOAD="ocp-workload-fuse-on-ocp" SSH_USERNAME="jbride-redhat.com" SSH_PRIVATE_KEY="id_ocp" GUID=jb05 OCP_USERNAME="jbride-redhat.com" # a TARGET_HOST is specified in the command line, without using an inventory file ansible-playbook -i ${TARGET_HOST}, ./configs/ocp-workloads/ocp-workload.yml \ -e"ansible_ssh_private_key_file=~/.ssh/${SSH_PRIVATE_KEY}" \ -e"ansible_ssh_user=${SSH_USERNAME}" \ -e"ANSIBLE_REPO_PATH=`pwd`" \ -e"ocp_username=${OCP_USERNAME}" \ -e"ocp_workload=${WORKLOAD}" \ -e"guid=${GUID}" \ -e"ocp_user_needs_quota=true" \ -e"ocp_domain=$HOST_GUID.openshift.opentlc.com" \ -e"ACTION=create" ---- === To Delete an environment ---- HOST_GUID=dev39 TARGET_HOST="bastion.$HOST_GUID.openshift.opentlc.com" WORKLOAD="ocp-workload-fuse-on-ocp" GUID=jb05 OCP_USERNAME="jbride-redhat.com" # a TARGET_HOST is specified in the command line, without using an inventory file ansible-playbook -i ${TARGET_HOST}, ./configs/ocp-workloads/ocp-workload.yml \ -e"ansible_ssh_private_key_file=~/.ssh/${SSH_PRIVATE_KEY}" \ -e"ansible_ssh_user=${SSH_USERNAME}" \ -e"ANSIBLE_REPO_PATH=`pwd`" \ -e"ocp_username=${OCP_USERNAME}" \ -e"ocp_workload=${WORKLOAD}" \ -e"guid=${GUID}" \ -e"ACTION=remove" ---- ansible/roles/ocp-workload-3scale-experienced/tasks/main.yml
New file @@ -0,0 +1,20 @@ --- - name: Running Pre Workload Tasks include: ./pre_workload.yml become: "{{ become_override | bool }}" when: ACTION == "create" or ACTION == "provision" - name: Running Workload Tasks include: ./workload.yml become: "{{ become_override | bool }}" when: ACTION == "create" or ACTION == "provision" - name: Running Post Workload Tasks include: ./post_workload.yml become: "{{ become_override | bool }}" when: ACTION == "create" or ACTION == "provision" - name: Running Workload removal Tasks include: ./remove_workload.yml become: "{{ become_override | bool }}" when: ACTION == "destroy" or ACTION == "remove" ansible/roles/ocp-workload-3scale-experienced/tasks/post_workload.yml
New file @@ -0,0 +1,5 @@ --- - name: post_workload Tasks Complete debug: msg: "Post-Software checks completed successfully" ansible/roles/ocp-workload-3scale-experienced/tasks/pre_workload.yml
New file @@ -0,0 +1,32 @@ --- - name: Add user to developer group (allowed to create projects) shell: "oadm groups add-users {{item}} {{ocp_username}}" register: groupadd_register with_items: "{{ocp_user_groups}}" when: ocp_username is defined and ocp_user_groups is defined # - name: test that command worked # debug: # var: groupadd_register # verbosity: 2 - name: Create user Quota - clusterresourcequota shell: | oc create clusterquota clusterquota-"{{ocp_username}}-{{guid}}" \ --project-annotation-selector=openshift.io/requester="{{ocp_username}}" \ --hard requests.cpu="{{quota_requests_cpu}}" \ --hard limits.cpu="{{quota_limits_cpu}}" \ --hard requests.memory="{{quota_requests_memory}}" \ --hard limits.memory="{{quota_limits_memory}}" \ --hard configmaps="{{quota_configmaps}}" \ --hard pods="{{quota_pods}}" \ --hard persistentvolumeclaims="{{quota_persistentvolumeclaims}}" \ --hard services="{{quota_services}}" \ --hard secrets="{{quota_secrets}}" \ --hard requests.storage="{{quota_requests_storage}}" ignore_errors: true - name: pre_workload Tasks Complete debug: msg: "Pre-Software checks completed successfully" ansible/roles/ocp-workload-3scale-experienced/tasks/remove_workload.yml
New file @@ -0,0 +1,50 @@ --- - name: post_workload Tasks Complete debug: msg: "Pre-Software checks completed successfully - Removed" - name: Remove user from groups {{ocp_user_groups}} shell: oc adm groups remove-users {{item}} {{ocp_username}} with_items: "{{ocp_user_groups}}" ignore_errors: true - name: Remove user Quota - oc delete clusterresourcequota "clusterquota-{{ocp_username}}-{{guid}}" shell: oc delete clusterresourcequota clusterquota-{{ocp_username}}-{{guid}} ignore_errors: true - name: Remove user Quota - oc delete clusterresourcequota "clusterquota-{{ocp_username}}" shell: oc delete clusterresourcequota clusterquota-{{ocp_username}} ignore_errors: true - name: Remove user Projects - oc get projects command: "oc get projects -o json" register: all_projects - name: Remove user Projects - Convert output to json set_fact: projects: "{{all_projects.stdout | from_json}}" - name: Remove user Projects - Debug statement debug: msg: "found user project: {{item.metadata.name}}" verbosity: 1 when: - item.metadata.annotations['openshift.io/requester'] is defined - item.metadata.annotations['openshift.io/requester'] == "{{ocp_username}}" with_items: "{{projects['items']}}" - name: Remove user Projects - "oc delete project {{item.metadata.name}} " command: "oc delete project {{item.metadata.name}}" when: - item.metadata.annotations['openshift.io/requester'] is defined - item.metadata.annotations['openshift.io/requester'] == "{{ocp_username}}" - item.status.phase is defined - item.status.phase != "Terminating" with_items: "{{projects['items']}}" - name: post_workload Tasks Complete debug: msg: "Post-Software checks completed successfully - Removed" ansible/roles/ocp-workload-3scale-experienced/tasks/wait_for_build.yml
New file @@ -0,0 +1,23 @@ --- # Purpose: # This script queries OCP for builds that exist but are not yet ready. # So long as there are unready builds, this script continues to loop # # Manual Test to determine list of unready builds : # 1) install jp : https://github.com/jmespath/jp # 2) oc get builds -o json | jp "items[? (status.phase != 'Complete') ].metadata.annotations.\"openshift.io/build-config.name\"" # # Documentation pertaining to jq syntax: # - http://jmespath.org/tutorial.html # - https://stackoverflow.com/questions/41261680/ansible-json-query-path-to-select-item-by-content # - name: "Wait for following builds to become ready: {{build_to_wait}}" command: 'oc get build -o json -n "{{ ocp_project }}"' register: build_state changed_when: false retries: "{{ build_status_retries }}" delay: "{{ build_status_delay }}" vars: query: "items[? (status.phase != 'Complete') ].metadata.annotations.\"openshift.io/build-config.name\"" until: "build_state.stdout |from_json |json_query(query) |intersect(build_to_wait) |length == 0" ansible/roles/ocp-workload-3scale-experienced/tasks/wait_for_deploy.yml
New file @@ -0,0 +1,20 @@ --- # Purpose: # This script queries OCP for replication controllers that exist but are not yet ready. # So long as there are unready replication controllers, this script continues to loop # # Manual Test to determine list of unready replication controllers : # 1) install jp : https://github.com/jmespath/jp # 2) oc get rc -o json | jp 'items[? (status.readyReplicas == ""|| status.readyReplicas == `0`) ].metadata.annotations."openshift.io/deployment-config.name"' # - name: "Wait for following deployments to become ready: {{pod_to_wait}}" command: 'oc get rc -o json -n "{{ ocp_project }}"' register: rc_state changed_when: false retries: "{{ deploy_status_retries }}" delay: "{{ deploy_status_delay }}" until: 'rc_state.stdout |from_json |json_query(''items[? (status.readyReplicas == ""|| status.readyReplicas == `0`) ].metadata.annotations."openshift.io/deployment-config.name"'') |intersect(pod_to_wait) |length == 0' # Documentation pertaining to jq syntax: # - http://jmespath.org/tutorial.html ansible/roles/ocp-workload-3scale-experienced/tasks/workload.yml
New file @@ -0,0 +1,8 @@ --- - name: Make sure we go back do default project shell: "oc project default" - name: workload Tasks Complete debug: msg: workload Tasks Complete