Aller au contenu principal

Authentik sur GKE Autopilot

Authentik sur GKE Autopilot

authentik (goauthentik.io) est un fournisseur d'identité open source (MIT, open-core) : authentification unique via OIDC et SAML, LDAP et SCIM, authentification multifacteur et authentification par proxy — une alternative auto-hébergée à Okta, Auth0 et Keycloak. Ce module déploie authentik sur GKE Autopilot en s'appuyant sur le socle App_GKE, qui provisionne et gère l'infrastructure Google Cloud et Kubernetes partagée.

Ce guide se concentre sur les services cloud qu'utilise authentik et sur la manière de les explorer et de les exploiter depuis la console Google Cloud et la ligne de commande. Pour les mécanismes communs à toutes les applications GKE — Workload Identity, ingress, autoscaling, CI/CD, Cloud Armor, IAP, Binary Authorization, VPC Service Controls, sauvegardes et cycle de vie du déploiement — reportez-vous au guide du socle App_GKE plutôt que de les répéter ici.


1. Vue d'ensemble​

authentik s'exécute comme un Deployment Python/Django sur GKE Autopilot, avec son worker d'arrière-plan (ak worker) co-localisé dans le même conteneur du pod. Le déploiement assemble un ensemble ciblé de services Google Cloud :

