From fcb68e061822fea653932930262a800a30cb22c7 Mon Sep 17 00:00:00 2001 From: Mark <mark@openappstack.net> Date: Thu, 9 Apr 2020 18:14:16 +0200 Subject: [PATCH] Add cronjob to recreate oauth clients Signed-off-by: Mark <mark@openappstack.net> --- .../cronjob-create-oauth-clients.yaml | 75 +++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 helmchart/single-sign-on/templates/cronjob-create-oauth-clients.yaml diff --git a/helmchart/single-sign-on/templates/cronjob-create-oauth-clients.yaml b/helmchart/single-sign-on/templates/cronjob-create-oauth-clients.yaml new file mode 100644 index 0000000..fb6f07e --- /dev/null +++ b/helmchart/single-sign-on/templates/cronjob-create-oauth-clients.yaml @@ -0,0 +1,75 @@ +apiVersion: batch/v1beta1 +kind: CronJob +metadata: + name: {{ include "single-sign-on.fullname" . }}-recreate-oauth2-clients + labels: +{{ include "single-sign-on.labels" . | indent 4 }} +spec: + schedule: "*/5 * * * *" + jobTemplate: + metadata: + labels: + app.kubernetes.io/managed-by: {{.Release.Service | quote }} + app.kubernetes.io/instance: {{.Release.Name | quote }} + helm.sh/chart: "{{.Chart.Name}}-{{.Chart.Version}}" + spec: + restartPolicy: OnFailure + containers: + {{- range .Values.oAuthClients }} + - name: {{ .clientName | quote }} + image: {{ $.Values.userbackend.image.repository }}:{{ $.Values.userbackend.image.tag }} + imagePullPolicy: {{ $.Values.userbackend.image.pullPolicy }} + env: + - name: CLIENT_ID + valueFrom: + secretKeyRef: + name: oauth2-clients + key: {{ .clientName }}_client_id + - name: CLIENT_SECRET + valueFrom: + secretKeyRef: + name: oauth2-clients + key: {{ .clientName }}_client_secret + - name: CLIENT_NAME + value: {{ .clientName | quote }} + - name: REDIRECT_URI + value: {{ .redirectUri | quote }} + - name: SCOPES + value: {{ .scopes | quote }} + - name: CLIENT_URI + value: {{ .clientUri | quote }} + - name: CLIENT_LOGO_URI + value: {{ .clientLogoUri | quote }} + - name: TOKEN_ENDPOINT_AUTH_METHOD + value: {{ .tokenEndpointAuthMethod | quote }} + - name: RESPONSE_TYPES + value: "{{- range .responseTypes }}\"{{ . }}\",{{- end }}" + - name: GRANT_TYPES + value: "{{- range .grantTypes }}\"{{ . }}\",{{- end }}" + command: ["/bin/bash", "-c"] + args: + - > + curl http://{{ $.Release.Name }}-hydra-admin:4445/clients/$CLIENT_NAME \ + --silent \ + --write-out "\n%{http_code}\n" \ + | tail -1 \ + | grep -v 200 && + curl --header "Content-Type: application/json" \ + --request POST \ + --data "{\"client_id\": \"$CLIENT_ID\", + \"client_name\": \"$CLIENT_NAME\", + \"client_secret\": \"$CLIENT_SECRET\", + \"client_uri\": \"$CLIENT_URI\", + \"logo_uri\": \"$CLIENT_LOGO_URI\", + \"redirect_uris\": [\"$REDIRECT_URI\"], + \"scope\": \"$SCOPES\", + \"grant_types\": [$GRANT_TYPES\"\"], + \"response_types\": [$RESPONSE_TYPES\"\"], + \"token_endpoint_auth_method\": \"client_secret_post\"}" \ + http://{{ $.Release.Name }}-hydra-admin:4445/clients \ + --silent \ + --write-out "\n%Creating oauth client $CLIENT_ID: HTTP(%{http_code})\n" \ + | tail -1 \ + | grep 201 && + echo "Successfully created $CLIENT_ID" + {{- end }} -- GitLab