Update Kubernetes Services Wiki / Generate and Update K8s Wiki (push) Successful in 5s
126 lines
3.1 KiB
YAML
126 lines
3.1 KiB
YAML
# rsauth2-proxy: forward-auth for services that have no OIDC of their own.
|
|
# Needs, besides this file:
|
|
# - Secret auth-proxy-creds (AUTH_PROXY_CLIENT_ID, AUTH_PROXY_CLIENT_SECRET,
|
|
# AUTH_PROXY_COOKIE_SECRET); the client secret is the one of the Keycloak
|
|
# client "rsauth2-proxy". Created by hand until Vaultwarden is the source.
|
|
# - ConfigMap auth-proxy-routes, managed by Terraform (terraform/keycloak).
|
|
apiVersion: apps/v1
|
|
kind: Deployment
|
|
metadata:
|
|
name: auth-proxy
|
|
labels:
|
|
app: auth-proxy
|
|
spec:
|
|
replicas: 1
|
|
selector:
|
|
matchLabels:
|
|
app: auth-proxy
|
|
template:
|
|
metadata:
|
|
labels:
|
|
app: auth-proxy
|
|
spec:
|
|
nodeSelector:
|
|
homelab.hexor.cy/pool: core
|
|
homelab.hexor.cy/exposure: external
|
|
containers:
|
|
- name: auth-proxy
|
|
image: ultradesu/rsauth2-proxy:v0.1.3
|
|
ports:
|
|
- containerPort: 8080
|
|
name: http
|
|
protocol: TCP
|
|
envFrom:
|
|
- secretRef:
|
|
name: auth-proxy-creds
|
|
env:
|
|
- name: AUTH_PROXY_OIDC_ISSUER
|
|
value: "https://auth.hexor.cy/auth/realms/hexor"
|
|
- name: AUTH_PROXY_COOKIE_DOMAIN
|
|
value: ".hexor.cy"
|
|
- name: AUTH_PROXY_CALLBACK_URL
|
|
value: "https://oauth.hexor.cy/callback"
|
|
- name: AUTH_PROXY_ROUTES_FILE
|
|
value: "/config/routes.yaml"
|
|
- name: AUTH_PROXY_LOG_LEVEL
|
|
value: "debug"
|
|
volumeMounts:
|
|
- name: routes
|
|
mountPath: /config
|
|
readOnly: true
|
|
resources:
|
|
requests:
|
|
cpu: 50m
|
|
memory: 32Mi
|
|
limits:
|
|
cpu: 200m
|
|
memory: 64Mi
|
|
readinessProbe:
|
|
httpGet:
|
|
path: /health
|
|
port: 8080
|
|
initialDelaySeconds: 3
|
|
periodSeconds: 10
|
|
livenessProbe:
|
|
httpGet:
|
|
path: /health
|
|
port: 8080
|
|
initialDelaySeconds: 5
|
|
periodSeconds: 30
|
|
securityContext:
|
|
allowPrivilegeEscalation: false
|
|
readOnlyRootFilesystem: true
|
|
runAsNonRoot: true
|
|
runAsUser: 1000
|
|
runAsGroup: 1000
|
|
capabilities:
|
|
drop:
|
|
- ALL
|
|
volumes:
|
|
- name: routes
|
|
configMap:
|
|
name: auth-proxy-routes
|
|
---
|
|
apiVersion: v1
|
|
kind: Service
|
|
metadata:
|
|
name: auth-proxy
|
|
labels:
|
|
app: auth-proxy
|
|
spec:
|
|
ports:
|
|
- name: http
|
|
port: 80
|
|
targetPort: 8080
|
|
protocol: TCP
|
|
selector:
|
|
app: auth-proxy
|
|
---
|
|
apiVersion: traefik.io/v1alpha1
|
|
kind: IngressRoute
|
|
metadata:
|
|
name: auth-proxy
|
|
spec:
|
|
entryPoints:
|
|
- websecure
|
|
routes:
|
|
- match: Host(`oauth.hexor.cy`)
|
|
kind: Rule
|
|
services:
|
|
- name: auth-proxy
|
|
port: 80
|
|
tls:
|
|
secretName: auth-proxy-tls
|
|
---
|
|
apiVersion: cert-manager.io/v1
|
|
kind: Certificate
|
|
metadata:
|
|
name: auth-proxy-tls
|
|
spec:
|
|
secretName: auth-proxy-tls
|
|
issuerRef:
|
|
name: letsencrypt
|
|
kind: ClusterIssuer
|
|
dnsNames:
|
|
- oauth.hexor.cy
|