helm-charts/stable/amazon-eks-pod-identity-webhook/templates/Deployment.yaml (83 lines of code) (raw):
# Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.
#
# Licensed 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 "amazon-eks-pod-identity-webhook.fullname" . }}
labels:
{{- include "amazon-eks-pod-identity-webhook.labels" . | nindent 4 }}
spec:
replicas: {{ .Values.replicaCount }}
selector:
matchLabels:
{{- include "amazon-eks-pod-identity-webhook.selectorLabels" . | nindent 6 }}
template:
metadata:
labels:
{{- include "amazon-eks-pod-identity-webhook.selectorLabels" . | nindent 8 }}
spec:
serviceAccountName: {{ include "amazon-eks-pod-identity-webhook.fullname" . }}
{{- if .Values.fargate }}
initContainers:
- name: sleep
image: {{ .Values.baseImage }}
imagePullPolicy: Always
command:
- sleep
- {{ .Values.sleep | quote }}
{{- end }}
containers:
- name: webhook
image: {{ .Values.image }}
imagePullPolicy: Always
command:
- /webhook
- --in-cluster=false
- --namespace={{ .Release.Namespace }}
- --service-name={{ include "amazon-eks-pod-identity-webhook.fullname" . }}
- --tls-secret={{ include "amazon-eks-pod-identity-webhook.fullname" . }}
- --annotation-prefix=eks.amazonaws.com
- --token-audience=sts.amazonaws.com
- --token-expiration={{ .Values.webhook.tokenExpiration }}
- --aws-default-region={{ .Values.webhook.defaultRegion }}
- --sts-regional-endpoint={{ .Values.webhook.stsRegionalEndpoint }}
- --metrics-port={{ .Values.webhook.metricsPort }}
- --port={{ .Values.webhook.port }}
- --logtostderr
volumeMounts:
- name: cert
mountPath: /etc/webhook/certs
readOnly: true
volumes:
- name: cert
secret:
secretName: {{ include "amazon-eks-pod-identity-webhook.secretName" . }}
{{- with .Values.affinity }}
affinity:
{{ toYaml . | indent 8 }}
{{- end }}
---
apiVersion: cert-manager.io/v1
kind: ClusterIssuer
metadata:
name: selfsigned
spec:
selfSigned: {}
---
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
name: {{ include "amazon-eks-pod-identity-webhook.fullname" . }}
namespace: {{ .Release.Namespace }}
spec:
secretName: {{ include "amazon-eks-pod-identity-webhook.secretName" . }}
commonName: "pod-identity-webhook.default.svc"
dnsNames:
- "eks-distro-pod-identity-webhook"
- "eks-distro-pod-identity-webhook.default"
- "eks-distro-pod-identity-webhook.default.svc"
- "eks-distro-pod-identity-webhook.default.svc.local"
isCA: true
duration: 2160h # 90d
renewBefore: 360h # 15d
issuerRef:
name: selfsigned
kind: ClusterIssuer