SilverSight/infra/webhook/deployment.yaml

119 lines
2.6 KiB
YAML

apiVersion: v1
kind: Namespace
metadata:
name: infra
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: webhook
namespace: infra
labels:
app: webhook
spec:
replicas: 1
selector:
matchLabels:
app: webhook
template:
metadata:
labels:
app: webhook
spec:
serviceAccountName: webhook-deployer
containers:
- name: webhook
image: almir/webhook:latest
args:
- -hooks=/config/hooks.yaml
- -verbose
- -port=9000
ports:
- containerPort: 9000
name: http
securityContext:
runAsUser: 0
lifecycle:
postStart:
exec:
command: ["/bin/sh", "-c", "apk add --no-cache git helm sops"]
env:
- name: WEBHOOK_SECRET
valueFrom:
secretKeyRef:
name: webhook-secret
key: webhook-secret
- name: SOPS_AGE_KEY_FILE
value: /secrets/age.agekey
volumeMounts:
- name: hooks-config
mountPath: /config
- name: scripts
mountPath: /scripts
- name: sops-age
mountPath: /secrets
readOnly: true
- name: repos
mountPath: /repos
- name: k3s-config
mountPath: /etc/rancher/k3s
readOnly: true
resources:
requests:
cpu: 50m
memory: 64Mi
limits:
cpu: 200m
memory: 128Mi
volumes:
- name: hooks-config
configMap:
name: webhook-hooks
- name: scripts
configMap:
name: webhook-scripts
defaultMode: 0755
- name: sops-age
secret:
secretName: sops-age
- name: repos
hostPath:
path: /opt/repos
type: DirectoryOrCreate
- name: k3s-config
hostPath:
path: /etc/rancher/k3s
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: webhook-deployer
namespace: infra
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: webhook-deployer
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:
- kind: ServiceAccount
name: webhook-deployer
namespace: infra
---
apiVersion: v1
kind: Service
metadata:
name: webhook
namespace: infra
spec:
type: NodePort
selector:
app: webhook
ports:
- port: 9000
targetPort: 9000
nodePort: 31900
name: http