From ebf360213f572c61bb1dc29c5fed7a8bb601e956 Mon Sep 17 00:00:00 2001 From: Ali Sattari Date: Sun, 22 Dec 2019 14:49:32 +0100 Subject: [PATCH] [stable/prometheus] Adding Vertical Pod Autoscaler support (#17742) * Adding vertical Pod Autoscaler support to the chart Signed-off-by: Ali Sattari * EOF fixed in new file Signed-off-by: Ali Sattari * bumping the right version field! Signed-off-by: Ali Sattari * fixing a mistake in version bumping Signed-off-by: Ali Sattari * fixing wrong version bump Signed-off-by: Ali Sattari * Fixes loop issue Signed-off-by: Ali Sattari * Bumped chart version, synced app version with master. Signed-off-by: Ali Sattari * Bumping chart version Signed-off-by: Ali Sattari * Merge conflict cleanup Signed-off-by: Ali Sattari --- stable/prometheus/Chart.yaml | 2 +- stable/prometheus/README.md | 1 + stable/prometheus/templates/server-vpa.yaml | 24 +++++++++++++++++++++ stable/prometheus/values.yaml | 9 ++++++++ 4 files changed, 35 insertions(+), 1 deletion(-) create mode 100644 stable/prometheus/templates/server-vpa.yaml diff --git a/stable/prometheus/Chart.yaml b/stable/prometheus/Chart.yaml index 60f904085f..4cd755a450 100755 --- a/stable/prometheus/Chart.yaml +++ b/stable/prometheus/Chart.yaml @@ -1,6 +1,6 @@ apiVersion: v1 name: prometheus -version: 9.7.1 +version: 9.7.2 appVersion: 2.13.1 description: Prometheus is a monitoring system and time series database. home: https://prometheus.io/ diff --git a/stable/prometheus/README.md b/stable/prometheus/README.md index 295b5621d9..5e106dfb20 100644 --- a/stable/prometheus/README.md +++ b/stable/prometheus/README.md @@ -316,6 +316,7 @@ Parameter | Description | Default `server.statefulSet.headless.labels` | labels for Prometheus server headless service | `{}` `server.statefulSet.headless.servicePort` | Prometheus server headless service port | `80` `server.resources` | Prometheus server resource requests and limits | `{}` +`server.verticalAutoscaler.enabled` | If true a VPA object will be created for the controller (either StatefulSet or Deployemnt, based on above configs) | `false` `server.securityContext` | Custom [security context](https://kubernetes.io/docs/tasks/configure-pod-container/security-context/) for server containers | `{}` `server.service.annotations` | annotations for Prometheus server service | `{}` `server.service.clusterIP` | internal Prometheus server cluster service IP | `""` diff --git a/stable/prometheus/templates/server-vpa.yaml b/stable/prometheus/templates/server-vpa.yaml new file mode 100644 index 0000000000..ef3604eb0e --- /dev/null +++ b/stable/prometheus/templates/server-vpa.yaml @@ -0,0 +1,24 @@ +{{- if .Values.server.enabled -}} +{{- if .Values.server.verticalAutoscaler.enabled -}} +apiVersion: autoscaling.k8s.io/v1beta2 +kind: VerticalPodAutoscaler +metadata: + labels: + {{- include "prometheus.server.labels" . | nindent 4 }} + name: {{ template "prometheus.server.fullname" . }}-vpa +spec: + targetRef: +{{- if .Values.server.statefulSet.enabled }} + apiVersion: "apps/v1" + kind: StatefulSet +{{- else }} + apiVersion: "extensions/v1beta1" + kind: Deployment +{{- end }} + name: {{ template "prometheus.server.fullname" . }} + updatePolicy: + updateMode: {{ .Values.server.verticalAutoscaler.updateMode | default "Off" | quote }} + resourcePolicy: + containerPolicies: {{ .Values.server.verticalAutoscaler.containerPolicies | default list | toYaml | trim | nindent 4 }} +{{- end -}} {{/* if .Values.server.verticalAutoscaler.enabled */}} +{{- end -}} {{/* .Values.server.enabled */}} diff --git a/stable/prometheus/values.yaml b/stable/prometheus/values.yaml index 36fdfea6de..871a1fa4f1 100644 --- a/stable/prometheus/values.yaml +++ b/stable/prometheus/values.yaml @@ -881,6 +881,15 @@ server: # cpu: 500m # memory: 512Mi + ## Vertical Pod Autoscaler config + ## Ref: https://github.com/kubernetes/autoscaler/tree/master/vertical-pod-autoscaler + verticalAutoscaler: + ## If true a VPA object will be created for the controller (either StatefulSet or Deployemnt, based on above configs) + enabled: false + # updateMode: "Auto" + # containerPolicies: + # - containerName: 'prometheus-server' + ## Security context to be added to server pods ## securityContext: