Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 24 additions & 1 deletion charts/vertical-pod-autoscaler/templates/_helpers.tpl
Original file line number Diff line number Diff line change
Expand Up @@ -79,4 +79,27 @@ Create the name of the namespace to use
*/}}
{{- define "common.names.namespace" -}}
{{- default .Release.Namespace .Values.namespaceOverride | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{- end -}}


{{/*
recommender
*/}}
{{- define "vertical-pod-autoscaler.recommender.fullname" -}}
{{ include "vertical-pod-autoscaler.fullname" . }}-recommender
{{- end }}

{{- define "vertical-pod-autoscaler.recommender.labels" -}}
{{ include "vertical-pod-autoscaler.labels" . }}
app.kubernetes.io/component: recommender
app.kubernetes.io/component-instance: {{ .Release.Name }}-recommender
{{- end }}

{{- define "vertical-pod-autoscaler.recommender.selectorLabels" -}}
{{ include "vertical-pod-autoscaler.selectorLabels" . }}
app.kubernetes.io/component: recommender
{{- end }}

{{- define "vertical-pod-autoscaler.recommender.image" -}}
{{- printf "%s:%s" .Values.recommender.image.repository (default .Chart.AppVersion .Values.recommender.image.tag) }}
{{- end }}
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
{{- if and (.Values.recommender.enabled) .Values.rbac.create -}}
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: {{ include "vertical-pod-autoscaler.recommender.fullname" . }}-metrics-reader
labels:
{{- include "vertical-pod-autoscaler.recommender.labels" . | nindent 4 }}
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: {{ include "vertical-pod-autoscaler.recommender.fullname" . }}-metrics-reader
subjects:
- kind: ServiceAccount
name: {{ include "vertical-pod-autoscaler.recommender.fullname" . }}
namespace: {{ .Release.Namespace }}
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: {{ include "vertical-pod-autoscaler.recommender.fullname" . }}-actor
labels:
{{- include "vertical-pod-autoscaler.recommender.labels" . | nindent 4 }}
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: {{ include "vertical-pod-autoscaler.recommender.fullname" . }}-actor
subjects:
- kind: ServiceAccount
name: {{ include "vertical-pod-autoscaler.recommender.fullname" . }}
namespace: {{ .Release.Namespace }}
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: {{ include "vertical-pod-autoscaler.recommender.fullname" . }}-status-actor
labels:
{{- include "vertical-pod-autoscaler.recommender.labels" . | nindent 4 }}
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: {{ include "vertical-pod-autoscaler.recommender.fullname" . }}-status-actor
subjects:
- kind: ServiceAccount
name: {{ include "vertical-pod-autoscaler.recommender.fullname" . }}
namespace: {{ .Release.Namespace }}
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: {{ include "vertical-pod-autoscaler.recommender.fullname" . }}-checkpoint-actor
labels:
{{- include "vertical-pod-autoscaler.recommender.labels" . | nindent 4 }}
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: {{ include "vertical-pod-autoscaler.recommender.fullname" . }}-checkpoint-actor
subjects:
- kind: ServiceAccount
name: {{ include "vertical-pod-autoscaler.recommender.fullname" . }}
namespace: {{ .Release.Namespace }}
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: {{ include "vertical-pod-autoscaler.recommender.fullname" . }}-target-reader
labels:
{{- include "vertical-pod-autoscaler.recommender.labels" . | nindent 4 }}
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: {{ include "vertical-pod-autoscaler.recommender.fullname" . }}-target-reader
subjects:
- kind: ServiceAccount
name: {{ include "vertical-pod-autoscaler.recommender.fullname" . }}
namespace: {{ .Release.Namespace }}
{{- end -}}

159 changes: 159 additions & 0 deletions charts/vertical-pod-autoscaler/templates/recommender-clusterroles.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,159 @@
{{- if and (.Values.recommender.enabled) .Values.rbac.create -}}
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: {{ include "vertical-pod-autoscaler.recommender.fullname" . }}-metrics-reader
labels:
{{- include "vertical-pod-autoscaler.recommender.labels" . | nindent 4 }}
rules:
- apiGroups:
- "metrics.k8s.io"
resources:
- pods
verbs:
- get
- list
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: {{ include "vertical-pod-autoscaler.recommender.fullname" . }}-actor
labels:
{{- include "vertical-pod-autoscaler.recommender.labels" . | nindent 4 }}
rules:
- apiGroups:
- ""
resources:
- pods
- nodes
- limitranges
verbs:
- get
- list
- watch
- apiGroups:
- ""
- events.k8s.io
resources:
- events
verbs:
- create
- get
- list
- watch
- patch
- update
- apiGroups:
- "poc.autoscaling.k8s.io"
resources:
- verticalpodautoscalers
verbs:
- get
- list
- watch
- apiGroups:
- "autoscaling.k8s.io"
resources:
- verticalpodautoscalers
verbs:
- get
- list
- watch
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: {{ include "vertical-pod-autoscaler.recommender.fullname" . }}-status-actor
labels:
{{- include "vertical-pod-autoscaler.recommender.labels" . | nindent 4 }}
rules:
- apiGroups:
- "autoscaling.k8s.io"
resources:
- verticalpodautoscalers/status
verbs:
- get
- patch
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: {{ include "vertical-pod-autoscaler.recommender.fullname" . }}-checkpoint-actor
labels:
{{- include "vertical-pod-autoscaler.recommender.labels" . | nindent 4 }}
rules:
- apiGroups:
- "poc.autoscaling.k8s.io"
resources:
- verticalpodautoscalercheckpoints
verbs:
- get
- list
- watch
- create
- patch
- delete
- apiGroups:
- "autoscaling.k8s.io"
resources:
- verticalpodautoscalercheckpoints
verbs:
- get
- list
- watch
- create
- patch
- delete
- apiGroups:
- ""
resources:
- namespaces
verbs:
- get
- list
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: {{ include "vertical-pod-autoscaler.recommender.fullname" . }}-target-reader
labels:
{{- include "vertical-pod-autoscaler.recommender.labels" . | nindent 4 }}
rules:
- apiGroups:
- '*'
resources:
- '*/scale'
verbs:
- get
- watch
- apiGroups:
- ""
resources:
- replicationcontrollers
verbs:
- get
- list
- watch
- apiGroups:
- apps
resources:
- daemonsets
- deployments
- replicasets
- statefulsets
verbs:
- get
- list
- watch
- apiGroups:
- batch
resources:
- jobs
- cronjobs
verbs:
- get
- list
- watch
{{- end -}}

Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
{{- if .Values.recommender.enabled -}}
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ include "vertical-pod-autoscaler.recommender.fullname" . }}
namespace: {{ .Release.Namespace }}
labels:
{{- include "vertical-pod-autoscaler.recommender.labels" . | nindent 4 }}
spec:
replicas: {{ .Values.recommender.replicas }}
{{- with .Values.recommender.updateStrategy }}
strategy:
{{- toYaml . | nindent 4 }}
{{- end }}
selector:
matchLabels:
{{- include "vertical-pod-autoscaler.recommender.selectorLabels" . | nindent 6 }}
template:
metadata:
labels:
{{- include "vertical-pod-autoscaler.recommender.selectorLabels" . | nindent 8 }}
{{- with .Values.recommender.podLabels }}
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.recommender.podAnnotations }}
annotations:
{{- toYaml . | nindent 8 }}
{{- end }}
spec:
{{- with .Values.imagePullSecrets }}
imagePullSecrets:
{{- toYaml . | nindent 8 }}
{{- end }}
serviceAccountName: {{ include "vertical-pod-autoscaler.recommender.fullname" . }}
securityContext:
runAsNonRoot: true
runAsUser: 65534
containers:
- name: recommender
image: {{ include "vertical-pod-autoscaler.recommender.image" . }}
imagePullPolicy: {{ .Values.recommender.image.pullPolicy }}
env:
- name: NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
{{- with .Values.recommender.extraEnv }}
{{- toYaml . | nindent 8 }}
{{- end }}
args:
- --v=4
- --stderrthreshold=info
{{- with .Values.recommender.extraArgs }}
{{- toYaml . | nindent 8 }}
{{- end }}
ports:
- name: prometheus
containerPort: 8942
protocol: TCP
livenessProbe:
httpGet:
path: /health-check
port: prometheus
scheme: HTTP
initialDelaySeconds: 5
periodSeconds: 10
failureThreshold: 3
readinessProbe:
httpGet:
path: /health-check
port: prometheus
scheme: HTTP
periodSeconds: 10
failureThreshold: 3
{{- with .Values.recommender.resources }}
resources:
{{- toYaml . | nindent 10 }}
{{- end }}
{{- with .Values.recommender.nodeSelector }}
nodeSelector:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.recommender.affinity }}
affinity:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.recommender.tolerations }}
tolerations:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- end -}}

Loading
Loading