diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/coreos-cloudinit/coreos-cloudinit-0.2.1.ebuild b/sdk_container/src/third_party/coreos-overlay/coreos-base/coreos-cloudinit/coreos-cloudinit-0.2.1-r1.ebuild similarity index 100% rename from sdk_container/src/third_party/coreos-overlay/coreos-base/coreos-cloudinit/coreos-cloudinit-0.2.1.ebuild rename to sdk_container/src/third_party/coreos-overlay/coreos-base/coreos-cloudinit/coreos-cloudinit-0.2.1-r1.ebuild diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/coreos-cloudinit/files/coreos-cloudinit-oem.service b/sdk_container/src/third_party/coreos-overlay/coreos-base/coreos-cloudinit/files/coreos-cloudinit-oem.service index 2731b2d2ed..930f82385e 100644 --- a/sdk_container/src/third_party/coreos-overlay/coreos-base/coreos-cloudinit/files/coreos-cloudinit-oem.service +++ b/sdk_container/src/third_party/coreos-overlay/coreos-base/coreos-cloudinit/files/coreos-cloudinit-oem.service @@ -2,14 +2,11 @@ Description=coreos-cloudinit for /usr/share/oem/cloud-config.yml Requires=dbus.service After=dbus.service -Requires=coreos-setup-environment.service -After=coreos-setup-environment.service RequiresMountsFor=/usr/share/oem ConditionPathExists=/usr/share/oem/cloud-config.yml [Service] Type=oneshot -EnvironmentFile=/etc/environment ExecStartPre=/usr/bin/coreos-cloudinit --from-file=/usr/share/oem/cloud-config.yml ExecStart=/usr/bin/systemctl daemon-reload diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-rackspace/files/cloud-config.yml b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-rackspace/files/cloud-config.yml index b92995778a..9616e04d03 100644 --- a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-rackspace/files/cloud-config.yml +++ b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-rackspace/files/cloud-config.yml @@ -33,7 +33,10 @@ coreos: content: | [Unit] RequiresMountsFor=/media/configdrive + Requires=coreos-setup-environment.service + After=coreos-setup-environment.service [Service] Type=oneshot + EnvironmentFile=/etc/environment ExecStart=/usr/bin/coreos-cloudinit --from-file=/media/configdrive/openstack/latest/user_data diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-rackspace/files/coreos-setup-environment b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-rackspace/files/coreos-setup-environment new file mode 100755 index 0000000000..58119841da --- /dev/null +++ b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-rackspace/files/coreos-setup-environment @@ -0,0 +1,35 @@ +#!/bin/bash +x + +ENV=$1 + +if [ -z "$ENV" ]; then + echo usage: $0 /etc/environment + exit 1 +fi +# test for rw +touch $ENV +if [ $? -ne 0 ]; then + echo exiting, unable to modify: $ENV + exit 1 +fi + +sed -i -e '/^COREOS_PUBLIC_IPV4=/d' \ + -e '/^COREOS_PRIVATE_IPV4=/d' \ + "${ENV}" + +# We spin loop until the nova-agent sets up the ip addresses +function get_ip () { + IF=$1 + IP= + while [ 1 ]; do + IP=$(ifconfig $IF | awk '/inet /{print $2}') + if [ "$IP" != "" ]; then + break + fi + sleep .1 + done + echo $IP +} + +echo COREOS_PUBLIC_IPV4=$(get_ip eth0) >> $ENV +echo COREOS_PRIVATE_IPV4=$(get_ip eth1) >> $ENV diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-rackspace/oem-rackspace-0.0.1.ebuild b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-rackspace/oem-rackspace-0.0.1.ebuild index fc69d724b6..38afcc6068 100644 --- a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-rackspace/oem-rackspace-0.0.1.ebuild +++ b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-rackspace/oem-rackspace-0.0.1.ebuild @@ -28,4 +28,7 @@ src_install() { rsync --exclude=".git" -aq ${S}/ ${D}/nova-agent/ insinto "/" doins ${FILESDIR}/cloud-config.yml + + into "/" + dobin ${FILESDIR}/coreos-setup-environment }