summaryrefslogtreecommitdiffstats
path: root/meta-oe/recipes-extended/etcd
diff options
context:
space:
mode:
authorojayanth <ojayanth@in.ibm.com>2023-05-12 05:08:41 -0500
committerKhem Raj <raj.khem@gmail.com>2023-05-12 10:27:35 -0700
commita179653ce204d90980f81aff66ef4fd5649568d5 (patch)
tree23e41608b82db05419e2de2125a075e86593b068 /meta-oe/recipes-extended/etcd
parent9400a94fc11a1b174513620d4964349422a135a7 (diff)
downloadmeta-openembedded-a179653ce204d90980f81aff66ef4fd5649568d5.tar.gz
etcd: add systemd unit support for clustering
Refer https://etcd.io/docs/v3.5/op-guide/clustering/ for etcd clustering design background details. etcd-new.service triggers only, when the config file available in the specified path. This generic serive helps to start etcd cluster based on the project specific use cases and config files. etcd-new.service only required to run on initial setup or new node add into the existing cluster. All other use cases use regular etcd.service to start etcd with existing cluster configuration. Signed-off-by: ojayanth <ojayanth@in.ibm.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
Diffstat (limited to 'meta-oe/recipes-extended/etcd')
-rw-r--r--meta-oe/recipes-extended/etcd/etcd/etcd-new.path9
-rw-r--r--meta-oe/recipes-extended/etcd/etcd/etcd-new.service15
-rw-r--r--meta-oe/recipes-extended/etcd/etcd_3.5.7.bb6
3 files changed, 29 insertions, 1 deletions
diff --git a/meta-oe/recipes-extended/etcd/etcd/etcd-new.path b/meta-oe/recipes-extended/etcd/etcd/etcd-new.path
new file mode 100644
index 000000000..1a18a4016
--- /dev/null
+++ b/meta-oe/recipes-extended/etcd/etcd/etcd-new.path
@@ -0,0 +1,9 @@
1[Unit]
2Description=Monitor the etcd config file changes
3
4[Path]
5PathChanged=/run/etcd-new.conf
6Unit=etcd-new.service
7
8[Install]
9WantedBy=multi-user.target
diff --git a/meta-oe/recipes-extended/etcd/etcd/etcd-new.service b/meta-oe/recipes-extended/etcd/etcd/etcd-new.service
new file mode 100644
index 000000000..479678dc6
--- /dev/null
+++ b/meta-oe/recipes-extended/etcd/etcd/etcd-new.service
@@ -0,0 +1,15 @@
1[Unit]
2Description=etcd cluster member start/add service
3Documentation=https://etcd.io/docs/v3.5/op-guide/clustering/
4ConditionPathExists=!/var/lib/etcd/member
5ConditionPathExists=/run/etcd-new.conf
6OnFailure=etcd.service
7
8[Service]
9Type=notify
10EnvironmentFile=/run/etcd-new.conf
11ExecStart=/usr/bin/etcd
12Restart=no
13
14[Install]
15WantedBy=multi-user.target
diff --git a/meta-oe/recipes-extended/etcd/etcd_3.5.7.bb b/meta-oe/recipes-extended/etcd/etcd_3.5.7.bb
index c01b03e4a..3e7bb0f68 100644
--- a/meta-oe/recipes-extended/etcd/etcd_3.5.7.bb
+++ b/meta-oe/recipes-extended/etcd/etcd_3.5.7.bb
@@ -10,6 +10,8 @@ SRC_URI = " \
10 file://0001-test_lib.sh-remove-gobin-requirement-during-build.patch;patchdir=src/${GO_IMPORT} \ 10 file://0001-test_lib.sh-remove-gobin-requirement-during-build.patch;patchdir=src/${GO_IMPORT} \
11 file://etcd.service \ 11 file://etcd.service \
12 file://etcd-existing.conf \ 12 file://etcd-existing.conf \
13 file://etcd-new.service \
14 file://etcd-new.path \
13" 15"
14 16
15SRCREV = "215b53cf3b48ee761f4c40908b3874b2e5e95e9f" 17SRCREV = "215b53cf3b48ee761f4c40908b3874b2e5e95e9f"
@@ -53,7 +55,7 @@ go_do_compile:prepend() {
53 55
54REQUIRED_DISTRO_FEATURES = "systemd" 56REQUIRED_DISTRO_FEATURES = "systemd"
55SYSTEMD_PACKAGES = "${PN}" 57SYSTEMD_PACKAGES = "${PN}"
56SYSTEMD_SERVICE:${PN}:append = " etcd.service" 58SYSTEMD_SERVICE:${PN}:append = " etcd.service etcd-new.service etcd-new.path"
57 59
58do_install:append() { 60do_install:append() {
59 install -d ${D}${bindir}/ 61 install -d ${D}${bindir}/
@@ -63,6 +65,8 @@ do_install:append() {
63 install -m 0644 ${WORKDIR}/etcd-existing.conf -D -t ${D}${sysconfdir}/etcd.d 65 install -m 0644 ${WORKDIR}/etcd-existing.conf -D -t ${D}${sysconfdir}/etcd.d
64 install -d ${D}${systemd_system_unitdir} 66 install -d ${D}${systemd_system_unitdir}
65 install -m 0644 ${WORKDIR}/etcd.service ${D}${systemd_system_unitdir}/ 67 install -m 0644 ${WORKDIR}/etcd.service ${D}${systemd_system_unitdir}/
68 install -m 0644 ${WORKDIR}/etcd-new.service ${D}${systemd_system_unitdir}/
69 install -m 0644 ${WORKDIR}/etcd-new.path ${D}${systemd_system_unitdir}/
66} 70}
67 71
68FILES:${PN}:append = " ${sysconfdir}/etcd.d/etcd-existing.conf" 72FILES:${PN}:append = " ${sysconfdir}/etcd.d/etcd-existing.conf"