summaryrefslogtreecommitdiffstats
path: root/roles
diff options
context:
space:
mode:
authorClayton Coleman <ccoleman@redhat.com>2017-10-17 17:36:59 +0200
committerClayton Coleman <ccoleman@redhat.com>2017-10-18 23:08:21 +0200
commit5547e39983a154829c56df0961eeab54c3933bd4 (patch)
treed9bad645c3b30b9c3af4eb1f456d1cedbfecd6d4 /roles
parent6de05bf4ded9eb68885c1923bb65e2a12ea35fbd (diff)
downloadopenshift-5547e39983a154829c56df0961eeab54c3933bd4.tar.gz
openshift-5547e39983a154829c56df0961eeab54c3933bd4.tar.bz2
openshift-5547e39983a154829c56df0961eeab54c3933bd4.tar.xz
openshift-5547e39983a154829c56df0961eeab54c3933bd4.zip
Handle bootstrap behavior in GCP template
Allow each node group to request bootstrap, allow per node group image override, and ensure the provision logic does not wait for bootstrapping node groups before continuing. This is an incremental step to allow GCP clusters to use bootstrap logic on cluster deploy without having fully baked images. We will switch over slowly and ensure both code paths function.
Diffstat (limited to 'roles')
-rw-r--r--roles/openshift_gcp/templates/provision.j2.sh9
1 files changed, 7 insertions, 2 deletions
diff --git a/roles/openshift_gcp/templates/provision.j2.sh b/roles/openshift_gcp/templates/provision.j2.sh
index 64c7cd019..5ed6d9f84 100644
--- a/roles/openshift_gcp/templates/provision.j2.sh
+++ b/roles/openshift_gcp/templates/provision.j2.sh
@@ -125,10 +125,11 @@ fi ) &
if ! gcloud --project "{{ openshift_gcp_project }}" compute instance-templates describe "{{ openshift_gcp_prefix }}instance-template-{{ node_group.name }}" &>/dev/null; then
gcloud --project "{{ openshift_gcp_project }}" compute instance-templates create "{{ openshift_gcp_prefix }}instance-template-{{ node_group.name }}" \
--machine-type "{{ node_group.machine_type }}" --network "{{ openshift_gcp_network_name }}" \
- --tags "{{ openshift_gcp_prefix }}ocp,ocp,{{ node_group.tags }}" \
+ --tags "{{ openshift_gcp_prefix }}ocp,ocp,{{ 'ocp-bootstrap,' if (node_group.bootstrap | default(False)) else '' }}{{ node_group.tags }}" \
--boot-disk-size "{{ node_group.boot_disk_size }}" --boot-disk-type "pd-ssd" \
--scopes "logging-write,monitoring-write,useraccounts-ro,service-control,service-management,storage-ro,compute-rw" \
- --image "${image}" ${metadata}
+ --image "{{ node_group.image | default('${image}') }}" ${metadata} \
+ --metadata "bootstrap={{ node_group.bootstrap | default(False) | bool | to_json }},cluster-id={{ openshift_gcp_prefix + openshift_gcp_clusterid }},node-group={{ node_group.name }}"
else
echo "Instance template '{{ openshift_gcp_prefix }}instance-template-{{ node_group.name }}' already exists"
fi
@@ -312,8 +313,12 @@ fi
# wait until all node groups are stable
{% for node_group in openshift_gcp_node_group_config %}
+{% if node_group.bootstrap | default(False) %}
+# not waiting for {{ node_group.name }} due to bootstrapping
+{% else %}
# wait for stable {{ node_group.name }}
( gcloud --project "{{ openshift_gcp_project }}" compute instance-groups managed wait-until-stable "{{ openshift_gcp_prefix }}ig-{{ node_group.suffix }}" --zone "{{ openshift_gcp_zone }}" --timeout=600 ) &
+{% endif %}
{% endfor %}