From 1929cdcbef2c7ab1f694c21374731c7ad2e775bd Mon Sep 17 00:00:00 2001
From: Steve Wilkerson <wilkers.steve@gmail.com>
Date: Mon, 5 Mar 2018 10:39:28 -0600
Subject: [PATCH] kube-state-metrics: use endpoints section and lookups to set
 port

This PS moves kube-state-metrics to use the endpoints section and
lookups to set the ports it serves on.

Change-Id: Icb4757a59852e508148ca9f1e682c722e40042c9
---
 .../templates/deployment.yaml                          |  2 +-
 .../templates/service-controller-manager.yaml          |  4 ++--
 .../templates/service-kube-state-metrics.yaml          |  4 ++--
 .../templates/service-scheduler.yaml                   |  4 ++--
 prometheus-kube-state-metrics/values.yaml              | 10 ++++++----
 5 files changed, 13 insertions(+), 11 deletions(-)

diff --git a/prometheus-kube-state-metrics/templates/deployment.yaml b/prometheus-kube-state-metrics/templates/deployment.yaml
index 89b1a7de7..f7e0dc58a 100644
--- a/prometheus-kube-state-metrics/templates/deployment.yaml
+++ b/prometheus-kube-state-metrics/templates/deployment.yaml
@@ -108,5 +108,5 @@ spec:
 {{ tuple $envAll $envAll.Values.pod.resources.kube_state_metrics | include "helm-toolkit.snippets.kubernetes_resources" | indent 10 }}
           ports:
             - name: metrics
-              containerPort: {{ .Values.network.kube_state_metrics.port }}
+              containerPort: {{ tuple "kube_state_metrics" "internal" "http" . | include "helm-toolkit.endpoints.endpoint_port_lookup" }}
 {{- end }}
diff --git a/prometheus-kube-state-metrics/templates/service-controller-manager.yaml b/prometheus-kube-state-metrics/templates/service-controller-manager.yaml
index b9a08b9b2..65ee4d35e 100644
--- a/prometheus-kube-state-metrics/templates/service-controller-manager.yaml
+++ b/prometheus-kube-state-metrics/templates/service-controller-manager.yaml
@@ -35,7 +35,7 @@ spec:
   clusterIP: None
   ports:
   - name: http-metrics
-    port: 10252
-    targetPort: 10252
+    port: {{ tuple "kube_controller_manager" "internal" "metrics" . | include "helm-toolkit.endpoints.endpoint_port_lookup" }}
+    targetPort: {{ tuple "kube_controller_manager" "internal" "metrics" . | include "helm-toolkit.endpoints.endpoint_port_lookup" }}
     protocol: TCP
 {{- end }}
diff --git a/prometheus-kube-state-metrics/templates/service-kube-state-metrics.yaml b/prometheus-kube-state-metrics/templates/service-kube-state-metrics.yaml
index bfc16a204..7bb2e8981 100644
--- a/prometheus-kube-state-metrics/templates/service-kube-state-metrics.yaml
+++ b/prometheus-kube-state-metrics/templates/service-kube-state-metrics.yaml
@@ -31,8 +31,8 @@ metadata:
 spec:
   ports:
   - name: http
-    port: {{ .Values.network.kube_state_metrics.port }}
-    targetPort: 8080
+    port: {{ tuple "kube_state_metrics" "internal" "http" . | include "helm-toolkit.endpoints.endpoint_port_lookup" }}
+    targetPort: {{ tuple "kube_state_metrics" "internal" "http" . | include "helm-toolkit.endpoints.endpoint_port_lookup" }}
   selector:
 {{ tuple $envAll "kube-state-metrics" "exporter" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 4 }}
 {{- end }}
diff --git a/prometheus-kube-state-metrics/templates/service-scheduler.yaml b/prometheus-kube-state-metrics/templates/service-scheduler.yaml
index ef396a7e1..73b66ac79 100644
--- a/prometheus-kube-state-metrics/templates/service-scheduler.yaml
+++ b/prometheus-kube-state-metrics/templates/service-scheduler.yaml
@@ -35,7 +35,7 @@ spec:
   clusterIP: None
   ports:
   - name: http-metrics
-    port: 10251
-    targetPort: 10251
+    port: {{ tuple "kube_scheduler" "internal" "metrics" . | include "helm-toolkit.endpoints.endpoint_port_lookup" }}
+    targetPort: {{ tuple "kube_scheduler" "internal" "metrics" . | include "helm-toolkit.endpoints.endpoint_port_lookup" }}
     protocol: TCP
 {{- end }}
diff --git a/prometheus-kube-state-metrics/values.yaml b/prometheus-kube-state-metrics/values.yaml
index 22e07cfde..52c213bfa 100644
--- a/prometheus-kube-state-metrics/values.yaml
+++ b/prometheus-kube-state-metrics/values.yaml
@@ -120,11 +120,17 @@ endpoints:
       default: 'http'
     path:
       default: /metrics
+    port:
+      metrics:
+        default: 10251
   kube_controller_manager:
     scheme:
       default: 'http'
     path:
       default: /metrics
+    port:
+      metrics:
+        default: 10252
 
 monitoring:
   prometheus:
@@ -136,10 +142,6 @@ monitoring:
     kube_controller_manager:
       scrape: true
 
-network:
-  kube_state_metrics:
-    port: 8080
-
 manifests:
   configmap_bin: true
   deployment: true