From ce4c50491c4dd714b05f1c603412b2917d3badc2 Mon Sep 17 00:00:00 2001 From: Maarten de Waard <maarten@greenhost.nl> Date: Mon, 20 Dec 2021 17:01:56 +0100 Subject: [PATCH] add all oidc clients with Maester --- .../nextcloud/nextcloud-oauth-client.yaml | 1 - flux2/apps/wekan/kustomization.yaml | 2 +- flux2/apps/wekan/pvc.yaml | 1 + flux2/apps/wekan/wekan-oauth-client.yaml | 23 ++++++++ flux2/apps/wekan/wekan-values-configmap.yaml | 3 +- ...oauth.yaml => wordpress-oauth-client.yaml} | 4 +- flux2/apps/zulip/kustomization.yaml | 1 + flux2/apps/zulip/zulip-data-pvc.yaml | 1 + flux2/apps/zulip/zulip-oauth-client.yaml | 22 ++++++++ flux2/apps/zulip/zulip-postgres-pvc.yaml | 1 + flux2/apps/zulip/zulip-redis-pvc.yaml | 1 + flux2/apps/zulip/zulip-values-configmap.yaml | 3 +- flux2/cluster/base/dashboard.yaml | 2 +- .../cluster/optional/nextcloud/nextcloud.yaml | 1 + flux2/cluster/optional/wekan/wekan.yaml | 3 +- flux2/cluster/optional/zulip/zulip.yaml | 3 +- .../dashboard/dashboard-oauth-client.yaml | 22 ++++++++ .../base/dashboard/dashboard-release.yaml | 1 + .../dashboard/dashboard-values-configmap.yaml | 1 + flux2/core/base/dashboard/kustomization.yaml | 6 +- .../single-sign-on-values-configmap.yaml | 55 ------------------- 21 files changed, 89 insertions(+), 68 deletions(-) create mode 100644 flux2/apps/wekan/wekan-oauth-client.yaml rename flux2/apps/wordpress/{wp-oauth.yaml => wordpress-oauth-client.yaml} (88%) create mode 100644 flux2/apps/zulip/zulip-oauth-client.yaml create mode 100644 flux2/core/base/dashboard/dashboard-oauth-client.yaml diff --git a/flux2/apps/nextcloud/nextcloud-oauth-client.yaml b/flux2/apps/nextcloud/nextcloud-oauth-client.yaml index a4fe2f4b4..1c81ce29b 100644 --- a/flux2/apps/nextcloud/nextcloud-oauth-client.yaml +++ b/flux2/apps/nextcloud/nextcloud-oauth-client.yaml @@ -18,5 +18,4 @@ spec: # these are optional redirectUris: - https://files.${domain}/apps/sociallogin/custom_oidc/stackspin - # hydraAdmin: {} tokenEndpointAuthMethod: client_secret_post diff --git a/flux2/apps/wekan/kustomization.yaml b/flux2/apps/wekan/kustomization.yaml index 0cebe4f02..f97ed1d64 100644 --- a/flux2/apps/wekan/kustomization.yaml +++ b/flux2/apps/wekan/kustomization.yaml @@ -1,8 +1,8 @@ --- apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization -namespace: stackspin-apps resources: - pvc.yaml - release.yaml + - wekan-oauth-client.yaml - wekan-values-configmap.yaml diff --git a/flux2/apps/wekan/pvc.yaml b/flux2/apps/wekan/pvc.yaml index 71433b596..7114d1ec8 100644 --- a/flux2/apps/wekan/pvc.yaml +++ b/flux2/apps/wekan/pvc.yaml @@ -3,6 +3,7 @@ apiVersion: v1 kind: PersistentVolumeClaim metadata: name: wekan + namespace: stackspin-apps spec: accessModes: - ReadWriteOnce diff --git a/flux2/apps/wekan/wekan-oauth-client.yaml b/flux2/apps/wekan/wekan-oauth-client.yaml new file mode 100644 index 000000000..979b74fe5 --- /dev/null +++ b/flux2/apps/wekan/wekan-oauth-client.yaml @@ -0,0 +1,23 @@ +apiVersion: hydra.ory.sh/v1alpha1 +kind: OAuth2Client +metadata: + name: wekan-oauth-client + # Has to live in the same namespace as the stackspin-wordpress-oauth-variables + # secret + namespace: flux-system +spec: + # https://github.com/wekan/wekan/wiki/Keycloak + grantTypes: + - authorization_code + - refresh_token + - client_credentials + - implicit + responseTypes: + - id_token + - code + scope: "openid profile email stackspin_roles" + secretName: stackspin-wekan-oauth-variables + # these are optional + redirectUris: + - https://wekan.${domain}/_oauth/oidc + tokenEndpointAuthMethod: client_secret_post diff --git a/flux2/apps/wekan/wekan-values-configmap.yaml b/flux2/apps/wekan/wekan-values-configmap.yaml index 4bbe8a913..96eebee2a 100644 --- a/flux2/apps/wekan/wekan-values-configmap.yaml +++ b/flux2/apps/wekan/wekan-values-configmap.yaml @@ -3,6 +3,7 @@ apiVersion: v1 kind: ConfigMap metadata: name: stackspin-wekan-values + namespace: stackspin-apps data: values.yaml: | # https://github.com/wekan/wekan/blob/master/helm/wekan/values.yaml @@ -54,7 +55,7 @@ data: - name: "MAIL_URL" value: "smtps://${outgoing_mail_smtp_user}:${outgoing_mail_smtp_password}@${outgoing_mail_smtp_host}:${outgoing_mail_smtp_port}" - name: "OAUTH2_SECRET" - value: "${wekan_oauth_client_secret}" + value: "${client_secret}" - name: "MONGO_URL" value: "mongodb://wekan:${mongodb_password}@wekan-mongodb:27017/wekan" service: diff --git a/flux2/apps/wordpress/wp-oauth.yaml b/flux2/apps/wordpress/wordpress-oauth-client.yaml similarity index 88% rename from flux2/apps/wordpress/wp-oauth.yaml rename to flux2/apps/wordpress/wordpress-oauth-client.yaml index b4910fa08..e3081e6c6 100644 --- a/flux2/apps/wordpress/wp-oauth.yaml +++ b/flux2/apps/wordpress/wordpress-oauth-client.yaml @@ -1,7 +1,7 @@ apiVersion: hydra.ory.sh/v1alpha1 kind: OAuth2Client metadata: - name: wordpress-newsite-oauth-client + name: wordpress-oauth-client # Has to live in the same namespace as the stackspin-wordpress-oauth-variables # secret namespace: flux-system @@ -19,6 +19,4 @@ spec: # these are optional redirectUris: - https://www.${domain}/wp-admin/admin-ajax.php?action=openid-connect-authorize - # TODO: Dynamic URL - # hydraAdmin: {} tokenEndpointAuthMethod: client_secret_post diff --git a/flux2/apps/zulip/kustomization.yaml b/flux2/apps/zulip/kustomization.yaml index 693134038..8cc5ffa9f 100644 --- a/flux2/apps/zulip/kustomization.yaml +++ b/flux2/apps/zulip/kustomization.yaml @@ -4,6 +4,7 @@ namespace: stackspin-apps resources: - release.yaml - zulip-data-pvc.yaml + - zulip-oauth-client.yaml - zulip-postgres-pvc.yaml - zulip-redis-pvc.yaml - zulip-values-configmap.yaml diff --git a/flux2/apps/zulip/zulip-data-pvc.yaml b/flux2/apps/zulip/zulip-data-pvc.yaml index bea64b1cc..19fb676fc 100644 --- a/flux2/apps/zulip/zulip-data-pvc.yaml +++ b/flux2/apps/zulip/zulip-data-pvc.yaml @@ -3,6 +3,7 @@ apiVersion: v1 kind: PersistentVolumeClaim metadata: name: zulip-data + namespace: stackspin-apps spec: accessModes: - ReadWriteOnce diff --git a/flux2/apps/zulip/zulip-oauth-client.yaml b/flux2/apps/zulip/zulip-oauth-client.yaml new file mode 100644 index 000000000..299a2a598 --- /dev/null +++ b/flux2/apps/zulip/zulip-oauth-client.yaml @@ -0,0 +1,22 @@ +apiVersion: hydra.ory.sh/v1alpha1 +kind: OAuth2Client +metadata: + name: zulip-oauth-client + # Has to live in the same namespace as the stackspin-wordpress-oauth-variables + # secret + namespace: flux-system +spec: + # https://zulip.readthedocs.io/en/latest/production/authentication-methods.html#openid-connect + grantTypes: + - authorization_code + - refresh_token + - client_credentials + responseTypes: + - id_token + - code + scope: "openid profile email stackspin_roles" + secretName: stackspin-zulip-oauth-variables + # these are optional + redirectUris: + - https://zulip.${domain}/complete/oidc/ + tokenEndpointAuthMethod: client_secret_post diff --git a/flux2/apps/zulip/zulip-postgres-pvc.yaml b/flux2/apps/zulip/zulip-postgres-pvc.yaml index c09487820..34e569369 100644 --- a/flux2/apps/zulip/zulip-postgres-pvc.yaml +++ b/flux2/apps/zulip/zulip-postgres-pvc.yaml @@ -3,6 +3,7 @@ apiVersion: v1 kind: PersistentVolumeClaim metadata: name: zulip-postgres + namespace: stackspin-apps spec: accessModes: - ReadWriteOnce diff --git a/flux2/apps/zulip/zulip-redis-pvc.yaml b/flux2/apps/zulip/zulip-redis-pvc.yaml index 6890704a4..edf0bad90 100644 --- a/flux2/apps/zulip/zulip-redis-pvc.yaml +++ b/flux2/apps/zulip/zulip-redis-pvc.yaml @@ -3,6 +3,7 @@ apiVersion: v1 kind: PersistentVolumeClaim metadata: name: zulip-redis + namespace: stackspin-apps spec: accessModes: - ReadWriteOnce diff --git a/flux2/apps/zulip/zulip-values-configmap.yaml b/flux2/apps/zulip/zulip-values-configmap.yaml index 95fbff7ec..85576acdb 100644 --- a/flux2/apps/zulip/zulip-values-configmap.yaml +++ b/flux2/apps/zulip/zulip-values-configmap.yaml @@ -3,6 +3,7 @@ apiVersion: v1 kind: ConfigMap metadata: name: stackspin-zulip-values + namespace: stackspin-apps data: values.yaml: | image: @@ -85,7 +86,7 @@ data: # (https://github.com/greenhost/docker-zulip/commit/d583a2d28707a3b77bf610bedc2c2bb81f2a5f88) # NOTE: This is a Python object, not JSON SETTING_SOCIAL_AUTH_OIDC_ENABLED_IDPS: '{"stackspin": { "oidc_url": "https://sso.${domain}/", "display_name": "Stackspin", "display_icon": None, "client_id": "zulip", "secret": get_secret("social_auth_oidc_secret"), "auto_signup": True }}' - SECRETS_social_auth_oidc_secret: "${zulip_oauth_client_secret}" + SECRETS_social_auth_oidc_secret: "${client_secret}" # Enable "low memory mode", queue workers run 1 multithreaded process QUEUE_WORKERS_MULTIPROCESS: 'False' resources: diff --git a/flux2/cluster/base/dashboard.yaml b/flux2/cluster/base/dashboard.yaml index eb0aebbc4..f7bf842aa 100644 --- a/flux2/cluster/base/dashboard.yaml +++ b/flux2/cluster/base/dashboard.yaml @@ -20,7 +20,7 @@ spec: - kind: Secret name: stackspin-dashboard-variables - kind: Secret - name: stackspin-oauth-variables + name: stackspin-dashboard-oauth-variables - kind: Secret name: stackspin-cluster-variables healthChecks: diff --git a/flux2/cluster/optional/nextcloud/nextcloud.yaml b/flux2/cluster/optional/nextcloud/nextcloud.yaml index 109299b61..a0aecb83d 100644 --- a/flux2/cluster/optional/nextcloud/nextcloud.yaml +++ b/flux2/cluster/optional/nextcloud/nextcloud.yaml @@ -10,6 +10,7 @@ spec: dependsOn: - name: nginx - name: local-path-provisioner + - name: single-sign-on sourceRef: kind: GitRepository name: stackspin diff --git a/flux2/cluster/optional/wekan/wekan.yaml b/flux2/cluster/optional/wekan/wekan.yaml index d4b13714a..76150ba75 100644 --- a/flux2/cluster/optional/wekan/wekan.yaml +++ b/flux2/cluster/optional/wekan/wekan.yaml @@ -10,6 +10,7 @@ spec: dependsOn: - name: nginx - name: local-path-provisioner + - name: single-sign-on sourceRef: kind: GitRepository name: stackspin @@ -29,6 +30,6 @@ spec: - kind: Secret name: stackspin-wekan-variables - kind: Secret - name: stackspin-oauth-variables + name: stackspin-wekan-oauth-variables - kind: Secret name: stackspin-cluster-variables diff --git a/flux2/cluster/optional/zulip/zulip.yaml b/flux2/cluster/optional/zulip/zulip.yaml index c72a56244..4cb36eccd 100644 --- a/flux2/cluster/optional/zulip/zulip.yaml +++ b/flux2/cluster/optional/zulip/zulip.yaml @@ -10,6 +10,7 @@ spec: dependsOn: - name: nginx - name: local-path-provisioner + - name: single-sign-on sourceRef: kind: GitRepository name: stackspin @@ -45,6 +46,6 @@ spec: - kind: Secret name: stackspin-zulip-variables - kind: Secret - name: stackspin-oauth-variables + name: stackspin-zulip-oauth-variables - kind: Secret name: stackspin-cluster-variables diff --git a/flux2/core/base/dashboard/dashboard-oauth-client.yaml b/flux2/core/base/dashboard/dashboard-oauth-client.yaml new file mode 100644 index 000000000..f77c62097 --- /dev/null +++ b/flux2/core/base/dashboard/dashboard-oauth-client.yaml @@ -0,0 +1,22 @@ +apiVersion: hydra.ory.sh/v1alpha1 +kind: OAuth2Client +metadata: + name: dashboard-oauth-client + # Has to live in the same namespace as the stackspin-wordpress-oauth-variables + # secret + namespace: flux-system +spec: + grantTypes: + - authorization_code + - refresh_token + - client_credentials + - implicit + responseTypes: + - id_token + - code + scope: "openid profile email stackspin_roles" + secretName: stackspin-dashboard-oauth-variables + # these are optional + redirectUris: + - https://dashboard.${domain}/_oauth/oidc + tokenEndpointAuthMethod: client_secret_post diff --git a/flux2/core/base/dashboard/dashboard-release.yaml b/flux2/core/base/dashboard/dashboard-release.yaml index 0f1e34474..3dadb255f 100644 --- a/flux2/core/base/dashboard/dashboard-release.yaml +++ b/flux2/core/base/dashboard/dashboard-release.yaml @@ -3,6 +3,7 @@ apiVersion: helm.toolkit.fluxcd.io/v2beta1 kind: HelmRelease metadata: name: dashboard + namespace: stackspin spec: releaseName: dashboard dependsOn: diff --git a/flux2/core/base/dashboard/dashboard-values-configmap.yaml b/flux2/core/base/dashboard/dashboard-values-configmap.yaml index 1948aa445..df6443515 100644 --- a/flux2/core/base/dashboard/dashboard-values-configmap.yaml +++ b/flux2/core/base/dashboard/dashboard-values-configmap.yaml @@ -3,6 +3,7 @@ apiVersion: v1 kind: ConfigMap metadata: name: stackspin-dashboard-values + namespace: stackspin data: values.yaml: | fullnameOverride: dashboard diff --git a/flux2/core/base/dashboard/kustomization.yaml b/flux2/core/base/dashboard/kustomization.yaml index 93dd50962..9989b257f 100644 --- a/flux2/core/base/dashboard/kustomization.yaml +++ b/flux2/core/base/dashboard/kustomization.yaml @@ -1,7 +1,7 @@ --- apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization -namespace: stackspin resources: - - ./dashboard-release.yaml - - ./dashboard-values-configmap.yaml + - dashboard-oauth-client.yaml + - dashboard-release.yaml + - dashboard-values-configmap.yaml diff --git a/flux2/core/base/single-sign-on/single-sign-on-values-configmap.yaml b/flux2/core/base/single-sign-on/single-sign-on-values-configmap.yaml index da3623061..2556b1ffc 100644 --- a/flux2/core/base/single-sign-on/single-sign-on-values-configmap.yaml +++ b/flux2/core/base/single-sign-on/single-sign-on-values-configmap.yaml @@ -92,58 +92,3 @@ data: # be on this link: registration: ui_url: https://sso.${domain}/login/registration - - - oAuthClients: - - clientName: nextcloud - clientSecret: "${nextcloud_oauth_client_secret}" - redirectUri: "https://files.${domain}/apps/sociallogin/custom_oidc/stackspin" - scopes: "openid profile email stackspin_roles" - clientUri: "https://files.${domain}" - clientLogoUri: "https://files.${domain}/core/img/favicon-touch.png" - tokenEndpointAuthMethod: "client_secret_post" - responseTypes: - - "code" - - "id_token" - grantTypes: - - "authorization_code" - - "refresh_token" - - "client_credentials" - # https://github.com/wekan/wekan/wiki/Keycloak - - clientName: wekan - clientSecret: "${wekan_oauth_client_secret}" - redirectUri: "https://wekan.${domain}/_oauth/oidc" - scopes: "openid profile email" - clientUri: "https://wekan.${domain}" - clientLogoUri: "https://wekan.${domain}/wekan-logo.svg" - tokenEndpointAuthMethod: "client_secret_post" - responseTypes: - - "code" - - "id_token" - grantTypes: - - "authorization_code" - - "refresh_token" - - "client_credentials" - - "implicit" - # https://zulip.readthedocs.io/en/latest/production/authentication-methods.html#openid-connect - - clientName: zulip - clientSecret: "${zulip_oauth_client_secret}" - redirectUri: "https://zulip.${domain}/complete/oidc/" - scopes: "openid profile email" - clientUri: "https://zulip.${domain}" - clientLogoUri: "https://zulip.${domain}/static/images/zulip-logo.svg" - - clientName: dashboard - clientSecret: "${dashboard_oauth_client_secret}" - redirectUri: "https://dashboard.${domain}/_oauth/oidc" - scopes: "openid profile email" - clientUri: "https://dashboard.${domain}" - clientLogoUri: "https://dashboard.${domain}/assets/logo.svg" - tokenEndpointAuthMethod: "client_secret_post" - responseTypes: - - "code" - - "id_token" - grantTypes: - - "authorization_code" - - "refresh_token" - - "client_credentials" - - "implicit" -- GitLab