Points de configuration
Le connecteur dispose d’un point de configuration pour chaque cible d’installation.- Kubernetes
- VM Linux
clicklink clctl init crée, dans le répertoire de travail, un fichier de valeurs de surcharge nommé clicklink-values.yaml, puis déploie le chart clicklink-connector avec celui-ci. Ce fichier de surcharge constitue la trace persistante de votre déploiement : relancer init le conserve, sauf si vous passez --force, afin que vos modifications soient préservées lors des nouvelles exécutions et de la récupération.Les commandes d’exploitation de cette page et de la page opérations utilisent la CLI
helm. Seule init intègre un client Helm.--repo par votre miroir.Une installation à partir d’une référence directe de chart (oci://, une URL, une archive locale ou un répertoire local ; voir miroirs privés) ne dispose d’aucun dépôt permettant de résoudre cette référence. Relancez la mise à niveau avec la référence utilisée lors de l’installation :Mode managé
Le mode managé exécute l’executor, qui applique à votre cluster le cycle de vie de service piloté par ClickHouse Cloud.init l’active lors de l’inscription et renseigne l’identity du cluster (voir activer le mode managé). Les clés ci-dessous sont celles que vous pourriez avoir à ajuster par la suite. Pour modifier la posture, relancez init avec --force et --managed ou --no-managed. Comme toute exécution d’init, cela nécessite un entry point : --handoff si vous avez conservé le bundle, ou --enroll avec un nouveau jeton (voir relances et recovery).
Sur une VM, --no-managed désactive l’executor dans la configuration, mais n’arrête ni ne désactive une systemd unit en cours d’exécution. Arrêtez-la avant de modifier la configuration :
executor.enabled: false dans les values et appliquez le changement avec helm upgrade pour supprimer le Déploiement de l’executor. Sur les deux cibles, le grant au niveau du cluster reste en place tant que vous ne l’avez pas supprimé ; voir arrêter le mode managé.
- Kubernetes
- VM Linux
init prépare le bloc executor dans clicklink-values.yaml à partir du cluster EKS vers lequel pointe votre contexte kube :cluster.namespacePrefixest partagé par tous les composants et constitue le préfixe auquel le grant de l’executor le restreint. Le modifier après l’installation impose de relancer le grant.executor.clusterdésigne un seul cluster :name,region,accountIdetinCluster: true, ce qui amène l’executor à s’authentifier en tant que ServiceAccount du pod. Les autres clés sont transmises telles quelles à l’executor en snake_case, commes3_storage.executor.serviceAccountreste àcreate: false:initaccorde un accès cluster-wide au ServiceAccountpcm-executordans le namespace du connector, et le chart s’y lie au lieu d’en créer un non lié.executor.persistencesous-tend/var/lib/clicklink, où l’executor conserve sa base de données de commandes et son registry de services ; voir storage.executor.platformBundleSecretdésigne le Secret qui contient une mise à jour de plateforme approuvée. Le mount est optionnel, si bien que le pod démarre avant la première approbation ; voir approuver une mise à jour de plateforme.executor.ports.healthexpose/livezet/metrics; aucun composant ne possède de port de metrics distinct.
helm upgrade présentée dans surfaces de configuration.Ajouter ou modifier des instances ClickHouse
Les services créés par l’executor s’enregistrent eux-mêmes : en mode managé, vous n’avez donc jamais à les ajouter ici. Cette section concerne un déploiement de connector distinct, exécuté sans l’executor, qui observe le ClickHouse que vous exploitez vous-même. Passez--ch-user-suffix lors de son init lorsque les deux déploiements partagent une instance. Chaque entrée sous instances désigne un endpoint ClickHouse en protocole natif depuis lequel le connector lit : host, port, database, secure, cluster, et sur Kubernetes namespace. max_open_conns et max_idle_conns limitent le connection pool. Les identifiants ne figurent jamais dans la configuration : chaque composant résout son ClickHouse user en lecture seule à partir du bundle d’accès créé lors du provisioning.
- Kubernetes
- VM Linux
Ajoutez l’instance au mappage Provisionnez un accès en lecture seule pour chaque composant depuis votre poste de travail. Pour une instance gérée par un opérateur ne disposant pas d’un administrateur capable d’exécuter du SQL, remplacez
instances de premier niveau dans clicklink-values.yaml (les mêmes champs que le registre de la VM). Ajoutez son espace de noms à networkPolicy.clickhouseNamespaces, mis en correspondance via le label kubernetes.io/metadata.name de l’espace de noms. Le chart génère le mappage dans la ConfigMap clicklink-instance-registry que les deux démons lisent. Cela ne fonctionne que tant que executor.enabled vaut false ; lorsque l’executor est activé, la génération échoue car c’est l’executor qui détient cette ConfigMap.--apply-ch-grants applique les autorisations ClickHouse générées dans le pod via kubectl exec ; sans cette option, la commande crée uniquement les ressources Kubernetes et laisse ch-grants.sql sur le disque afin que vous l’appliquiez. Si l’utilisateur admin possède un mot de passe, ajoutez --ch-admin-password-stdin et transmettez-le par un pipe.--apply-ch-grants par --ch-user-via cr (les options de sélection du pod restent les mêmes) ; consultez la référence CLI. Référencez ensuite la paire Secret et ServiceAccount créée par chaque commande dans le mappage accessBundles correspondant, puis exécutez la commande helm upgrade indiquée ci-dessus :Liste d’autorisation des opérateurs
Une liste d’autorisation d’adresses e-mail d’opérateurs conditionne les sessions gérées par la passerelle. Chaque requête envoyée à la passerelle de sessions doit inclure un jeton d’identité OIDC à courte durée de vie dont l’adresse e-mail attestée figure dans cette liste. Une liste d’autorisation vide ferme la passerelle. Sur une VM, root sur l’hôte peut également gérer les sessions directement via le fichier de sessions local ; la liste d’autorisation ne régit que le chemin passant par la passerelle. Consultez les sessions de support pour connaître le modèle de confiance complet.- Kubernetes
- VM Linux
La liste d’autorisation se trouve dans le fichier de surcharge, et le chart la génère dans une ConfigMap. Pour la modifier, éditez la liste et exécutez
helm upgrade :Politique réseau et egress
Sur Kubernetes, le chart fournit une NetworkPolicy en mode « refus par défaut » assortie d’une allowlist d’egress. Les objets NetworkPolicy ne prennent effet que si votre CNI les applique. Avec un CNI qui les applique, seuls le DNS du cluster et les namespaces du ClickHouse Service restent joignables tant que les deux listes de CIDR ne sont pas renseignées. D’ici là, le connector n’a aucun egress vers votre connector endpoint ni vers le Kubernetes API server.init n’active la politique que lorsqu’il connaît les CIDR situés derrière votre connector endpoint.
allowEgressCIDRsest à votre charge : il s’agit des plages situées derrière votre connector endpoint, fournies à l’installation avec--egress-cidrsou lors de l’invite. Tous les composants en ont besoin pour atteindre votre connector endpoint. En mode managé, lorsque les charts de la plateforme résident dans Amazon ECR, ajoutez les plages ECR et STS de votre region (ou la plage de votre mirror). Sans elles, les récupérations de charts de l’executor échouent sous la policy.apiserverCIDRsest déduite pariniten mode managé à partir du VPC de l’EKS cluster (eks:DescribeClusteretec2:DescribeVpcs). Chaque composant émet des requêtes de jeton Kubernetes et l’executor pilote les services via l’API : sous un CNI appliquant les règles, ils sont donc tous bloqués tant qu’elle n’est pas définie. Si le lookup échoue,initémet un avertissement et laisse la liste vide afin que vous la renseigniez avec les blocs CIDR de votre VPC.
clicklink.clickhouse.com/managed-by: executor, et la policy les admet via ce label : une installation managée peut donc laisser clickhouseNamespaces vide. Seuls les namespaces créés en dehors de l’executor, pour un ClickHouse que vous exploitez vous-même, doivent être énumérés par nom.
Activer la policy ultérieurement. Si vous avez ignoré les CIDR de l’endpoint à l’installation, init a préparé enabled: false avec allowEgressCIDRs: [] et affiché l’étape permettant de finaliser la configuration. Une fois les CIDR connus, définissez enabled: true et allowEgressCIDRs dans clicklink-values.yaml, vérifiez que apiserverCIDRs contient bien les plages de votre VPC, puis exécutez le helm upgrade indiqué dans surfaces de configuration.
Lorsque la passerelle de sessions est activée, une règle d’egress supplémentaire entre en jeu : clctl.gateway.jwksEgressCIDRs. L’outil de diagnostic récupère le JWKS de votre identity provider pour valider les jetons d’opérateur ; sous un refus par défaut, une liste vide bloque donc toute vérification de jeton :
private.googleapis.com, qui couvre un fournisseur d’identité Google accessible via Private Google Access. Pour tout autre fournisseur d’identité, indiquez sa plage, ou le CIDR du proxy d’egress placé devant lui.
Il reste deux clés d’ingress : metricsScrapeSelector limite l’ingress de scrape des metrics à un seul espace de noms Prometheus au moyen d’un label, et kubeletProbeCIDRs autorise explicitement les sondes de santé du kubelet dans le cadre d’un refus par défaut strict. Consultez la référence de configuration pour la liste complète des clés.
Motifs de masquage
L’outil de diagnostic masque sa sortie avant qu’elle ne quitte votre périmètre. Les motifs intégrés couvrentipv4, ipv6, bearer-token, aws-access-key, email, jwt, ssh-private-key et connection-string-credentials. Ajoutez vos propres motifs dans un fichier YAML. Ils sont appliqués en premier, dans l’ordre du fichier, suivis des motifs intégrés ; une entrée qui réutilise le name d’un motif intégré remplace ce dernier.
Chaque motif accepte name (obligatoire, unique), regex (obligatoire, syntaxe RE2 de Go), replace (par défaut [REDACTED], prend en charge les références de capture $1) et case_insensitive (par défaut false) :
/etc/clicklink/redaction-patterns.yaml. L’installateur l’initialise avec un ensemble de départ de motifs actifs (API keys tierces, clés secrètes AWS, etc.). Réduisez ou étendez cet ensemble ; l’installateur conserve votre version lors des mises à niveau. Dans Kubernetes, placez le YAML dans une ConfigMap sous la clé redaction-patterns.yaml et définissez troubleshooter.redaction.patternsConfigMap sur son nom ; le chart le monte au même chemin.
Miroirs privés et endpoints internes au périmètre
Le chart publié définit par défautimage.repository sur l’image publique multi-architecture du connecteur, signée avec cosign ; les installations standard ne nécessitent donc aucune valeur d’image. Pour consulter les valeurs par défaut publiées :
init accepte --chart sous la forme d’un nom de chart résolu à partir de --chart-repo, ou d’une référence oci:// directe, d’une URL, d’une archive locale ou d’un répertoire local. Par défaut, --chart-version utilise la version de la CLI afin que le binaire et le chart évoluent de concert.
--api-private-ca à init. Cette option configure api.tls.caFile: /etc/clicklink/secrets/mtls/ca.crt, et le connector vérifie l’endpoint par rapport aux racines système ainsi qu’à la chaîne de CA de votre bundle d’inscription. Sur une VM, l’équivalent est api.tls.ca_file dans /etc/clicklink/config.yaml : init installe la chaîne du bundle dans /etc/clicklink/tls/ca.crt, et le connector l’ajoute aux racines système de la même manière. Pour une inscription entièrement en environnement isolé du réseau et la signature de certificats, consultez l’onboarding.
Stockage
- Kubernetes
- VM Linux
Deux composants conservent un état sur des PersistentVolumeClaims. Celui de l’outil de diagnostic contient l’état de session et la piste d’audit :Celui de l’executor contient sa base de données de commandes et le registre des services qu’il gère :
init définit les deux valeurs storageClass sur la classe que vous avez choisie. Une storageClass vide utilise la StorageClass par défaut du cluster ; si le cluster n’en désigne aucune par défaut, init en exige une via le prompt ou --storage-class. La claim de l’executor porte l’annotation helm.sh/resource-policy: keep : helm uninstall la laisse donc en place ; voir uninstall.