quorate/services/short/k8s/control/deployment.yaml

114 lines
2.8 KiB
YAML

apiVersion: apps/v1
kind: Deployment
metadata:
name: controller
namespace: short
spec:
replicas: 2
selector:
matchLabels:
app.kubernetes.io/name: controller
template:
metadata:
labels:
app.kubernetes.io/name: controller
app.kubernetes.io/instance: short
spec:
serviceAccountName: short-controller
imagePullSecrets:
- name: pull
securityContext:
runAsNonRoot: true
runAsUser: 65532
runAsGroup: 65532
fsGroup: 65532
seccompProfile:
type: RuntimeDefault
affinity:
podAntiAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- topologyKey: kubernetes.io/hostname
labelSelector:
matchLabels:
app.kubernetes.io/name: controller
app.kubernetes.io/instance: short
containers:
- name: controller
image: short-image
args:
- controller
env:
- name: POD_UID
valueFrom:
fieldRef:
fieldPath: metadata.uid
- name: POD_NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
- name: VAULT_ADDR
value: https://vault.vault.svc.cluster.local:8200
- name: OPNSENSE_URL
value: https://10.212.111.120:8443
- name: SSL_CERT_FILE
value: /ca/ca.crt
securityContext:
allowPrivilegeEscalation: false
readOnlyRootFilesystem: true
capabilities:
drop:
- ALL
resources:
requests:
cpu: 50m
memory: 64Mi
limits:
memory: 192Mi
volumeMounts:
- name: config
mountPath: /config
readOnly: true
- name: ca
mountPath: /ca
readOnly: true
volumes:
- name: ca
secret:
secretName: ca
- name: config
projected:
defaultMode: 288
sources:
- secret:
name: api
items:
- key: private_key
path: private_key
- secret:
name: cloud
items:
- key: config
path: cloud.json
- secret:
name: opnsense
items:
- key: key
path: opnsense/key
- key: secret
path: opnsense/secret
- secret:
name: ca-opnsense
items:
- key: ca.crt
path: opnsense/ca.crt
---
apiVersion: policy/v1
kind: PodDisruptionBudget
metadata:
name: controller
namespace: short
spec:
minAvailable: 1
selector:
matchLabels:
app.kubernetes.io/name: controller