diff options
author | Scott Dodson <sdodson@redhat.com> | 2018-01-24 08:10:53 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-01-24 08:10:53 -0500 |
commit | 7e112b2c5893623dcd059813c993b0fab57e58b4 (patch) | |
tree | fb226772ec0f0273cef60f903ab7f3bd17d06e68 /roles/openshift_gcp/files/bootstrap-script.sh | |
parent | dd5c2a24872490f34be8516e4f03a4076be35789 (diff) | |
parent | f2b14d2e76d8a9b19d9515f00c0eac85876363f5 (diff) | |
download | openshift-7e112b2c5893623dcd059813c993b0fab57e58b4.tar.gz openshift-7e112b2c5893623dcd059813c993b0fab57e58b4.tar.bz2 openshift-7e112b2c5893623dcd059813c993b0fab57e58b4.tar.xz openshift-7e112b2c5893623dcd059813c993b0fab57e58b4.zip |
Merge pull request #6541 from smarterclayton/move_gcp_in
Allow openshift-ansible image to deploy to GCP
Diffstat (limited to 'roles/openshift_gcp/files/bootstrap-script.sh')
-rw-r--r-- | roles/openshift_gcp/files/bootstrap-script.sh | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/roles/openshift_gcp/files/bootstrap-script.sh b/roles/openshift_gcp/files/bootstrap-script.sh new file mode 100644 index 000000000..0c3f1999b --- /dev/null +++ b/roles/openshift_gcp/files/bootstrap-script.sh @@ -0,0 +1,42 @@ +#!/bin/bash +# +# This script is a startup script for bootstrapping a GCP node +# from a config stored in the project metadata. It loops until +# it finds the script and then starts the origin-node service. +# TODO: generalize + +set -o errexit +set -o nounset +set -o pipefail + +if [[ "$( curl "http://metadata.google.internal/computeMetadata/v1/instance/attributes/bootstrap" -H "Metadata-Flavor: Google" )" != "true" ]]; then + echo "info: Bootstrap is not enabled for this instance, skipping" 1>&2 + exit 0 +fi + +if ! id=$( curl "http://metadata.google.internal/computeMetadata/v1/instance/attributes/cluster-id" -H "Metadata-Flavor: Google" ); then + echo "error: Unable to get cluster-id for instance from cluster metadata" 1>&2 + exit 1 +fi + +if ! node_group=$( curl "http://metadata.google.internal/computeMetadata/v1/instance/attributes/node-group" -H "Metadata-Flavor: Google" ); then + echo "error: Unable to get node-group for instance from cluster metadata" 1>&2 + exit 1 +fi + +if ! config=$( curl -f "http://metadata.google.internal/computeMetadata/v1/instance/attributes/bootstrap-config" -H "Metadata-Flavor: Google" 2>/dev/null ); then + while true; do + if config=$( curl -f "http://metadata.google.internal/computeMetadata/v1/project/attributes/${id}-bootstrap-config" -H "Metadata-Flavor: Google" 2>/dev/null ); then + break + fi + echo "info: waiting for ${id}-bootstrap-config to become available in cluster metadata ..." 1>&2 + sleep 5 + done +fi + +echo "Got bootstrap config from metadata" +mkdir -p /etc/origin/node +echo -n "${config}" > /etc/origin/node/bootstrap.kubeconfig +echo "BOOTSTRAP_CONFIG_NAME=node-config-${node_group}" >> /etc/sysconfig/origin-node +systemctl enable origin-node +systemctl start origin-node |