Files
Homelabv4/infrastructure/authentik/percona-everest-blueprint.yaml
2026-03-09 20:21:35 -05:00

78 lines
3.2 KiB
YAML

---
apiVersion: v1
kind: ConfigMap
metadata:
name: authentik-blueprints-percona-everest
namespace: authentik
labels:
goauthentik.io/blueprint: "true"
data:
percona-everest.yaml: |-
version: 1
metadata:
name: percona-everest-oidc
labels:
blueprints.goauthentik.io/instantiate: "true"
entries:
# ============================================================================
# PERCONA EVEREST OIDC PROVIDER
# ============================================================================
# Everest uses OIDC with PKCE (public client) for authentication.
# The client_id must match server.oidc.clientId in percona-everest/values.yaml.
# ============================================================================
# Custom scope mapping to inject jti claim (required by Everest)
- model: authentik_providers_oauth2.scopemapping
id: percona-everest-jti-mapping
state: present
identifiers:
managed: goauthentik.io/providers/proxy/scope-percona-everest-jti
attrs:
name: "Percona Everest JTI Claim"
scope_name: "everest-jti"
expression: |
import uuid
return {"jti": str(uuid.uuid4())}
- model: authentik_providers_oauth2.oauth2provider
id: percona-everest-provider
state: present
identifiers:
name: Percona Everest
attrs:
name: Percona Everest
client_id: percona-everest-oidc-client-id-static-2025
authorization_flow: !Find [authentik_flows.flow, [slug, default-provider-authorization-implicit-consent]]
authentication_flow: !Find [authentik_flows.flow, [slug, default-authentication-flow]]
invalidation_flow: !Find [authentik_flows.flow, [slug, default-provider-invalidation-flow]]
redirect_uris:
- url: "https://everest.kube.huskypup.net/login-callback"
matching_mode: strict
property_mappings:
- !Find [authentik_providers_oauth2.scopemapping, [scope_name, openid]]
- !Find [authentik_providers_oauth2.scopemapping, [scope_name, email]]
- !Find [authentik_providers_oauth2.scopemapping, [scope_name, profile]]
- !KeyOf percona-everest-jti-mapping
include_claims_in_id_token: true
client_type: public
access_code_validity: "minutes=10"
access_token_validity: "hours=1"
refresh_token_validity: "days=30"
signing_key: !Find [authentik_crypto.certificatekeypair, [name, authentik Self-signed Certificate]]
# ============================================================================
# PERCONA EVEREST APPLICATION
# ============================================================================
- model: authentik_core.application
id: percona-everest-application
state: present
identifiers:
slug: percona-everest
attrs:
name: Percona Everest
slug: percona-everest
policy_engine_mode: any
provider: !KeyOf percona-everest-provider
meta_launch_url: "https://everest.kube.huskypup.net"