diff options
Diffstat (limited to 'roles/openshift_resource/tasks')
-rw-r--r-- | roles/openshift_resource/tasks/main.yml | 23 | ||||
-rw-r--r-- | roles/openshift_resource/tasks/resource.yml | 6 | ||||
-rw-r--r-- | roles/openshift_resource/tasks/template.yml | 6 |
3 files changed, 22 insertions, 13 deletions
diff --git a/roles/openshift_resource/tasks/main.yml b/roles/openshift_resource/tasks/main.yml index af071f9..8606aa3 100644 --- a/roles/openshift_resource/tasks/main.yml +++ b/roles/openshift_resource/tasks/main.yml @@ -5,18 +5,27 @@ changed_when: false register: results - - name: Parse JSON templates + - name: "Parse JSON templates {{ template }}" set_fact: tmpl="{{ results.stdout | from_json }}" when: template.find(".json") != -1 - - name: Parse YaML templates + - name: "Parse YaML templates {{ template }}" set_fact: tmpl="{{ results.stdout | from_yaml }}" when: template.find(".json") == -1 - - include_tasks: template.yml - when: (tmpl.kind == "Template") and (tmpl.parameters is not defined) - - - include_tasks: resource.yml - when: (tmpl.parameters is defined) or (tmpl.kind != "Template") + - name: "Populating resources defined in {{ template }} template" + include_tasks: template.yml + register: results + vars: + metadata: "{{ tmpl.metadata | default({}) }}" + annotations: "{{ metadata.annotations | default({}) }}" + strategy: "{{ annotations['kaas/strategy'] | default('auto') }}" + when: + - tmpl.kind == "Template" + - strategy == "auto" + + - name: "Creating template/resources defined in {{ template }}" + include_tasks: resource.yml + when: results | skipped run_once: true diff --git a/roles/openshift_resource/tasks/resource.yml b/roles/openshift_resource/tasks/resource.yml index 769a89c..4e6e7ac 100644 --- a/roles/openshift_resource/tasks/resource.yml +++ b/roles/openshift_resource/tasks/resource.yml @@ -3,20 +3,20 @@ - name: Find out which resources we are going to configure set_fact: rkind="{{ tmpl.kind }}" rname="{{ tmpl.metadata.name }}" - - name: Lookup the specified resource + - name: "Lookup the specified resource {{rkind}}/{{rname}}" command: "oc get -n {{project}} {{rkind}}/{{rname}}" register: find_result changed_when: false failed_when: false - - name: Detroy existing resources + - name: "Detroy existing resources {{rkind}}/{{rname}}" command: "oc delete -n {{project}} {{rkind}}/{{rname}}" register: rm_result failed_when: false changed_when: (rm_result | succeeded) when: (recreate|default(false)) - - name: Create resources defined in template + - name: "Create resources defined in {{ template }}" command: "oc create -n {{project}} -f '{{ template_path }}/{{ template }}' {{ create_args | default('') }}" when: (recreate|default(false)) or (find_result.rc != 0) run_once: true diff --git a/roles/openshift_resource/tasks/template.yml b/roles/openshift_resource/tasks/template.yml index c93dec5..6c9340b 100644 --- a/roles/openshift_resource/tasks/template.yml +++ b/roles/openshift_resource/tasks/template.yml @@ -5,7 +5,7 @@ vars: query: "objects[*].{kind: kind, name: metadata.name}" - - name: Lookup the specified resource + - name: "{{ template }}: Lookup the specified resource" command: "oc get -n {{project}} {{item.kind}}/{{item.name}}" register: results failed_when: false @@ -13,13 +13,13 @@ with_items: "{{ resources | default([]) }}" # when: not (recreate|default(false)) - - name: Detroy existing resources + - name: "{{ template }}: Detroy existing resources" command: "oc delete -n {{project}} {{resources[item|int].kind}}/{{resources[item|int].name}}" failed_when: false with_sequence: start=0 count="{{resources | default([]) | length}}" when: ((recreate|default(false)) or (results | changed)) and (results.results[item|int].rc == 0) - - name: Create resources defined in template + - name: "{{ template }}: Create resources defined" shell: "oc process -f '{{ template_path }}/{{template}}' {{ template_args | default('') }} | oc create -n {{project}} -f - {{ create_args | default('') }}" when: (recreate|default(false)) or (results | changed) run_once: true |