Aller au contenu principal

OpenClaw sur GKE Autopilot

OpenClaw sur GKE Autopilot

OpenClaw est une passerelle d'agents IA multi-tenant conçue spécifiquement pour des déploiements d'agents isolés et persistants. Elle permet aux équipes d'exécuter des assistants IA par tenant s'appuyant sur des modèles Anthropic, avec des espaces de travail GCS dédiés et une intégration facultative des canaux Telegram ou Slack — le tout sans état partagé entre les agents. Ce module déploie OpenClaw sur GKE Autopilot au-dessus du 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 OpenClaw 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, entrée, mise à l'échelle automatique, CI/CD, Cloud Armor, IAP, Binary Authorization, VPC Service Controls, sauvegardes et cycle de vie du déploiement — consultez le guide du socle App_GKE plutôt que de les répéter ici.


1. Vue d'ensemble​

OpenClaw s'exécute sous forme de charge de travail de passerelle Node.js sur GKE Autopilot. Le déploiement associe un ensemble ciblé de services Google Cloud :

FonctionnalitéService Google CloudRemarques
CalculGKE AutopilotPods Node.js, 2 vCPU / 2 GiB par défaut, mise à l'échelle horizontale automatique
Stockage de l'espace de travailCloud Storage (GCS Fuse)Bucket d'espace de travail par tenant monté sur /data via le pilote CSI GCS Fuse
Identifiants IASecret ManagerClé API Anthropic et jeton de passerelle toujours stockés ; secrets Telegram et Slack facultatifs
EntréeCloud Load BalancingLoadBalancer par défaut (IP externe publique) ; ClusterIP ou un domaine personnalisé disponibles
SecretsSecret ManagerTous les identifiants sont injectés au démarrage des pods ; jamais en clair dans la configuration

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

  • Ni base de données, ni Redis. OpenClaw est une passerelle Node.js avec état reposant entièrement sur GCS Fuse sur /data. Cloud SQL et Redis ne sont jamais provisionnés.
  • Une image de conteneur personnalisée est toujours construite. Le module ajoute un entrypoint.sh par-dessus l'image amont ghcr.io/openclaw/openclaw. L'argument de build BASE_IMAGE est figé sur application_version.
  • L'espace de travail GCS sur /data est toujours monté. Un bucket dédié <prefix>-storage est toujours provisionné et monté par le pilote CSI GCS Fuse. L'état persistant des agents y réside d'un redémarrage de pod à l'autre.
  • OPENCLAW_STATE_DIR est sur le disque local. Le staging npm et le répertoire de configuration XDG sont redirigés vers /tmp/openclaw pour éviter les limitations de GCS Fuse sur les liens physiques au démarrage.
  • min_instance_count = 1 par défaut. Maintient l'agent actif afin que les événements de webhook de Telegram ou de Slack ne soient pas perdus pendant un démarrage à froid.
  • L'affinité de session vaut ClientIP. Garantit que les sessions WebSocket d'un utilisateur sont systématiquement routées vers le même pod lorsque plusieurs réplicas sont en cours d'exécution.

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 sont indiqués dans les sorties du déploiement.

A. GKE Autopilot — la charge de travail OpenClaw​

Les pods OpenClaw sont ordonnancés sur Autopilot, qui facture le CPU et la mémoire que les pods demandent réellement. L'autoscaling horizontal des pods dimensionne le déploiement entre le nombre minimal et le nombre maximal de réplicas.

  • Console : Kubernetes Engine → Workloads → sélectionnez la charge de travail OpenClaw pour voir les pods, les événements et l'utilisation des ressources. Kubernetes Engine → Services & Ingress affiche le point de terminaison du service.
  • CLI :
    kubectl get pods,svc,hpa -n "$NAMESPACE"
    kubectl logs -n "$NAMESPACE" deploy/<service-name> --tail=100
    kubectl describe hpa -n "$NAMESPACE" # current vs target utilisation

Consultez App_GKE pour savoir comment Autopilot, la mise à l'échelle et le type de charge de travail (Deployment ou StatefulSet) sont gérés.