FonctionnalitéService Google CloudRemarques
CalculGKE AutopilotDeployment, 2 vCPU / 4 GiB par défaut, 1–5 réplicas
Base de donnéesCloud SQL for PostgreSQL 15Obligatoire — authentik exige PostgreSQL ≥ 14 ; MySQL est bloqué
Cache et file d'attenteAucun — pas de Redisauthentik ≥ 2025.10 a déplacé le cache, les sessions, la file de tâches et la couche de canaux WebSocket dans PostgreSQL
Stockage des médiasCloud Storage (GCS Fuse CSI)Bucket monté sur /media pour les icônes téléversées et les arrière-plans de flux
SecretsSecret ManagerAUTHENTIK_SECRET_KEY stable, mot de passe d'amorçage akadmin, mot de passe de la base de données
ImageArtifact Registry + Cloud BuildBuild personnalisé léger FROM ghcr.io/goauthentik/server (point d'entrée cloud + lanceur du worker)
IngressCloud Load BalancingService LoadBalancer externe ; domaine personnalisé et certificat géré en option

Valeurs par défaut judicieuses à connaître d'emblée :

  • PostgreSQL 15 est obligatoire et constitue le seul magasin de données. Pas de Redis, pas de moteur de recherche — les sessions, le cache et la file de tâches résident tous dans Cloud SQL.
  • Le worker est co-localisé. Le point d'entrée du conteneur démarre ak worker en arrière-plan à côté du serveur (le même schéma que le worker Sidekiq de Chatwoot) — pas de Deployment de worker distinct. Conservez min_instance_count ≥ 1 pour que le worker traite en permanence.
  • max_instance_count = 5. authentik est sans état d'un pod à l'autre — tout l'état est dans PostgreSQL — si bien que plusieurs réplicas (chacun avec son propre worker) sont sûrs.
  • AUTHENTIK_SECRET_KEY est générée automatiquement et stockée dans Secret Manager. Elle doit rester stable — la renouveler invalide toutes les sessions et rend illisibles les champs chiffrés. Les deux noms de secrets sont simples (sans __) et passent donc la validation targetKey de SecretSync sur GKE ; le mappage AUTHENTIK_POSTGRESQL__* s'effectue dans le point d'entrée à partir des variables DB_* injectées.
  • Le compte administrateur akadmin est amorcé au premier démarrage avec bootstrap_email (par défaut admin@techequity.cloud) et un mot de passe adossé à Secret Manager. Les variables d'amorçage ne s'appliquent qu'au premier démarrage.
  • application_version = "latest" est épinglé. authentik ne publie aucun tag latest sur GHCR ; le build épingle latest sur une version éprouvée (2026.5.4) via l'ARG de build propre à l'application AUTHENTIK_VERSION.
  • Les migrations s'exécutent automatiquement au démarrage, protégées par un verrou consultatif PostgreSQL afin que des pods concurrents n'entrent pas en collision — pas de job de migration distinct.
  • Les points de terminaison de santé ne sont pas authentifiés : démarrage GET /-/health/ready/, vivacité GET /-/health/live/.

2. Services Google Cloud et comment les explorer​

Toutes les commandes supposent que vous avez exécuté gcloud container clusters get-credentials <cluster> --region <region> --project <project> et que PROJECT, REGION et NAMESPACE sont définis. L'espace de noms et les autres identifiants figurent dans les sorties du déploiement.

A. GKE Autopilot — la charge de travail authentik​

Les pods authentik sont planifiés sur Autopilot, qui facture le CPU et la mémoire demandés par les pods. L'autoscaling horizontal des pods dimensionne le Deployment entre le nombre minimal et maximal de réplicas. Chaque pod exécute le serveur, le worker d'arrière-plan et le sidecar Cloud SQL Auth Proxy.

  • Console : Kubernetes Engine → Workloads → sélectionnez la charge de travail authentik pour voir les pods, les révisions et les événements. Kubernetes Engine → Services & Ingress affiche l'IP externe.
  • CLI :
    kubectl get pods,svc,hpa -n "$NAMESPACE"
    kubectl logs -n "$NAMESPACE" deploy/<service-name> -c <app-container> --tail=100
    kubectl describe hpa -n "$NAMESPACE"

Consultez App_GKE pour Autopilot, la mise à l'échelle et la gestion du type de charge de travail.

B. Cloud SQL for PostgreSQL 15​

authentik stocke tout ici — utilisateurs, groupes, flux, fournisseurs, sessions, cache et file de tâches d'arrière-plan. Les pods atteignent l'instance de manière privée via le sidecar Cloud SQL Auth Proxy ; le point d'entrée du conteneur mappe les variables DB_* injectées sur la convention AUTHENTIK_POSTGRESQL__* d'authentik et définit le mode SSL selon le type de connexion — disable pour le TCP loopback du sidecar proxy (127.0.0.1 / localhost ; le proxy termine le TLS mais ne parle pas SSL lui-même, si bien qu'exiger SSL à cet endroit échoue avec « server does not support SSL, but SSL was required »), require uniquement pour une connexion TCP directe vers tout autre hôte. Lors du premier déploiement, un unique job db-init crée la base de données et le rôle propres au locataire.

  • Console : SQL → sélectionnez l'instance pour les connexions, sauvegardes, flags et métriques.
  • CLI :
    gcloud sql instances list --project "$PROJECT"
    gcloud sql instances describe <instance-name> --project "$PROJECT"
    gcloud sql connect <instance-name> --user=<db-user> --database=<db-name> --project "$PROJECT"

Le nom de l'instance, la base de données, l'utilisateur et le secret du mot de passe figurent dans les sorties (les noms de la base de données et de l'utilisateur sont préfixés par le locataire). Consultez App_GKE pour le modèle de connexion, les sauvegardes et la rotation des mots de passe.

C. Cloud Storage — médias​

Un bucket dédié est monté sur /media via le pilote CSI GCS Fuse pour les médias téléversés (icônes d'applications, arrière-plans de flux), afin que les téléversements survivent au remplacement des pods et à la mise à l'échelle.

  • Console : Cloud Storage → Buckets.
  • CLI :
    gcloud storage buckets list --project "$PROJECT"
    gcloud storage ls gs://<media-bucket>/ # bucket name is in the Outputs

D. Secret Manager​

Deux secrets authentik sont générés automatiquement :

  • AUTHENTIK_SECRET_KEY — signe les sessions/cookies et sert à dériver le chiffrement interne. Ne la renouvelez jamais.

  • AUTHENTIK_BOOTSTRAP_PASSWORD — le mot de passe initial de akadmin, appliqué uniquement au premier démarrage.

  • Console : Security → Secret Manager.

  • CLI :

    gcloud secrets list --project "$PROJECT" --filter="name~authentik"
    gcloud secrets versions access latest --secret=<secret-name> --project "$PROJECT"

Consultez Authentik_Common pour le modèle complet des secrets et App_GKE pour les détails de SecretSync.

E. Réseau et entrée​

Par défaut, la charge de travail est exposée via une IP LoadBalancer externe ; un domaine personnalisé avec un certificat géré par Google peut être activé, et une IP statique est réservée par défaut afin que l'adresse survive aux redéploiements. Pour un IdP, un nom d'hôte stable et protégé par TLS est important — les URI de redirection OIDC/SAML que vous enregistrez dans les applications clientes doivent correspondre à l'URL par laquelle les utilisateurs atteignent authentik.

  • Console : Network services → Load balancing ; VPC network → IP addresses.
  • CLI :
    kubectl get ingress,svc -n "$NAMESPACE"
    gcloud compute addresses list --project "$PROJECT"

F. Cloud Logging et Monitoring​

Les journaux du serveur et du worker arrivent tous deux dans Cloud Logging (ils partagent le stdout/stderr du conteneur). Les métriques de GKE et de Cloud SQL arrivent dans Cloud Monitoring.

  • Console : Logging → Logs Explorer ; Monitoring → Dashboards / Alerting.
  • CLI :
    gcloud logging read 'resource.type="k8s_container" AND resource.labels.namespace_name="'"$NAMESPACE"'"' \
    --project "$PROJECT" --limit 50

3. Comportement de l'application authentik​

  • Configuration de la base de données au premier déploiement. Un unique job d'initialisation exécute db-init.sh avec postgres:15-alpine : il attend PostgreSQL, crée le rôle et la base de données propres au locataire, accorde les privilèges, accorde cloudsqlsuperuser par précaution, et signale au sidecar proxy de s'arrêter pour que le job se termine. Idempotent et réexécutable sans risque.
  • Démarrage avec auto-migration. Le serveur authentik exécute ses propres migrations Django à chaque démarrage, protégées par un verrou consultatif PostgreSQL afin que des pods concurrents n'entrent pas en collision. Il n'existe pas de job de migration distinct. Le premier démarrage exécute la suite complète — comptez plusieurs minutes avant que /-/health/ready/ ne renvoie 200 ; la sonde de démarrage accorde environ 11 minutes.
  • Première connexion. Connectez-vous en tant que akadmin avec la valeur de bootstrap_email et le mot de passe du secret ...-bootstrap-password. Si les variables d'amorçage étaient absentes lors du premier démarrage, terminez plutôt la configuration sur <service-url>/if/flow/initial-setup/.
  • Les applications et les fournisseurs se configurent dans l'application après le déploiement. Les fournisseurs OIDC/SAML, les applications, les outposts et les flux relèvent de la configuration d'authentik, et non des entrées Terraform — créez-les dans l'interface d'administration (<service-url>/if/admin/) une fois la charge de travail prête.
  • Co-localisation du worker. ak worker s'exécute dans le même conteneur que le serveur ; ses lignes de journal sont entremêlées dans les journaux du pod (kubectl logs ... | grep -i worker). Conservez min_instance_count ≥ 1 pour que les tâches planifiées et la synchronisation des outposts continuent d'être traitées.
  • Points de terminaison de santé.
    curl -s "$SERVICE_URL/-/health/ready/" -o /dev/null -w '%{http_code}\n'   # 200 = migrated + DB reachable
    curl -s "$SERVICE_URL/-/health/live/" -o /dev/null -w '%{http_code}\n' # 200 = process alive
  • Inspecter l'exécution des jobs :
    kubectl get jobs -n "$NAMESPACE"
    kubectl logs -n "$NAMESPACE" job/<job-name>

4. Variables de configuration​

Les variables sont regroupées exactement comme elles apparaissent sur la plateforme de déploiement. Seuls les paramètres propres à authentik ou notables pour lui sont listés ; toutes les autres entrées sont héritées d'App_GKE avec leur comportement et leurs valeurs par défaut standard.

Groupe 1 — Projet et identité​

VariableValeur par défautDescription
project_id(obligatoire)Projet Google Cloud cible.
regionus-central1Région de la charge de travail et des ressources régionales.
bootstrap_emailadmin@techequity.cloudE-mail du compte intégré akadmin, défini au premier démarrage.
bootstrap_password"" (généré automatiquement)Mot de passe initial de akadmin. Premier démarrage uniquement ; stocké dans Secret Manager.

Groupe 2 — Environnement de déploiement​

VariableValeur par défautDescription
tenant_iddemoSuffixe court qui rend les noms de ressources uniques par environnement.
support_users[]E-mails auxquels sont accordés l'accès au projet et les alertes de surveillance.
resource_labels{}Libellés appliqués à toutes les ressources.

Groupe 3 — Identité de l'application​

VariableValeur par défautDescription
application_nameauthentikNom de base des ressources (espace de noms, secrets, buckets). Ne le modifiez pas après le premier déploiement.
application_display_nameauthentik Identity ProviderNom lisible.
application_versionlatestTag de version d'authentik ; latest est épinglé sur 2026.5.4 au moment du build (aucun tag latest en amont). Épinglez explicitement en production.

Groupe 4 — Exécution et mise à l'échelle​

VariableValeur par défautDescription
deploy_applicationtrueDéfinissez false pour provisionner uniquement l'infrastructure.
container_image_sourcecustomImage enveloppe légère construite via Cloud Build (ajoute le point d'entrée cloud + le lanceur du worker).
min_instance_count1Conservez ≥ 1 pour que le worker co-localisé continue de traiter.
max_instance_count5Peut être augmenté sans risque — authentik est sans état d'un pod à l'autre.
container_port9000Port HTTP d'authentik (le Service expose 80).
container_resources2000m / 4GiPartagées par le serveur et le worker ; la valeur par défaut d'Autopilot laisse de la marge pour les migrations.
enable_cloudsql_volumetrueSidecar Auth Proxy — conservez true sur GKE.
enable_image_mirroringtrueL'image de base GHCR est mise en miroir dans Artifact Registry.

Groupe 5 — Variables d'environnement et secrets​

VariableValeur par défautDescription
environment_variables{}Paramètres AUTHENTIK_* supplémentaires (p. ex. e-mail/SMTP : AUTHENTIK_EMAIL__HOST, …). Ne définissez pas AUTHENTIK_SECRET_KEY ni AUTHENTIK_POSTGRESQL__* ici.
secret_environment_variables{}Table de correspondance variable d'environnement → nom de secret Secret Manager. Les clés ne doivent pas contenir __ (CRD SecretSync).

Groupe 6 — Backend GKE et cluster​

VariableValeur par défautDescription
service_typeLoadBalancerIP externe pour le SSO navigateur et les rappels OAuth.
workload_typeDeployment (auto)authentik est sans état ; un StatefulSet est inutile.
session_affinityClientIPLe routage persistant aide les connexions WebSocket de l'interface d'administration.
termination_grace_period_seconds60Délai de grâce pour les tâches du worker en cours lors de l'arrêt.

Groupe 8 — Quota de ressources​

VariableValeur par défautDescription
enable_resource_quotafalseSi vous l'activez, dimensionnez les demandes à ≥ 2× un pod et utilisez des suffixes de mémoire binaires ("8Gi").

Groupe 9 — Règles de fiabilité​

VariableValeur par défautDescription
enable_pod_disruption_budgettrueProtège la disponibilité des connexions pendant les mises à niveau des nœuds.
pdb_min_available1Nombre minimal de pods pendant les interruptions volontaires.

Groupe 10 — Observabilité et santé​

VariableValeur par défautDescription
startup_probeHTTP /-/health/ready/, délai 60s, 40×15sNon authentifiée. Seuil généreux pour les migrations du premier démarrage (budget d'environ 11 min).
liveness_probeHTTP /-/health/live/, délai 60s, 3×30sVérification non authentifiée que le processus est vivant.
uptime_check_configdésactivéTest de disponibilité Cloud Monitoring facultatif (pointez-le vers /-/health/live/).

Groupe 11 — Jobs et tâches planifiées​

VariableValeur par défautDescription
initialization_jobs[]Laissez vide pour utiliser l'unique job intégré db-init.
cron_jobs[]Inutile — le worker co-localisé exécute les tâches planifiées d'authentik.
additional_services[]À utiliser pour des outposts supplémentaires (p. ex. LDAP/RADIUS) si nécessaire.

Groupe 12 — CI/CD et intégration GitHub​

Intégration Cloud Build / Cloud Deploy standard d'App_GKE — consultez App_GKE. Entrées clés : enable_cicd_trigger, github_repository_url, github_token, enable_cloud_deploy, enable_binary_authorization.

Groupe 13 — Système de fichiers (NFS)​

VariableValeur par défautDescription
enable_nfstrueFacultatif ; authentik conserve les médias sur GCS, pas sur NFS.
nfs_mount_path/opt/authentik/storageChemin de montage dans le conteneur.

Groupe 14 — Cloud Storage et Artifact Registry​

VariableValeur par défautDescription
create_cloud_storagetrueLe bucket /media est déclaré par Authentik_Common.
gcs_volumes[]Montages GCS Fuse supplémentaires ; /media est ajouté automatiquement.
max_images_to_retain / delete_untagged_images / image_retention_days(définis)Politique de nettoyage d'Artifact Registry.

Groupe 15 — Redis​

VariableValeur par défautDescription
enable_redisfalseSans effet. authentik ≥ 2025.10 a entièrement supprimé Redis ; main.tf fixe enable_redis = false.

Groupe 16 — Backend de base de données​

VariableValeur par défautDescription
database_typePOSTGRES_15authentik exige PostgreSQL — les valeurs MySQL sont rejetées par la validation.
application_database_nameauthentikNom de base de la base de données (préfixé par le locataire au déploiement). Immuable après le premier déploiement.
application_database_userauthentikNom de base de l'utilisateur applicatif de la base de données (préfixé par le locataire).
database_password_length32Longueur du mot de passe généré (16–64).

Groupe 17 — Sauvegarde et maintenance​

VariableValeur par défautDescription
backup_schedule0 2 * * *Cron de sauvegarde automatique (UTC).
backup_retention_days7Rétention ; augmentez-la pour la production ou la conformité.
enable_backup_import / backup_source / backup_uri / backup_formatoptions de restaurationRestaurer à partir d'une sauvegarde lors du déploiement.

Groupe 19 — Domaine personnalisé, IP statique et réseau​

VariableValeur par défautDescription
enable_custom_domaintrueIngress + certificat géré pour les noms d'hôte personnalisés.
application_domains[]Nom(s) d'hôte à servir. Enregistrez les URI de redirection OIDC sur le domaine que les utilisateurs atteignent réellement.
reserve_static_iptrueIP externe stable d'un redéploiement à l'autre — important pour les noms d'hôte d'IdP fixés dans le DNS.

Groupe 20 — Identity-Aware Proxy (IAP)​

VariableValeur par défautDescription
enable_iapfalseIAP devant un IdP impose un double contrôle à chaque connexion et casse les rappels OAuth/SAML — laissez-le désactivé sauf si vous savez en avoir besoin.

Groupe 21 — Cloud Armor​

VariableValeur par défautDescription
enable_cloud_armorfalsePolitique WAF sur le backend de l'Ingress — recommandée pour un IdP public.
admin_ip_ranges[]Plages CIDR autorisées pour l'accès privilégié.

Groupe 22 — VPC Service Controls et journalisation d'audit​

VariableValeur par défautDescription
enable_vpc_scfalseApplique un périmètre VPC-SC (nécessite organization_id).
enable_audit_loggingfalseJournaux d'audit Cloud détaillés.

5. Sorties​

Ces valeurs sont renvoyées lors d'un déploiement réussi et constituent le moyen le plus rapide de localiser et d'explorer les ressources en cours d'exécution.

SortieDescription
service_nameNom du Service Kubernetes.
namespaceEspace de noms dans lequel s'exécute la charge de travail.
service_cluster_ipClusterIP interne au cluster.
stage_service_cluster_ipsTable des ClusterIP des services propres à chaque étape.
service_external_ipIP LoadBalancer externe.
service_urlURL permettant d'atteindre authentik.
database_instance_nameNom de l'instance Cloud SQL.
database_name / database_userNom / utilisateur de la base de données applicative (préfixés par le locataire).
database_password_secretSecret Secret Manager contenant le mot de passe de la base de données.
database_host / database_portPoint de terminaison / port de la base de données.
storage_bucketsBuckets Cloud Storage créés (y compris le bucket /media).
network_name / network_exists / regionsRéseau VPC, présence, régions.
container_image / container_registryImage déployée et dépôt Artifact Registry.
monitoring_enabled / monitoring_notification_channelsÉtat de la surveillance et canaux.
initialization_jobs / db_import_jobNoms des jobs de configuration et d'import (facultatif).
deployment_id / tenant_id / resource_prefixIdentifiants de nommage.
project_id / project_numberIdentifiants du projet.
cicd_enabled / cicd_configuration / github_repository_*État et détails du CI/CD.
artifact_registry_repository / cloudbuild_trigger_name / cloudbuild_trigger_idRegistre et déclencheur de build.
kubernetes_readyIndique si le cluster/la charge de travail est prêt.
vpc_sc_enabled / vpc_sc_perimeter_name / vpc_sc_dry_run_modeÉtat de VPC-SC.
audit_logging_enabled / artifact_registry_cmek_enabledÉtat de la journalisation d'audit et de CMEK.

6. Pièges de configuration et valeurs par défaut judicieuses​

Risque : Critique (perte de données / panne / sécurité) — Élevé (service dégradé) — Moyen (coût ou dégradation partielle) — Faible (mineur).

Validation héritée au moment du plan. Ce module transmet sa configuration au moteur du socle App_GKE, qui valide les valeurs et leurs combinaisons au moment du plan — une configuration invalide fait échouer le plan avec une erreur claire et nommée avant la création de toute ressource ; la plupart des erreurs ci-dessous sont donc détectées en amont plutôt qu'à l'apply ou à l'exécution.

ParamètreValeur judicieuseRisqueConséquence en cas d'erreur
AUTHENTIK_SECRET_KEY (générée automatiquement)Ne jamais la renouvelerCritiqueLa renouveler invalide toutes les sessions actives et rend illisibles les champs chiffrés (identifiants stockés, jetons).
database_typePOSTGRES_15CritiqueMySQL est bloqué par la validation — authentik exige PostgreSQL ≥ 14.
application_database_name / application_database_userÀ définir une seule foisCritiqueImmuables après le premier déploiement ; les renommer recrée la base de données/l'utilisateur et détruit toutes les données d'identité.
Ports d'écoute du worker (gérés par le point d'entrée)Conservez les valeurs loopback par défaut AUTHENTIK_LISTEN__* du point d'entréeCritiqueLe ak worker co-localisé démarre lui aussi un écouteur HTTP et hérite du 0.0.0.0:9000 par défaut du serveur ; s'il remporte la course au bind, il répond à toutes les routes — y compris les points de terminaison de santé — par des 200 vides : une interface vide alors que les sondes du kubelet semblent vertes. Le point d'entrée épingle le worker sur des ports loopback (127.0.0.1:9001/9444/9301) afin que le serveur détienne :9000 — un 200 avec un corps vide signifie que le mauvais processus a répondu.
min_instance_count≥ 1Élevé0 n'a pas de sens pour le worker co-localisé — les tâches d'arrière-plan et la synchronisation des outposts s'arrêtent ; les WebSockets des outposts se déconnectent.
Clés de secret_environment_variablesNoms simples, sans __ÉlevéLa CRD SecretSync rejette à l'apply les clés contenant __ (p. ex. AUTHENTIK_POSTGRESQL__PASSWORD) — ce mappage relève du point d'entrée, pas d'un secret synchronisé.
startup_probe.path/-/health/ready/ (non authentifié)MoyenPointer la sonde vers une page authentifiée renvoie 401/403 au kubelet — le pod ne devient jamais prêt alors qu'authentik a bien démarré.
bootstrap_password / bootstrap_emailÀ définir avant le premier déploiementMoyenAppliqués au premier démarrage uniquement. Les modifier ensuite n'a aucun effet — gérez akadmin dans l'application, ou utilisez /if/flow/initial-setup/ si les variables d'amorçage étaient absentes au premier démarrage.
application_versionÉpingler une versionMoyenlatest est épinglé silencieusement sur 2026.5.4 ; un épinglage explicite rend les montées de version délibérées. Des tags inexistants font échouer le Cloud Build avec MANIFEST_UNKNOWN.
quota_memory_requests / _limitsUnités binaires (8Gi), ≥ 2× un podCritiqueDes entiers nus sont des octets et bloquent toute planification de pods ; un quota dimensionné pour un seul pod bloque les mises à jour progressives.
environment_variables → AUTHENTIK_POSTGRESQL__*Laisser non définiMoyenLe point d'entrée mappe les valeurs DB_* injectées ; coder en dur des noms de base de données courts entraîne une authentification avec un rôle inexistant (les noms sont préfixés par le locataire).
enable_iapfalseMoyenIAP impose un double contrôle à chaque connexion et casse les rappels OAuth/SAML provenant de parties externes.
enable_pod_disruption_budgettrueMoyenLe désactiver permet à GKE d'évincer tous les pods simultanément pendant la maintenance — une panne totale des connexions.

Pour le comportement du socle évoqué tout au long de ce guide — IAM et Workload Identity, autoscaling, ingress et certificats, CI/CD, Cloud Armor, IAP, Binary Authorization, VPC-SC, sauvegardes et mise en miroir des images — consultez App_GKE. La configuration applicative propre à authentik partagée avec la variante Cloud Run est décrite dans Authentik_Common.

Need RAD to do something it does not do yet? Request it on the roadmap, or vote on what is already there.