COOKIE_SECRET=$(python -c 'import os,base64; print(base64.urlsafe_b64encode(os.urandom(32)).decode())')
OAUTH2_PROXY_IMAGE="quay.io/oauth2-proxy/oauth2-proxy:v7.7.1"
kind load docker-image $OAUTH2_PROXY_IMAGE --name alb-auth
cat <<EOF | kubectl apply -f -
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
k8s-app: oauth2-proxy
name: oauth2-proxy
spec:
replicas: 1
selector:
matchLabels:
k8s-app: oauth2-proxy
template:
metadata:
labels:
k8s-app: oauth2-proxy
spec:
containers:
- args:
- --http-address=0.0.0.0:4180
- --redirect-url=http://auth.alb.echo.com/oauth2/callback
- --provider=github
- --whitelist-domain=.alb.echo.com
- --email-domain=*
- --upstream=file:///dev/null
- --cookie-domain=.alb.echo.com
- --cookie-secure=false
- --reverse-proxy=true
env:
- name: OAUTH2_PROXY_CLIENT_ID
value: $GITHUB_CLIENT_ID
- name: OAUTH2_PROXY_CLIENT_SECRET
value: $GITHUB_CLIENT_SECRET
- name: OAUTH2_PROXY_COOKIE_SECRET
value: $COOKIE_SECRET
image: $OAUTH2_PROXY_IMAGE
imagePullPolicy: IfNotPresent
name: oauth2-proxy
ports:
- containerPort: 4180
name: http
protocol: TCP
- containerPort: 44180
name: metrics
protocol: TCP
---
apiVersion: v1
kind: Service
metadata:
labels:
k8s-app: oauth2-proxy
name: oauth2-proxy
spec:
ports:
- appProtocol: http
name: http
port: 80
protocol: TCP
targetPort: http
- appProtocol: http
name: metrics
port: 44180
protocol: TCP
targetPort: metrics
selector:
k8s-app: oauth2-proxy
EOF