summaryrefslogtreecommitdiffstats
path: root/roles/openshift_gcp/tasks
diff options
context:
space:
mode:
authorClayton Coleman <ccoleman@redhat.com>2017-08-27 20:35:31 -0400
committerClayton Coleman <ccoleman@redhat.com>2017-09-14 13:49:55 -0400
commit2c69867f9678591d9cf4aa762967afb2cf8d631c (patch)
tree273571ff15354977959ae033a7db6241366558e0 /roles/openshift_gcp/tasks
parentf8393b7aef78c92437fe78092821a8d0a11c22cc (diff)
downloadopenshift-2c69867f9678591d9cf4aa762967afb2cf8d631c.tar.gz
openshift-2c69867f9678591d9cf4aa762967afb2cf8d631c.tar.bz2
openshift-2c69867f9678591d9cf4aa762967afb2cf8d631c.tar.xz
openshift-2c69867f9678591d9cf4aa762967afb2cf8d631c.zip
Port origin-gce roles for cluster setup to copy AWS provisioning
This is a rough cut of the existing origin-gce structure (itself a refined version of the ref arch). I've removed everything except core cluster provisioning, image building, and inventory setup. Node groups are part of the "all at once" provisioning but can be changed.
Diffstat (limited to 'roles/openshift_gcp/tasks')
-rw-r--r--roles/openshift_gcp/tasks/main.yaml43
1 files changed, 43 insertions, 0 deletions
diff --git a/roles/openshift_gcp/tasks/main.yaml b/roles/openshift_gcp/tasks/main.yaml
new file mode 100644
index 000000000..ad205ba33
--- /dev/null
+++ b/roles/openshift_gcp/tasks/main.yaml
@@ -0,0 +1,43 @@
+#
+# This role relies on gcloud invoked via templated bash in order to
+# provide a high performance deployment option. The next logical step
+# is to transition to a deployment manager template which is then instantiated.
+# TODO: use a formal set of role parameters consistent with openshift_aws
+#
+---
+- name: Templatize DNS script
+ template: src=dns.j2.sh dest=/tmp/openshift_gcp_provision_dns.sh mode=u+rx
+- name: Templatize provision script
+ template: src=provision.j2.sh dest=/tmp/openshift_gcp_provision.sh mode=u+rx
+- name: Templatize de-provision script
+ template: src=remove.j2.sh dest=/tmp/openshift_gcp_provision_remove.sh mode=u+rx
+ when:
+ - state | default('present') == 'absent'
+
+- name: Provision GCP DNS domain
+ command: /tmp/openshift_gcp_provision_dns.sh
+ args:
+ chdir: "{{ playbook_dir }}/files"
+ register: dns_provision
+ when:
+ - state | default('present') == 'present'
+
+- name: Ensure that DNS resolves to the hosted zone
+ assert:
+ that:
+ - "lookup('dig', public_hosted_zone, 'qtype=NS', wantlist=True) | sort | join(',') == dns_provision.stdout"
+ msg: "The DNS domain {{ public_hosted_zone }} defined in 'public_hosted_zone' must have NS records pointing to the Google nameservers: '{{ dns_provision.stdout }}' instead of '{{ lookup('dig', public_hosted_zone, 'qtype=NS') }}'."
+ when:
+ - state | default('present') == 'present'
+
+- name: Provision GCP resources
+ command: /tmp/openshift_gcp_provision.sh
+ args:
+ chdir: "{{ playbook_dir }}/files"
+ when:
+ - state | default('present') == 'present'
+
+- name: De-provision GCP resources
+ command: /tmp/openshift_gcp_provision_remove.sh
+ when:
+ - state | default('present') == 'absent'