apiVersion: apps/v1 kind: Deployment metadata: name: {{ include "oauth2-proxy.fullname" . }} labels: {{- include "oauth2-proxy.labels" . | nindent 4 }} spec: replicas: {{ .Values.replicaCount }} selector: matchLabels: {{- include "oauth2-proxy.selectorLabels" . | nindent 6 }} template: metadata: labels: {{- include "oauth2-proxy.selectorLabels" . | nindent 8 }} spec: securityContext: runAsNonRoot: true runAsUser: 65532 runAsGroup: 65532 seccompProfile: type: RuntimeDefault containers: - name: oauth2-proxy image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}" imagePullPolicy: {{ .Values.image.pullPolicy }} args: - --provider={{ .Values.provider.name }} - --oidc-issuer-url={{ .Values.provider.oidcIssuerUrl }} - --email-domain={{ .Values.provider.emailDomain }} - --upstream={{ .Values.upstream }} - --http-address=0.0.0.0:4180 - --redirect-url={{ .Values.redirect.url }} - --cookie-secure={{ .Values.cookie.secure }} - --cookie-domain={{ .Values.cookie.domain }} - --cookie-name={{ .Values.cookie.name }} - --set-xauthrequest={{ .Values.headers.setXAuthRequest }} - --pass-access-token={{ .Values.headers.passAccessToken }} # Relay the authenticated user's email to the upstream as X-Knoe-User. - --set-authorization-header=false - --reverse-proxy=true - --skip-provider-button=true - --scope=openid email profile - --silence-ping-logging=true - --request-logging=true - --auth-logging=true {{- range .Values.skipAuthRoutes }} - --skip-auth-route={{ . }} {{- end }} env: - name: OAUTH2_PROXY_CLIENT_ID valueFrom: secretKeyRef: name: {{ .Values.credentialsSecret.name }} key: client-id - name: OAUTH2_PROXY_CLIENT_SECRET valueFrom: secretKeyRef: name: {{ .Values.credentialsSecret.name }} key: client-secret - name: OAUTH2_PROXY_COOKIE_SECRET valueFrom: secretKeyRef: name: {{ .Values.credentialsSecret.name }} key: cookie-secret ports: - name: http containerPort: 4180 protocol: TCP livenessProbe: httpGet: path: /ping port: http initialDelaySeconds: 5 periodSeconds: 10 timeoutSeconds: 3 readinessProbe: httpGet: path: /ping port: http initialDelaySeconds: 5 periodSeconds: 5 timeoutSeconds: 3 resources: {{- toYaml .Values.resources | nindent 12 }} securityContext: allowPrivilegeEscalation: false capabilities: drop: ["ALL"] readOnlyRootFilesystem: true