200a241d42
Add apps/base/repospawner with namespace, service account, job-spawning RBAC, the server Deployment, oauth2-proxy front door, internal and external gateways, and the VaultStaticSecrets backing them. Register the overlay in the platform ApplicationSet and AppProject.
134 lines
3.8 KiB
YAML
134 lines
3.8 KiB
YAML
---
|
|
apiVersion: apps/v1
|
|
kind: Deployment
|
|
metadata:
|
|
name: repospawner-oauth2
|
|
namespace: repospawner
|
|
annotations:
|
|
configmap.reloader.stakater.com/auto: "true"
|
|
secret.reloader.stakater.com/reload: "oauth-credentials,vault-ca-cert"
|
|
spec:
|
|
replicas: 2
|
|
selector:
|
|
matchLabels:
|
|
app: repospawner-oauth2
|
|
strategy:
|
|
rollingUpdate:
|
|
maxUnavailable: 1
|
|
type: RollingUpdate
|
|
template:
|
|
metadata:
|
|
labels:
|
|
app: repospawner-oauth2
|
|
spec:
|
|
serviceAccountName: default
|
|
automountServiceAccountToken: false
|
|
securityContext:
|
|
runAsNonRoot: true
|
|
runAsUser: 65532
|
|
runAsGroup: 65532
|
|
fsGroup: 65532
|
|
seccompProfile:
|
|
type: RuntimeDefault
|
|
initContainers:
|
|
# The Authentik issuer is served behind the internal unkin.net CA;
|
|
# combine the system roots with it so oauth2-proxy's OIDC HTTP client
|
|
# trusts the discovery endpoint.
|
|
- name: combine-certs
|
|
image: docker.io/library/alpine:3
|
|
imagePullPolicy: IfNotPresent
|
|
command:
|
|
- sh
|
|
- -c
|
|
- cat /etc/ssl/certs/ca-certificates.crt /custom-ca/ca.crt > /combined-certs/ca-certificates.crt
|
|
volumeMounts:
|
|
- name: vault-ca-cert
|
|
mountPath: /custom-ca
|
|
readOnly: true
|
|
- name: combined-certs
|
|
mountPath: /combined-certs
|
|
securityContext:
|
|
allowPrivilegeEscalation: false
|
|
readOnlyRootFilesystem: true
|
|
capabilities:
|
|
drop:
|
|
- ALL
|
|
resources:
|
|
requests:
|
|
cpu: 50m
|
|
memory: 32Mi
|
|
limits:
|
|
cpu: 200m
|
|
memory: 64Mi
|
|
containers:
|
|
- name: oauth2-proxy
|
|
image: quay.io/oauth2-proxy/oauth2-proxy:v7.15.3
|
|
imagePullPolicy: IfNotPresent
|
|
ports:
|
|
- containerPort: 4180
|
|
name: http
|
|
protocol: TCP
|
|
envFrom:
|
|
- configMapRef:
|
|
name: repospawner-oauth2-env
|
|
optional: false
|
|
env:
|
|
- name: OAUTH2_PROXY_CLIENT_ID
|
|
valueFrom:
|
|
secretKeyRef:
|
|
name: oauth-credentials
|
|
key: client_id
|
|
- name: OAUTH2_PROXY_CLIENT_SECRET
|
|
valueFrom:
|
|
secretKeyRef:
|
|
name: oauth-credentials
|
|
key: client_secret
|
|
- name: OAUTH2_PROXY_COOKIE_SECRET
|
|
valueFrom:
|
|
secretKeyRef:
|
|
name: oauth-credentials
|
|
key: cookie_secret
|
|
volumeMounts:
|
|
- name: combined-certs
|
|
mountPath: /etc/ssl/combined
|
|
readOnly: true
|
|
livenessProbe:
|
|
httpGet:
|
|
path: /ping
|
|
port: http
|
|
initialDelaySeconds: 10
|
|
periodSeconds: 30
|
|
timeoutSeconds: 5
|
|
failureThreshold: 3
|
|
readinessProbe:
|
|
httpGet:
|
|
path: /ready
|
|
port: http
|
|
initialDelaySeconds: 5
|
|
periodSeconds: 10
|
|
timeoutSeconds: 5
|
|
failureThreshold: 3
|
|
securityContext:
|
|
allowPrivilegeEscalation: false
|
|
readOnlyRootFilesystem: true
|
|
capabilities:
|
|
drop:
|
|
- ALL
|
|
resources:
|
|
requests:
|
|
cpu: 50m
|
|
memory: 64Mi
|
|
limits:
|
|
cpu: 500m
|
|
memory: 256Mi
|
|
volumes:
|
|
- name: vault-ca-cert
|
|
secret:
|
|
secretName: vault-ca-cert
|
|
items:
|
|
- key: ca.crt
|
|
path: ca.crt
|
|
- name: combined-certs
|
|
emptyDir: {}
|
|
restartPolicy: Always
|