chart/operator/templates/deployment.yaml (92 lines of code) (raw):
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ include "operator.fullname" . | trunc (int (sub 63 (len "-operator"))) | printf "%s-operator" }}
namespace: {{ .Release.Namespace }}
labels:
control-plane: {{ include "operator.fullname" . | trunc (int (sub 63 (len "-controller-manager"))) | printf "%s-controller-manager" }}
{{- include "operator.labels" . | nindent 4 }}
spec:
replicas: {{ .Values.replicaCount }}
selector:
matchLabels:
control-plane: {{ include "operator.fullname" . | trunc (int (sub 63 (len "-controller-manager"))) | printf "%s-controller-manager" }}
{{- include "operator.selectorLabels" . | nindent 6 }}
template:
metadata:
labels:
control-plane: {{ include "operator.fullname" . | trunc (int (sub 63 (len "-controller-manager"))) | printf "%s-controller-manager" }}
{{- include "operator.selectorLabels" . | nindent 8 }}
spec:
containers:
- args:
- --config=controller_manager_config.yaml
command:
- /manager
image: {{ .Values.image.repository }}:{{ required "operator.image.tag is required" .Values.image.tag }}
imagePullPolicy: {{ .Values.image.pullPolicy }}
livenessProbe:
httpGet:
path: /healthz
port: 8081
initialDelaySeconds: 15
periodSeconds: 20
name: manager
{{- if .Values.webhook.enabled }}
ports:
- containerPort: {{ .Values.webhook.service.port }}
name: webhook-server
protocol: TCP
{{- end }}
readinessProbe:
httpGet:
path: /readyz
port: 8081
initialDelaySeconds: 5
periodSeconds: 10
resources:
{{- toYaml .Values.resources | nindent 12 }}
securityContext:
{{- toYaml .Values.securityContext | nindent 10 }}
volumeMounts:
{{- if .Values.webhook.enabled }}
- mountPath: /tmp/k8s-webhook-server/serving-certs
name: cert
readOnly: true
{{- end }}
- mountPath: /controller_manager_config.yaml
name: manager-config
subPath: controller_manager_config.yaml
- args:
{{- if .Values.metrics.enabled }}
- --secure-listen-address=0.0.0.0:{{ .Values.metrics.service.port }}
{{- end }}
- --upstream=http://127.0.0.1:8080/
- --logtostderr=true
- --v=10
image: gcr.io/kubebuilder/kube-rbac-proxy:v0.8.0
name: kube-rbac-proxy
{{- if .Values.metrics.enabled }}
ports:
- containerPort: {{ .Values.metrics.service.port }}
name: https
protocol: TCP
{{- end }}
securityContext:
runAsNonRoot: true
serviceAccountName: {{ include "operator.fullname" . | trunc (int (sub 63 (len "-controller-manager"))) | printf "%s-controller-manager" }}
terminationGracePeriodSeconds: 10
volumes:
{{- if .Values.webhook.enabled }}
- name: cert
secret:
defaultMode: 420
secretName: {{ include "operator.fullname" . | trunc (int (sub 63 (len "-controller-manager-cert"))) | printf "%s-controller-manager-cert" }}
{{- end }}
- configMap:
name: {{ include "operator.fullname" . | trunc (int (sub 63 (len "-manager-config"))) | printf "%s-manager-config" }}
name: manager-config
{{- with .Values.affinity }}
affinity:
{{- toYaml . | nindent 8 }}
{{- end }}