Skip to main content
Le connecteur est fourni sous la forme d’un unique binaire nommé clicklink ; les commandes à exécuter se trouvent sous clicklink clctl. Cette page présente les commandes utilisées lors de l’installation et des opérations quotidiennes. Exécutez n’importe quelle commande avec --help pour afficher son aide complète. Les flags des sous-arborescences troubleshoot, scraper, preflight, executor, instances create et platform, ainsi que les flags globaux --endpoint et --cluster, peuvent également provenir des variables d’environnement CLCTL_* (dont le nom est indiqué dans l’aide de chaque flag) ou du fichier ~/.clicklink/clctl.yaml. Le flag global -v journalise les requêtes d’API admin effectuées par une commande ; -vv ajoute le corps des requêtes. Les commandes instances et commands, ainsi que executor teardown, interrogent l’API locale de l’executor. Deux flags globaux permettent de la sélectionner : --endpoint <url> (par défaut http://127.0.0.1:9999, variable d’environnement CLCTL_ENDPOINT) et --cluster <name> (variable d’environnement CLCTL_CLUSTER), qui désigne le cluster managé lorsqu’une commande en requiert un. Sur Kubernetes, ouvrez d’abord un kubectl port-forward vers le Deployment de l’executor ; consultez services managés.

clicklink clctl init

Initialise le connecteur à partir d’un jeton d’inscription, d’un bundle d’inscription enregistré ou d’un certificat signé transmis hors bande. Une seule exécution prépare la configuration, provisionne l’accès à ClickHouse, obtient le certificat client mTLS, effectue le déploiement (chart Helm ou unités systemd) et vérifie l’état de santé. Avec --managed, elle active également l’executor pour le cluster EKS qu’elle détecte et accorde à l’executor un accès à l’échelle du cluster. Vous pouvez relancer la commande sans risque : init conserve la configuration et l’UUID du cluster, remplace les informations d’identification de façon atomique et réutilise une clé client existante, sauf si vous spécifiez --force. Consultez l’onboarding pour connaître le processus complet et les services managés pour savoir ce que fait l’executor.

Points d’entrée

Un seul point d’entrée est obligatoire.

Indicateurs courants

Options de signature (phase 1 uniquement)

Indicateurs réservés à Kubernetes

Valables uniquement avec --target helm.

Options réservées aux VM

Valable uniquement avec --target systemd.

Conflits entre indicateurs

  • --handoff, --enroll et --signed-cert s’excluent mutuellement ; un seul doit être spécifié.
  • Les indicateurs propres à Kubernetes sont rejetés sauf avec --target helm ; --server, --ca-data, --cluster-name et --no-instance sont rejetés avec --target helm (le processus Helm lit le kubeconfig du poste de travail et détecte l’instance in-cluster).
  • --no-instance et --instance s’excluent mutuellement.
  • --managed et --no-managed s’excluent mutuellement, et --cluster-name est rejeté avec --no-managed. Avec --target helm, --instance et --instance-namespace sont rejetés avec --managed.
  • --no-auto-sign et --sign-endpoint s’excluent mutuellement, et tous deux (ainsi que --api-private-ca, --managed, --no-managed et --cluster-name) sont rejetés avec --signed-cert.
  • --platform-bundle nécessite --target helm, --managed et --from-terraform, et est rejeté avec --no-managed ou --signed-cert. Les quatre indicateurs de pool sont rejetés sans --platform-bundle, et sont refusés si les NodePools existent déjà.
  • --operators et --no-gateway s’excluent mutuellement.
  • --skip-provision rejette --ch-pod, --ch-user-suffix, --server, --ca-data et --ch-admin-password-stdin (aucun provisionnement n’est effectué).

clicklink clctl preflight

Exécute la suite de vérifications du connecteur, regroupées par catégorie : configuration, fichiers, réseau, ClickHouse, systemd, accès, disque, masquage. Chaque vérification indique une réussite, un avertissement, un échec ou une omission. Le code de sortie 0 signifie que toutes les vérifications ont réussi (les avertissements ne sont pas bloquants) ; le code de sortie 2 signifie qu’au moins une a échoué. Par défaut, la commande s’exécute localement. Avec --k8s-namespace, elle exécute le binaire du connecteur dans son propre pod via kubectl exec et affiche le rapport localement (les vérifications systemd sont toujours ignorées dans les pods). Avec les options du canal distant, elle exécute à la place le binaire installé sur une VM distante. Les options --k8s-* et les options du canal distant s’excluent mutuellement ; choisissez une cible.

clicklink clctl troubleshoot session

Active, désactive et inspecte la session de support : la période limitée pendant laquelle le composant de dépannage accepte les commandes. Sans session active, le démon refuse toutes les commandes, même lorsque son WebSocket est connecté. Consultez les sessions de support. Les commandes s’exécutent dans l’un des deux modes suivants :
  • Fichier local (par défaut) : lit et écrit le fichier d’état de session sur l’hôte sur lequel le composant de dépannage s’exécute (par défaut, /var/lib/clicklink/session.json).
  • Gateway : avec --gateway-url, obtient un jeton d’ID OIDC et appelle à la place la gateway de session du composant de dépannage depuis votre poste de travail.

Options communes

activation de session

L’activation échoue si une session est déjà active ; désactivez-la d’abord ou attendez qu’elle expire.

session disable

Désactive immédiatement la session. Cette commande est sans effet lorsqu’aucune session n’est active.

état de la session

Indique si la session est active, qui l’a activée et à quelle date elle expire. --output (-o) sélectionne table (par défaut) ou json. Sur Kubernetes, accédez à la passerelle à l’aide d’un transfert de port :

clicklink clctl troubleshoot gateway trust

Sur une VM, la passerelle de session utilise un certificat TLS auto-signé. Cette commande enregistre l’empreinte SHA-256 du certificat dans ~/.clicklink/clctl.yaml afin que les commandes session puissent le vérifier ; si une empreinte épinglée ne correspond plus, la vérification échoue de manière sécurisée. La relation de confiance est établie hors bande de l’une des deux manières suivantes :
  • Avec les options du canal distant, la commande lit le certificat sur la VM via le canal déjà authentifié, puis l’épingle.
  • Sans canal, transmettez --gateway-fingerprint avec la valeur SHA-256 journalisée par le connecteur lors de la génération du certificat ; la commande n’épingle le certificat récupéré que s’il correspond. Si vous omettez l’option, l’empreinte présentée s’affiche sans qu’aucune empreinte ne soit épinglée.
Sur Kubernetes, le pinning n’est pas utilisé : exposez la passerelle via un Ingress avec un certificat émis par une CA, ou utilisez un port-forward.

clicklink clctl troubleshoot audit tail

Affiche les dernières entrées du journal d’audit de l’utilitaire de dépannage : JSON délimité par des sauts de ligne, avec une entrée pour chaque commande acceptée ou bloquée par le démon. Il ouvre le journal en lecture seule. L’image d’exécution du connecteur ne contient pas de shell ; sur Kubernetes, cette commande est donc le lecteur pris en charge :

Provisionnement des accès

clicklink clctl scraper access provision et clicklink clctl troubleshoot access provision créent et, avec --force, renouvellent le bundle d’accès par instance d’un composant : l’utilisateur ClickHouse en lecture seule et ses privilèges, ainsi que le ServiceAccount Kubernetes, les RBAC et le jeton utilisés par le composant. init exécute cette opération directement lors de l’installation ; les commandes autonomes permettent de la relancer ou de renouveler les identifiants. Renouvelez les identifiants d’un composant pour une instance :

clicklink clctl executor access

init --managed applique le grant cluster-wide de l’executor avec vos credentials. Lorsque ce n’est pas possible, init affiche les commands à exécuter depuis un kubeconfig disposant des droits d’admin du cluster : access apply seul sur une VM (le bundle est déjà préparé), ou access grant puis access apply sur Kubernetes. Voir onboarding.

executor access grant

Génère le bundle d’accès à l’échelle du cluster de l’executor dans <output-dir>/_cluster/ : un ServiceAccount, un ClusterRole et un ClusterRoleBinding, ainsi qu’une ValidatingAdmissionPolicy qui restreint le ServiceAccount aux namespaces situés sous le prefix de namespace de l’executor. Vérifiez le RBAC généré avant de l’appliquer.

executor access apply

Applique le bundle grant généré à l’échelle du cluster : le Namespace d’origine du ServiceAccount, le ServiceAccount, le ClusterRole et le ClusterRoleBinding, ainsi que la policy d’admission, puis génère le token du ServiceAccount dans le bundle. Il n’enregistre aucun service.

clicklink clctl executor prepare

Prépare, de votre côté, tout ce dont la création d’un service managé a besoin, en une seule exécution idempotente qui s’arrête à la première erreur. La commande choisit ou valide le nom du service et crée les buckets de données et de sauvegarde ainsi que le rôle IAM (ou vérifie un rôle que vous fournissez). Sur une VM, elle génère et applique également le bundle d’accès de l’executor pour le namespace du service ; sur Kubernetes, le bundle est ignoré car l’executor s’exécute avec le ServiceAccount de son pod. Elle génère ensuite le mot de passe de l’utilisateur default (affiché une seule fois) et écrit le corps de création destiné à instances create. Voir services managés. Sur une VM, elle s’exécute sur l’hôte du connecteur. Pour une installation Kubernetes, elle s’exécute sur un poste de travail disposant de credentials AWS et d’un contexte kube pour le cluster managé. Ce poste de travail doit également disposer d’une copie de la configuration du connecteur (--config), d’un port-forward vers l’API locale de l’executor et d’un --output-dir accessible en écriture.

clicklink clctl executor teardown

Supprime ce que prepare a créé pour un service que ClickHouse Cloud a supprimé, à savoir : le rôle IAM, le nom enregistré et l’enregistrement du service dans l’executor ; sur une VM, également les ClusterRole et ClusterRoleBinding du service, le bundle d’accès local ainsi que l’entrée du registry. L’executor doit être en cours d’exécution et le service à l’état terminated (ou stale) ; l’exécution est refusée tant que le namespace du service contient encore un cluster ClickHouse. Les buckets créés par prepare, avec leurs données et leurs sauvegardes, sont conservés sauf si vous en demandez la suppression, et les buckets conservés reçoivent le nouveau tag clicklink:retained-from=<name>. La commande lit tout avant de supprimer quoi que ce soit. Voir supprimer un service.

clicklink clctl instances

instances create

Soumet une création préparée à ClickHouse Cloud via votre connector endpoint, avec les identifiants propres au connector. La création est activée par environnement ; voir créer un service. La commande affiche le nom prononçable attribué par ClickHouse Cloud, l’état, ainsi qu’une indication watch: qui utilise votre service name. Le corps de la création provient du fichier écrit par prepare, ou de la combinaison des quatre flags --deployed-name, --data-bucket, --backup-bucket et --irsa-role-arn. Un retry effectué avec les mêmes entrées renvoie la première création.

instances list

Affiche au format JSON tous les services connus de l’executor. --cluster <name> filtre par cluster managé.

instances get

Affiche un service, au format JSON, avec le storage avec lequel il a été créé. --name <name> est obligatoire, de même que le cluster : passez --cluster, définissez CLCTL_CLUSTER, ou renseignez-le dans ~/.clicklink/clctl.yaml. Les trois sous-commandes ci-dessous envoient des commands directement à l’API locale de l’executor, en contournant ClickHouse Cloud. Ne les exécutez que si votre account team vous le demande. Chacune requiert --name <name> et le cluster (--cluster, CLCTL_CLUSTER, ou ~/.clicklink/clctl.yaml), et chacune affiche la command au format JSON. Passez son id à commands get pour en suivre l’avancement ; le result d’une command en échec contient son error.

instances scale

Définit le nombre de répliques de serveur d’un service via un ScalingOverride. --server-replicas <n> est obligatoire et doit être supérieur à zéro. L’executor signale la commande comme running lorsqu’il applique l’override, puis comme completed lorsque les répliques sont prêtes.

instances patch

Modifie un service en place. --create-nlb est le seul patch disponible ; sans lui, la commande échoue avec le message nothing to patch. Il provisionne un NLB interne sous la forme d’un Service Kubernetes, sur AWS uniquement, afin qu’un scraper situé en dehors du cluster puisse joindre les serveurs. L’executor renseigne par backfill le host du scraper à partir du répartiteur de charge lors de sa prochaine synchronisation.

instances delete

Supprime un service du cluster. Cette commande arrête le service et attend l’arrêt ordonné de l’opérateur. Elle désinstalle ensuite la charge de travail, supprime l’espace de noms ns-<name> ainsi que les artefacts du scraper, attend la disparition de l’espace de noms, puis marque le service comme terminated. Les buckets et l’IAM role du service sont conservés ; executor teardown les supprime à l’aide de vos credentials. Réexécuter une suppression déjà terminée est un no-op. La procédure normale consiste à supprimer le service dans ClickHouse Cloud ; voir supprimer un service.

Commandes clicklink clctl

commands list

Affiche les commandes enregistrées par l’executor, au format JSON, les plus récentes en premier. Le champ result d’une commande ayant échoué contient l’erreur correspondante ; une synchronisation de plateforme en attente de votre approbation y indique la commande platform approve exacte à exécuter.

commands get

clicklink clctl commands get <id> affiche une commande, avec son étape et son résultat.

clicklink clctl platform approve

Autorise une modification de plateforme avec vos propres identifiants de cluster. La commande lit le bundle préparé par l’executor, en calcule le hachage et effectue le rendu de chaque chart qu’il contient exactement comme le fera l’executor. Elle applique la moitié « permissions » avec le contexte kube que vous choisissez, crée si nécessaire l’identity pcm-platform de l’executor et émet son jeton. Elle n’envoie aucune requête à votre connector endpoint. La moitié « permissions » regroupe les Namespaces, CustomResourceDefinitions, ServiceAccounts, ClusterRoles et bindings, Roles et bindings, configurations de webhook et d’admission, PriorityClasses, ainsi que la StorageClass. L’executor n’applique ensuite que la moitié « charges de travail », et uniquement tant que ce jeton reste valide. Voir mises à jour de plateforme. Pour un accès direct au registre de ClickHouse, exécutez l’approbation sur la VM EC2 du connector : la CLI utilise son profil d’instance pour endosser le rôle de récupération en lecture seule, indépendamment des identifiants de votre kubeconfig. Les autres registres de charts ECR utilisent les identifiants AWS ambiants. Voir identifiants de registre.

clicklink clctl platform reset

Pour les clusters de test sans services : désinstalle les releases de la plateforme dans l’ordre inverse des dépendances et supprime le bundle de token de plateforme de l’executor, afin de pouvoir rejouer la première installation. Avant toute modification, la commande liste les clusters ClickHouse présents dans les namespaces dont ce connector est propriétaire et refuse de continuer s’il en existe. Les CustomResourceDefinitions, le RBAC et la StorageClass sont conservés. Exécutez à nouveau platform approve avant la prochaine synchronisation de la plateforme.

Options du canal distant

preflight, gateway trust et access provision partagent un ensemble d’options qui déterminent comment accéder à une VM cible :