diff --git a/etcd.tf b/etcd.tf index 31975b0..fbf55ee 100644 --- a/etcd.tf +++ b/etcd.tf @@ -55,15 +55,6 @@ data "ignition_file" "etcd-prom-machine-role" { } } -data "template_file" "etcd-setup" { - template = file("${path.module}/resources/etcd-setup.service") -} - -data "ignition_systemd_unit" "etcd-setup" { - name = "etcd-setup.service" - content = data.template_file.etcd-setup.rendered -} - data "template_file" "etcdctl-wrapper" { count = length(var.etcd_addresses) template = file("${path.module}/resources/etcdctl-wrapper") @@ -121,8 +112,7 @@ data "template_file" "etcd-member" { template = file("${path.module}/resources/etcd-member.service") vars = { - etcd_image_url = var.etcd_image_url - etcd_image_tag = var.etcd_image_tag + etcd_version = var.etcd_image_tag index = count.index etcd_initial_cluster = join(",", formatlist("member%s=https://%s:2380", null_resource.etcd_member.*.triggers.index, var.etcd_addresses)) private_ipv4 = var.etcd_addresses[count.index] @@ -164,7 +154,6 @@ data "ignition_config" "etcd" { data.ignition_systemd_unit.locksmithd_etcd.id, data.ignition_systemd_unit.docker-opts-dropin.id, data.ignition_systemd_unit.node-exporter.id, - data.ignition_systemd_unit.etcd-setup.id, element(data.ignition_systemd_unit.etcd-member.*.id, count.index), element(data.ignition_systemd_unit.etcd-disk-mounter.*.id, count.index) ], diff --git a/resources/etcd-member.service b/resources/etcd-member.service index b8f0a60..be42644 100644 --- a/resources/etcd-member.service +++ b/resources/etcd-member.service @@ -4,8 +4,8 @@ Description=etcd (System Application Container) Documentation=https://github.com/coreos/etcd Wants=network-online.target network.target -Requires=disk-mounter.service etcd-setup.service cert-fetch.service -After=network-online.target disk-mounter.service etcd-setup.service cert-fetch.service +Requires=disk-mounter.service cert-fetch.service +After=network-online.target disk-mounter.service cert-fetch.service Conflicts=etcd.service Conflicts=etcd2.service @@ -33,6 +33,12 @@ Environment="ETCD_PEER_TRUSTED_CA_FILE=/etc/etcd/ssl/ca.pem" Environment="ETCD_PEER_CERT_FILE=/etc/etcd/ssl/node.pem" Environment="ETCD_PEER_KEY_FILE=/etc/etcd/ssl/node-key.pem" +ExecStartPre=-/bin/sh -c "\ + test ! -f /opt/bin/etcd && \ + test -f /opt/bin/etcd.tar.gz && \ + tar --strip-components=1 -C /opt/bin \ + -xzf /opt/bin/etcd.tar.gz etcd-${etcd_version}-linux-amd64/etcd" + ExecStart=/opt/bin/etcd [Install] diff --git a/resources/etcd-setup.service b/resources/etcd-setup.service deleted file mode 100644 index 86ffdd0..0000000 --- a/resources/etcd-setup.service +++ /dev/null @@ -1,13 +0,0 @@ -[Unit] -Description=Setup etcd binaries -[Service] -Type=oneshot -RemainAfterExit=yes -ExecStartPre=mkdir -p /tmp/etcd -ExecStart=tar xzvf /opt/bin/etcd.tar.gz -C /tmp/etcd --strip-components=1 -ExecStart=mv /tmp/etcd/etcd /opt/bin/etcd -ExecStart=mv /tmp/etcd/etcdctl /opt/bin/etcdctl -ExecStartPost=rm -rf /tmp/etcd -ExecStartPost=rm -f /opt/bin/etcd.tar.gz -[Install] -WantedBy=multi-user.target