Search code examples
etcdetcd3etcdctl

etcdadm init with 3.4.7 version, command fails with unknown flag


I am using etcdadm command to create the etcd cluster, init fails with --version unkown flag.

How to create etcd cluster with latest etcd version?

# ./etcdadm --version "3.4.7" init
INFO[0000] [install] extracting etcd archive /var/cache/etcdadm/etcd/v3.4.7/etcd-v3.4.7-linux-amd64.tar.gz to /tmp/etcd809914410
INFO[0000] [install] verifying etcd 3.4.7 is installed in /opt/bin/
FATA[0000] [install] Error: command "/opt/bin/etcdctl" failed: "Error: unknown flag: --version\n\nError: unknown flag: --version\n"

Solution

  • to configure 3.4.7 version, we need to set ETCDCTL_API environment variable.

    compiled like this:

    git clone https://github.com/kubernetes-sigs/etcdadm.git
    cd etcdadm/
    docker run --rm -it --name golang -v $PWD:/v golang
    cd /v
    make
    ls
    

    Able to create the data base like this:

    # ETCDCTL_API=3 ./etcdadm --version "3.4.7" init
    INFO[0000] [install] extracting etcd archive /var/cache/etcdadm/etcd/v3.4.7/etcd-v3.4.7-linux-amd64.tar.gz to /tmp/etcd129983779
    INFO[0000] [install] verifying etcd 3.4.7 is installed in /opt/bin/
    INFO[0000] [certificates] creating PKI assets
    INFO[0000] creating a self signed etcd CA certificate and key files
    [certificates] Generated ca certificate and key.
    INFO[0000] creating a new server certificate and key files for etcd
    [certificates] Generated server certificate and key.
    [certificates] server serving cert is signed for DNS names [node01] and IPs [x.x.x.x  127.0.0.1]
    INFO[0000] creating a new certificate and key files for etcd peering
    [certificates] Generated peer certificate and key.
    [certificates] peer serving cert is signed for DNS names [node01] and IPs [x.x.x.x ]
    INFO[0001] creating a new client certificate for the etcdctl
    [certificates] Generated etcdctl-etcd-client certificate and key.
    INFO[0001] creating a new client certificate for the apiserver calling etcd
    [certificates] Generated apiserver-etcd-client certificate and key.
    [certificates] valid certificates and keys now exist in "/etc/etcd/pki"
    INFO[0002] [health] Checking local etcd endpoint health
    INFO[0002] [health] Local etcd endpoint is healthy