PIGSTY

Parameter

Customize etcd with the 13-parameter

There are 13 parameters about the ETCD module.

ETCD: 10 Parameters:

ParameterTypeLevelComment
etcd_seqintIetcd instance identifier, REQUIRED
etcd_clusterstringCetcd cluster & group name, etcd by default
etcd_learnerboolIprevent purging running etcd instance?
etcd_cleanboolG/C/Apurging existing etcd during initialization?
etcd_datapathCetcd data directory, /data/etcd by default
etcd_portportCetcd client port, 2379 by default
etcd_peer_portportCetcd peer port, 2380 by default
etcd_initenumCetcd initial cluster state, new or existing
etcd_election_timeoutintCetcd election timeout, 1000ms by default
etcd_heartbeat_intervalintCetcd heartbeat interval, 100ms by default

ETCD_REMOVE: 3 Parameters:

ParameterTypeLevelComment
etcd_safeguardboolG/C/Aprevent purging running etcd instance?
etcd_rm_databoolG/C/Aremove etcd data during removal? (default: true)
etcd_rm_pkgboolG/C/Auninstall etcd packages during removal? (default: false)

Defaults

The default parameters are defined in roles/etcd/defaults/main.yml

Additional removal parameters are defined in roles/etcd_remove/defaults/main.yml

#-----------------------------------------------------------------
# ETCD
#-----------------------------------------------------------------
#etcd_seq: 1                      # etcd instance identifier, explicitly required
etcd_cluster: etcd                # etcd cluster & group name, etcd by default
etcd_data: /data/etcd             # etcd data directory, /data/etcd by default
etcd_learner: false               # etcd instance run as learner? false by default
etcd_port: 2379                   # etcd client port, 2379 by default
etcd_peer_port: 2380              # etcd peer port, 2380 by default
etcd_init: new                    # etcd initial cluster state, new or existing
etcd_election_timeout: 1000       # etcd election timeout, 1000ms by default
etcd_heartbeat_interval: 100      # etcd heartbeat interval, 100ms by default

ETCD_REMOVE Parameters

#-----------------------------------------------------------------
# ETCD_REMOVE
#-----------------------------------------------------------------
etcd_safeguard: false             # prevent accidental removal?
etcd_rm_data: true                # remove etcd data during removal?
etcd_rm_pkg: false                # uninstall etcd packages during removal?

etcd_seq

name: etcd_seq, type: int, level: I

etcd instance identifier, REQUIRED

no default value, you have to specify it explicitly. Here is a 3-node etcd cluster example:

etcd: # dcs service for postgres/patroni ha consensus
  hosts:  # 1 node for testing, 3 or 5 for production
    10.10.10.10: { etcd_seq: 1 }  # etcd_seq required
    10.10.10.11: { etcd_seq: 2 }  # assign from 1 ~ n
    10.10.10.12: { etcd_seq: 3 }  # use odd numbers
  vars: # cluster level parameter override roles/etcd
    etcd_cluster: etcd  # mark etcd cluster name etcd
    etcd_safeguard: false # safeguard against purging
    etcd_clean: true # purge etcd during init process

etcd_cluster

name: etcd_cluster, type: string, level: C

etcd cluster & group name, etcd by default

default values: etcd, which is a fixed group name, can be useful when you want to use deployed some extra etcd clusters


etcd_learner

name: etcd_learner, type: bool, level: I

Init etcd instance as learner? default value is false

When set to true, the etcd instance will be init as leaner, so it will not be able to vote in the etcd cluster. You can promote it to a full member later with etcdctl member promote command.


etcd_data

name: etcd_data, type: path, level: C

etcd data directory, /data/etcd by default


etcd_port

name: etcd_port, type: port, level: C

etcd client port, 2379 by default


etcd_peer_port

name: etcd_peer_port, type: port, level: C

etcd peer port, 2380 by default


etcd_init

name: etcd_init, type: enum, level: C

etcd initial cluster state, new or existing

default values: new, which will create a standalone new etcd cluster.

The value existing is used when trying to append new member to existing etcd cluster.


etcd_election_timeout

name: etcd_election_timeout, type: int, level: C

etcd election timeout, 1000 (ms) by default


etcd_heartbeat_interval

name: etcd_heartbeat_interval, type: int, level: C

etcd heartbeat interval, 100 (ms) by default


ETCD_REMOVE

This section contains parameters for the etcd_remove role, which are action flags for the etcd-rm.yml playbook.


etcd_safeguard

name: etcd_safeguard, type: bool, level: G/C/A

prevent purging etcd instance? default value is false

If enabled, running etcd instance will not be purged by etcd-rm.yml playbook.


etcd_rm_data

name: etcd_rm_data, type: bool, level: G/C/A

remove etcd data during removal? default value is true

When enabled, the etcd-rm.yml playbook will remove etcd data directories and configuration files during cluster or member removal.


etcd_rm_pkg

name: etcd_rm_pkg, type: bool, level: G/C/A

uninstall etcd packages during removal? default value is false

When enabled, the etcd-rm.yml playbook will uninstall etcd packages during cluster or member removal.