B. Cloud Storage — espace de travail GCS Fuse​

Tout l'état durable des agents est stocké dans un bucket Cloud Storage dédié et monté dans les pods sur /data par le pilote CSI GCS Fuse. L'organisation de l'espace de travail est la suivante :

<prefix>-storage/
├── workspace/ ← agent workspace (/data/workspace)
│ └── skill-library/ ← shared skills repo (when skills_repo_url is set)
├── agents/main/agent/ ← agent state directory
└── ...
  • Console : Cloud Storage → Buckets → sélectionnez le bucket <prefix>-storage.
  • CLI :
    gcloud storage buckets list --project "$PROJECT"
    gcloud storage ls gs://<prefix>-storage/
    # Confirm the bucket is mounted inside a pod:
    kubectl exec -n "$NAMESPACE" deploy/<service-name> -- ls /data

Consultez App_GKE pour le CSI GCS Fuse, les options CMEK et le cycle de vie des buckets.

C. Secret Manager — identifiants​

La clé API Anthropic et le jeton de passerelle sont toujours stockés dans Secret Manager. Lorsque l'intégration Telegram ou Slack est activée, les jetons des bots et les secrets de webhook/de signature y sont également stockés. Tous les identifiants sont injectés au démarrage des pods ; ils n'apparaissent jamais en clair dans la configuration.

  • Console : Security → Secret Manager.
  • CLI :
    gcloud secrets list --project "$PROJECT"
    # Retrieve the Anthropic key (initial deploy only; manage via Secret Manager thereafter):
    gcloud secrets versions access latest --secret=<prefix>-anthropic-api-key --project "$PROJECT"
    # Retrieve the gateway token (needed to register clients):
    gcloud secrets versions access latest --secret=<prefix>-gateway-token --project "$PROJECT"

Consultez App_GKE pour l'intégration Secret Store CSI et la rotation.

D. Réseau et entrée​

Par défaut, la charge de travail est exposée sous forme de service LoadBalancer avec une IP externe publique. Définissez service_type = "ClusterIP" pour un accès uniquement interne (généralement derrière un service routeur OpenClaw), ou activez un domaine personnalisé via la Kubernetes Gateway API pour un accès externe direct sur un nom d'hôte stable.

  • Console : Kubernetes Engine → Services & Ingress ; VPC network → IP addresses.
  • CLI :
    kubectl get svc,ingress -n "$NAMESPACE"
    gcloud compute addresses list --project "$PROJECT"

Consultez App_GKE pour les domaines personnalisés, Cloud Armor et les détails de l'IP statique.

E. Cloud Logging et Monitoring​

Les sorties stdout/stderr des pods sont envoyées vers Cloud Logging ; les métriques GKE sont envoyées vers Cloud Monitoring. Un test de disponibilité et des règles d'alerte facultatifs sont disponibles.

  • 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 OpenClaw​

  • Aucun job d'initialisation de base de données. OpenClaw ne nécessite ni Cloud SQL ni job d'initialisation. L'état des agents réside entièrement sur GCS ; le premier démarrage d'un pod crée automatiquement les répertoires de l'espace de travail via entrypoint.sh.
  • Configuration régénérée à chaque démarrage. entrypoint.sh réécrit toujours openclaw.json dans $OPENCLAW_STATE_DIR, ce qui garantit que les variables d'environnement gérées par Terraform (clés API, jeton de passerelle, paramètres des canaux) l'emportent sur toute valeur obsolète précédemment persistée sur GCS.
  • Synchronisation du dépôt de skills (facultative). Lorsque skills_repo_url est défini, entrypoint.sh effectue un clonage superficiel ou une mise à jour du dépôt dans /data/workspace/skill-library à chaque démarrage d'un pod. La synchronisation n'est pas bloquante — la passerelle démarre même si le clonage échoue. Inspectez la synchronisation sur un pod en cours d'exécution :
    kubectl exec -n "$NAMESPACE" deploy/<service-name> -- ls /data/workspace/skill-library
  • Chemin de santé. Les sondes de démarrage et de vivacité ciblent toutes deux GET /health sur le port 8080. La sonde de démarrage accorde jusqu'à environ 3 minutes (36 × 5 s) à npm pour préparer les paquets de plugins embarqués avant que la passerelle ne soit déclarée en mauvaise santé.
  • Affinité de session. Le Service Kubernetes utilise par défaut l'affinité ClientIP afin que la connexion WebSocket d'un utilisateur soit systématiquement routée vers le même pod lorsque plusieurs réplicas sont déployés.
  • Webhooks Telegram et Slack. Lorsque enable_telegram ou enable_slack est défini, le jeton de bot correspondant est injecté sous la forme TELEGRAM_BOT_TOKEN ou SLACK_BOT_TOKEN. Les secrets de webhook/de signature sont stockés dans Secret Manager pour un service routeur compagnon et ne sont pas injectés dans le conteneur de l'agent.

