Archivo de configuración de la VM
En una VM Linux, el conector lee/etc/clicklink/config.yaml. clicklink clctl init lo escribe y lo conserva entre ejecuciones posteriores, salvo que se use --force. Las claves que se omitan del archivo usarán los valores predeterminados compilados que se indican a continuación. init no escribe credenciales en él: las claves HMAC se encuentran en las rutas *_file y el certificado de cliente en /etc/clicklink/tls.
Claves de nivel superior
| Clave | Valor predeterminado | Significado |
|---|---|---|
pcm_infra_uuid | generado por init | Identificador único de esta implementación del conector, incluido en cada solicitud al upstream. Se conserva entre ejecuciones posteriores, incluso con --force. No lo edite. |
cloud | detectado por init | Etiqueta del proveedor de Cloud para este host. Obligatorio; los demonios no se inician si está vacío. |
region | detectada por init | Etiqueta de región para este host. Obligatorio; los demonios no se inician si está vacía. |
namespace_prefix | ns- | Prefijo de los espacios de nombres de Kubernetes en los que residen los managed services (<prefix><service>). Todos los demonios derivan de él sus espacios de nombres. |
report_infra_meta | true | Informa el nombre, la región y la cuenta del cluster gestionado a ClickHouse Cloud en cada heartbeat. El equivalente en la VM de cluster.reportInfraMeta del chart. |
token_renew.sweep_interval | 10m | Con qué frecuencia el executor y el scraper comprueban los tokens de ServiceAccount de su paquete de acceso para su renovación. |
token_renew.requested_ttl | 24h | Duración del token solicitada en la renovación. El API server puede limitarla a un valor menor. |
api | Bloque de conexión con la API upstream; consulte api. | |
scraper | Bloque del demonio scraper; consulte scraper. | |
troubleshooter | Bloque del demonio solucionador de problemas; consulte troubleshooter. | |
executor | Bloque del demonio executor (modo gestionado); consulte executor. | |
observability | Bloque compartido de logging y puertos; consulte observability. |
instances: en este archivo. Las instancias residen en el registro de instancias.
api
| Clave | Valor predeterminado | Significado |
|---|---|---|
api.endpoint | del paquete de inscripción | Su endpoint del conector: https://<subdomain>.<connector-domain>. |
api.access_key_file | /etc/clicklink/access-key (escrito por init) | Archivo que contiene la clave de acceso HMAC (modo 0600). |
api.secret_key_file | /etc/clicklink/secret-key (escrito por init) | Archivo que contiene la clave secreta HMAC (modo 0600). |
api.access_key, api.secret_key | sin definir | Claves HMAC en línea, solo para desarrollo. init nunca las escribe; un archivo que las contenga necesita la misma protección 0600 que los archivos de claves. Los demonios rechazan un archivo con ambas formas definidas. |
api.tls.enabled | true | Presenta el certificado de cliente mTLS en las conexiones de API. |
api.tls.cert_file | /etc/clicklink/tls/client.crt | Certificado de cliente mTLS; los demonios lo reescriben durante la renovación. |
api.tls.key_file | /etc/clicklink/tls/client.key | Clave privada de cliente mTLS. |
api.tls.ca_file | /etc/clicklink/tls/ca.crt | Cadena de CA adicional que se añade a las raíces del sistema para verificar el servidor; init instala aquí la cadena del paquete de inscripción. |
api.retry.max_retries | 5 | Intentos de reintento por solicitud de API. |
api.retry.initial_delay | 1s | Retraso inicial de backoff para los reintentos. |
api.retry.max_delay | 30s | Límite máximo de backoff. |
api.retry.jitter_factor | 0.25 | Variación aleatoria aplicada a los retrasos de backoff. |
Registro de instancias
Las instancias residen en/var/lib/clicklink/instances.yaml, un mapa instances: de nivel superior con clave por nombre. init lo inicializa y el executor lo mantiene; el scraper vigila el archivo, por lo que las ediciones se aplican sin reiniciar. Cada entrada describe un destino del protocolo nativo de ClickHouse:
| Clave | Predeterminado | Significado |
|---|---|---|
host | Nombre de host o dirección IP del listener nativo de ClickHouse. | |
port | Puerto del protocolo nativo (normalmente, 9440 con TLS y 9000 sin cifrado). | |
database | Base de datos predeterminada para las sesiones del conector. | |
secure | false | Usa TLS en la conexión nativa. |
max_open_conns | no establecido | Límite de conexiones abiertas a esta instancia. |
max_idle_conns | no establecido | Límite de conexiones inactivas agrupadas en esta instancia. |
namespace | Espacio de nombres de Kubernetes de la instancia, utilizado para delimitar las lecturas de Kubernetes del solucionador de problemas. | |
cluster | default | Nombre del cluster de ClickHouse utilizado para consultas distribuidas. |
scraper
| Clave | Predeterminado | Significado |
|---|---|---|
scraper.enabled | false (init escribe true) | Ejecuta el demonio del scraper. |
scraper.labels.platform | Etiqueta que se inyecta en cada métrica emitida. Obligatoria cuando el scraper está habilitado. | |
scraper.labels.env | Etiqueta de entorno, por ejemplo, production. Obligatoria. | |
scraper.labels.region | Etiqueta de región. Obligatoria. | |
scraper.scrape.interval | 2m | Frecuencia de recopilación de cada instancia. |
scraper.scrape.timeout | 30s | Tiempo de espera de consulta por recopilación. Debe ser menor que interval. |
scraper.scrape.max_scrape_window | 30m | Hasta qué punto en el pasado alcanza la primera recopilación cuando no hay ningún cursor persistido. |
scraper.scrape.grace_period | 35s | Cuánto antes del momento actual termina cada ventana de recopilación, para que no se omitan las filas escritas con retraso. |
scraper.scrape.tables | consulte más abajo | Tablas del sistema recopiladas por instancia. El conjunto predeterminado es metric_log, asynchronous_metric_log, tables, warnings, server_settings. query_log se excluye a propósito, para que el texto SQL sin procesar no salga de su perímetro de forma predeterminada. |
scraper.buffer.path | /var/lib/clicklink/buffer | Cola persistente en disco para entregas de al menos una vez mientras no se pueda acceder al endpoint de su conector. |
scraper.buffer.retention | 168h | Antigüedad máxima de los datos en cola. |
scraper.buffer.max_size_mb | 1024 | Límite de tamaño de la cola en MB. |
scraper.buffer.max_segments | 0 (sin límite) | Límite de archivos de segmento de la cola en disco. |
scraper.sender.bandwidth_limit_mb | 1.0 | Límite de velocidad de carga en MB/s. |
scraper.instance_sync.interval | 0 (30s) | Frecuencia con la que el scraper informa a ClickHouse Cloud del estado ClickHouseCluster de cada instancia registrada. |
scraper.backup_sync.interval | 0 (30s) | Frecuencia con la que el scraper informa del estado de las copias de seguridad a ClickHouse Cloud. |
scraper.observability.health_port | 8082 | Puerto de estado y métricas del scraper. |
scraper.access_directory | /etc/clicklink/access/scraper | Directorio raíz de los paquetes de acceso por instancia del scraper. |
solucionador de problemas
| Clave | Predeterminado | Significado |
|---|---|---|
troubleshooter.enabled | false (init escribe true) | Ejecuta el daemon de solución de problemas. |
troubleshooter.poll_interval | 5s | Intervalo de sondeo del estado de la sesión. |
troubleshooter.command_timeout | 60s | Tiempo de espera de ejecución por comando. |
troubleshooter.session_timeout | 4h | Duración predeterminada de la sesión de soporte. |
troubleshooter.session_file_path | /var/lib/clicklink/session.json | Archivo de estado de la sesión, compartido con los comandos clicklink clctl troubleshoot session. |
troubleshooter.access_directory | /etc/clicklink/access/troubleshooter | Directorio raíz de los paquetes de acceso por instancia del solucionador de problemas. |
troubleshooter.allowed_tables | consulte la lista de tablas permitidas predeterminada | Tablas del sistema desde las que el solucionador de problemas puede ejecutar SELECT. Las entradas deben tener el formato schema.table. El daemon no se inicia si query_log o text_log están en la lista. |
troubleshooter.max_open_conns | 5 | Límite de conexiones abiertas a ClickHouse. |
troubleshooter.max_idle_conns | 5 | Límite de conexiones inactivas del pool. |
troubleshooter.redaction.workers | 4 | Workers de redacción en paralelo. |
troubleshooter.redaction.patterns_file | /etc/clicklink/redaction-patterns.yaml | Patrones de redacción editables por el cliente; el daemon no se inicia si el archivo existe, pero no es válido. |
troubleshooter.redaction.metrics_per_pattern | false | Emite una métrica de contador de coincidencias por patrón. |
troubleshooter.redaction.metrics_per_pattern_cap | 50 | Límite de nombres de patrón distintos en la métrica por patrón. |
troubleshooter.audit_log.path | /var/log/clicklink/troubleshoot-audit.log | Registro de auditoría NDJSON de solo anexión para cada comando aceptado o bloqueado. |
troubleshooter.audit_log.max_size_mb | 128 | Rota el archivo de registro activo al superar este tamaño. |
troubleshooter.audit_log.max_files | 5 | Número de archivos rotados que se conservan. |
troubleshooter.audit_log.max_age | 168h | Se eliminan los archivos rotados que superen esta antigüedad. |
troubleshooter.gateway.enabled | false | Expone el gateway de sesiones (sesiones de soporte mediante OIDC). |
troubleshooter.gateway.listen_addr | ninguno (init escribe ":8443") | Dirección de escucha del gateway. Obligatorio cuando el gateway está habilitado. |
troubleshooter.gateway.audience | ninguno (init escribe clicklink-clctl) | Claim de audiencia obligatorio en los tokens de operador. Obligatorio cuando el gateway está habilitado. |
troubleshooter.gateway.required_hosted_domain | "" | Validación opcional del claim de dominio alojado; el gateway rechaza los tokens de fuera del dominio antes de consultar la lista de permitidos. |
troubleshooter.gateway.allowed_operators_file | /etc/clicklink/allowed-operators.txt (escrito por init) | Lista de correos electrónicos permitidos de operadores, delimitada por saltos de línea. Si está vacía, no se permite el acceso. Obligatorio cuando el gateway está habilitado; el daemon no se inicia sin ella. |
troubleshooter.gateway.require_verified_email | true | Exige el claim email_verified en los tokens de operador. El valor false solo se respeta si se han establecido jwks_uri e issuer. |
troubleshooter.gateway.rate_limit_per_minute | 0 (deshabilitado) | Límite de tasa de solicitudes por operador. |
troubleshooter.gateway.handler_timeout | 15s | Tiempo de espera de solicitudes del lado del servidor. |
troubleshooter.gateway.jwks_uri | "" | Endpoint JWKS para un proveedor de identidad distinto de Google; si está vacío, se usa el de Google. |
troubleshooter.gateway.issuer | "" | Claim de emisor que se valida cuando se establece jwks_uri. |
troubleshooter.gateway.tls.enabled | false (init escribe true en una VM cuando las sesiones de soporte están habilitadas) | Expone el gateway mediante TLS. El daemon genera un certificado autofirmado si no existe ninguno; los operadores fijan su huella digital. |
troubleshooter.gateway.tls.cert_file | /var/lib/clicklink/gateway/tls/server.crt | Certificado del gateway. |
troubleshooter.gateway.tls.key_file | /var/lib/clicklink/gateway/tls/server.key | Clave del gateway. |
troubleshooter.gateway.tls.ca_file | "" | CA a la que deben encadenarse los certificados de cliente de los operadores. Si se establece, exige mTLS además del bearer de OIDC. |
troubleshooter.gateway.tls.self_signed_dns_names | [] (init rellena previamente el host) | SAN del certificado autofirmado; las entradas que se interpretan como direcciones IP se convierten en SAN de IP. |
executor
El executor se ejecuta en modo gestionado.init --managed escribe enabled: true y la identidad del cluster; el resto toma los valores predeterminados.
| Key | Default | Significado |
|---|---|---|
executor.enabled | false (init --managed escribe true) | Ejecuta el demonio del executor. |
executor.cluster.name | escrito por init | Nombre del único cluster de EKS que gestiona este executor. Obligatorio cuando el executor está habilitado. |
executor.cluster.region | escrito por init | La región de AWS del cluster. Obligatorio. |
executor.cluster.account_id | escrito por init | La cuenta de AWS del cluster. Obligatorio. |
executor.cluster.kubeconfig_path | sin definir | Kubeconfig con el que se autentica el executor. Si no se define, todos los comandos de servicio se ejecutan sobre los paquetes de acceso ubicados en /etc/clicklink/access/executor. |
executor.cluster.in_cluster | false | Autenticarse como la propia ServiceAccount del pod en lugar de mediante un kubeconfig; es la forma de la instalación en Kubernetes, mutuamente excluyente con kubeconfig_path. |
executor.cluster.delete_instance_data.enabled | false | Indica si clicklink clctl executor teardown elimina los datos de un servicio retirado sin --delete-data. El demonio del executor, por sí mismo, no elimina ningún dato. |
executor.target_cluster | executor.cluster.name | Cluster al que se envían los comandos entrantes. Déjelo sin definir; cualquier otro valor resulta fatal en el arranque. |
executor.poll_interval | 5m | Intervalo de sondeo. Debe ser positivo. |
executor.sync_interval | 30s | Con qué frecuencia se actualiza el estado del servicio desde el cluster. Debe ser positivo. |
executor.stop_wait_timeout | 8m | Cuánto tiempo espera una eliminación a que se detengan los servidores antes de reintentarlo. |
executor.create_retry_horizon | 30m | Durante cuánto tiempo se reintenta una creación, contado desde su último informe de progreso. |
executor.delete_retry_horizon | 2h | Durante cuánto tiempo se reintenta una eliminación, contado desde su último informe de progreso. |
executor.db_path | /var/lib/clicklink/executor.db | Base de datos local de comandos. |
executor.api_port | 9999 | Puerto de la API local, vinculado únicamente al loopback. |
executor.observability.health_port | 8086 | Puerto de salud y métricas del executor. |
executor.cluster es una única correspondencia: un cluster por executor. El cargador convierte en cluster una lista clusters: heredada que tenga una sola entrada y ninguna correspondencia cluster:. Rechaza una lista con más de una entrada, o una que aparezca junto a una clave cluster:, cuando el executor está habilitado.
observabilidad
| Clave | Predeterminado | Significado |
|---|---|---|
observability.enabled | true | Expone endpoints de estado y métricas. |
observability.log_level | info | Nivel de log. |
observability.health_port | 8080 | Puerto base compartido para las comprobaciones de estado. |
/livez (un cuerpo de estado en JSON), /readyz, /healthz y /metrics en un único listener; no hay un puerto de métricas independiente. Los bloques observability específicos de cada componente se superponen a esta configuración base: el scraper usa 8082, el solucionador de problemas 8084, el executor 8086 y el gateway escucha en 8443 cuando está habilitado. Una clave metrics_port de una configuración anterior todavía se carga, pero no vincula nada.
Lista de tablas permitidas predeterminada
El conjunto predeterminadoallowed_tables del solucionador de problemas, idéntico al valor predeterminado troubleshooter.allowedTables del gráfico:
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
Valores del gráfico de Helm
En Kubernetes, el conector se configura mediante los valores del gráficoclicklink-connector. clicklink clctl init prepara una superposición de clicklink-values.yaml con todos los valores siguientes completados y la conserva en ejecuciones posteriores, salvo que se especifique --force. Las tablas muestran los valores predeterminados del gráfico. Los parámetros estándar de carga de trabajo (resources, nodeSelector, tolerations, affinity, serviceAccount.annotations, env) están disponibles en cada componente, tienen valores predeterminados vacíos y no se repiten en cada tabla.
Claves de nivel superior
| Clave | Predeterminado | Significado |
|---|---|---|
imagePullSecrets | [] | Secretos de extracción de imágenes compartidos por todos los componentes. |
instances | {} | Registro de instancias de ClickHouse que ejecutas por tu cuenta, con los mismos campos que el registro de instancias de la VM, generado en el ConfigMap clicklink-instance-registry. Debe estar vacío cuando executor.enabled es true; de lo contrario, la generación falla. |
podSecurityContext | sin root, uid 65532, seccomp RuntimeDefault | Contexto de seguridad del pod de Kubernetes compartido por todos los componentes. |
securityContext | sin escalada de privilegios, sistema de archivos raíz de solo lectura, todas las capabilities eliminadas | Contexto de seguridad del contenedor compartido por todos los componentes. |
serviceMonitor.enabled | false | Genera un ServiceMonitor de Prometheus Operator para los Services de los componentes. Se ajusta mediante namespace, interval (30s), scrapeTimeout (10s) y labels. |
externalSecrets.enabled | false | Materializa los secretos de mTLS, HMAC y del paquete de acceso mediante External Secrets Operator en lugar de usar secretos creados previamente. secretStoreRef, refreshInterval (1h), mtlsRemoteKey, hmacRemoteKey y accessBundles indican el almacén remoto y las claves. |
cluster
| Clave | Valor predeterminado | Significado |
|---|---|---|
cluster.pcmInfraUuid | "" (init lo completa) | Identificador único de esta implementación del conector. Obligatorio cuando algún componente está habilitado; se conserva en ejecuciones posteriores. |
cluster.region | "" (init lo completa) | Etiqueta de región. Obligatoria. |
cluster.cloud | "" (init lo completa) | Etiqueta del proveedor de Cloud. Obligatoria. |
cluster.namespacePrefix | ns- | Prefijo de los espacios de nombres de Kubernetes en los que residen los servicios gestionados (<prefix><service>). |
cluster.reportInfraMeta | true | Informa el nombre, la región y la cuenta del cluster gestionado a ClickHouse Cloud en cada latido, con fines de diagnóstico. Establezca false para desactivarlo. |
image
| Clave | Predeterminado | Significado |
|---|---|---|
image.repository | preconfigurado en el chart publicado | Repositorio de imágenes del conector. El chart publicado apunta a la imagen del registro público (multiarquitectura, firmada con cosign); configúrelo únicamente para sobrescribirlo, por ejemplo, con un mirror dentro del perímetro. Consulte el valor publicado con helm show values. |
image.tag | "" (sigue el appVersion del chart; init fija la versión de la CLI) | Etiqueta de la imagen. |
image.pullPolicy | IfNotPresent | Política de extracción de imágenes de Kubernetes. |
api
| Clave | Predeterminado | Significado |
|---|---|---|
api.endpoint | "" (init lo completa) | Su endpoint del conector, compartido por todos los componentes. |
api.tls.enabled | true | Presenta el certificado de cliente mTLS en las conexiones de API. |
api.tls.caFile | "" (raíces del sistema) | CA añadida a las raíces del sistema para verificar el servidor. Establézcalo en /etc/clicklink/secrets/mtls/ca.crt (o vuelva a ejecutar init con --api-private-ca) cuando el endpoint presente un certificado de una CA privada. |
secretos
El chart utiliza Secrets creados previamente;init los crea antes de la instalación.
| Clave | Predeterminado | Significado |
|---|---|---|
secrets.mtlsSecretName | clicklink-mtls | Secret kubernetes.io/tls que contiene la clave de cliente mTLS, el certificado y la cadena de CA. |
secrets.hmacSecretName | clicklink-hmac | Secret opaco que contiene access-key y secret-key para firmar solicitudes. |
secrets.mtlsWriteback | true | Permite que los demonios guarden en el Secret mTLS el certificado final mTLS renovado automáticamente. Concede a las ServiceAccounts del componente el permiso update sobre ese único Secret por su nombre exacto; sin esta opción, los certificados renovados no tienen dónde almacenarse de forma persistente. Se ignora cuando externalSecrets.enabled es true. |
scraper
| Clave | Predeterminado | Significado |
|---|---|---|
scraper.enabled | false (init establece true) | Despliega el scraper. |
scraper.replicaCount | 1 | Réplicas del scraper. |
scraper.logLevel | info | Nivel de log. |
scraper.ports.health | 8082 | Puerto de estado y métricas. |
scraper.labels.platform, scraper.labels.env, scraper.labels.region | "" | Etiquetas inyectadas en cada métrica emitida. Las tres son obligatorias cuando el scraper está habilitado; de lo contrario, el chart genera un error durante el renderizado. |
scraper.config | {} | Paso directo para cualquier clave de configuración de scraper no incluida anteriormente (intervalo de scrape, búfer, sender, etc.; mismo esquema que el bloque scraper de VM). |
scraper.bufferSizeLimit | 2Gi | Límite de tamaño del volumen temporal del scraper; el scraper no tiene estado persistente en disco. |
scraper.rbac.extraSecretNames | [] | Nombres adicionales de Secret a los que el ServiceAccount del scraper puede aplicar get; solo se admiten nombres exactos. |
scraper.accessBundles | {} | Paquetes de acceso por instancia, identificados por el nombre de la instancia, cada uno con secretName y serviceAccountName. Se montan en /etc/clicklink/access/scraper/<instance>/; los crea clicklink clctl scraper access provision --target helm. |
troubleshooter
| Key | Default | Significado |
|---|---|---|
troubleshooter.enabled | false (init escribe true) | Despliega el solucionador de problemas (un StatefulSet de una sola réplica). |
troubleshooter.logLevel | info | Nivel de log. |
troubleshooter.ports.health | 8084 | Puerto de health y de métricas. |
troubleshooter.sessionTimeout | 4h | Duración predeterminada de la sesión de soporte. |
troubleshooter.allowedTables | la allowlist de tablas predeterminada | Tablas sobre las que el usuario de ClickHouse del solucionador de problemas puede hacer SELECT. Esta es la superficie de revisión de seguridad que debes editar en tu overlay. El chart no se renderiza y el demonio no arranca si se incluye query_log o text_log. |
troubleshooter.auditLog.path | /var/log/clicklink/troubleshoot-audit.log | Ubicación del audit log, en el volumen de estado para que el registro sobreviva a la reprogramación del pod. |
troubleshooter.auditLog.maxSizeMb | 128 | Rota al superar este tamaño. |
troubleshooter.auditLog.maxFiles | 5 | Archivos rotados que se conservan. |
troubleshooter.auditLog.maxAge | 168h | Los archivos rotados más antiguos que este valor se eliminan. |
troubleshooter.redaction.workers | 4 | Workers de redaction en paralelo. |
troubleshooter.redaction.patternsConfigMap | "" | Nombre de un ConfigMap cuya clave redaction-patterns.yaml contiene patterns personalizados; el chart lo monta en /etc/clicklink/redaction-patterns.yaml. Si está vacío, solo se aplican los patterns integrados. |
troubleshooter.redaction.metricsPerPattern | false | Emite una métrica de tipo counter de coincidencias por pattern. |
troubleshooter.redaction.metricsPerPatternCap | 50 | Límite de nombres de pattern distintos en la métrica por pattern. |
troubleshooter.config | {} | Paso directo para cualquier clave de configuración de troubleshooter no contemplada arriba (poll interval, timeout de comandos, límites de connection, etc.). |
troubleshooter.rbac.extraSecretNames | [] | Nombres adicionales de Secret sobre los que el ServiceAccount del solucionador de problemas puede hacer get, únicamente nombres exactos. |
troubleshooter.accessBundles | {} | Paquetes de acceso por instance, con la misma shape que scraper.accessBundles, montados en /etc/clicklink/access/troubleshooter/<instance>/. |
executor
El executor para el modo gestionado: una Implementación de una sola réplica sobre un PersistentVolumeClaim.init --managed lo deja preparado y habilitado, con la identidad del cluster ya rellenada.
| Clave | Predeterminado | Significado |
|---|---|---|
executor.enabled | false (init --managed escribe true) | Desplegar el executor. |
executor.logLevel | info | Nivel de log. |
executor.pollInterval | 30s | Intervalo de sondeo. |
executor.syncInterval | 30s | Con qué frecuencia se actualiza el estado del servicio desde el cluster. |
executor.apiPort | 9999 | Puerto de la API local. Vinculado a 127.0.0.1 en el pod de Kubernetes y no expuesto a través del Service; accede a él con kubectl port-forward. |
executor.ports.health | 8086 | Puerto de health y metrics. |
executor.cluster.name | \"\" (init lo rellena) | Nombre del único EKS cluster que gestiona este executor. Obligatorio cuando el executor está habilitado. |
executor.cluster.region | \"\" (init lo rellena) | La region de AWS del cluster. Obligatorio. |
executor.cluster.accountId | \"\" (init lo rellena) | La cuenta de AWS del cluster. Obligatorio; también se acepta la grafía en snake_case account_id. |
executor.cluster.inCluster | false (init escribe true) | Autenticarse como la ServiceAccount del pod de Kubernetes, el modelo de la instalación de Kubernetes; en el pod de Kubernetes no existe ningún paquete de acceso. |
executor.cluster.delete_instance_data.enabled | false | Indica si clicklink clctl executor teardown elimina los datos de un service retirado sin --delete-data. init lo deja sin establecer. Las demás claves por cluster se transfieren literalmente con la grafía en snake_case del binario. |
executor.targetCluster | \"\" (derivado de cluster.name) | Cluster al que se enrutan los comandos entrantes. Déjalo sin establecer; un valor que no coincida con cluster.name provoca un fallo al renderizar. |
executor.config | {} | Transferencia directa para cualquier clave de configuración de executor no contemplada arriba, como los horizontes de reintento en el bloque executor de la VM. |
executor.platformBundleSecret | clicklink-platform-bundle | secreto que contiene el paquete de aprobación de la plataforma, montado en modo solo lectura en /etc/clicklink/access/executor/_platform; lo escribe clicklink clctl platform approve --secret-namespace. El montaje es opcional, de modo que el pod de Kubernetes arranca antes de la primera aprobación. Si se deja vacío, se desactiva el montaje. |
executor.serviceAccount.create | false | Indica si el chart crea la ServiceAccount del executor. Desactivado de forma predeterminada: init --managed concede el RBAC del executor fuera de banda sobre un nombre fijo, y el chart se vincula a él. |
executor.serviceAccount.name | pcm-executor | ServiceAccount con la que se ejecuta el executor. Obligatorio cuando create es false. |
executor.persistence.enabled | true | Respaldar /var/lib/clicklink (la database de comandos y el registro de instancias) con un PersistentVolumeClaim. |
executor.persistence.storageClass | \"\" (predeterminado del cluster) | Clase de almacenamiento para la reclamación; init la rellena a partir de --storage-class o del valor predeterminado detectado. |
executor.persistence.size | 5Gi | Tamaño de la reclamación. |
executor.persistence.accessModes | [ReadWriteOnce] | Modos de acceso de la reclamación. |
executor.cluster es una única correspondencia: un cluster por executor. Una lista clusters hace fallar el renderizado.
persistencia
| Clave | Predeterminado | Significado |
|---|---|---|
persistence.enabled | true | Almacena el directorio de estado del solucionador de problemas en un PersistentVolumeClaim para que el estado de la sesión y el registro de auditoría se conserven tras los reinicios. |
persistence.storageClass | "" (predeterminado del clúster) | Clase de almacenamiento para la reclamación; init la establece a partir de --storage-class o de la predeterminada detectada. |
persistence.size | 5Gi | Tamaño de la reclamación. |
persistence.accessModes | [ReadWriteOnce] | Modos de acceso de la reclamación. |
clctl.gateway
La puerta de enlace de sesiones para las sesiones de soporte.| Clave | Predeterminado | Significado |
|---|---|---|
clctl.gateway.enabled | false | Sirve la puerta de enlace de sesiones dentro del solucionador de problemas. |
clctl.gateway.listenAddr | ":8443" | Dirección de escucha local del pod de Kubernetes. |
clctl.gateway.port | 8443 | Puerto del contenedor expuesto mediante el Service y el Ingreso del solucionador de problemas; coincide con el puerto de listenAddr. |
clctl.gateway.audience | clicklink-clctl | Claim de audiencia requerido en los tokens de operador. El cliente de sesiones usa de forma predeterminada el mismo valor, por lo que solo debe coordinarse si cambia este valor. |
clctl.gateway.requiredHostedDomain | "" | Claim opcional de dominio alojado requerido por la puerta de enlace; rechaza los tokens ajenos a su espacio de trabajo antes de consultar la lista de permitidos. |
clctl.gateway.allowedOperators | [] (cerrado) | Lista de permitidos de direcciones de correo electrónico de operadores, generada en un ConfigMap; la rotación requiere cambiar los values y ejecutar helm upgrade. |
clctl.gateway.requireVerifiedEmail | true | Requiere el claim email_verified en los tokens de operador. El valor false sin jwksUri e issuer hace que falle la generación. |
clctl.gateway.jwksUri | "" | Sobrescritura del endpoint JWKS para proveedores de identidad distintos de Google; si está vacío, usa el de Google. |
clctl.gateway.issuer | "" | Claim de emisor que se debe fijar. Obligatorio para cualquier implementación real que configure jwksUri. |
clctl.gateway.jwksEgressCIDRs | [] | CIDR a los que la puerta de enlace debe acceder para validar JWKS con la NetworkPolicy de denegación predeterminada; si está vacío, bloquea todas las comprobaciones de tokens. |
clctl.gateway.ingressFromSelector | {} | Origen de Ingreso de NetworkPolicy para el puerto de la puerta de enlace; si está vacío, permite cualquier pod de Kubernetes del espacio de nombres del chart. Al usar un Ingreso, establézcalo en la etiqueta del espacio de nombres de su controlador de Ingreso. |
clctl.gateway.rateLimit.requestsPerMinute | 30 | Límite de solicitudes por minuto y operador. |
clctl.gateway.ingress.enabled | false | Genera un Ingreso para la puerta de enlace. Cuando está deshabilitado, los operadores acceden a la puerta de enlace mediante kubectl port-forward; no se necesita ningún controlador de Ingreso ni cert-manager. |
clctl.gateway.ingress.className, hosts, tls, annotations | "", [], [], {} | Campos estándar de Ingreso; tls hace referencia a secretos kubernetes.io/tls. |
networkPolicy
| Clave | Valor predeterminado | Significado |
|---|---|---|
networkPolicy.enabled | true | Genera una NetworkPolicy con denegación predeterminada y una lista de permitidos para la salida. Su aplicación requiere un CNI que imponga las reglas. |
networkPolicy.allowEgressCIDRs | [] (init --egress-cidrs lo completa) | CIDR detrás del endpoint del conector. En modo gestionado, cuando los charts de plataforma residen en Amazon ECR, también los rangos regionales de ECR y STS, o el rango de su mirror. Con un CNI que imponga las reglas, el conector no tendrá salida hasta que se complete este valor; init deja la política habilitada solo cuando estos se conocen. |
networkPolicy.allowEgressPorts | [443] | Puertos abiertos hacia allowEgressCIDRs; sobrescriba este valor cuando el endpoint escuche en un puerto no predeterminado. |
networkPolicy.clickhouseNamespaces | [] | Espacios de nombres de los servicios de ClickHouse, identificados mediante la etiqueta kubernetes.io/metadata.name. Los espacios de nombres que crea el executor se admiten de todos modos, gracias a la etiqueta clicklink.clickhouse.com/managed-by=executor que les asigna, por lo que una instalación gestionada solo enumera los espacios de nombres creados fuera del executor. Cuando está vacío, la política del solucionador de problemas recurre a los valores de namespace del mapa instances de nivel superior; la política del scraper no tiene fallback, así que enumere aquí los espacios de nombres para el scraping. |
networkPolicy.metricsScrapeSelector | {} | Restringe el ingreso para la recopilación de métricas a un espacio de nombres específico de Prometheus mediante una etiqueta; si está vacío, permite la recopilación desde cualquier pod de Kubernetes en el espacio de nombres del chart. |
networkPolicy.kubeletProbeCIDRs | [] | CIDR desde los que se originan las sondas de estado del agente kubelet (IP de nodo). Si está vacío, permite el ingreso de sondas desde cualquier origen, como ocurre con la exención de kubelet en la mayoría de los CNI; establézcalo explícitamente con una denegación predeterminada estricta. |
networkPolicy.apiserverCIDRs | [] (init --managed lo completa a partir de la VPC del cluster) | CIDR del servidor de la API de Kubernetes. Si está vacío, no se genera ninguna regla de salida para el servidor de la API y los demonios fallarán en su primera solicitud de token en Kubernetes gestionado hasta que se configure. Fije los rangos de la VPC, no las direcciones propias del servidor de la API, que cambian a lo largo de la vida del cluster. |