Fichier de configuration de la VM
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.
Clés de premier niveau
| 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. | |
scraper | Bloc du démon scraper, voir scraper. | |
troubleshooter | Bloc du démon troubleshooter, voir troubleshooter. | |
executor | Bloc du démon executor (mode managé), voir executor. | |
observability | Bloc partagé de logging et de port, voir observability. |
instances: dans ce fichier. Les instances résident dans le registre d’instances.
api
| 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. |
Registre des instances
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. |
scraper
| 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. |
outil de dépannage
| 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 | 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. |
executor
L’executor s’exécute en mode géré.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.
observabilité
| 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é. |
/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.
Liste d’autorisation des tables par défaut
L’ensembleallowed_tables par défaut du troubleshooter, identique à la valeur par défaut de troubleshooter.allowedTables du chart :
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
Valeurs du chart Helm
Dans Kubernetes, le connecteur est configuré à l’aide des valeurs du chartclicklink-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.
Clés de premier niveau
| 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, 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. |
cluster
| 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. |
image
| 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. |
api
| 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. |
secrets
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. |
scraper
| 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.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. |
troubleshooter
| 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 | 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>/. |
executor
L’executor pour le mode managé : 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.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.
persistance
| 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. |
clctl.gateway
La passerelle de session pour les sessions d’assistance.| 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. |
networkPolicy
| 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. |