4. Variables de configuration​

Les variables sont regroupées exactement comme elles apparaissent sur la plateforme de déploiement. Seuls les paramètres propres à OpenClaw 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.
anthropic_api_key(obligatoire au premier déploiement)Clé API Anthropic. Stockée dans Secret Manager et injectée sous la forme ANTHROPIC_API_KEY. Omettez-la lors des mises à jour pour conserver la valeur stockée. Sensible.
gateway_token(généré automatiquement)Jeton d'authentification de la passerelle. Un jeton hexadécimal sécurisé de 64 caractères est généré lorsqu'il est laissé vide. Stocké dans Secret Manager sous le nom OPENCLAW_GATEWAY_TOKEN. Sensible.

Groupe 2 — Environnement de déploiement​

VariableValeur par défautDescription
tenant_iddemoSuffixe court qui rend les noms de ressources uniques par environnement.
support_users[]Adresses e-mail auxquelles sont accordés l'accès au projet et les alertes de surveillance.
resource_labels{}Libellés appliqués à toutes les ressources pour le suivi des coûts et de la propriété.

Groupe 3 — Identité de l'application​

VariableValeur par défautDescription
application_nameopenclawNom de base des ressources. Ne pas modifier après le premier déploiement.
application_display_nameOpenClaw GatewayNom convivial affiché dans la console.
descriptionOpenClaw AI Gateway - Multi-tenant AI agent gateway on GKE AutopilotBrève description de la finalité de l'application.
application_versionlatestTag de l'image OpenClaw utilisé comme argument de build BASE_IMAGE. Figez-le sur une version précise pour des builds reproductibles.

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

VariableValeur par défautDescription
deploy_applicationtrueDéfinissez false pour ne provisionner que l'infrastructure.
container_resources{ cpu_limit = "2000m", memory_limit = "2Gi" }Limites de CPU et de mémoire. Minimum recommandé de 2 vCPU / 2 GiB pour les charges de travail d'agents.
min_instance_count1Nombre minimal de réplicas de pods. Conservez ≥ 1 afin que les événements de webhook ne soient pas perdus pendant un démarrage à froid.
max_instance_count3Nombre maximal de réplicas de pods. OpenClaw est avec état — utilisez 1 par tenant, sauf avec un routage de session persistant.
container_port8080Port sur lequel écoute la passerelle OpenClaw. Doit correspondre à la variable d'environnement PORT.
timeout_seconds3600Délai d'expiration des requêtes. Les sessions d'agents sont longues ; 3600 s est le maximum.
enable_image_mirroringtrueMet en miroir l'image construite dans Artifact Registry avant le déploiement.
enable_vertical_pod_autoscalingfalseLaisse Autopilot ajuster automatiquement les demandes de ressources (désactive le HPA).

Groupe 5 — Variables d'environnement et secrets​

VariableValeur par défautDescription
environment_variables{}Paramètres non secrets supplémentaires. Les variables gérées par le module (OPENCLAW_STATE_DIR, NODE_ENV, etc.) sont toujours prioritaires.
secret_environment_variables{}Table variable d'environnement → nom d'un secret Secret Manager existant. Les identifiants principaux sont gérés automatiquement.
secret_propagation_delay30Secondes d'attente après la création d'un secret avant de poursuivre.

