summaryrefslogtreecommitdiffstats
path: root/roles/openshift_resource/tasks/template.yml
diff options
context:
space:
mode:
Diffstat (limited to 'roles/openshift_resource/tasks/template.yml')
-rw-r--r--roles/openshift_resource/tasks/template.yml25
1 files changed, 25 insertions, 0 deletions
diff --git a/roles/openshift_resource/tasks/template.yml b/roles/openshift_resource/tasks/template.yml
new file mode 100644
index 0000000..c93dec5
--- /dev/null
+++ b/roles/openshift_resource/tasks/template.yml
@@ -0,0 +1,25 @@
+---
+- block:
+ - name: Find out which resources we are going to configure
+ set_fact: resources="{{ tmpl | json_query(query) }}"
+ vars:
+ query: "objects[*].{kind: kind, name: metadata.name}"
+
+ - name: Lookup the specified resource
+ command: "oc get -n {{project}} {{item.kind}}/{{item.name}}"
+ register: results
+ failed_when: false
+ changed_when: (results | failed)
+ with_items: "{{ resources | default([]) }}"
+# when: not (recreate|default(false))
+
+ - name: 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
+ 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