From 1754a6b493b4d974e13e302ed40198c03cc0e982 Mon Sep 17 00:00:00 2001 From: Meza Date: Tue, 8 Sep 2026 11:18:32 -0400 Subject: [PATCH] fix(etcd): update etcd-metrics to endpointslice using single subset (#12846) Signed-off-by: Meza --- roles/kubernetes-apps/ansible/tasks/main.yml | 2 +- .../templates/etcd_metrics-endpoints.yml.j2 | 20 --------------- .../etcd_metrics-endpointslices.yml.j2 | 25 +++++++++++++++++++ 3 files changed, 26 insertions(+), 21 deletions(-) delete mode 100644 roles/kubernetes-apps/ansible/templates/etcd_metrics-endpoints.yml.j2 create mode 100644 roles/kubernetes-apps/ansible/templates/etcd_metrics-endpointslices.yml.j2 diff --git a/roles/kubernetes-apps/ansible/tasks/main.yml b/roles/kubernetes-apps/ansible/tasks/main.yml index d40767fae..53d6f0d32 100644 --- a/roles/kubernetes-apps/ansible/tasks/main.yml +++ b/roles/kubernetes-apps/ansible/tasks/main.yml @@ -82,7 +82,7 @@ delegate_to: "{{ groups['kube_control_plane'][0] }}" run_once: true loop: - - etcd_metrics-endpoints.yml.j2 + - etcd_metrics-endpointslices.yml.j2 - etcd_metrics-service.yml.j2 when: etcd_metrics_port is defined and etcd_metrics_service_labels is defined tags: diff --git a/roles/kubernetes-apps/ansible/templates/etcd_metrics-endpoints.yml.j2 b/roles/kubernetes-apps/ansible/templates/etcd_metrics-endpoints.yml.j2 deleted file mode 100644 index 18f515d18..000000000 --- a/roles/kubernetes-apps/ansible/templates/etcd_metrics-endpoints.yml.j2 +++ /dev/null @@ -1,20 +0,0 @@ -apiVersion: v1 -kind: Endpoints -metadata: - name: etcd-metrics - namespace: kube-system - labels: - k8s-app: etcd - app.kubernetes.io/managed-by: Kubespray -subsets: -{% for etcd_metrics_address, etcd_host in etcd_metrics_addresses.split(',') | zip(etcd_hosts) %} - - addresses: - - ip: {{ etcd_metrics_address | urlsplit('hostname') }} - targetRef: - kind: Node - name: {{ etcd_host }} - ports: - - name: http-metrics - port: {{ etcd_metrics_address | urlsplit('port') }} - protocol: TCP -{% endfor %} diff --git a/roles/kubernetes-apps/ansible/templates/etcd_metrics-endpointslices.yml.j2 b/roles/kubernetes-apps/ansible/templates/etcd_metrics-endpointslices.yml.j2 new file mode 100644 index 000000000..314ba5cd7 --- /dev/null +++ b/roles/kubernetes-apps/ansible/templates/etcd_metrics-endpointslices.yml.j2 @@ -0,0 +1,25 @@ +apiVersion: discovery.k8s.io/v1 +kind: EndpointSlice +metadata: + name: etcd-metrics + namespace: kube-system + labels: + k8s-app: etcd + app.kubernetes.io/managed-by: Kubespray + kubernetes.io/service-name: etcd-metrics +addressType: IPv4 +endpoints: +{% for etcd_metrics_address, etcd_host in etcd_metrics_addresses.split(',') | zip(etcd_hosts) %} + - addresses: + - "{{ etcd_metrics_address | urlsplit('hostname') }}" + conditions: + ready: true + nodeName: {{ etcd_host }} + targetRef: + kind: Node + name: {{ etcd_host }} +{% endfor %} +ports: + - name: http-metrics + port: {{ etcd_metrics_port }} + protocol: TCP