clicklink; os comandos são executados por meio de clicklink clctl. Esta página aborda os comandos usados durante a instalação e a operação diária. Execute qualquer comando com --help para ver o texto completo da ajuda.
As flags nas subárvores troubleshoot, scraper, preflight, executor, instances create e platform, além das globais --endpoint e --cluster, também podem vir de variáveis de ambiente CLCTL_* (nomeadas na saída de ajuda de cada flag) ou de ~/.clicklink/clctl.yaml. A flag global -v registra em log as requisições à API de administração feitas por um comando; -vv adiciona os corpos das requisições.
Os comandos instances e commands, além de executor teardown, leem a API local do executor. Duas flags globais a selecionam: --endpoint <url> (padrão http://127.0.0.1:9999, env CLCTL_ENDPOINT) e --cluster <name> (env CLCTL_CLUSTER), que indica o nome do cluster gerenciado quando algum comando precisa dele. No Kubernetes, abra primeiro um kubectl port-forward para a Implantação do executor; consulte serviços gerenciados.
clicklink clctl init
Inicializa o conector usando um token de inscrição, um pacote de inscrição salvo ou um certificado assinado fora de banda. Uma única execução prepara a configuração, provisiona o acesso ao ClickHouse, obtém o certificado mTLS do cliente, faz a implantação (Chart do Helm ou unidades systemd) e verifica a integridade. Com--managed, também habilita o executor para o cluster EKS que ele detecta e concede o acesso cluster-wide do executor. É seguro executar novamente: o init preserva a configuração e o UUID do cluster, substitui as credenciais atomicamente e reutiliza uma chave de cliente existente, a menos que você use --force. Consulte onboarding para conhecer o fluxo completo e serviço gerenciado para saber o que o executor faz.
Pontos de entrada
Exatamente um ponto de entrada é obrigatório.Flags comuns
Flags de assinatura (somente na fase 1)
Flags exclusivas do Kubernetes
Válidas apenas com--target helm.
Flags exclusivas para VM
Válidas apenas com--target systemd.
Conflitos de flags
--handoff,--enrolle--signed-certsão mutuamente exclusivos; exatamente um é obrigatório.- As flags exclusivas do Kubernetes são rejeitadas, a menos que
--target helmseja usado;--server,--ca-data,--cluster-namee--no-instancesão rejeitados com--target helm(o fluxo do Helm lê o kubeconfig da estação de trabalho e detecta a instância in-cluster). --no-instancee--instancesão mutuamente exclusivos.--managede--no-managedsão mutuamente exclusivos, e--cluster-nameé rejeitado com--no-managed. Com--target helm,--instancee--instance-namespacesão rejeitados com--managed.--no-auto-signe--sign-endpointsão mutuamente exclusivos, e ambos (além de--api-private-ca,--managed,--no-managede--cluster-name) são rejeitados com--signed-cert.--platform-bundleexige--target helm,--managede--from-terraform, e é rejeitado com--no-managedou--signed-cert. As quatro flags de pool são rejeitadas sem--platform-bundlee recusadas quando os NodePools já existem.--operatorse--no-gatewaysão mutuamente exclusivos.--skip-provisionrejeita--ch-pod,--ch-user-suffix,--server,--ca-datae--ch-admin-password-stdin(nada é provisionado).
clicklink clctl preflight
Executa o conjunto de verificações do conector, agrupadas por categoria: configuração, arquivos, rede, clickhouse, systemd, acesso, disco e redação. Cada verificação informa aprovação, aviso, falha ou ignorada. O código de saída 0 indica que todas as verificações foram aprovadas (os avisos não bloqueiam); o código de saída 2 indica que pelo menos uma falhou. Por padrão, o comando é executado localmente. Com--k8s-namespace, ele executa o binário do conector no pod do Kubernetes por meio de kubectl exec e gera o relatório localmente (as verificações de systemd são sempre ignoradas em pods do Kubernetes). Com as flags do canal remoto, ele executa o binário instalado em uma VM remota.
As flags
--k8s-* e as flags do canal remoto são mutuamente exclusivas; escolha um destino.
clicklink clctl troubleshoot session
Habilita, desabilita e inspeciona a sessão de suporte: o período limitado durante o qual o solucionador de problemas aceita comandos. Sem uma sessão ativa, o daemon recusa todos os comandos, mesmo que o WebSocket esteja conectado. Consulte sessões de suporte. Os comandos são executados em um de dois modos:- Arquivo local (padrão): lê e grava o arquivo de estado da sessão no host em que o solucionador de problemas é executado (o padrão é
/var/lib/clicklink/session.json). - Gateway: com
--gateway-url, obtém um token de ID OIDC e, a partir da sua estação de trabalho, chama o gateway de sessão do solucionador de problemas.
Flags compartilhadas
habilitar sessão
A habilitação falha se já houver uma sessão ativa; primeiro, desabilite-a ou aguarde a expiração.
desativar sessão
Desativa a sessão imediatamente. Não tem efeito quando não há nenhuma sessão ativa.status da sessão
Mostra se a sessão está ativa, quem a habilitou e quando expira.--output (-o) seleciona table (padrão) ou json.
No Kubernetes, acesse o gateway por meio de um redirecionamento de porta:
clicklink clctl troubleshoot gateway trust
Em uma VM, o gateway de sessão usa um certificado TLS autossinado. Este comando registra a impressão digital SHA-256 do certificado em~/.clicklink/clctl.yaml para que os comandos session possam verificá-lo; se uma impressão digital fixada deixar de corresponder, a operação falhará de forma segura. A confiança é estabelecida fora de banda de uma destas duas formas:
- Com as flags do canal remoto, o comando lê o certificado da VM pelo canal já autenticado e o fixa.
- Sem um canal, passe
--gateway-fingerprintcom o valor SHA-256 registrado pelo conector ao gerar o certificado; o comando só fixa o certificado obtido se ele corresponder. A omissão da flag exibe a impressão digital apresentada sem fixar nada.
clicklink clctl troubleshoot audit tail
Exibe as últimas entradas do log de auditoria do solucionador de problemas: JSON delimitado por quebras de linha, uma entrada para cada comando que o daemon aceitou ou bloqueou. Ele abre o log em modo somente leitura.
A imagem de runtime do conector não inclui um shell; portanto, no Kubernetes, este comando é o leitor compatível:
Provisionamento de acesso
clicklink clctl scraper access provision e clicklink clctl troubleshoot access provision criam e, com --force, rotacionam o pacote de acesso por instância de um componente: o usuário do ClickHouse com acesso somente leitura e suas permissões, além da ServiceAccount do Kubernetes, RBAC e token usados pelo componente. init executa essa operação inline durante a instalação; os comandos standalone permitem reexecutá-la e rotacionar credenciais.
Rotacione as credenciais de um componente para uma instância:
clicklink clctl executor access
init --managed aplica o grant cluster-wide do executor com suas credenciais. Quando isso não é possível, o init exibe os comandos que devem ser executados a partir de um kubeconfig com admin do cluster: apenas access apply em uma VM (o pacote já está preparado), ou access grant seguido de access apply no Kubernetes. Consulte onboarding.
executor access grant
Renderiza o pacote de acesso de abrangência de cluster do executor em<output-dir>/_cluster/: uma ServiceAccount, uma Função de cluster e uma ClusterRoleBinding, e uma ValidatingAdmissionPolicy que restringe a ServiceAccount aos espaços de nomes sob o prefixo de espaço de nomes do executor. Revise o RBAC renderizado antes de aplicá-lo.
executor access apply
Aplica o pacotegrant renderizado de abrangência de cluster: o Espaço de nomes de origem da ServiceAccount, a ServiceAccount, a Função de cluster e o ClusterRoleBinding, além da política de admission, e em seguida gera o token da ServiceAccount no pacote. Não registra nenhum serviço.
clicklink clctl executor prepare
Prepara tudo do seu lado que a criação de um managed service exige, em uma única execução idempotente que para na primeira falha. Ele escolhe ou valida o nome do serviço e cria os buckets de dados e de backup e a IAM role (ou verifica uma role fornecida por você). Em uma VM, ele também renderiza e aplica o pacote de acesso do executor para o espaço de nomes do serviço; no Kubernetes, ele pula o pacote porque o executor é executado com a ServiceAccount do seu pod. Em seguida, gera a senha do usuáriodefault (exibida uma única vez) e grava o corpo de criação para instances create. Consulte managed services.
Em uma VM, ele é executado no host do connector. Em uma instalação no Kubernetes, ele é executado em uma workstation com credenciais AWS e um contexto kube do cluster gerenciado. Essa workstation também precisa de uma cópia da configuração do connector (--config), de um redirecionamento de porta para a API local do executor e de um --output-dir gravável.
clicklink clctl executor teardown
Remove o que oprepare criou para um serviço que o ClickHouse Cloud excluiu. Ou seja, o IAM role, o nome registrado e o registro do serviço no executor; em uma VM, também a Função de cluster e o ClusterRoleBinding do serviço, o pacote de acesso local e a entrada no registry. O executor deve estar em execução e o serviço deve estar terminated (ou stale); a execução é recusada enquanto o espaço de nomes do serviço ainda contiver um cluster ClickHouse. Os buckets criados pelo prepare, com seus dados e backups, são preservados, a menos que você solicite a exclusão, e os buckets preservados recebem a nova etiqueta clicklink:retained-from=<name>. O comando lê tudo antes de excluir qualquer coisa. Consulte excluir um serviço.
clicklink clctl instances
instances create
Envia uma criação preparada ao ClickHouse Cloud pelo endpoint do connector, usando as credenciais do próprio connector. A criação é habilitada por ambiente; veja criar um serviço. Exibe o nome falado atribuído pelo ClickHouse Cloud, o state e uma dicawatch: que usa o nome do seu serviço. O corpo da criação vem do arquivo gravado pelo prepare ou da combinação das quatro flags --deployed-name, --data-bucket, --backup-bucket e --irsa-role-arn. Um retry com as mesmas entradas retorna a primeira criação.
instances list
Imprime, em JSON, todos os serviços conhecidos pelo executor.--cluster <name> filtra por cluster gerenciado.
instances get
Exibe um serviço, em JSON, com o armazenamento com o qual foi criado.--name <name> é obrigatório, assim como o cluster: passe --cluster, defina CLCTL_CLUSTER ou informe-o em ~/.clicklink/clctl.yaml.
Os três subcomandos abaixo enviam comandos diretamente à API local do executor, contornando o ClickHouse Cloud. Execute-os somente quando a equipe de conta solicitar. Cada um exige --name <name> e o cluster (--cluster, CLCTL_CLUSTER ou ~/.clicklink/clctl.yaml), e cada um exibe o comando em JSON. Passe o id dele para commands get para acompanhá-lo; o result de um comando que falhou contém o erro correspondente.
instances scale
Define o número de réplicas de servidor de um serviço por meio de umScalingOverride. --server-replicas <n> é obrigatório e deve ser maior que zero. O executor reporta o comando como em execução ao aplicar o override e como concluído quando as réplicas estiverem prontas.
instances patch
Altera um serviço no próprio lugar.--create-nlb é o único patch disponível; sem ele, o comando falha com nothing to patch. Ele provisiona um NLB interno, na forma de um Service do Kubernetes, apenas na AWS, para que um scraper fora do cluster consiga alcançar os servidores. O executor preenche o host do scraper a partir do balanceador de carga na sincronização seguinte.
instances delete
Remove um serviço do cluster. Ele para o serviço e aguarda o desligamento ordenado pelo operator. Em seguida, desinstala o workload, exclui o espaço de nomesns-<name> e os artifacts do scraper, aguarda até que o espaço de nomes deixe de existir e marca o serviço como terminated. Os buckets e a IAM role do serviço são mantidos; executor teardown os remove com as suas credentials. Um retry de uma exclusão já concluída é um no-op. O caminho normal é excluir o serviço no ClickHouse Cloud; consulte excluir um serviço.
Comandos do clicklink clctl
commands list
Imprime os comandos que o executor registrou, em JSON, do mais recente para o mais antigo. Oresult de um comando que falhou contém o erro correspondente; uma sincronização de plataforma que aguarda sua aprovação indica ali o comando platform approve exato.
commands get
clicklink clctl commands get <id> exibe um comando, com seu stage e resultado.
clicklink clctl platform approve
Autoriza uma alteração de plataforma com as suas próprias credenciais de cluster. Lê o pacote preparado pelo executor, calcula seu hash e renderiza cada chart contido nele exatamente como o executor fará. Aplica a metade de permissões usando o contexto kube que você escolher, cria a identidadepcm-platform do executor se necessário e emite seu token. Não faz nenhuma requisição ao seu connector endpoint. A metade de permissões é composta por Namespaces, CustomResourceDefinitions, ServiceAccounts, Funções de cluster e bindings, Roles e bindings, configurações de webhook e admission, PriorityClasses e a StorageClass. O executor então aplica apenas a metade de workload, e somente enquanto esse token for válido. Consulte atualizações de plataforma.
Para acesso direto ao registry da ClickHouse, execute a aprovação na VM EC2 do connector: a CLI usa o instance profile dela para assumir a função de pull read-only, independentemente das credenciais do seu kubeconfig. Outros registries de chart no ECR usam AWS credentials do ambiente. Consulte credenciais de registry.
clicklink clctl platform reset
Para clusters de teste sem serviços: desinstala os lançamentos da plataforma na ordem inversa de dependências e remove o pacote de tokens da plataforma do executor, permitindo que a primeira instalação seja executada novamente. Antes de alterar qualquer coisa, lista os clusters ClickHouse nos espaços de nomes pertencentes a este connector e recusa a operação caso algum exista. CustomResourceDefinitions, RBAC e a StorageClass são mantidos. Executeplatform approve novamente antes da próxima sincronização da plataforma.
Flags de canal remoto
preflight, gateway trust e access provision compartilham um conjunto de flags que define como acessar uma VM de destino: