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,--enrollet--signed-certs’excluent mutuellement ; un seul doit être spécifié.- Les indicateurs propres à Kubernetes sont rejetés sauf avec
--target helm;--server,--ca-data,--cluster-nameet--no-instancesont rejetés avec--target helm(le processus Helm lit le kubeconfig du poste de travail et détecte l’instance in-cluster). --no-instanceet--instances’excluent mutuellement.--managedet--no-manageds’excluent mutuellement, et--cluster-nameest rejeté avec--no-managed. Avec--target helm,--instanceet--instance-namespacesont rejetés avec--managed.--no-auto-signet--sign-endpoints’excluent mutuellement, et tous deux (ainsi que--api-private-ca,--managed,--no-managedet--cluster-name) sont rejetés avec--signed-cert.--platform-bundlenécessite--target helm,--managedet--from-terraform, et est rejeté avec--no-managedou--signed-cert. Les quatre indicateurs de pool sont rejetés sans--platform-bundle, et sont refusés si les NodePools existent déjà.--operatorset--no-gateways’excluent mutuellement.--skip-provisionrejette--ch-pod,--ch-user-suffix,--server,--ca-dataet--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-fingerprintavec 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.
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 bundlegrant 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’utilisateurdefault (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 queprepare 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 indicationwatch: 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 unScalingOverride. --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 nomsns-<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 champresult 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’identitypcm-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 à nouveauplatform 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 :