34 lines
1.7 KiB
Django/Jinja
34 lines
1.7 KiB
Django/Jinja
# Ansible 管理;与 k3s、数据库生命周期独立。
|
|
name: {{ inventory_hostname | to_json }}
|
|
data-dir: {{ etcd_data_dir | to_json }}
|
|
listen-client-urls: https://{{ etcd_address }}:{{ etcd_client_port }}
|
|
advertise-client-urls: https://{{ etcd_address }}:{{ etcd_client_port }}
|
|
listen-peer-urls: https://{{ etcd_address }}:{{ etcd_peer_port }}
|
|
initial-advertise-peer-urls: https://{{ etcd_address }}:{{ etcd_peer_port }}
|
|
initial-cluster: "{% for member in groups['etcd'] %}{{ member }}=https://{{ hostvars[member].etcd_address }}:{{ etcd_peer_port }}{{ ',' if not loop.last else '' }}{% endfor %}"
|
|
initial-cluster-token: {{ etcd_cluster_token | to_json }}
|
|
initial-cluster-state: new
|
|
# 已存在的数据目录优先;成员替换必须走单独 runbook,不删除数据重建。
|
|
client-transport-security:
|
|
cert-file: {{ etcd_config_dir }}/server.crt
|
|
key-file: {{ etcd_config_dir }}/server.key
|
|
client-cert-file: {{ etcd_config_dir }}/gateway.crt
|
|
client-key-file: {{ etcd_config_dir }}/gateway.key
|
|
trusted-ca-file: {{ etcd_config_dir }}/ca.crt
|
|
client-cert-auth: true
|
|
peer-transport-security:
|
|
cert-file: {{ etcd_config_dir }}/peer.crt
|
|
key-file: {{ etcd_config_dir }}/peer.key
|
|
trusted-ca-file: {{ etcd_config_dir }}/ca.crt
|
|
client-cert-auth: true
|
|
allowed-cn: [homelab-etcd-peer]
|
|
# 独立 metrics listener 仅提供指标/健康,不开放 KV API;只绑定受管内网地址。
|
|
listen-metrics-urls: {{ etcd_metrics_urls | default("http://127.0.0.1:" ~ etcd_metrics_port) | to_json }}
|
|
quota-backend-bytes: {{ etcd_quota_bytes }}
|
|
auto-compaction-mode: periodic
|
|
auto-compaction-retention: '1h'
|
|
heartbeat-interval: 100
|
|
election-timeout: 1000
|
|
logger: zap
|
|
log-level: info
|