2022-07-22 07:46:19 +00:00
|
|
|
---
|
|
|
|
# Source: calico/templates/calico-kube-controllers.yaml
|
|
|
|
# See https://github.com/projectcalico/kube-controllers
|
|
|
|
apiVersion: apps/v1
|
|
|
|
kind: Deployment
|
|
|
|
metadata:
|
|
|
|
name: calico-kube-controllers
|
|
|
|
namespace: kube-system
|
|
|
|
labels:
|
|
|
|
k8s-app: calico-kube-controllers
|
|
|
|
spec:
|
|
|
|
# The controllers can only have a single active instance.
|
|
|
|
replicas: 1
|
|
|
|
selector:
|
|
|
|
matchLabels:
|
|
|
|
k8s-app: calico-kube-controllers
|
|
|
|
strategy:
|
|
|
|
type: Recreate
|
|
|
|
template:
|
|
|
|
metadata:
|
|
|
|
name: calico-kube-controllers
|
|
|
|
namespace: kube-system
|
|
|
|
labels:
|
|
|
|
k8s-app: calico-kube-controllers
|
|
|
|
spec:
|
|
|
|
nodeSelector:
|
|
|
|
kubernetes.io/os: linux
|
|
|
|
tolerations:
|
|
|
|
# Mark the pod as a critical add-on for rescheduling.
|
|
|
|
- key: CriticalAddonsOnly
|
|
|
|
operator: Exists
|
|
|
|
- key: node-role.kubernetes.io/master
|
|
|
|
effect: NoSchedule
|
|
|
|
serviceAccountName: calico-kube-controllers
|
|
|
|
priorityClassName: system-cluster-critical
|
2022-07-22 13:28:07 +00:00
|
|
|
# The controllers must run in the host network namespace so that
|
|
|
|
# it isn't governed by policy that would prevent it from working.
|
|
|
|
hostNetwork: true
|
2022-07-22 07:46:19 +00:00
|
|
|
containers:
|
|
|
|
- name: calico-kube-controllers
|
|
|
|
image: {{ calico_cni_image_repo }}:{{ calico_cni_image_tag }}
|
2022-07-22 13:28:07 +00:00
|
|
|
imagePullPolicy: {{ k8s_image_pull_policy }}
|
2022-07-22 07:46:19 +00:00
|
|
|
env:
|
2022-07-22 13:28:07 +00:00
|
|
|
# The location of the etcd cluster.
|
|
|
|
- name: ETCD_ENDPOINTS
|
|
|
|
valueFrom:
|
|
|
|
configMapKeyRef:
|
|
|
|
name: canal-config
|
|
|
|
key: etcd_endpoints
|
|
|
|
# Location of the CA certificate for etcd.
|
|
|
|
- name: ETCD_CA_CERT_FILE
|
|
|
|
valueFrom:
|
|
|
|
configMapKeyRef:
|
|
|
|
name: canal-config
|
|
|
|
key: etcd_ca
|
|
|
|
# Location of the client key for etcd.
|
|
|
|
- name: ETCD_KEY_FILE
|
|
|
|
valueFrom:
|
|
|
|
configMapKeyRef:
|
|
|
|
name: canal-config
|
|
|
|
key: etcd_key
|
|
|
|
# Location of the client certificate for etcd.
|
|
|
|
- name: ETCD_CERT_FILE
|
|
|
|
valueFrom:
|
|
|
|
configMapKeyRef:
|
|
|
|
name: canal-config
|
|
|
|
key: etcd_cert
|
2022-07-22 07:46:19 +00:00
|
|
|
# Choose which controllers to run.
|
|
|
|
- name: ENABLED_CONTROLLERS
|
2022-07-22 13:28:07 +00:00
|
|
|
value: policy,namespace,serviceaccount,workloadendpoint,node
|
|
|
|
volumeMounts:
|
|
|
|
# Mount in the etcd TLS secrets.
|
|
|
|
- mountPath: /calico-secrets
|
|
|
|
name: etcd-certs
|
2022-07-22 07:46:19 +00:00
|
|
|
livenessProbe:
|
|
|
|
exec:
|
|
|
|
command:
|
|
|
|
- /usr/bin/check-status
|
|
|
|
- -l
|
|
|
|
periodSeconds: 10
|
|
|
|
initialDelaySeconds: 10
|
|
|
|
failureThreshold: 6
|
|
|
|
timeoutSeconds: 10
|
|
|
|
readinessProbe:
|
|
|
|
exec:
|
|
|
|
command:
|
|
|
|
- /usr/bin/check-status
|
|
|
|
- -r
|
|
|
|
periodSeconds: 10
|
2022-07-22 13:28:07 +00:00
|
|
|
volumes:
|
|
|
|
# Mount in the etcd TLS secrets with mode 400.
|
|
|
|
# See https://kubernetes.io/docs/concepts/configuration/secret/
|
|
|
|
- name: etcd-certs
|
|
|
|
secret:
|
|
|
|
secretName: calico-etcd-secrets
|
|
|
|
defaultMode: 0440
|