Merge pull request #544 from marineam/block

fix(coreos-base/oem-gce): block_until_url and coreos-setup-environment
This commit is contained in:
Michael Marineau 2014-04-13 15:09:45 -07:00
commit c1d86f1d6a
5 changed files with 20 additions and 27 deletions

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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