apiVersion: v1 kind: ConfigMap metadata: name: authentik-blueprints namespace: authentik data: argocd.yaml: | version: 1 metadata: name: ArgoCD entries: - model: authentik_blueprints.metaapplyblueprint attrs: identifiers: path: mounted/cm-authentik-blueprints/google-login.yaml required: true - model: authentik_blueprints.metaapplyblueprint attrs: identifiers: path: default/flow-default-provider-authorization-implicit-consent.yaml required: true - model: authentik_blueprints.metaapplyblueprint attrs: identifiers: path: default/flow-default-provider-invalidation.yaml required: true - model: authentik_blueprints.metaapplyblueprint attrs: identifiers: path: system/providers-oauth2.yaml required: true - model: authentik_providers_oauth2.oauth2provider id: provider identifiers: name: argocd attrs: authorization_flow: !Find [authentik_flows.flow, [slug, default-provider-authorization-implicit-consent]] client_id: argocd client_secret: !Env ARGOCD_OIDC_CLIENT_SECRET client_type: confidential invalidation_flow: !Find [authentik_flows.flow, [slug, default-provider-invalidation-flow]] property_mappings: - !Find [authentik_providers_oauth2.scopemapping, [managed, goauthentik.io/providers/oauth2/scope-openid]] - !Find [authentik_providers_oauth2.scopemapping, [managed, goauthentik.io/providers/oauth2/scope-email]] - !Find [authentik_providers_oauth2.scopemapping, [managed, goauthentik.io/providers/oauth2/scope-profile]] redirect_uris: - matching_mode: strict url: https://argo.whyredfire.dev/auth/callback # argocd CLI (argocd login --sso) - matching_mode: strict url: http://localhost:8085/auth/callback signing_key: !Find [authentik_crypto.certificatekeypair, [name, authentik Self-signed Certificate]] - model: authentik_core.application id: application identifiers: slug: argocd attrs: meta_launch_url: https://argo.whyredfire.dev name: ArgoCD provider: !KeyOf provider - model: authentik_policies.policybinding identifiers: group: !Find [authentik_core.group, [name, admins]] order: 0 target: !KeyOf application # Google is the only way in: its source has no enrollment flow, so a Google # account can only log in when a user with the same email already exists. google-login.yaml: | version: 1 metadata: name: Google login entries: - model: authentik_blueprints.metaapplyblueprint attrs: identifiers: path: default/flow-default-authentication-flow.yaml required: true - model: authentik_blueprints.metaapplyblueprint attrs: identifiers: path: default/flow-default-source-authentication.yaml required: true - model: authentik_core.group id: admins identifiers: name: admins attrs: is_superuser: true - model: authentik_core.user identifiers: username: whyredfire attrs: email: whyredfire@gmail.com groups: - !KeyOf admins name: Karan Parashar - model: authentik_sources_oauth.oauthsource id: google identifiers: slug: google attrs: authentication_flow: !Find [authentik_flows.flow, [slug, default-source-authentication]] consumer_key: !Env GOOGLE_CLIENT_ID consumer_secret: !Env GOOGLE_CLIENT_SECRET name: Google promoted: true provider_type: google user_matching_mode: email_link - model: authentik_stages_identification.identificationstage identifiers: name: default-authentication-identification attrs: sources: - !KeyOf google