From b21389fc42b673c2d163074299da6a0d64b59486 Mon Sep 17 00:00:00 2001 From: Alex Polvi Date: Fri, 14 Mar 2014 02:41:44 +0000 Subject: [PATCH] move bootstrap fully into ami --- .../coreos-base/oem-ami/files/cloud-config.yml | 17 +++++++++++++++++ .../oem-ami}/files/etcd-bootstrap | 8 +------- .../coreos-base/oem-ami/oem-ami-0.0.1.ebuild | 1 + ...tcd-0.3.0-r4.ebuild => etcd-0.3.0-r5.ebuild} | 2 -- .../dev-db/etcd/etcd-99999.ebuild | 2 -- .../dev-db/etcd/files/etcd-pre-exec | 11 ----------- .../dev-db/etcd/files/etcd.service | 9 +++++---- 7 files changed, 24 insertions(+), 26 deletions(-) rename sdk_container/src/third_party/coreos-overlay/{dev-db/etcd => coreos-base/oem-ami}/files/etcd-bootstrap (80%) rename sdk_container/src/third_party/coreos-overlay/dev-db/etcd/{etcd-0.3.0-r4.ebuild => etcd-0.3.0-r5.ebuild} (92%) delete mode 100755 sdk_container/src/third_party/coreos-overlay/dev-db/etcd/files/etcd-pre-exec diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-ami/files/cloud-config.yml b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-ami/files/cloud-config.yml index 675d8f3a88..f0137b00ef 100644 --- a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-ami/files/cloud-config.yml +++ b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-ami/files/cloud-config.yml @@ -33,3 +33,20 @@ coreos: Type=oneshot RemainAfterExit=no ExecStart=/usr/share/oem/usr/bin/coreos-c10n + - name: etcd.service + runtime: yes + content: | + [Unit] + Description=etcd with ec2 auto-bootstrap + Requires=ec2-c10n.service + After=ec2-c10n.service + + [Service] + User=etcd + PermissionsStartOnly=true + ExecStart=/usr/share/oem/usr/bin/etcd-bootstrap + Restart=always + RestartSec=10s + + [Install] + WantedBy=multi-user.target diff --git a/sdk_container/src/third_party/coreos-overlay/dev-db/etcd/files/etcd-bootstrap b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-ami/files/etcd-bootstrap similarity index 80% rename from sdk_container/src/third_party/coreos-overlay/dev-db/etcd/files/etcd-bootstrap rename to sdk_container/src/third_party/coreos-overlay/coreos-base/oem-ami/files/etcd-bootstrap index 782b788e9d..4a8ba417c1 100755 --- a/sdk_container/src/third_party/coreos-overlay/dev-db/etcd/files/etcd-bootstrap +++ b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-ami/files/etcd-bootstrap @@ -3,16 +3,10 @@ #TODO: Generating a config file rather than args so etcd-bootstrap can run as a # completely separate unit from etcd -VIRT=$(coreos-detect-virt) STATE=/var/lib/etcd ARGS="-f -data-dir $STATE -bind-addr 0.0.0.0" -if [ "${VIRT}" != "ec2" ]; then - echo "Detected environment \"${VIRT}\", just starting solo master..." - exec /usr/bin/etcd ${ARGS} -n ${HOSTNAME} -else - ARGS="${ARGS} -peer-election-timeout 1200" -fi +ARGS="${ARGS} -peer-election-timeout 1200" BOOTSTRAP_PEERS="/var/run/etcd/bootstrap.config" BOOTSTRAP_DISCO="/var/run/etcd/bootstrap.disco" diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-ami/oem-ami-0.0.1.ebuild b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-ami/oem-ami-0.0.1.ebuild index 033e8a5c83..1d9ff6def6 100644 --- a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-ami/oem-ami-0.0.1.ebuild +++ b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-ami/oem-ami-0.0.1.ebuild @@ -20,6 +20,7 @@ src_install() { dobin ${FILESDIR}/ec2-ssh-key dobin ${FILESDIR}/coreos-setup-environment dobin ${FILESDIR}/coreos-c10n + dobin ${FILESDIR}/etcd-bootstrap insinto "/" doins ${FILESDIR}/cloud-config.yml diff --git a/sdk_container/src/third_party/coreos-overlay/dev-db/etcd/etcd-0.3.0-r4.ebuild b/sdk_container/src/third_party/coreos-overlay/dev-db/etcd/etcd-0.3.0-r5.ebuild similarity index 92% rename from sdk_container/src/third_party/coreos-overlay/dev-db/etcd/etcd-0.3.0-r4.ebuild rename to sdk_container/src/third_party/coreos-overlay/dev-db/etcd/etcd-0.3.0-r5.ebuild index 6b79cc6600..312ed6aa7f 100644 --- a/sdk_container/src/third_party/coreos-overlay/dev-db/etcd/etcd-0.3.0-r4.ebuild +++ b/sdk_container/src/third_party/coreos-overlay/dev-db/etcd/etcd-0.3.0-r5.ebuild @@ -29,8 +29,6 @@ src_compile() { src_install() { dobin ${S}/bin/${PN} - dobin ${FILESDIR}/etcd-bootstrap - dobin ${FILESDIR}/etcd-pre-exec systemd_dounit "${FILESDIR}"/${PN}.service systemd_enable_service multi-user.target ${PN}.service diff --git a/sdk_container/src/third_party/coreos-overlay/dev-db/etcd/etcd-99999.ebuild b/sdk_container/src/third_party/coreos-overlay/dev-db/etcd/etcd-99999.ebuild index 492425ca17..57e4e6541a 100644 --- a/sdk_container/src/third_party/coreos-overlay/dev-db/etcd/etcd-99999.ebuild +++ b/sdk_container/src/third_party/coreos-overlay/dev-db/etcd/etcd-99999.ebuild @@ -28,8 +28,6 @@ src_compile() { src_install() { dobin ${S}/bin/${PN} - dobin ${FILESDIR}/etcd-bootstrap - dobin ${FILESDIR}/etcd-pre-exec systemd_dounit "${FILESDIR}"/${PN}.service systemd_enable_service multi-user.target ${PN}.service diff --git a/sdk_container/src/third_party/coreos-overlay/dev-db/etcd/files/etcd-pre-exec b/sdk_container/src/third_party/coreos-overlay/dev-db/etcd/files/etcd-pre-exec deleted file mode 100755 index 0608211bfa..0000000000 --- a/sdk_container/src/third_party/coreos-overlay/dev-db/etcd/files/etcd-pre-exec +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/sh -e - -# Fixup the old state directory -OLD_STATE=/media/state/etcd -STATE=/var/lib/etcd - -if [ -d /media/state/etcd ]; then - cp -R ${OLD_STATE}/. ${STATE} - rm -R ${OLD_STATE} - chown -R etcd:etcd ${STATE} -fi diff --git a/sdk_container/src/third_party/coreos-overlay/dev-db/etcd/files/etcd.service b/sdk_container/src/third_party/coreos-overlay/dev-db/etcd/files/etcd.service index 7865f88d7c..09f1954c18 100644 --- a/sdk_container/src/third_party/coreos-overlay/dev-db/etcd/files/etcd.service +++ b/sdk_container/src/third_party/coreos-overlay/dev-db/etcd/files/etcd.service @@ -1,13 +1,14 @@ [Unit] Description=etcd -Requires=coreos-c10n.service -After=coreos-c10n.service +RequiresMountsFor=/usr/share/oem +# oem will setup etcd for auto bootstrapping +ConditionPathExists=!/usr/share/oem/cloud-config.yml [Service] User=etcd PermissionsStartOnly=true -ExecStartPre=/usr/bin/etcd-pre-exec -ExecStart=/usr/bin/etcd-bootstrap +# Default, this will be overwritten with a cloud-config +ExecStart=/usr/bin/etcd -f -data-dir /var/lib/etcd -bind-addr 0.0.0.0 Restart=always # Set a longish timeout in case this machine isn't behaving