Groupe 6 — Backend GKE et cluster​

VariableValeur par défautDescription
gke_cluster_name""Nom du cluster GKE. Découvre automatiquement le cluster géré par Services_GCP lorsqu'il est vide.
namespace_name""Espace de noms Kubernetes. Généré automatiquement à partir du préfixe des ressources lorsqu'il est vide.
workload_typenullDeployment pour des réplicas sans état adossés à GCS ; StatefulSet pour une identité de pod persistante.
service_typeLoadBalancerClusterIP pour un accès uniquement interne ; LoadBalancer pour un accès externe direct.
session_affinityClientIPRoutage persistant pour la cohérence des sessions WebSocket entre les réplicas.
termination_grace_period_seconds60Délai de grâce permettant aux sessions d'agents actives de se terminer avant l'arrêt du pod.
network_tags[]Tags réseau des nœuds/pods pour les règles de pare-feu.

Groupe 7 — Configuration du StatefulSet​

VariableValeur par défautDescription
stateful_pvc_enablednullActive un PVC pour le StatefulSet. OpenClaw utilise normalement GCS — n'activez cette option que si les performances d'un disque local sont nécessaires.
stateful_pvc_size10GiTaille du PVC.
stateful_pvc_mount_path/pvc-dataChemin de montage du PVC dans le conteneur.
stateful_pvc_storage_classstandard-rwoStorageClass Kubernetes des PVC.
stateful_headless_servicenullCrée un Service headless pour des identités réseau stables.
stateful_pod_management_policynullOrderedReady ou Parallel.
stateful_update_strategynullRollingUpdate ou OnDelete.
stateful_fs_group0GID fsGroup dans le contexte de sécurité du pod ; 0 le laisse non défini.

Groupe 8 — Quota de ressources​

VariableValeur par défautDescription
enable_resource_quotafalsePlafonne le CPU, la mémoire et le nombre d'objets de l'espace de noms.
quota_memory_requests / quota_memory_limits""Doivent utiliser des unités binaires (4Gi, 8192Mi) — des entiers nus sont lus comme des octets et bloquent l'ordonnancement.

Groupe 9 — Règles de fiabilité​

VariableValeur par défautDescription
enable_pod_disruption_budgettrueProtège la disponibilité pendant les mises à niveau des nœuds.
pdb_min_available1Augmentez min_instance_count au-delà de 1 si vous avez besoin d'une marge pour les évictions.
enable_topology_spreadfalseRépartit les pods entre les zones.

Groupe 10 — Observabilité et santé​

