> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-revert-104359-revert-104251-parquet-single.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Référence de configuration

> Toutes les clés de configuration de ClickHouse Connector : le fichier config.yaml de la VM et les valeurs du chart Helm, avec leurs valeurs par défaut

export const PrivatePreviewBadge = () => {
  return <div className="privatePreviewBadge">
            <div className="privatePreviewIcon">
            <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
                <path d="M5.33301 6.66667V4.66667V4.66667C5.33301 3.194 6.52701 2 7.99967 2V2C9.47234 2 10.6663 3.194 10.6663 4.66667V4.66667V6.66667" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" />
                <path d="M8.00033 9.33337V11.3334" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" />
                <path fillRule="evenodd" clipRule="evenodd" d="M11.333 14H4.66634C3.92967 14 3.33301 13.4033 3.33301 12.6666V7.99996C3.33301 7.26329 3.92967 6.66663 4.66634 6.66663H11.333C12.0697 6.66663 12.6663 7.26329 12.6663 7.99996V12.6666C12.6663 13.4033 12.0697 14 11.333 14Z" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" />
            </svg>
        </div>
            {'Aperçu privé'}
        </div>;
};

<PrivatePreviewBadge />

Cette page répertorie toutes les clés de configuration susceptibles d’être modifiées, ainsi que leur valeur par défaut et leur signification : d’abord le fichier de configuration de la VM, puis les valeurs du chart Helm. Pour obtenir des instructions orientées tâches, consultez le [guide de configuration](/fr/products/bring-your-own-cloud/connector/configuration).

<h2 id="vm-configuration-file">
  Fichier de configuration de la VM
</h2>

Sur une VM Linux, le connecteur lit `/etc/clicklink/config.yaml`. `clicklink clctl init` l’écrit et le conserve lors des exécutions ultérieures, sauf si vous spécifiez `--force`. Les clés absentes du fichier utilisent les valeurs par défaut compilées ci-dessous. `init` n’y écrit aucun identifiant : les clés HMAC se trouvent dans les chemins `*_file` et le certificat client sous `/etc/clicklink/tls`.

<h3 id="vm-top-level">
  Clés de premier niveau
</h3>

