summaryrefslogtreecommitdiffstats
path: root/roles/openshift_resource/tasks
diff options
context:
space:
mode:
Diffstat (limited to 'roles/openshift_resource/tasks')
-rw-r--r--roles/openshift_resource/tasks/main.yml23
-rw-r--r--roles/openshift_resource/tasks/resource.yml6
-rw-r--r--roles/openshift_resource/tasks/template.yml6
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