Aller au contenu principal

Référence des valeurs Helm

Cette page liste chaque valeur du chart enterprise-ai (version 1.0.0, application 1.0.0, Kubernetes >=1.27.0-0) dans deploy/helm/enterprise-ai/values.yaml. Une liste, une table vide et un bloc resources comptent chacun pour une valeur ; litellm.config est le config.yaml de LiteLLM rendu tel quel. Les secrets ne vont jamais dans les valeurs : ils viennent d'OpenBao par External Secrets ou par l'agent OpenBao.

Cette page est générée par tools/docs/gen_platform_config.py à partir de deploy/helm/enterprise-ai/values.yaml : ne la modifiez pas à la main.

214 valeurs réparties en 17 sections.

global​

Valeurs globales. Partagées par tous les composants du chart.

CheminTypeDéfautDescription
global.imageRegistrychaîneharbor.example.internal/eaiRegistre (Harbor) préfixé à chaque image dont useGlobalRegistry n'est pas false. En installation déconnectée, le miroir Harbor local.
global.imagePullSecretsliste[]Secrets de téléchargement donnés aux pods du Control Plane et du worker.
global.environmentchaînedevEnvironnement logique : dev, staging ou prod.
global.trustDomainchaîneenterprise-ai.internalDomaine de confiance SPIFFE des identités de charge (spiffe://<domaine>/ns/<namespace>/sa/<compte>).
global.regionchaîneeu-westLibellé de région de résidence des données. Les modèles de cette version du chart ne le lisent pas.
global.tenantLabelchaîneplatformValeur du label tenant exigé par Kyverno sur chaque charge.
global.ownerchaîneplatform-teamValeur du label owner exigé par Kyverno sur chaque charge.
global.secretsModechaîneexternal-secretsLivraison des secrets : openbao-agent, external-secrets ou none.
global.openbao.addresschaînehttps://openbao.openbao.svc:8200Adresse d'OpenBao utilisée par l'injecteur d'agent.
global.openbao.kubernetesAuthPathchaîneauth/kubernetesMéthode d'authentification Kubernetes d'OpenBao.
global.externalSecrets.secretStoreNamechaîneopenbaoMagasin de secrets référencé par les objets ExternalSecret.
global.externalSecrets.secretStoreKindchaîneClusterSecretStoreType de ce magasin (ClusterSecretStore ou SecretStore).
global.networkPolicychaîneciliumVariante des politiques réseau : kubernetes, cilium ou none.
global.monitoring.serviceMonitorbooléentrueCrée les objets ServiceMonitor et PodMonitor du Prometheus Operator.
global.monitoring.prometheusRulesbooléentrueCrée la PrometheusRule des alertes du Control Plane.
global.monitoring.metricsTokenSecret.namechaînevideSecret contenant le jeton Bearer de GET /metrics, lu par le ServiceMonitor. Vide : le secret du Control Plane.
global.monitoring.metricsTokenSecret.keychaîneEAI_METRICS_TOKENClé du jeton dans ce secret.
global.monitoring.otlpEndpointchaînehttps://otel-collector.observability.svc.cluster.local:4318Point OTLP de l'OpenTelemetry Collector.
global.namespaces.datachaîneeai-dataNamespace des services de données, autorisé par les politiques réseau.
global.namespaces.securitychaîneeai-securityNamespace des services de sécurité (Keycloak, OpenFGA, OPA).
global.namespaces.observabilitychaîneobservabilityNamespace de la pile d'observabilité.
global.namespaces.gatewaychaîneapisixNamespace de la passerelle APISIX.
global.namespaces.ingresschaîneingressNamespace du contrôleur d'ingress.

controlPlane​

API Control Plane. Deployment de python -m eai.main, sa ConfigMap, son ExternalSecret et son hook de migration.

CheminTypeDéfautDescription
controlPlane.enabledbooléentrueDéploie le Control Plane.
controlPlane.image.repositorychaînecontrol-planeDépôt de l'image, sous global.imageRegistry.
controlPlane.image.tagchaîne1.0.0Tag de l'image.
controlPlane.image.pullPolicychaîneIfNotPresentPolitique de téléchargement Kubernetes.
controlPlane.replicasentier2Réplicas quand l'autoscaling est désactivé.
controlPlane.portentier8080Port de conteneur de l'API.
controlPlane.resourcestable{"requests": {"cpu": "250m", "memory": "512Mi"}, "limits": {"cpu": "2", "memory": "2Gi"}}Demandes et limites de CPU et de mémoire.
controlPlane.autoscaling.enabledbooléentrueCrée un HorizontalPodAutoscaler.
controlPlane.autoscaling.minReplicasentier2Nombre minimal de réplicas.
controlPlane.autoscaling.maxReplicasentier10Nombre maximal de réplicas.
controlPlane.autoscaling.targetCPUUtilizationPercentageentier70Utilisation CPU qui déclenche un ajout de réplicas.
controlPlane.pdb.enabledbooléentrueCrée un PodDisruptionBudget.
controlPlane.pdb.minAvailableentier1Pods conservés pendant une interruption volontaire.
controlPlane.migration.enabledbooléentrueLance python -m eai.migrate en hook pre-install et pre-upgrade.
controlPlane.migration.backoffLimitentier2Nouvelles tentatives du Job de migration.
controlPlane.config.EAI_AUTH_DEVchaîne0Réglage du Control Plane EAI_AUTH_DEV, voir la référence de configuration.
controlPlane.config.EAI_AUTH_SPIFFEchaîne1Réglage du Control Plane EAI_AUTH_SPIFFE, voir la référence de configuration.
controlPlane.config.EAI_AUTO_MIGRATEchaîne0Réglage du Control Plane EAI_AUTO_MIGRATE, voir la référence de configuration.
controlPlane.config.EAI_DEFAULT_LOCALEchaîneenRéglage du Control Plane EAI_DEFAULT_LOCALE, voir la référence de configuration.
controlPlane.config.EAI_CORS_ORIGINSchaîne["https://portal.example.internal"]Réglage du Control Plane EAI_CORS_ORIGINS, voir la référence de configuration.
controlPlane.config.EAI_OIDC_ISSUERchaînehttps://keycloak.example.internal/realms/enterprise-aiRéglage du Control Plane EAI_OIDC_ISSUER, voir la référence de configuration.
controlPlane.config.EAI_OIDC_AUDIENCEchaînecontrol-planeRéglage du Control Plane EAI_OIDC_AUDIENCE, voir la référence de configuration.
controlPlane.config.EAI_LITELLM_URLchaînehttp://enterprise-ai-litellm:4000Réglage du Control Plane EAI_LITELLM_URL, voir la référence de configuration.
controlPlane.config.EAI_OPENFGA_URLchaînehttps://openfga.eai-security.svc.cluster.local:8080Réglage du Control Plane EAI_OPENFGA_URL, voir la référence de configuration.
controlPlane.config.EAI_OPA_URLchaînehttps://opa.eai-security.svc.cluster.local:8181Réglage du Control Plane EAI_OPA_URL, voir la référence de configuration.
controlPlane.config.EAI_OPENBAO_URLchaînehttps://openbao.openbao.svc:8200Réglage du Control Plane EAI_OPENBAO_URL, voir la référence de configuration.
controlPlane.config.EAI_OPENBAO_KV_MOUNTchaînekvRéglage du Control Plane EAI_OPENBAO_KV_MOUNT, voir la référence de configuration.
controlPlane.config.EAI_OPENBAO_TRANSIT_MOUNTchaînetransitRéglage du Control Plane EAI_OPENBAO_TRANSIT_MOUNT, voir la référence de configuration.
controlPlane.config.EAI_QDRANT_URLchaînehttps://qdrant.eai-data.svc.cluster.local:6333Adresse de Qdrant (base vectorielle), lue par l'adaptateur Qdrant.
controlPlane.config.EAI_QDRANT_SHARD_NUMBERchaîne3Shards d'une nouvelle collection Qdrant (3 nœuds : 3 shards).
controlPlane.config.EAI_QDRANT_REPLICATION_FACTORchaîne2Réplicas de chaque shard (2 : un nœud peut être perdu).
controlPlane.config.EAI_QDRANT_WRITE_CONSISTENCY_FACTORchaîne1Réplicas qui doivent acquitter une écriture.
controlPlane.config.EAI_NATS_URLchaînenats://nats.eai-data.svc:4222Adresse de NATS JetStream (tâches média, événements d'audit). Production : dans le secret, tls:// avec un utilisateur par service.
controlPlane.config.EAI_TEMPORAL_URLchaînehttps://temporal-frontend.eai-data.svc.cluster.local:7243Adresse du frontend Temporal (exécution durable).
controlPlane.config.EAI_LIVEKIT_URLchaînews://livekit.eai-data.svc.cluster.local:80Adresse de signalisation LiveKit (port 80 du Service, port 7880 du conteneur).
controlPlane.config.EAI_OPIK_URLchaînehttp://opik-backend.observability.svc:8080Adresse du backend Opik (traçage IA et évaluation).
controlPlane.config.EAI_CLICKHOUSE_URLchaînehttps://clickhouse.observability.svc.cluster.local:8443Adresse ClickHouse de l'export analytique.
controlPlane.config.EAI_S3_ENDPOINTchaînehttps://s3.example.internalStockage objet compatible S3 des artefacts média et de l'archive d'audit WORM.
controlPlane.config.EAI_S3_BUCKETchaîneeai-audit-wormBucket de l'archive d'audit WORM (verrouillage d'objet).
controlPlane.config.EAI_S3_REGIONchaîneeu-westRégion du stockage objet.
controlPlane.config.EAI_OTEL_ENABLEDchaîne1Réglage du Control Plane EAI_OTEL_ENABLED, voir la référence de configuration.
controlPlane.config.EAI_OTEL_EXPORTER_OTLP_ENDPOINTchaînehttps://otel-collector.observability.svc.cluster.local:4318Point OTLP des traces du Control Plane.
controlPlane.secrets.pathchaînecontrol-planeChemin KV v2 d'OpenBao, relatif à kv/data/eai/<env>/, des secrets du Control Plane.
controlPlane.secrets.keysliste["EAI_DATABASE_URL", "EAI_MASTER_KEY", "EAI_OPENBAO_TOKEN", "EAI_OPENFGA_STORE_ID", "EAI_OPENFGA_MODEL_ID", "EAI_LITELLM_MASTER_KEY", "EAI_S3_ACCESS_KEY", "EAI_S3_SECRET_KEY", "EAI_LIVEKIT_API_KEY", "EAI_LIVEKIT_API_SECRET"]Clés tirées de ce chemin vers l'environnement du Control Plane.
controlPlane.nodeSelectortable{}Sélecteur de nœuds des pods de l'API.
controlPlane.tolerationsliste[]Tolérances des pods de l'API.
controlPlane.affinitytable{}Affinité des pods de l'API.

portal​

Portail. Portail Next.js, sa ConfigMap et son Ingress ingress-nginx.

CheminTypeDéfautDescription
portal.enabledbooléentrueDéploie le portail.
portal.image.repositorychaîneportalDépôt de l'image, sous global.imageRegistry.
portal.image.tagchaîne1.0.0Tag de l'image.
portal.image.pullPolicychaîneIfNotPresentPolitique de téléchargement Kubernetes.
portal.replicasentier2Réplicas quand l'autoscaling est désactivé.
portal.portentier3000Port de conteneur du portail (PORT). Sonde de santé : GET /api/health.
portal.resourcestable{"requests": {"cpu": "100m", "memory": "256Mi"}, "limits": {"cpu": "1", "memory": "1Gi"}}Demandes et limites de CPU et de mémoire.
portal.autoscaling.enabledbooléentrueCrée un HorizontalPodAutoscaler.
portal.autoscaling.minReplicasentier2Nombre minimal de réplicas.
portal.autoscaling.maxReplicasentier6Nombre maximal de réplicas.
portal.autoscaling.targetCPUUtilizationPercentageentier70Utilisation CPU qui déclenche un ajout de réplicas.
portal.pdb.enabledbooléentrueCrée un PodDisruptionBudget.
portal.pdb.minAvailableentier1Pods conservés pendant une interruption volontaire.
portal.config.NEXT_PUBLIC_EAI_API_URLchaînehttps://api.example.internalURL publique de l'API telle que les navigateurs l'atteignent.
portal.config.NEXT_PUBLIC_OIDC_ISSUERchaînehttps://keycloak.example.internal/realms/enterprise-aiRealm Keycloak utilisé par le portail pour la connexion. Le portail lit d'abord NEXT_PUBLIC_EAI_OIDC_ISSUER, puis ce nom.
portal.config.NEXT_PUBLIC_OIDC_CLIENT_IDchaîneportalClient public OIDC du portail (code d'autorisation avec PKCE). Le portail lit d'abord NEXT_PUBLIC_EAI_OIDC_CLIENT_ID, puis ce nom.
portal.ingress.enabledbooléentrueCrée l'Ingress du portail. TLS est obligatoire, HTTP redirige vers HTTPS.
portal.ingress.classNamechaînenginxClasse d'ingress.
portal.ingress.hostchaîneportal.example.internalNom d'hôte public du portail.
portal.ingress.tlsSecretNamechaîneportal-tlsSecret du certificat TLS, délivré par cert-manager.
portal.ingress.clusterIssuerchaîneeai-internal-caClusterIssuer cert-manager du certificat.
portal.ingress.loginRateLimitPerMinuteentier10Garde contre la force brute sur /login, requêtes par minute et par IP cliente.
portal.ingress.rateLimitPerMinuteentier600Requêtes par minute et par IP cliente sur les autres chemins.
portal.ingress.maxBodySizechaîne10mTaille maximale d'un corps de requête (proxy-body-size).
portal.ingress.securityHeaders.Strict-Transport-Securitychaînemax-age=31536000; includeSubDomains; preloadEn-tête de sécurité en bordure, ajouté aux en-têtes que fixe le portail.
portal.ingress.securityHeaders.X-Content-Type-OptionschaînenosniffEn-tête de sécurité en bordure.
portal.ingress.securityHeaders.X-Frame-OptionschaîneDENYEn-tête de sécurité en bordure.
portal.ingress.securityHeaders.Referrer-Policychaînestrict-origin-when-cross-originEn-tête de sécurité en bordure.
portal.ingress.securityHeaders.Permissions-Policychaînecamera=(), microphone=(self), geolocation=(), payment=(), usb=()En-tête de sécurité en bordure (micro autorisé pour les fonctions vocales).
portal.ingress.securityHeaders.Cross-Origin-Opener-Policychaînesame-originEn-tête de sécurité en bordure.
portal.ingress.securityHeaders.Cross-Origin-Resource-Policychaînesame-originEn-tête de sécurité en bordure.

litellm​

Passerelle LiteLLM. Proxy LiteLLM derrière la passerelle de modèles du Control Plane.

CheminTypeDéfautDescription
litellm.enabledbooléentrueDéploie LiteLLM.
litellm.image.repositorychaînelitellmDépôt de l'image LiteLLM de Navin (deploy/docker/litellm.Dockerfile, litellm sans le paquet propriétaire litellm-enterprise et sans enterprise/), préfixé par global.imageRegistry.
litellm.image.tagchaîne1.106.5Version LiteLLM de l'image, la même que le catalogue du Manager et la pile compose (la politique Kyverno eai-verify-image-signatures vérifie la signature de la CI et résout l'empreinte).
litellm.replicasentier2Réplicas quand l'autoscaling est désactivé.
litellm.portentier4000Port du conteneur.
litellm.resourcestable{"requests": {"cpu": "250m", "memory": "512Mi"}, "limits": {"cpu": "2", "memory": "2Gi"}}Demandes et limites de CPU et de mémoire.
litellm.autoscaling.enabledbooléentrueCrée un HorizontalPodAutoscaler.
litellm.autoscaling.minReplicasentier2Nombre minimal de réplicas.
litellm.autoscaling.maxReplicasentier10Nombre maximal de réplicas.
litellm.autoscaling.targetCPUUtilizationPercentageentier70Utilisation CPU qui déclenche un ajout de réplicas.
litellm.pdb.enabledbooléentrueCrée un PodDisruptionBudget.
litellm.pdb.minAvailableentier1Pods conservés pendant une interruption volontaire.
litellm.secrets.pathchaînelitellmChemin KV v2 d'OpenBao des secrets de LiteLLM.
litellm.secrets.keysliste["LITELLM_MASTER_KEY", "DATABASE_URL", "OPENAI_API_KEY", "ANTHROPIC_API_KEY", "MISTRAL_API_KEY"]Clés tirées de ce chemin (clé maîtresse, base, clés des fournisseurs).
litellm.configtabletable, clés model_list, router_settings, litellm_settings, general_settingsconfig.yaml de LiteLLM. En production, il est généré par GET /v1/litellm/config et synchronisé par POST /v1/litellm/sync ; les clés sont uniquement des références os.environ/.

vllm​

Inférence locale vLLM. Un Deployment par entrée de vllm.models, sur des nœuds GPU (accelerator: gpu, par défaut) ou CPU (accelerator: cpu). Les applications ne l'atteignent qu'à travers LiteLLM.

CheminTypeDéfautDescription
vllm.enabledbooléenfalseDéploie vLLM.
vllm.image.repositorychaînevllm/vllm-openaiDépôt de l'image CUDA.
vllm.image.tagchaînev0.33.0Tag de l'image CUDA.
vllm.image.useGlobalRegistrybooléenfalsefalse : dépôt absolu.
vllm.cpuImage.repositorychaînevllm/vllm-openai-cpuDépôt de l'image CPU (accelerator: cpu).
vllm.cpuImage.tagchaînev0.33.0-x86_64Tag de l'image CPU.
vllm.cpuImage.useGlobalRegistrybooléenfalsefalse : dépôt absolu.
vllm.portentier8000Port de conteneur de l'API compatible OpenAI.
vllm.antiAffinitychaînepreferredRéplicas d'un modèle sur des nœuds distincts : required (HA, autant de nœuds GPU que de réplicas) ou preferred.
vllm.startupFailureThresholdentier90Échecs de la sonde de démarrage avant un redémarrage (temps de chargement du modèle).
vllm.nodeSelector.nvidia.com/gpu.presentchaînetrueSélecteur de nœuds des modèles GPU (label nvidia.com/gpu.present).
vllm.cpuNodeSelectortable{}Sélecteur de nœuds des modèles CPU.
vllm.tolerationsliste[{"key": "nvidia.com/gpu", "operator": "Exists", "effect": "NoSchedule"}]Tolérances des nœuds GPU.
vllm.modelCache.storageClasschaînevideClasse de stockage du cache des modèles. Vide : la classe par défaut.
vllm.modelCache.sizechaîne200GiTaille du volume de cache des modèles.
vllm.keda.enabledbooléentrueCrée un ScaledObject KEDA par modèle sur vllm:num_requests_waiting.
vllm.keda.prometheusAddresschaînehttp://prometheus-operated.observability.svc:9090Prometheus interrogé par KEDA.
vllm.keda.thresholdchaîne5Requêtes en file par réplica qui déclenchent un ajout de réplicas.
vllm.keda.pollingIntervalentier15Secondes entre deux contrôles de KEDA.
vllm.keda.cooldownPeriodentier300Secondes avant une réduction.
vllm.modelsliste[]Modèles servis : name, model, gpus, minReplicas, maxReplicas, args, resources, accelerator, cpuKvCacheSpaceGb.

ollama​

Ollama. Moteur complémentaire pour les modèles légers et quantifiés : un StatefulSet dont chaque réplica garde son propre magasin de modèles et télécharge les mêmes preloadModels au démarrage.

CheminTypeDéfautDescription
ollama.enabledbooléenfalseDéploie Ollama.
ollama.image.repositorychaîneollama/ollamaDépôt de l'image.
ollama.image.tagchaîne0.40.14Tag de l'image.
ollama.image.useGlobalRegistrybooléenfalsefalse : dépôt absolu.
ollama.portentier11434Port du conteneur.
ollama.replicasentier1Réplicas du StatefulSet.
ollama.acceleratorchaînegpugpu ou cpu.
ollama.gpusentier1GPU par réplica avec accelerator: gpu.
ollama.preloadModelsliste[]Modèles téléchargés sur chaque réplica au démarrage (OLLAMA_PRELOAD). Vide en environnement déconnecté où le magasin est restauré depuis un volume validé.
ollama.registryCIDRsliste[]CIDR du registre de modèles interne d'où vient le préchargement (sortie 443). Vide : aucune sortie.
ollama.numParallelentier4OLLAMA_NUM_PARALLEL.
ollama.maxLoadedModelsentier2OLLAMA_MAX_LOADED_MODELS.
ollama.maxQueueentier512OLLAMA_MAX_QUEUE.
ollama.contextLengthentier4096OLLAMA_CONTEXT_LENGTH.
ollama.keepAlivechaîne5mOLLAMA_KEEP_ALIVE.
ollama.modelStore.storageClasschaînevideClasse de stockage du magasin de modèles. Vide : la classe par défaut.
ollama.modelStore.sizechaîne100GiTaille du magasin de modèles de chaque réplica.
ollama.resourcestable{"requests": {"cpu": "2", "memory": "8Gi"}, "limits": {"cpu": "8", "memory": "32Gi"}}Demandes et limites de CPU et de mémoire.
ollama.nodeSelector.nvidia.com/gpu.presentchaînetrueSélecteur de nœuds avec accelerator: gpu.
ollama.cpuNodeSelectortable{}Sélecteur de nœuds avec accelerator: cpu.
ollama.tolerationsliste[{"key": "nvidia.com/gpu", "operator": "Exists", "effect": "NoSchedule"}]Tolérances des nœuds GPU.

worker​

Worker de fond. python -m eai.worker avec l'image, la ConfigMap et les secrets de l'API. Un verrou consultatif PostgreSQL garde un seul réplica actif.

CheminTypeDéfautDescription
worker.enabledbooléentrueDéploie le worker.
worker.replicasentier1Réplicas (un seul est actif, les autres attendent le verrou).
worker.metricsPortentier9464EAI_WORKER_METRICS_PORT, collecté par le PodMonitor.
worker.resourcestable{"requests": {"cpu": "100m", "memory": "256Mi"}, "limits": {"cpu": "1", "memory": "1Gi"}}Demandes et limites de CPU et de mémoire.
worker.nodeSelectortable{}Sélecteur de nœuds.
worker.tolerationsliste[]Tolérances.
worker.affinitytable{}Affinité.
worker.planes.enabledbooléenfalseExécute les tâches d'audit, SOC et télémétrie dans leurs propres Deployments (--plane <nom>, verrou et ressources propres) ; le worker principal lance --plane core.
worker.planes.audit.replicasentier1Réplicas du plan audit.
worker.planes.audit.resourcestable{"requests": {"cpu": "100m", "memory": "256Mi"}, "limits": {"cpu": "1", "memory": "1Gi"}}Ressources du plan audit.
worker.planes.soc.replicasentier1Réplicas du plan SOC.
worker.planes.soc.resourcestable{"requests": {"cpu": "100m", "memory": "256Mi"}, "limits": {"cpu": "1", "memory": "1Gi"}}Ressources du plan SOC.
worker.planes.telemetry.replicasentier1Réplicas du plan télémétrie.
worker.planes.telemetry.resourcestable{"requests": {"cpu": "100m", "memory": "256Mi"}, "limits": {"cpu": "1", "memory": "1Gi"}}Ressources du plan télémétrie.

workers​

Workers média. Workers GPU (STT, TTS, vidéo) consommateurs de NATS JetStream, mis à l'échelle par KEDA selon le retard du consommateur.

CheminTypeDéfautDescription
workers.enabledbooléenfalseDéploie les workers média.
workers.image.repositorychaîneworkerDépôt de l'image.
workers.image.tagchaîne1.0.0Tag de l'image.
workers.nats.monitoringEndpointchaînenats.eai-data.svc:8222Point de supervision NATS lu par KEDA.
workers.nats.streamchaîneEAI_MULTIMODALFlux JetStream (--stream).
workers.itemsliste[]Workers : name, kind (--kind), consumer, gpus, minReplicas, maxReplicas, lagThreshold.

sandbox​

Bac à sable. Exécution isolée des outils et de l'interpréteur de code.

CheminTypeDéfautDescription
sandbox.enabledbooléentrueCrée les ressources du bac à sable.
sandbox.namespacechaîneeai-sandboxNamespace des bacs à sable.
sandbox.createNamespacebooléentrueLe chart crée le namespace (installation autonome). GitOps : false, l'amorçage de la plateforme le crée avec ses labels Pod Security.
sandbox.runtimeClassesliste[{"name": "gvisor", "handler": "runsc"}, {"name": "kata", "handler": "kata-qemu"}]Objets RuntimeClass créés (gVisor runsc, Kata kata-qemu).

mcpRuntime​

Runtime MCP. Intégration de ToolHive Operator. Activé, le chart ajoute le ClusterRole et le ClusterRoleBinding eai-mcp-runtime-controller et les variables EAI_MCP_RUNTIME_* du Control Plane.

CheminTypeDéfautDescription
mcpRuntime.enabledbooléenfalseActive le Runtime MCP (EAI_MCP_RUNTIME_ENABLED).
mcpRuntime.issuerchaînevideEAI_MCP_RUNTIME_ISSUER. Vide : http://<release>-control-plane.<namespace>.svc.<clusterDomain>:<port>/v1/mcp/runtime.
mcpRuntime.jwksUrlchaînevideEAI_MCP_RUNTIME_JWKS_URL. Vide : GET /v1/mcp/runtime/jwks dans le cluster.
mcpRuntime.gatewayNamespacechaînevideEAI_MCP_RUNTIME_GATEWAY_NAMESPACE. Vide : le namespace de la release.
mcpRuntime.internalHostsliste[]EAI_MCP_INTERNAL_HOSTS.
mcpRuntime.catalogStorageProfilechaînevideEAI_MCP_CATALOG_STORAGE_PROFILE, obligatoire en production.
mcpRuntime.catalogKeychaînemcp-runtime/templates.yamlEAI_MCP_CATALOG_KEY.
mcpRuntime.catalogRefreshSecondsentier300EAI_MCP_CATALOG_REFRESH_SECONDS.
mcpRuntime.imageRegistriesliste["harbor.example.internal"]EAI_MCP_RUNTIME_IMAGE_REGISTRIES.
mcpRuntime.wakeTimeoutSecondsentier90EAI_MCP_RUNTIME_WAKE_TIMEOUT_SECONDS.
mcpRuntime.failureLimitentier3EAI_MCP_RUNTIME_FAILURE_LIMIT.
mcpRuntime.failureWindowSecondsentier900EAI_MCP_RUNTIME_FAILURE_WINDOW_SECONDS.
mcpRuntime.otelEndpointchaîneotel-collector.observability.svc.cluster.local:4318Point OTLP/HTTP en TLS (hôte:port) du MCPTelemetryConfig eai-mcp-telemetry.
mcpRuntime.otelSamplingRatechaîne1.0Taux d'échantillonnage des traces entre 0 et 1.0.
mcpRuntime.otelCaFilechaîne/etc/eai/ca/ca.crtFichier d'autorité interne copié dans chaque namespace mcp-runtime (obligatoire hors dev et test).
mcpRuntime.otelCaSecretchaîneeai-internal-caSecret du namespace de la release contenant ca.crt de l'autorité interne, monté dans le dossier de otelCaFile.

networkSecurity​

Durcissement réseau. Entrées de templates/control-plane/networkpolicy.yaml.

CheminTypeDéfautDescription
networkSecurity.clusterDomainchaînecluster.localDomaine DNS du cluster.
networkSecurity.metadataCIDRsliste["169.254.169.254/32", "169.254.0.0/16", "fd00:ec2::254/128"]Points de métadonnées cloud, interdits à toute charge (SSRF vers les identifiants d'instance).
networkSecurity.kubeApiServerCIDRsliste[]Variante NetworkPolicy standard seulement : points de l'API server joignables par le Control Plane.
networkSecurity.objectStorageFQDNslistes3.example.internalFQDN du stockage objet compatible S3 joint en HTTPS. Remplacez s3.example.internal par le stockage objet du client.
networkSecurity.providerEgress.controlPlanebooléentrueAutorise le Control Plane à joindre providerFQDNs.
networkSecurity.providerEgress.litellmbooléentrueAutorise LiteLLM à joindre providerFQDNs.
networkSecurity.providerFQDNslisteapi.openai.com, api.anthropic.com, bedrock-runtime.eu-west-3.amazonaws.com, bedrock-runtime.eu-central-1.amazonaws.com, europe-west4-aiplatform.googleapis.com, europe-west1-aiplatform.googleapis.com, oauth2.googleapis.com, *.openai.azure.com, login.microsoftonline.com, api.mistral.ai, api.deepseek.com, api.groq.com, generativelanguage.googleapis.com, dashscope-intl.aliyuncs.com, api.z.ai, api.minimax.io, router.huggingface.co, api.githubcopilot.com, openrouter.ai, api.together.xyz, api.fireworks.ai, api.cohere.comSortie FQDN vers les fournisseurs LLM (même liste que deploy/cilium/egress-providers.yaml). Vide ou les deux indicateurs désactivés en environnement déconnecté.

redis​

Redis embarqué. Dépendance facultative (chart Bitnami 20.x), désactivée : Argo CD installe Redis en production.

CheminTypeDéfautDescription
redis.enabledbooléenfalseInstalle Redis avec le chart (exige helm dependency build et un accès réseau).

qdrant​

Qdrant embarqué. Dépendance facultative (chart 1.x), désactivée : Argo CD installe Qdrant en production.

CheminTypeDéfautDescription
qdrant.enabledbooléenfalseInstalle Qdrant avec le chart.

nats​

NATS embarqué. Dépendance facultative (chart 1.x), désactivée : Argo CD installe NATS en production.

CheminTypeDéfautDescription
nats.enabledbooléenfalseInstalle NATS avec le chart.

openfga​

OpenFGA embarqué. Dépendance facultative (chart 0.x), désactivée : Argo CD installe OpenFGA en production.

CheminTypeDéfautDescription
openfga.enabledbooléenfalseInstalle OpenFGA avec le chart.

keycloakx​

Keycloak embarqué. Dépendance facultative (chart codecentric keycloakx 7.x), désactivée : Argo CD installe Keycloak en production.

CheminTypeDéfautDescription
keycloakx.enabledbooléenfalseInstalle Keycloak avec le chart.

ha​

Placement haute disponibilité. Assistant eai.haPodSpec de _helpers.tpl. Désactivé par défaut ; values-ha.yaml l'active.

CheminTypeDéfautDescription
ha.enabledbooléenfalseAjoute la répartition topologique, l'anti-affinité et le délai de grâce aux pods.
ha.terminationGracePeriodSecondsentier60Secondes laissées à un pod pour terminer ses requêtes après SIGTERM.
ha.hostnameSpreadchaîneDoNotSchedulewhenUnsatisfiable de la répartition par nom d'hôte (maxSkew: 1). L'anti-affinité des pods par nom d'hôte est obligatoire dans tous les cas.
ha.zoneSpreadchaîneScheduleAnywaywhenUnsatisfiable de la répartition par zone.

Profils​

Le chart fournit trois profils, passés après values.yaml avec -f. Chaque table liste toutes les valeurs que fixe le profil ; une valeur absente garde le défaut ci-dessus. La production utilise -f values-prod.yaml, puis -f values-ha.yaml pour le profil haute disponibilité ou -f values-onprem-gpu.yaml pour des nœuds GPU sur site.

values-prod.yaml​

Production : environnement prod, politiques Cilium, External Secrets, 3 réplicas avec PodDisruptionBudget minAvailable: 2 et anti-affinité de zone, réglages durcis du Control Plane, services de données en TLS.

CheminValeur
global.environmentprod
global.networkPolicycilium
global.secretsModeexternal-secrets
controlPlane.replicas3
controlPlane.config.EAI_AUTH_DEV0
controlPlane.config.EAI_AUTH_SPIFFE1
controlPlane.config.EAI_ENVIRONMENTprod
controlPlane.config.EAI_ALLOWED_HOSTSapi.example.internal
controlPlane.config.EAI_TRUSTED_PROXIES10.42.0.0/16
controlPlane.config.EAI_DOCS_ENABLEDfalse
controlPlane.config.EAI_HSTS_ENABLEDtrue
controlPlane.config.EAI_MAX_BODY_BYTES10485760
controlPlane.config.EAI_MAX_UPLOAD_BYTES104857600
controlPlane.config.EAI_RATE_LIMIT_ENABLEDtrue
controlPlane.config.EAI_JWT_ALGORITHMSRS256,PS256,ES256
controlPlane.config.EAI_EGRESS_PRIVATE_ALLOWLISTenterprise-ai-vllm-llama-3-1-8b:8000,enterprise-ai-vllm-qwen2-5-72b:8000,enterprise-ai-vllm-bge-m3:8000,enterprise-ai-ollama:11434,enterprise-ai-litellm:4000
controlPlane.config.EAI_EGRESS_ALLOWED_PORTS443
controlPlane.config.EAI_EGRESS_ALLOW_HTTPfalse
controlPlane.config.EAI_PROMPT_INJECTION_DEFAULT_MODEblock
controlPlane.config.EAI_RAG_EMBEDDING_MODELbge-m3-vllm
controlPlane.config.EAI_MEMORY_EMBEDDING_MODELbge-m3-vllm
controlPlane.config.EAI_QDRANT_URLhttps://qdrant.eai-data.svc.cluster.local:6333
controlPlane.config.EAI_QDRANT_SHARD_NUMBER3
controlPlane.config.EAI_QDRANT_REPLICATION_FACTOR2
controlPlane.config.EAI_QDRANT_WRITE_CONSISTENCY_FACTOR1
controlPlane.config.EAI_CLICKHOUSE_URLhttps://clickhouse.observability.svc.cluster.local:8443
controlPlane.config.EAI_CLICKHOUSE_USEReai-writer
controlPlane.config.EAI_OPENBAO_URLhttps://openbao.openbao.svc.cluster.local:8200
controlPlane.config.EAI_LITELLM_URLhttp://enterprise-ai-litellm:4000
controlPlane.config.EAI_OPIK_URLhttp://opik-backend.observability.svc:8080
controlPlane.secrets.pathcontrol-plane
controlPlane.secrets.keys["EAI_DATABASE_URL", "EAI_REDIS_URL", "EAI_NATS_URL", "EAI_QDRANT_API_KEY", "EAI_CLICKHOUSE_PASSWORD", "EAI_MASTER_KEY", "EAI_OPENBAO_TOKEN", "EAI_OPENFGA_STORE_ID", "EAI_OPENFGA_MODEL_ID", "EAI_LITELLM_MASTER_KEY", "EAI_S3_ACCESS_KEY", "EAI_S3_SECRET_KEY", "EAI_LIVEKIT_API_KEY", "EAI_LIVEKIT_API_SECRET"]
controlPlane.secretFormats.EAI_REDIS_URL^rediss://
controlPlane.secretFormats.EAI_DATABASE_URLsslmode=verify-full
controlPlane.secretFormats.EAI_NATS_URL^tls://
controlPlane.autoscaling.minReplicas3
controlPlane.autoscaling.maxReplicas20
controlPlane.pdb.minAvailable2
controlPlane.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[{"topologyKey": "topology.kubernetes.io/zone", "labelSelector": {"matchLabels": {"app.kubernetes.io/component": "control-plane"}}}]
portal.replicas3
portal.autoscaling.minReplicas3
portal.pdb.minAvailable2
litellm.replicas3
litellm.autoscaling.minReplicas3
litellm.autoscaling.maxReplicas30
litellm.pdb.minAvailable2
sandbox.createNamespacefalse

values-ha.yaml​

Haute disponibilité, par-dessus values-prod.yaml : 3 réplicas, minAvailable: 2, répartition par nom d'hôte (obligatoire) et par zone (préférée), arrêt gracieux de 60 secondes. Un manifeste rendu prouve la configuration seulement ; une bascule validée exige un essai sur un vrai cluster.

CheminValeur
ha.enabledtrue
ha.terminationGracePeriodSeconds60
ha.hostnameSpreadDoNotSchedule
ha.zoneSpreadScheduleAnyway
controlPlane.replicas3
controlPlane.autoscaling.enabledtrue
controlPlane.autoscaling.minReplicas3
controlPlane.autoscaling.maxReplicas10
controlPlane.autoscaling.targetCPUUtilizationPercentage70
controlPlane.pdb.enabledtrue
controlPlane.pdb.minAvailable2
portal.replicas3
portal.autoscaling.enabledtrue
portal.autoscaling.minReplicas3
portal.autoscaling.maxReplicas6
portal.autoscaling.targetCPUUtilizationPercentage70
portal.pdb.enabledtrue
portal.pdb.minAvailable2
litellm.replicas3
litellm.autoscaling.enabledtrue
litellm.autoscaling.minReplicas3
litellm.autoscaling.maxReplicas10
litellm.autoscaling.targetCPUUtilizationPercentage70
litellm.pdb.enabledtrue
litellm.pdb.minAvailable2

values-onprem-gpu.yaml​

Sur site avec des nœuds GPU NVIDIA : registre Harbor interne, agent OpenBao, trois modèles vLLM (conversation, grande conversation et le modèle d'embedding bge-m3), workers média STT, TTS et vidéo, LiteLLM routé vers les modèles locaux.

CheminValeur
global.environmentprod
global.imageRegistryharbor.onprem.internal/eai
global.secretsModeopenbao-agent
controlPlane.config.EAI_RAG_EMBEDDING_MODELbge-m3-vllm
controlPlane.config.EAI_MEMORY_EMBEDDING_MODELbge-m3-vllm
vllm.enabledtrue
vllm.image.repositoryharbor.onprem.internal/mirror/vllm/vllm-openai
vllm.modelCache.storageClasslocal-nvme
vllm.modelCache.size500Gi
vllm.modelsliste (3) : llama-3-1-8b, qwen2-5-72b, bge-m3
workers.enabledtrue
workers.itemsliste (3) : stt, tts, video
litellm.configtable, clés model_list, router_settings, general_settings