VariableValeur par défautDescription
startup_probe / startup_probe_configHTTP /health, seuil de 36 tentativesAccorde environ 3 minutes pour le démarrage de npm et le montage GCS Fuse.
liveness_probe / health_check_configHTTP /healthRedémarre le pod si la passerelle ne répond plus.
uptime_check_config{ enabled = false }Désactivé par défaut pour les services ClusterIP (non joignables de l'extérieur).
alert_policies[]Règles d'alerte facultatives sur les métriques.

Groupe 11 — Automatisation des charges de travail​

VariableValeur par défautDescription
initialization_jobs[]OpenClaw n'a pas de job d'initialisation par défaut. À utiliser pour un amorçage personnalisé de l'espace de travail.
cron_jobs[]CronJobs Kubernetes récurrents (par ex. archivage de l'espace de travail).
additional_services[]Services sidecar ou compagnons (par ex. un routeur OpenClaw).

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

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

Groupe 13 — NFS​

VariableValeur par défautDescription
enable_nfsfalseOpenClaw utilise GCS Fuse pour son état. NFS n'est pas nécessaire et est désactivé par défaut.
nfs_mount_path/mnt/nfsChemin de montage NFS. Utilisé uniquement lorsque enable_nfs = true.

Groupe 14 — Cloud Storage et Artifact Registry​

VariableValeur par défautDescription
create_cloud_storagetrueProvisionne les buckets supplémentaires définis dans storage_buckets. Le bucket de l'espace de travail est toujours créé.
storage_buckets[]Buckets GCS supplémentaires en plus du bucket d'espace de travail provisionné automatiquement.
gcs_volumes[]Montages GCS Fuse supplémentaires. Le volume openclaw-data sur /data est toujours ajouté.
manage_storage_kms_iam / enable_artifact_registry_cmekfalseOptions CMEK.
max_images_to_retain / delete_untagged_images / image_retention_days(définies)Règle de nettoyage d'Artifact Registry.

Groupe 15 — Configuration d'OpenClaw​

VariableValeur par défautDescription
skills_repo_url""URL GitHub d'un dépôt de skills partagé. Cloné dans /data/workspace/skill-library à chaque démarrage d'un pod. Laissez vide pour ignorer.
skills_repo_refmainRéférence Git (branche, tag ou SHA) à extraire.
enable_telegramfalseProvisionne un secret de jeton de bot Telegram et injecte TELEGRAM_BOT_TOKEN. Nécessite telegram_bot_token.
telegram_bot_token""Jeton de bot Telegram obtenu auprès de @BotFather. Sensible.
telegram_webhook_secret""Secret de validation des webhooks pour le routeur (non injecté dans l'agent). À générer avec openssl rand -hex 32. Sensible.
enable_slackfalseProvisionne les secrets Slack et injecte SLACK_BOT_TOKEN. Nécessite slack_bot_token.
slack_bot_token""Jeton de bot Slack (xoxb-...). Sensible.
slack_signing_secret""Secret de signature Slack pour le routeur (non injecté dans l'agent). Sensible.

Groupe 17 — Sauvegarde et maintenance​

VariableValeur par défautDescription
backup_schedule0 2 * * *Cron de la sauvegarde automatique de l'espace de travail (UTC).
backup_retention_days7Jours de rétention ; à augmenter pour la production/la conformité.
enable_backup_import / backup_source / backup_uri / backup_formatoptions de restaurationImporte une sauvegarde de l'espace de travail lors du déploiement. backup_format vaut tar par défaut.

Groupe 19 — Domaine personnalisé et IP statique​

VariableValeur par défautDescription
enable_custom_domaintrueProvisionne une Gateway Kubernetes avec SSL pour les noms d'hôte personnalisés. Requis pour IAP.
application_domains[]Noms d'hôte personnalisés à servir.
reserve_static_iptrueIP externe stable d'un redéploiement à l'autre.

Groupe 20 — Identity-Aware Proxy (IAP)​

VariableValeur par défautDescription
enable_iapfalseExige une connexion Google devant OpenClaw. Nécessite enable_custom_domain.
iap_authorized_users / iap_authorized_groups[]Personnes autorisées à accéder.
iap_oauth_client_id / iap_oauth_client_secret""Obligatoires lorsque IAP est activé. Sensibles.
iap_support_email""Affiché sur l'écran de consentement OAuth.

Groupe 21 — Cloud Armor​

VariableValeur par défautDescription
enable_cloud_armorfalseAssocie une règle Cloud Armor (WAF) au backend de l'Ingress.
cloud_armor_policy_namedefault-waf-policyNom de la règle.
enable_cdnfalseActive Cloud CDN sur le backend de l'équilibreur de charge.

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).
vpc_cidr_ranges / vpc_sc_dry_run / admin_ip_ranges(définies)Plages CIDR du niveau d'accès / mode simulation (dry-run) / plages CIDR d'administration.
enable_audit_loggingfalseJournaux Cloud Audit Logs détaillés.

5. Sorties​

Ces valeurs sont renvoyées à l'issue 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 (Cloud Deploy).
service_external_ipIP du LoadBalancer externe (lorsqu'une IP statique est réservée).
service_urlURL pour accéder à la passerelle OpenClaw.
storage_bucketsBuckets Cloud Storage créés (y compris le bucket de l'espace de travail).
network_name / network_exists / regionsRéseau VPC, présence, régions disponibles.
container_image / container_registryImage déployée et dépôt Artifact Registry.
monitoring_enabled / monitoring_notification_channelsÉtat de la surveillance et canaux de notification.
deployment_id / tenant_id / resource_prefixIdentifiants de nommage.
project_id / project_numberIdentifiants du projet.
initialization_jobsNoms des éventuels jobs d'initialisation personnalisés.
cron_jobsNoms des CronJobs créés.
statefulset_nameNom du StatefulSet (lorsque workload_type = "StatefulSet").
cicd_enabled / cicd_configurationÉtat et détails du CI/CD.
github_repository_url / github_repository_owner / github_repository_nameDépôt GitHub connecté.
artifact_registry_repository / cloudbuild_trigger_name / cloudbuild_trigger_idRegistre et déclencheur de build.
kubernetes_readytrue lorsque le point de terminaison du cluster est disponible et que toutes les ressources Kubernetes sont déployées. false lors du premier apply d'un nouveau cluster inline — un second apply est nécessaire.

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).

ParamètreValeur judicieuseRisqueConséquence en cas d'erreur
anthropic_api_keyDéfinie au premier déploiementCritiqueSans clé valide, l'agent démarre mais toutes les requêtes IA échouent avec des erreurs 401.
Cohérence de gateway_tokenGénéré automatiquement ou défini une seule foisCritiqueEffectuer la rotation du jeton dans Secret Manager sans redémarrer les pods entraîne le rejet de toutes les requêtes clientes jusqu'au recyclage des pods.
quota_memory_requests / quota_memory_limitsunités binairesCritiqueDes entiers nus sont interprétés comme des octets et bloquent l'ordonnancement de tous les pods.
enable_backup_importfalse sauf en cas de restaurationCritiqueL'activer sans backup_uri valide fait échouer le job d'import.
telegram_bot_token / slack_bot_tokendéfinis lorsque l'intégration est activéeÉlevéUn jeton vide fait échouer tous les appels d'API ; les messages sont perdus.
telegram_webhook_secret / slack_signing_secretdéfinis lorsque l'intégration est activéeÉlevéUne valeur vide désactive la vérification des signatures, ce qui permet l'injection de faux webhooks.
min_instance_count1Élevé0 signifie que les événements de webhook Telegram/Slack sont perdus pendant un démarrage à froid (généralement 30 à 60 s pour l'initialisation d'un pod GKE).
skills_repo_urlURL joignable ou videÉlevéUne URL injoignable fait échouer le clonage git au démarrage, ce qui place le pod en CrashLoopBackOff.
skills_repo_refréférence existanteÉlevéUne branche ou un tag inexistant fait échouer le clonage à chaque démarrage.
session_affinityClientIPÉlevéSans persistance, les déploiements à plusieurs réplicas répartissent l'état WebSocket entre les pods.
enable_iapà activer pour un usage d'administrationMoyenSinon, la passerelle est joignable publiquement. Les points de terminaison de webhooks Telegram/Slack ne peuvent pas s'authentifier avec une identité Google — veillez à ce qu'ils ne soient pas derrière IAP.
stateful_pvc_enabledfalseMoyenOpenClaw utilise GCS. Les PVC ajoutent un disque local inutilisé et peuvent bloquer le réordonnancement.
backup_retention_days7 (à augmenter en production)MoyenTrop court pour la conformité ; une purge accidentelle du bucket fait perdre définitivement l'état des agents.
pdb_min_available par rapport à min_instance_countlaisser une margeMoyen1/1 peut bloquer les mises à niveau des nœuds (le pod unique ne peut pas être évincé).
enable_vpc_sc sans organization_idà définir explicitementMoyenVPC-SC est ignoré silencieusement, ce qui laisse les identifiants sans protection de périmètre.

Pour le comportement du socle évoqué tout au long de cette page — IAM et Workload Identity, mise à l'échelle automatique, entrée 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 à OpenClaw partagée avec la variante Cloud Run est décrite dans OpenClaw_Common.

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