github.com/looshlee/cilium@v1.6.12/examples/kubernetes-ingress/scripts/01-install-etcd.sh (about) 1 #!/usr/bin/env bash 2 # 3 # Installs, configures and starts etcd, it will use default values from 4 # ./helpers.bash 5 # Globals: 6 # INSTALL, if set installs ETCD binaries, otherwise it will only configure etcd 7 # ETCD_CLEAN, if set it will clean up ETCD directory `/var/lib/etcd` 8 ####################################### 9 10 dir=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd ) 11 12 source "${dir}/helpers.bash" 13 14 cache_dir="${dir}/../../../hack/cache" 15 16 k8s_cache_dir="${cache_dir}/k8s/${k8s_version}" 17 18 log "Installing etcd..." 19 20 certs_dir="${dir}/certs" 21 22 set -e 23 24 sudo mkdir -p /etc/etcd/ 25 26 cp "${certs_dir}/etcd-server.pem" \ 27 "${certs_dir}/etcd-server-key.pem" \ 28 "${certs_dir}/ca-etcd.pem" \ 29 /etc/etcd/ 30 31 if [ -n "${INSTALL}" ]; then 32 download_to "${cache_dir}/etcd" "etcd-${etcd_version}-linux-amd64.tar.gz" \ 33 "https://github.com/coreos/etcd/releases/download/${etcd_version}/etcd-${etcd_version}-linux-amd64.tar.gz" 34 35 cp "${cache_dir}/etcd/etcd-${etcd_version}-linux-amd64.tar.gz" . 36 tar -xvf etcd-${etcd_version}-linux-amd64.tar.gz 37 38 sudo mv etcd-${etcd_version}-linux-amd64/etcd* /usr/bin/ 39 fi 40 41 if [ -n "${ETCD_CLEAN}" ] && [ -n "${RELOAD}" ]; then 42 sudo service etcd stop 43 sudo rm -fr /var/lib/etcd 44 fi 45 46 sudo mkdir -p /var/lib/etcd 47 48 ETCD_NAME=master 49 50 sudo tee /etc/systemd/system/etcd.service <<EOF 51 [Unit] 52 Description=etcd-${etcd_version} 53 Documentation=https://coreos.com/etcd/docs/${etcd_version:1}/index.html 54 55 [Service] 56 ExecStart=/usr/bin/etcd --name ${ETCD_NAME} \\ 57 --advertise-client-urls https://${controllers_ips[0]}:2379 \\ 58 --data-dir=/var/lib/etcd \\ 59 --initial-advertise-peer-urls https://${controllers_ips[0]}:2380 \\ 60 --initial-cluster-state new \\ 61 --initial-cluster-token etcd-cluster-0 \\ 62 --initial-cluster ${ETCD_NAME}=https://${controllers_ips[0]}:2380 \\ 63 --listen-client-urls https://${controllers_ips[0]}:2379,http://127.0.0.1:2379 \\ 64 --client-cert-auth \\ 65 --cert-file='/etc/etcd/etcd-server.pem' \\ 66 --key-file='/etc/etcd/etcd-server-key.pem' \\ 67 --trusted-ca-file='/etc/etcd/ca-etcd.pem' 68 Restart=on-failure 69 RestartSec=5 70 71 [Install] 72 WantedBy=multi-user.target 73 EOF 74 75 sudo systemctl daemon-reload 76 77 sudo systemctl enable etcd 78 79 sudo systemctl restart etcd 80 81 sudo systemctl status etcd --no-pager 82 83 log "Installing etcd... DONE!"