| Clé | Par défaut | Signification |
| - | - | - |
| `pcm_infra_uuid` | généré par `init` | Identifiant unique de ce déploiement de connecteur, inclus dans chaque requête upstream. Conservé lors des réexécutions, y compris avec `--force`. Ne pas modifier. |
| `cloud` | détecté par `init` | Libellé du fournisseur Cloud pour cet hôte. Obligatoire : les démons refusent de démarrer s'il est vide. |
| `region` | détectée par `init` | Libellé de la région pour cet hôte. Obligatoire : les démons refusent de démarrer s'il est vide. |
| `namespace_prefix` | `ns-` | Préfixe des namespaces Kubernetes dans lesquels résident les services managés (`<prefix><service>`). Chaque démon en dérive les namespaces. |
| `report_infra_meta` | `true` | Signaler le nom, la région et le compte du cluster managé à ClickHouse Cloud à chaque battement de cœur. L'équivalent VM du `cluster.reportInfraMeta` du chart. |
| `token_renew.sweep_interval` | `10m` | Fréquence à laquelle l'executor et le scraper vérifient si les jetons ServiceAccount de leur bundle d'accès doivent être renouvelés. |
| `token_renew.requested_ttl` | `24h` | Durée de vie du jeton demandée lors du renouvellement. L'API server peut la plafonner à une valeur inférieure. |
| `api` | | Bloc de connexion à l'API upstream, voir [api](#vm-api). |
| `scraper` | | Bloc du démon scraper, voir [scraper](#vm-scraper). |
| `troubleshooter` | | Bloc du démon troubleshooter, voir [troubleshooter](#vm-troubleshooter). |
| `executor` | | Bloc du démon executor (mode managé), voir [executor](#vm-executor). |
| `observability` | | Bloc partagé de logging et de port, voir [observability](#vm-observability). |

Les démons ignorent une section `instances:` dans ce fichier. Les instances résident dans le [registre d'instances](#vm-instances).

<h3 id="vm-api">
  api
</h3>

| Clé | Par défaut | Signification |
| - | - | - |
| `api.endpoint` | issu du bundle d’inscription | Endpoint de votre connecteur, `https://<subdomain>.<connector-domain>`. |
| `api.access_key_file` | `/etc/clicklink/access-key` (écrit par `init`) | Fichier contenant la clé d’accès HMAC (mode 0600). |
| `api.secret_key_file` | `/etc/clicklink/secret-key` (écrit par `init`) | Fichier contenant la clé secrète HMAC (mode 0600). |
| `api.access_key`, `api.secret_key` | non défini | Clés HMAC intégrées, à réserver au développement. `init` ne les écrit jamais ; un fichier qui les contient doit bénéficier de la même protection `0600` que les fichiers de clés. Les démons refusent un fichier où les deux formes sont définies. |
| `api.tls.enabled` | `true` | Présente le certificat client mTLS pour les connexions API. |
| `api.tls.cert_file` | `/etc/clicklink/tls/client.crt` | Certificat client mTLS final ; les démons le réécrivent lors du renouvellement. |
| `api.tls.key_file` | `/etc/clicklink/tls/client.key` | Clé privée du client mTLS. |
| `api.tls.ca_file` | `/etc/clicklink/tls/ca.crt` | Chaîne de certificats d’autorités de certification supplémentaire ajoutée aux certificats racine du système pour vérifier le serveur ; `init` y installe la chaîne du bundle d’inscription. |
| `api.retry.max_retries` | `5` | Nombre de tentatives par requête d’API. |
| `api.retry.initial_delay` | `1s` | Délai de backoff avant la première nouvelle tentative. |
| `api.retry.max_delay` | `30s` | Délai de backoff maximal. |
| `api.retry.jitter_factor` | `0.25` | Jitter aléatoire appliqué aux délais de backoff. |

<h3 id="vm-instances">
  Registre des instances
</h3>

Les instances résident dans `/var/lib/clicklink/instances.yaml`, une map `instances:` de premier niveau indexée par nom. `init` l’initialise et l’executor la maintient ; le scraper surveille le fichier, de sorte que les modifications s’appliquent sans redémarrage. Chaque entrée décrit une cible ClickHouse utilisant le protocole natif :

| Clé | Valeur par défaut | Signification |
| - | - | - |
| `host` | | Nom d’hôte ou adresse IP de l’écouteur natif de ClickHouse. |
| `port` | | Port du protocole natif (généralement `9440` avec TLS, `9000` en clair). |
| `database` | | Base de données utilisée par défaut pour les sessions du connecteur. |
| `secure` | `false` | Utilise TLS pour la connexion native. |
| `max_open_conns` | non défini | Nombre maximal de connexions ouvertes à cette instance. |
| `max_idle_conns` | non défini | Nombre maximal de connexions inactives du pool à cette instance. |
| `namespace` | | Espace de noms Kubernetes de l’instance, utilisé pour définir le périmètre des lectures Kubernetes de l’utilitaire de dépannage. |
| `cluster` | `default` | Nom du cluster ClickHouse utilisé pour les requêtes distribuées. |

<h3 id="vm-scraper">
  scraper
</h3>

| Clé | Par défaut | Signification |
| - | - | - |
| `scraper.enabled` | `false` (`init` définit `true`) | Exécute le démon de scraping. |
| `scraper.labels.platform` | | Libellé injecté dans chaque métrique émise. Obligatoire lorsque le scraper est activé. |
| `scraper.labels.env` | | Libellé d'environnement, par exemple `production`. Obligatoire. |
| `scraper.labels.region` | | Libellé de région. Obligatoire. |
| `scraper.scrape.interval` | `2m` | Fréquence de collecte pour chaque instance. |
| `scraper.scrape.timeout` | `30s` | Délai d'expiration de la requête pour chaque collecte. Doit être inférieur à `interval`. |
| `scraper.scrape.max_scrape_window` | `30m` | Profondeur temporelle atteinte par la première collecte lorsqu'aucun curseur n'est persisté. |
| `scraper.scrape.grace_period` | `35s` | Décalage par rapport à l'instant présent auquel se termine chaque fenêtre de collecte, afin que les lignes écrites tardivement ne soient pas ignorées. |
| `scraper.scrape.tables` | voir ci-dessous | Tables système collectées pour chaque instance. L'ensemble par défaut comprend `metric_log`, `asynchronous_metric_log`, `tables`, `warnings` et `server_settings`. `query_log` est délibérément exclue afin que le texte SQL brut ne quitte pas votre périmètre par défaut. |
| `scraper.buffer.path` | `/var/lib/clicklink/buffer` | File d'attente sur disque assurant une livraison au moins une fois lorsque l'endpoint de votre connector est inaccessible. |
| `scraper.buffer.retention` | `168h` | Ancienneté maximale des données mises en file d'attente. |
| `scraper.buffer.max_size_mb` | `1024` | Taille maximale de la file d'attente en Mo. |
| `scraper.buffer.max_segments` | `0` (illimité) | Nombre maximal de fichiers de segments de la file d'attente sur disque. |
| `scraper.sender.bandwidth_limit_mb` | `1.0` | Limite de débit de téléversement en Mo/s. |
| `scraper.instance_sync.interval` | `0` (30s) | Fréquence à laquelle le scraper transmet l'état `ClickHouseCluster` de chaque instance enregistrée à ClickHouse Cloud. |
| `scraper.backup_sync.interval` | `0` (30s) | Fréquence à laquelle le scraper transmet l'état des sauvegardes à ClickHouse Cloud. |
| `scraper.observability.health_port` | `8082` | Port de vérification de l'état et des métriques du scraper. |
| `scraper.access_directory` | `/etc/clicklink/access/scraper` | Répertoire racine des ensembles d'accès du scraper par instance. |

<h3 id="vm-troubleshooter">
  outil de dépannage
</h3>

| Clé | Valeur par défaut | Signification |
| - | - | - |
| `troubleshooter.enabled` | `false` (`init` écrit `true`) | Exécute le démon de dépannage. |
| `troubleshooter.poll_interval` | `5s` | Intervalle d’interrogation de l’état de la session. |
| `troubleshooter.command_timeout` | `60s` | Délai d’expiration pour l’exécution de chaque commande. |
| `troubleshooter.session_timeout` | `4h` | Durée par défaut d’une session de support. |
| `troubleshooter.session_file_path` | `/var/lib/clicklink/session.json` | Fichier d’état de session, partagé avec les commandes `clicklink clctl troubleshoot session`. |
| `troubleshooter.access_directory` | `/etc/clicklink/access/troubleshooter` | Racine des ensembles d’accès par instance de l’outil de dépannage. |
| `troubleshooter.allowed_tables` | voir la [liste d’autorisation de tables par défaut](#default-table-allowlist) | Tables système sur lesquelles l’outil de dépannage peut exécuter des requêtes `SELECT`. Les entrées doivent être au format `schema.table`. Le démon refuse de démarrer si `query_log` ou `text_log` y figure. |
| `troubleshooter.max_open_conns` | `5` | Nombre maximal de connexions ClickHouse ouvertes. |
| `troubleshooter.max_idle_conns` | `5` | Nombre maximal de connexions inactives du pool. |
| `troubleshooter.redaction.workers` | `4` | Workers de masquage parallèles. |
| `troubleshooter.redaction.patterns_file` | `/etc/clicklink/redaction-patterns.yaml` | Motifs de masquage modifiables par le client ; le démon refuse de démarrer si le fichier est présent mais invalide. |
| `troubleshooter.redaction.metrics_per_pattern` | `false` | Émet une métrique comptant les correspondances pour chaque motif. |
| `troubleshooter.redaction.metrics_per_pattern_cap` | `50` | Nombre maximal de noms de motifs distincts dans la métrique par motif. |
| `troubleshooter.audit_log.path` | `/var/log/clicklink/troubleshoot-audit.log` | Journal d’audit NDJSON en ajout seul de toutes les commandes acceptées ou bloquées. |
| `troubleshooter.audit_log.max_size_mb` | `128` | Effectue une rotation du fichier journal actif au-delà de cette taille. |
| `troubleshooter.audit_log.max_files` | `5` | Nombre de fichiers après rotation à conserver. |
| `troubleshooter.audit_log.max_age` | `168h` | Les fichiers après rotation plus anciens que cette durée sont supprimés. |
| `troubleshooter.gateway.enabled` | `false` | Sert la passerelle de session (sessions de support via OIDC). |
| `troubleshooter.gateway.listen_addr` | aucune (`init` écrit `":8443"`) | Adresse d’écoute de la passerelle. Requise lorsque la passerelle est activée. |
| `troubleshooter.gateway.audience` | aucune (`init` écrit `clicklink-clctl`) | Revendication d’audience requise dans les tokens des opérateurs. Requise lorsque la passerelle est activée. |
| `troubleshooter.gateway.required_hosted_domain` | `""` | Vérification facultative de la revendication de domaine hébergé ; la passerelle rejette les tokens provenant de l’extérieur du domaine avant la consultation de la liste d’autorisation. |
| `troubleshooter.gateway.allowed_operators_file` | `/etc/clicklink/allowed-operators.txt` (écrit par `init`) | Liste d’autorisation des adresses e-mail des opérateurs, une par ligne. Si elle est vide, l’accès est fermé. Requise lorsque la passerelle est activée ; le démon refuse de démarrer sans elle. |
| `troubleshooter.gateway.require_verified_email` | `true` | Exige la revendication `email_verified` dans les tokens des opérateurs. La valeur `false` n’est prise en compte que si `jwks_uri` et `issuer` sont définis. |
| `troubleshooter.gateway.rate_limit_per_minute` | `0` (désactivé) | Limite du nombre de requêtes par minute et par opérateur. |
| `troubleshooter.gateway.handler_timeout` | `15s` | Délai d’expiration des requêtes côté serveur. |
| `troubleshooter.gateway.jwks_uri` | `""` | Endpoint JWKS pour un fournisseur d’identité autre que Google ; si vide, celui de Google est utilisé. |
| `troubleshooter.gateway.issuer` | `""` | Revendication d’émetteur à vérifier lorsque `jwks_uri` est défini. |
| `troubleshooter.gateway.tls.enabled` | `false` (`init` écrit `true` sur une VM lorsque les sessions de support sont activées) | Sert la passerelle via TLS. Le démon génère un certificat auto-signé si aucun certificat n’existe ; les opérateurs en épinglent l’empreinte. |
| `troubleshooter.gateway.tls.cert_file` | `/var/lib/clicklink/gateway/tls/server.crt` | Certificat utilisé par la passerelle. |
| `troubleshooter.gateway.tls.key_file` | `/var/lib/clicklink/gateway/tls/server.key` | Clé utilisée par la passerelle. |
| `troubleshooter.gateway.tls.ca_file` | `""` | CA à laquelle les certificats client des opérateurs doivent se rattacher. Si elle est définie, le mTLS est exigé en plus du bearer OIDC. |
| `troubleshooter.gateway.tls.self_signed_dns_names` | `[]` (`init` préremplit l’hôte) | SAN du certificat auto-signé ; les entrées interprétées comme des adresses IP deviennent des SAN IP. |

<h3 id="vm-executor">
  executor
</h3>

L'executor s'exécute en [mode géré](/fr/products/bring-your-own-cloud/connector/managed-services). `init --managed` écrit `enabled: true` ainsi que l'identity du `cluster` ; le reste repose sur les valeurs par défaut.

| Key | Default | Signification |
| - | - | - |
| `executor.enabled` | `false` (`init --managed` écrit `true`) | Exécuter le démon executor. |
| `executor.cluster.name` | écrit par `init` | Nom de l'unique EKS cluster géré par cet executor. Obligatoire lorsque l'executor est enabled. |
| `executor.cluster.region` | écrit par `init` | La region AWS du cluster. Obligatoire. |
| `executor.cluster.account_id` | écrit par `init` | L'AWS account du cluster. Obligatoire. |
| `executor.cluster.kubeconfig_path` | non défini | Kubeconfig avec lequel l'executor s'authentifie. S'il n'est pas défini, chaque commande service s'exécute sur les ensembles d'accès situés sous `/etc/clicklink/access/executor`. |
| `executor.cluster.in_cluster` | `false` | S'authentifier en tant que ServiceAccount propre au pod plutôt qu'avec un kubeconfig ; la shape de l'installation Kubernetes, mutuellement exclusive avec `kubeconfig_path`. |
| `executor.cluster.delete_instance_data.enabled` | `false` | Indique si `clicklink clctl executor teardown` supprime les données d'un service retiré sans `--delete-data`. Le démon executor lui-même ne supprime aucune donnée. |
| `executor.target_cluster` | `executor.cluster.name` | Cluster vers lequel les commandes entrantes sont dispatchées. Laissez cette valeur non définie ; toute autre valeur est fatale au démarrage. |
| `executor.poll_interval` | `5m` | Poll interval. Doit être positif. |
| `executor.sync_interval` | `30s` | Fréquence à laquelle le status des services est rafraîchi depuis le cluster. Doit être positif. |
| `executor.stop_wait_timeout` | `8m` | Durée pendant laquelle une suppression attend l'arrêt des serveurs avant de réessayer. |
| `executor.create_retry_horizon` | `30m` | Durée pendant laquelle une création est réessayée, décomptée à partir de son dernier rapport de progression. |
| `executor.delete_retry_horizon` | `2h` | Durée pendant laquelle une suppression est réessayée, décomptée à partir de son dernier rapport de progression. |
| `executor.db_path` | `/var/lib/clicklink/executor.db` | Base de données locale des commandes. |
| `executor.api_port` | `9999` | Port de l'API locale, lié uniquement à l'interface de loopback. |
| `executor.observability.health_port` | `8086` | Port de health et de metrics de l'executor. |

`executor.cluster` est un mapping unique : un cluster par executor. Le chargeur replie dans `cluster` une liste `clusters:` legacy ne comportant qu'une seule entrée et dépourvue de mapping `cluster:`. Il rejette toute liste comportant plus d'une entrée, ou accompagnée d'une clé `cluster:`, lorsque l'executor est enabled.

<h3 id="vm-observability">
  observabilité
</h3>

| Clé | Valeur par défaut | Signification |
| - | - | - |
| `observability.enabled` | `true` | Expose les endpoints de santé et de métriques. |
| `observability.log_level` | `info` | Niveau de journalisation. |
| `observability.health_port` | `8080` | Port de base partagé pour les vérifications de santé. |

Chaque démon expose `/livez` (un corps de statut JSON), `/readyz`, `/healthz` et `/metrics` sur un seul listener ; il n'y a pas de port de métriques distinct. Les blocs `observability` propres à chaque composant surchargent cette configuration de base : le scraper utilise `8082`, le troubleshooter `8084`, l'executor `8086`, et la gateway écoute sur `8443` lorsqu'elle est activée. Une clé `metrics_port` issue d'une configuration plus ancienne est toujours chargée, mais n'effectue aucun bind.

<h3 id="default-table-allowlist">
  Liste d’autorisation des tables par défaut
</h3>

L’ensemble `allowed_tables` par défaut du troubleshooter, identique à la valeur par défaut de `troubleshooter.allowedTables` du chart :

```text theme={null}
system.build_options    system.clusters       system.columns
system.databases        system.tables         system.parts
system.parts_columns    system.parts_summary  system.detached_parts
system.processes        system.merges         system.mutations
system.replicas         system.replication_queue
system.metrics          system.events         system.asynchronous_metrics
system.disks            system.storage_policies
system.settings         system.settings_profiles
system.settings_profile_elements
system.functions        system.formats        system.table_engines
system.users            system.roles          system.grants
```

<h2 id="helm-chart-values">
  Valeurs du chart Helm
</h2>

Dans Kubernetes, le connecteur est configuré à l’aide des valeurs du chart `clicklink-connector`. `clicklink clctl init` prépare un fichier de surcharge `clicklink-values.yaml` dans lequel tous les éléments ci-dessous sont renseignés et le conserve lors des exécutions ultérieures, sauf si vous passez l’option `--force`. Les tableaux indiquent les valeurs par défaut du chart. Les paramètres standard des charges de travail (`resources`, `nodeSelector`, `tolerations`, `affinity`, `serviceAccount.annotations`, `env`) sont disponibles pour chaque composant, avec des valeurs par défaut vides, et ne sont pas répétés dans chaque tableau.

<h3 id="helm-top-level">
  Clés de premier niveau
</h3>

| Clé | Valeur par défaut | Signification |
| - | - | - |
| `imagePullSecrets` | `[]` | Secrets de récupération d'image partagés par tous les composants. |
| `instances` | `{}` | Registre des instances ClickHouse que vous exploitez vous-même, avec les mêmes champs que le [registre d'instances](#vm-instances) VM, généré dans le ConfigMap `clicklink-instance-registry`. Doit être vide lorsque `executor.enabled` vaut true ; sinon la génération échoue. |
| `podSecurityContext` | non-root, uid 65532, seccomp `RuntimeDefault` | Contexte de sécurité du pod partagé par tous les composants. |
| `securityContext` | pas d'élévation de privilèges, système de fichiers racine en lecture seule, toutes les capabilities supprimées | Contexte de sécurité du conteneur partagé par tous les composants. |
| `serviceMonitor.enabled` | `false` | Génère un ServiceMonitor Prometheus Operator pour les Services du composant. `namespace`, `interval` (`30s`), `scrapeTimeout` (`10s`) et `labels` en définissent la forme. |
| `externalSecrets.enabled` | `false` | Matérialise les Secrets mTLS, HMAC et de bundle d'accès via External Secrets Operator plutôt que d'utiliser des Secrets créés au préalable. `secretStoreRef`, `refreshInterval` (`1h`), `mtlsRemoteKey`, `hmacRemoteKey` et `accessBundles` désignent le magasin distant et les clés. |

<h3 id="helm-cluster">
  cluster
</h3>

| Clé | Valeur par défaut | Signification |
| - | - | - |
| `cluster.pcmInfraUuid` | `""` (`init` le renseigne) | Identifiant unique de ce déploiement de connecteur. Obligatoire lorsqu’un composant est activé ; conservé lors des exécutions ultérieures. |
| `cluster.region` | `""` (`init` le renseigne) | Libellé de région. Obligatoire. |
| `cluster.cloud` | `""` (`init` le renseigne) | Libellé du fournisseur Cloud. Obligatoire. |
| `cluster.namespacePrefix` | `ns-` | Préfixe des namespaces Kubernetes dans lesquels résident les services managés (`<prefix><service>`). |
| `cluster.reportInfraMeta` | `true` | Transmet à ClickHouse Cloud, à chaque heartbeat, le nom, la région et le compte du cluster managé, à des fins de triage. Définissez la valeur à `false` pour vous désinscrire. |

<h3 id="helm-image">
  image
</h3>

| Clé | Valeur par défaut | Signification |
| - | - | - |
| `image.repository` | prédéfini dans le chart publié | Dépôt de l'image du connecteur. Le chart publié pointe vers l'image du registre public (multi-architecture, signée par cosign) ; ne le définissez que pour le remplacer, par exemple par un miroir interne. Consultez la valeur publiée avec `helm show values`. |
| `image.tag` | `""` (suit l'`appVersion` du chart ; `init` fixe la version de la CLI) | Tag de l'image. |
| `image.pullPolicy` | `IfNotPresent` | Politique de récupération des images Kubernetes. |

<h3 id="helm-api">
  api
</h3>

| Clé | Valeur par défaut | Signification |
| - | - | - |
| `api.endpoint` | `""` (renseigné par `init`) | Votre endpoint de connecteur, partagé par tous les composants. |
| `api.tls.enabled` | `true` | Présente le certificat client mTLS lors des connexions à l’API. |
| `api.tls.caFile` | `""` (certificats racine du système) | CA ajoutée aux certificats racine du système pour vérifier le serveur. Définissez cette valeur sur `/etc/clicklink/secrets/mtls/ca.crt` (ou réexécutez `init` avec `--api-private-ca`) lorsque le point de terminaison présente un certificat émis par une CA privée. |

<h3 id="helm-secrets">
  secrets
</h3>

Le chart utilise des Secrets créés au préalable ; `init` les crée avant l’installation.

| Clé | Par défaut | Signification |
| - | - | - |
| `secrets.mtlsSecretName` | `clicklink-mtls` | Secret `kubernetes.io/tls` contenant la clé privée client mTLS, le certificat et la chaîne de CA. |
| `secrets.hmacSecretName` | `clicklink-hmac` | Secret opaque contenant les clés `access-key` et `secret-key` utilisées pour signer les requêtes. |
| `secrets.mtlsWriteback` | `true` | Permet aux démons de réécrire le certificat mTLS leaf automatiquement renouvelé dans le Secret mTLS. Accorde aux ServiceAccounts du composant le droit `update` sur ce seul Secret, identifié par son nom exact ; sans cela, les certificats renouvelés n’ont aucun emplacement persistant où être stockés. Ignoré lorsque `externalSecrets.enabled` vaut true. |

<h3 id="helm-scraper">
  scraper
</h3>

| Clé | Par défaut | Signification |
| - | - | - |
| `scraper.enabled` | `false` (`init` définit `true`) | Déploie le scraper. |
| `scraper.replicaCount` | `1` | Répliques du scraper. |
| `scraper.logLevel` | `info` | Niveau de journalisation. |
| `scraper.ports.health` | `8082` | Port de vérification de l’état de santé et des métriques. |
| `scraper.labels.platform`, `scraper.labels.env`, `scraper.labels.region` | `""` | Labels injectés dans chaque métrique émise. Les trois sont obligatoires lorsque le scraper est activé ; sinon, le chart génère une erreur lors du rendu. |
| `scraper.config` | `{}` | Transmission directe de toute clé de configuration `scraper` non modélisée ci-dessus (intervalle de scrape, buffer, expéditeur, etc. ; même schéma que le bloc [scraper](#vm-scraper) VM). |
| `scraper.bufferSizeLimit` | `2Gi` | Limite de taille du volume de travail du scraper ; le scraper ne conserve aucun état persistant sur disque. |
| `scraper.rbac.extraSecretNames` | `[]` | Noms de Secret supplémentaires que le ServiceAccount du scraper peut `get` ; noms exacts uniquement. |
| `scraper.accessBundles` | `{}` | Bundles d’accès par instance, indexés par nom d’instance, chacun comprenant `secretName` et `serviceAccountName`. Montés dans `/etc/clicklink/access/scraper/<instance>/` ; créés par `clicklink clctl scraper access provision --target helm`. |

<h3 id="helm-troubleshooter">
  troubleshooter
</h3>

| Clé | Par défaut | Signification |
| - | - | - |
| `troubleshooter.enabled` | `false` (`init` writes `true`) | Déploie le troubleshooter (un StatefulSet avec un seul réplica). |
| `troubleshooter.logLevel` | `info` | Niveau de journalisation. |
| `troubleshooter.ports.health` | `8084` | Port de vérification de l’état de santé et des métriques. |
| `troubleshooter.sessionTimeout` | `4h` | Durée par défaut d’une session de support. |
| `troubleshooter.allowedTables` | la [liste d’autorisation de tables par défaut](#default-table-allowlist) | Tables que l’utilisateur ClickHouse du troubleshooter peut `SELECT`. Il s’agit du périmètre à examiner du point de vue de la sécurité dans votre surcouche. Le chart refuse de s’afficher, et le démon refuse de démarrer, si `query_log` ou `text_log` y sont répertoriées. |
| `troubleshooter.auditLog.path` | `/var/log/clicklink/troubleshoot-audit.log` | Emplacement du journal d’audit, sur le volume d’état afin que l’historique soit conservé lors du replanification du pod. |
| `troubleshooter.auditLog.maxSizeMb` | `128` | Effectue une rotation au-delà de cette taille. |
| `troubleshooter.auditLog.maxFiles` | `5` | Nombre de fichiers archivés après rotation à conserver. |
| `troubleshooter.auditLog.maxAge` | `168h` | Les fichiers archivés après rotation datant de plus longtemps que cette durée sont supprimés. |
| `troubleshooter.redaction.workers` | `4` | Workers de masquage parallèles. |
| `troubleshooter.redaction.patternsConfigMap` | `""` | Nom d’une ConfigMap dont la clé `redaction-patterns.yaml` contient des motifs personnalisés ; le chart la monte dans `/etc/clicklink/redaction-patterns.yaml`. Lorsqu’elle est vide, seuls les motifs intégrés s’appliquent. |
| `troubleshooter.redaction.metricsPerPattern` | `false` | Émet une métrique de compteur de correspondances par motif. |
| `troubleshooter.redaction.metricsPerPatternCap` | `50` | Nombre maximal de noms de motifs distincts dans la métrique par motif. |
| `troubleshooter.config` | `{}` | Transmission directe de toute clé de configuration `troubleshooter` non modélisée ci-dessus (intervalle de sondage, délai d’expiration des commandes, limites de connexion, etc.). |
| `troubleshooter.rbac.extraSecretNames` | `[]` | Noms supplémentaires de Secrets que le ServiceAccount du troubleshooter peut `get`, noms exacts uniquement. |
| `troubleshooter.accessBundles` | `{}` | Bundles d’accès par instance, de même structure que `scraper.accessBundles`, montés dans `/etc/clicklink/access/troubleshooter/<instance>/`. |

<h3 id="helm-executor">
  executor
</h3>

L'executor pour le [mode managé](/fr/products/bring-your-own-cloud/connector/managed-services) : un Deployment à réplique unique sur un PersistentVolumeClaim. `init --managed` le prépare activé, avec l'identity du cluster renseignée.

| Key | Défaut | Signification |
| - | - | - |
| `executor.enabled` | `false` (`init --managed` écrit `true`) | Déployer l'executor. |
| `executor.logLevel` | `info` | niveau de journalisation. |
| `executor.pollInterval` | `30s` | Poll interval. |
| `executor.syncInterval` | `30s` | Fréquence de rafraîchissement du statut du service depuis le cluster. |
| `executor.apiPort` | `9999` | Port de l'API locale. Lié à `127.0.0.1` dans le pod et non exposé via le Service ; accédez-y avec `kubectl port-forward`. |
| `executor.ports.health` | `8086` | Port de vérification de l’état de santé et des métriques. |
| `executor.cluster.name` | `\"\"` (`init` le renseigne) | Nom de l'unique EKS cluster géré par cet executor. Obligatoire lorsque l'executor est enabled. |
| `executor.cluster.region` | `\"\"` (`init` le renseigne) | La region AWS du cluster. Obligatoire. |
| `executor.cluster.accountId` | `\"\"` (`init` le renseigne) | L'AWS account du cluster. Obligatoire ; l'orthographe snake\_case `account_id` est également acceptée. |
| `executor.cluster.inCluster` | `false` (`init` écrit `true`) | S'authentifier en tant que ServiceAccount du pod, la forme propre à l'installation Kubernetes ; aucun ensemble d’accès n'existe dans le pod. |
| `executor.cluster.delete_instance_data.enabled` | `false` | Détermine si `clicklink clctl executor teardown` supprime les data d'un service retired sans `--delete-data`. `init` la laisse non définie. Les autres keys propres à un cluster sont transmises verbatim dans l'orthographe snake\_case du binaire. |
| `executor.targetCluster` | `\"\"` (dérivé de `cluster.name`) | Cluster vers lequel les commandes entrantes sont dispatchées. Laissez cette valeur non définie ; une valeur qui ne correspond pas à `cluster.name` échoue au rendu. |
| `executor.config` | `{}` | transmission directe pour toute key de config `executor` non modélisée ci-dessus, comme les horizons de nouvelle tentative dans le bloc [executor](#vm-executor) VM. |
| `executor.platformBundleSecret` | `clicklink-platform-bundle` | Secret contenant le bundle d'approbation de la plateforme, monté en lecture seule sur `/etc/clicklink/access/executor/_platform` ; c'est `clicklink clctl platform approve --secret-namespace` qui l'écrit. Le mount est optionnel, si bien que le pod démarre avant la première approbation. Une valeur vide disable le mount. |
| `executor.serviceAccount.create` | `false` | Détermine si le chart crée le ServiceAccount de l'executor. Désactivé par défaut : `init --managed` accorde le RBAC de l'executor hors bande sur un nom fixe, et le chart s'y lie. |
| `executor.serviceAccount.name` | `pcm-executor` | ServiceAccount sous lequel l'executor s'exécute. Obligatoire lorsque `create` vaut `false`. |
| `executor.persistence.enabled` | `true` | Adosser `/var/lib/clicklink` (base de données des commandes et registre d’instances) à un PersistentVolumeClaim. |
| `executor.persistence.storageClass` | `\"\"` (défaut du cluster) | StorageClass du claim ; `init` la renseigne à partir de `--storage-class` ou du défaut détecté. |
| `executor.persistence.size` | `5Gi` | taille du claim. |
| `executor.persistence.accessModes` | `[ReadWriteOnce]` | modes d’accès du claim. |

`executor.cluster` est un mapping unique : un cluster par executor. Une liste `clusters` fait échouer le rendu.

<h3 id="helm-persistence">
  persistance
</h3>

| Clé | Par défaut | Description |
| - | - | - |
| `persistence.enabled` | `true` | Sauvegarde le répertoire d’état du composant troubleshooter dans un PersistentVolumeClaim afin que l’état de session et la piste d’audit soient conservés après les redémarrages. |
| `persistence.storageClass` | `""` (valeur par défaut du cluster) | StorageClass du claim ; `init` la renseigne à partir de `--storage-class` ou de la valeur par défaut détectée. |
| `persistence.size` | `5Gi` | Taille du claim. |
| `persistence.accessModes` | `[ReadWriteOnce]` | Modes d’accès du claim. |

<h3 id="helm-clctl-gateway">
  clctl.gateway
</h3>

La passerelle de session pour les [sessions d’assistance](/fr/products/bring-your-own-cloud/connector/support-sessions).

| Clé | Valeur par défaut | Signification |
| - | - | - |
| `clctl.gateway.enabled` | `false` | Expose la passerelle de session dans l’outil de dépannage. |
| `clctl.gateway.listenAddr` | `":8443"` | Adresse d’écoute locale au pod. |
| `clctl.gateway.port` | `8443` | Port du conteneur exposé via le Service et l’Ingress de l’outil de dépannage ; correspond au port de `listenAddr`. |
| `clctl.gateway.audience` | `clicklink-clctl` | Revendication d’audience requise pour les jetons d’opérateur. Le client de session utilise la même valeur par défaut ; il suffit donc de les coordonner lorsque vous modifiez cette valeur. |
| `clctl.gateway.requiredHostedDomain` | `""` | Revendication facultative de domaine hébergé requise par la passerelle ; elle rejette les jetons provenant de l’extérieur de votre espace de travail avant la consultation de la liste d’autorisation. |
| `clctl.gateway.allowedOperators` | `[]` (fermée) | Liste d’autorisation des adresses e-mail des opérateurs, générée dans une ConfigMap ; la rotation nécessite de modifier les valeurs, puis d’exécuter `helm upgrade`. |
| `clctl.gateway.requireVerifiedEmail` | `true` | Exige la revendication `email_verified` sur les jetons d’opérateur. La valeur `false` sans à la fois `jwksUri` et `issuer` fait échouer le rendu. |
| `clctl.gateway.jwksUri` | `""` | Remplacement de l’endpoint JWKS pour les fournisseurs d’identité autres que Google ; une valeur vide utilise celui de Google. |
| `clctl.gateway.issuer` | `""` | Revendication d’émetteur à épingler. Obligatoire pour tout déploiement réel définissant `jwksUri`. |
| `clctl.gateway.jwksEgressCIDRs` | `[]` | CIDR que la passerelle doit pouvoir atteindre pour valider les JWKS avec la NetworkPolicy de refus par défaut ; une valeur vide bloque toute vérification de jeton. |
| `clctl.gateway.ingressFromSelector` | `{}` | Source d’entrée de la NetworkPolicy pour le port de la passerelle ; une valeur vide autorise tout pod du namespace du chart. Définissez-la sur le label du namespace de votre contrôleur Ingress lorsque vous utilisez un Ingress. |
| `clctl.gateway.rateLimit.requestsPerMinute` | `30` | Limite de débit des requêtes par opérateur. |
| `clctl.gateway.ingress.enabled` | `false` | Génère un Ingress pour la passerelle. Lorsqu’il est désactivé, les opérateurs accèdent à la passerelle avec `kubectl port-forward` ; aucun contrôleur Ingress ni cert-manager n’est nécessaire. |
| `clctl.gateway.ingress.className`, `hosts`, `tls`, `annotations` | `""`, `[]`, `[]`, `{}` | Champs Ingress standard ; `tls` fait référence à des Secrets `kubernetes.io/tls`. |

<h3 id="helm-networkpolicy">
  networkPolicy
</h3>

| Clé | Valeur par défaut | Signification |
| - | - | - |
| `networkPolicy.enabled` | `true` | Crée une NetworkPolicy de refus par défaut avec une liste d’autorisation du trafic sortant. Son application nécessite un CNI qui applique les règles. |
| `networkPolicy.allowEgressCIDRs` | `[]` (renseigné par `init --egress-cidrs`) | CIDR situés derrière l’endpoint de votre connecteur. En mode managé, lorsque les charts de la plateforme résident dans Amazon ECR, également les plages régionales ECR et STS, ou la plage de votre miroir. Avec un CNI qui applique les règles, le connecteur ne dispose d’aucun trafic sortant tant que ce champ n’est pas renseigné ; `init` n’active la politique que lorsque ces valeurs sont connues. |
| `networkPolicy.allowEgressPorts` | `[443]` | Ports ouverts vers `allowEgressCIDRs` ; remplacez cette valeur lorsque l’endpoint écoute sur un port non standard. |
| `networkPolicy.clickhouseNamespaces` | `[]` | Espaces de noms de vos services ClickHouse, sélectionnés par le label `kubernetes.io/metadata.name`. Les espaces de noms créés par l’executor sont admis quoi qu’il arrive, grâce au label `clicklink.clickhouse.com/managed-by=executor` qu’il y appose ; une installation managée ne liste donc que les espaces de noms créés en dehors de l’executor. Lorsque ce champ est vide, la politique du troubleshooter se rabat sur les valeurs `namespace` de la table `instances` de premier niveau ; la politique du scraper ne dispose d’aucun mécanisme de repli, listez donc ici les espaces de noms à collecter. |
| `networkPolicy.metricsScrapeSelector` | `{}` | Restreint le trafic entrant de collecte des métriques à un espace de noms Prometheus spécifique, identifié par label ; une valeur vide autorise la collecte depuis n’importe quel pod de l’espace de noms du chart. |
| `networkPolicy.kubeletProbeCIDRs` | `[]` | CIDR dont proviennent les sondes de santé du kubelet (adresses IP des nœuds). Une valeur vide autorise le trafic entrant des sondes depuis n’importe quelle source, conformément à l’exemption du kubelet dans la plupart des CNI ; définissez-les explicitement avec une politique de refus par défaut stricte. |
| `networkPolicy.apiserverCIDRs` | `[]` (renseigné par `init --managed` à partir du VPC du cluster) | CIDR du serveur API Kubernetes. Une valeur vide ne crée aucune règle de trafic sortant vers le serveur API, et les démons échouent lors de leur première requête de jeton sur Kubernetes géré tant que cette valeur n’est pas définie. Fixez les plages du VPC, et non les adresses propres du serveur API, qui changent au cours de la vie du cluster. |
