diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-gce/files/cloud-config.yml b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-gce/files/cloud-config.yml index 8134814cef..7b274eec54 100644 --- a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-gce/files/cloud-config.yml +++ b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-gce/files/cloud-config.yml @@ -16,24 +16,13 @@ coreos: runtime: yes content: | [Unit] - Requires=gce-setup-environment.service - After=gce-setup-environment.service + Requires=coreos-setup-environment.service + After=coreos-setup-environment.service [Service] Type=oneshot EnvironmentFile=/etc/environment ExecStart=/usr/share/oem/bin/gce-coreos-cloudinit - - name: gce-setup-environment.service - command: restart - runtime: yes - content: | - [Unit] - Description=Setup environment variables from metadata - - [Service] - Type=oneshot - StandardOutput=journal+console - ExecStart=/usr/share/oem/bin/gce-setup-environment /etc/environment - name: gce-ssh-key.service command: restart runtime: yes diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-gce/files/gce-setup-environment b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-gce/files/coreos-setup-environment similarity index 50% rename from sdk_container/src/third_party/coreos-overlay/coreos-base/oem-gce/files/gce-setup-environment rename to sdk_container/src/third_party/coreos-overlay/coreos-base/oem-gce/files/coreos-setup-environment index 0ffd55d92f..e7951b7c9e 100755 --- a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-gce/files/gce-setup-environment +++ b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-gce/files/coreos-setup-environment @@ -1,6 +1,7 @@ #!/bin/bash -e ENV=$1 +METADATA_URL="http://169.254.169.254/computeMetadata/" if [ -z "$ENV" ]; then echo usage: $0 /etc/environment @@ -14,18 +15,19 @@ if [ $? -ne 0 ]; then exit 1 fi +get_value() { + curl --fail --silent --show-error \ + -H "X-Google-Metadata-Request: True" \ + "${METADATA_URL}v1/instance/$1" +} + +block-until-url "${METADATA_URL}" +external_ip=$(get_value network-interfaces/0/access-configs/0/external-ip) +public_ip=$(get_value network-interfaces/0/ip) + sed -i -e '/^COREOS_PUBLIC_IPV4=/d' \ -e '/^COREOS_PRIVATE_IPV4=/d' \ "${ENV}" -external_ip=$(curl --retry 5 --retry-delay 2 --silent --fail \ - "http://169.254.169.254/computeMetadata/v1/instance/network-interfaces/0/access-configs/0/external-ip" \ - -H "X-Google-Metadata-Request: True") - - -public_ip=$(curl --retry 5 --retry-delay 2 --silent --fail \ - "http://169.254.169.254/computeMetadata/v1/instance/network-interfaces/0/ip" \ - -H "X-Google-Metadata-Request: True") - echo COREOS_PUBLIC_IPV4=${external_ip} >> $ENV echo COREOS_PRIVATE_IPV4=${public_ip} >> $ENV diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-gce/files/gce-coreos-cloudinit b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-gce/files/gce-coreos-cloudinit index f0eb855fd0..fb7ae5441f 100644 --- a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-gce/files/gce-coreos-cloudinit +++ b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-gce/files/gce-coreos-cloudinit @@ -1,6 +1,6 @@ #!/bin/bash -URL_PREFIX="http://169.254.169.254/computeMetadata/v1/" +METADATA_URL="http://169.254.169.254/computeMetadata/" TMPFILE=$(mktemp /tmp/XXXXXX-cloud-init) if [[ $? -ne 0 || ! -f "${TMPFILE}" ]]; then echo "Failed to create temp file for user-data" >&2 @@ -10,11 +10,12 @@ trap "rm -f '${TMPFILE}'" EXIT try_cloudinit() { local id="$1" - local url="${URL_PREFIX}${id}/attributes/user-data" + local url="${METADATA_URL}v1/${id}/attributes/user-data" echo "Trying to fetch $id user-data..." - curl --retry 5 --retry-delay 2 --silent --fail --show-error \ - -H "X-Google-Metadata-Request: True" -o "${TMPFILE}" "${url}" + curl --fail --silent --show-error \ + -H "X-Google-Metadata-Request: True" \ + -o "${TMPFILE}" "${url}" ret=$? if [[ $ret -ne 0 && $ret -ne 22 ]]; then @@ -29,4 +30,5 @@ try_cloudinit() { return $? } +block-until-url "${METADATA_URL}" try_cloudinit project && try_cloudinit instance diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-gce/oem-gce-0.0.2-r6.ebuild b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-gce/oem-gce-0.0.2-r8.ebuild similarity index 100% rename from sdk_container/src/third_party/coreos-overlay/coreos-base/oem-gce/oem-gce-0.0.2-r6.ebuild rename to sdk_container/src/third_party/coreos-overlay/coreos-base/oem-gce/oem-gce-0.0.2-r8.ebuild diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-gce/oem-gce-0.0.2.ebuild b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-gce/oem-gce-0.0.2.ebuild index 5144c475f1..34642657aa 100644 --- a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-gce/oem-gce-0.0.2.ebuild +++ b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-gce/oem-gce-0.0.2.ebuild @@ -24,8 +24,8 @@ src_install() { into "/usr/share/oem" dobin ${FILESDIR}/gce-ssh-key dobin ${FILESDIR}/gce-coreos-cloudinit - dobin ${FILESDIR}/gce-setup-environment dobin ${FILESDIR}/gce-add-metadata-host + dobin ${FILESDIR}/coreos-setup-environment insinto "/usr/share/oem" doins ${FILESDIR}/cloud-config.yml