From d98540de2cae18007de5ed8e48fcf30bf381327f Mon Sep 17 00:00:00 2001 From: Ali Afsharzadeh Date: Thu, 8 Oct 2026 07:11:59 +0330 Subject: [PATCH] Add etcd_feature_gates and restore the etcd 3.5 flag names (#13569) Signed-off-by: Ali Afsharzadeh --- roles/etcd/templates/etcd.env.j2 | 17 ++++++++++++++++- roles/etcd_defaults/defaults/main.yml | 5 +++++ 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/roles/etcd/templates/etcd.env.j2 b/roles/etcd/templates/etcd.env.j2 index ec2a6828c..5306d5bbb 100644 --- a/roles/etcd/templates/etcd.env.j2 +++ b/roles/etcd/templates/etcd.env.j2 @@ -52,7 +52,8 @@ ETCDCTL_CERT={{ etcd_cert_dir }}/admin-{{ inventory_hostname }}.pem # ETCD 3.5.x issue # https://groups.google.com/a/kubernetes.io/g/dev/c/B7gJs88XtQc/m/rSgNOzV2BwAJ?utm_medium=email&utm_source=footer -ETCD_FEATURE_GATES=InitialCorruptCheck={{ etcd_experimental_initial_corrupt_check }} +{% if etcd_version is version('3.6.0', '>=') %} +ETCD_FEATURE_GATES={{ ({'InitialCorruptCheck': etcd_experimental_initial_corrupt_check} | combine(etcd_feature_gates)).items() | map('join', '=') | join(',') }} {% if etcd_experimental_enable_distributed_tracing %} ETCD_ENABLE_DISTRIBUTED_TRACING=true @@ -63,3 +64,17 @@ ETCD_DISTRIBUTED_TRACING_INSTANCE_ID={{ etcd_member_name }} {% endif %} ETCD_WATCH_PROGRESS_NOTIFY_INTERVAL={{ etcd_experimental_watch_progress_notify_interval }} +{% else %} +{# etcd 3.5.x uses the experimental names #} +ETCD_EXPERIMENTAL_INITIAL_CORRUPT_CHECK={{ etcd_experimental_initial_corrupt_check }} + +{% if etcd_experimental_enable_distributed_tracing %} +ETCD_EXPERIMENTAL_ENABLE_DISTRIBUTED_TRACING=true +ETCD_EXPERIMENTAL_DISTRIBUTED_TRACING_SAMPLING_RATE={{ etcd_experimental_distributed_tracing_sample_rate }} +ETCD_EXPERIMENTAL_DISTRIBUTED_TRACING_ADDRESS={{ etcd_experimental_distributed_tracing_address }} +ETCD_EXPERIMENTAL_DISTRIBUTED_TRACING_SERVICE_NAME={{ etcd_experimental_distributed_tracing_service_name }} +ETCD_EXPERIMENTAL_DISTRIBUTED_TRACING_INSTANCE_ID={{ etcd_member_name }} +{% endif %} + +ETCD_EXPERIMENTAL_WATCH_PROGRESS_NOTIFY_INTERVAL={{ etcd_experimental_watch_progress_notify_interval }} +{% endif %} diff --git a/roles/etcd_defaults/defaults/main.yml b/roles/etcd_defaults/defaults/main.yml index 7b5b5717d..6dbe3b3fc 100644 --- a/roles/etcd_defaults/defaults/main.yml +++ b/roles/etcd_defaults/defaults/main.yml @@ -117,6 +117,11 @@ etcd_retries: 4 # Rendered as the InitialCorruptCheck feature gate (etcd 3.6+) etcd_experimental_initial_corrupt_check: true +## Feature gates for etcd 3.6 and later, added to InitialCorruptCheck, formatted like: +## etcd_feature_gates: +## CompactHashCheck: true +etcd_feature_gates: {} + # Enable distributed tracing # https://etcd.io/docs/v3.5/op-guide/monitoring/#distributed-tracing etcd_experimental_enable_distributed_tracing: false