Helm Chart Reference
The Kubetail Helm chart deploys the full Kubetail stack into a Kubernetes cluster. It is published our helm chart repository located at https://kubetail-org.github.io/helm-charts/ and the source code is located in the kubetail-org/helm-charts repo under charts/kubetail.
The chart deploys four components:
| Component | Kind | Description |
|---|---|---|
| Dashboard | Deployment | Web UI and backend API |
| Cluster API | Deployment | GraphQL API for cluster operations |
| Cluster Agent | DaemonSet | Per-node agent that reads container log files |
Install
Section titled “Install”Add the kubetail Helm repository:
helm repo add kubetail https://kubetail-org.github.io/helm-charts/Install the chart into a dedicated namespace:
helm install kubetail kubetail/kubetail --namespace kubetail-system --create-namespaceBy default, the chart autogenerates required secrets (KUBETAIL_DASHBOARD_SESSION_SECRET) and stores them in a Kubernetes Secret so they are preserved across upgrades.
Upgrade
Section titled “Upgrade”Pull the latest chart index, then upgrade the release:
helm repo update kubetailhelm upgrade kubetail kubetail/kubetail --namespace kubetail-systemUninstall
Section titled “Uninstall”helm uninstall kubetail --namespace kubetail-systemValues
Section titled “Values”| Parameter | Type | Default | Description |
|---|---|---|---|
fullnameOverride | string | null | Override the chart’s computed fullname |
nameOverride | string | null | Override the chart’s name |
namespaceOverride | string | null | Override the release’s namespace |
General
Section titled “General”| Parameter | Type | Default | Description |
|---|---|---|---|
kubetail.allowedNamespaces | array | [] | Restrict all components to these namespaces |
kubetail.secrets.KUBETAIL_DASHBOARD_SESSION_SECRET | string | null | Base64-encoded dashboard session secret (autogenerated if null) |
kubetail.global.annotations | map | {} | Extra annotations added to all resources |
kubetail.global.labels | map | {} | Extra labels added to all resources |
Dashboard
Section titled “Dashboard”| Parameter | Type | Default | Description |
|---|---|---|---|
kubetail.dashboard.enabled | bool | true | Enable or disable the Dashboard component |
kubetail.dashboard.authMode | string | "auto" | Auth mode (auto, token) |
kubetail.dashboard.runtimeConfig | map | see values.yaml | Dashboard runtime configuration (see Dashboard reference) |
kubetail.dashboard.image.registry | string | "ghcr.io" | Image registry |
kubetail.dashboard.image.repository | string | "kubetail-org/kubetail-dashboard" | Image repository |
kubetail.dashboard.image.tag | string | see values.yaml | Image tag |
kubetail.dashboard.image.digest | string | null | Override image tag with a digest |
kubetail.dashboard.image.pullPolicy | string | "IfNotPresent" | Image pull policy |
kubetail.dashboard.container.name | string | "kubetail-dashboard" | Container name |
kubetail.dashboard.container.extraEnv | array | [] | Additional environment variables |
kubetail.dashboard.container.extraEnvFrom | array | [] | Additional envFrom sources |
kubetail.dashboard.container.securityContext | map | see values.yaml | Container security context |
kubetail.dashboard.container.resources | map | {} | CPU/memory resource requests and limits |
kubetail.dashboard.podTemplate.annotations | map | {} | Additional pod annotations |
kubetail.dashboard.podTemplate.labels | map | {} | Additional pod labels |
kubetail.dashboard.podTemplate.extraContainers | array | [] | Additional sidecar containers |
kubetail.dashboard.podTemplate.securityContext | map | {} | Pod security context |
kubetail.dashboard.podTemplate.affinity | map | {} | Pod affinity rules |
kubetail.dashboard.podTemplate.nodeSelector | map | {} | Node selector |
kubetail.dashboard.podTemplate.tolerations | array | [] | Pod tolerations |
kubetail.dashboard.configMap.name | string | null | Override ConfigMap name |
kubetail.dashboard.configMap.annotations | map | {} | Additional ConfigMap annotations |
kubetail.dashboard.configMap.labels | map | {} | Additional ConfigMap labels |
kubetail.dashboard.deployment.name | string | null | Override Deployment name |
kubetail.dashboard.deployment.annotations | map | {} | Additional Deployment annotations |
kubetail.dashboard.deployment.labels | map | {} | Additional Deployment labels |
kubetail.dashboard.deployment.replicas | int | 1 | Number of replicas |
kubetail.dashboard.deployment.revisionHistoryLimit | int | 5 | Revision history limit |
kubetail.dashboard.deployment.strategy | map | {type: RollingUpdate} | Deployment update strategy |
kubetail.dashboard.ingress.enabled | bool | false | Create an Ingress resource |
kubetail.dashboard.ingress.name | string | null | Override Ingress name |
kubetail.dashboard.ingress.annotations | map | {} | Additional Ingress annotations |
kubetail.dashboard.ingress.labels | map | {} | Additional Ingress labels |
kubetail.dashboard.ingress.rules | array | [] | Ingress rules |
kubetail.dashboard.ingress.tls | array | [] | Ingress TLS configuration |
kubetail.dashboard.ingress.className | string | null | Ingress class name |
kubetail.dashboard.rbac.name | string | null | Override RBAC resource names |
kubetail.dashboard.rbac.annotations | map | {} | Additional RBAC annotations |
kubetail.dashboard.rbac.labels | map | {} | Additional RBAC labels |
kubetail.dashboard.secret.enabled | bool | true | Create a Secret resource |
kubetail.dashboard.secret.name | string | null | Override Secret name |
kubetail.dashboard.secret.annotations | map | {} | Additional Secret annotations |
kubetail.dashboard.secret.labels | map | {} | Additional Secret labels |
kubetail.dashboard.service.name | string | null | Override Service name |
kubetail.dashboard.service.annotations | map | {} | Additional Service annotations |
kubetail.dashboard.service.labels | map | {} | Additional Service labels |
kubetail.dashboard.service.ports.http | int | 8080 | Service HTTP port |
kubetail.dashboard.serviceAccount.name | string | null | Override ServiceAccount name |
kubetail.dashboard.serviceAccount.annotations | map | {} | Additional ServiceAccount annotations |
kubetail.dashboard.serviceAccount.labels | map | {} | Additional ServiceAccount labels |
Cluster API
Section titled “Cluster API”| Parameter | Type | Default | Description |
|---|---|---|---|
kubetail.clusterAPI.enabled | bool | true | Enable or disable the Cluster API component |
kubetail.clusterAPI.runtimeConfig | map | see values.yaml | Cluster API runtime configuration (see Cluster API reference) |
kubetail.clusterAPI.image.registry | string | "ghcr.io" | Image registry |
kubetail.clusterAPI.image.repository | string | "kubetail-org/kubetail-cluster-api" | Image repository |
kubetail.clusterAPI.image.tag | string | see values.yaml | Image tag |
kubetail.clusterAPI.image.digest | string | null | Override image tag with a digest |
kubetail.clusterAPI.image.pullPolicy | string | "IfNotPresent" | Image pull policy |
kubetail.clusterAPI.container.name | string | "kubetail-cluster-api" | Container name |
kubetail.clusterAPI.container.extraEnv | array | [] | Additional environment variables |
kubetail.clusterAPI.container.extraEnvFrom | array | [] | Additional envFrom sources |
kubetail.clusterAPI.container.securityContext | map | see values.yaml | Container security context |
kubetail.clusterAPI.container.resources | map | {} | CPU/memory resource requests and limits |
kubetail.clusterAPI.podTemplate.annotations | map | {} | Additional pod annotations |
kubetail.clusterAPI.podTemplate.labels | map | {} | Additional pod labels |
kubetail.clusterAPI.podTemplate.extraContainers | array | [] | Additional sidecar containers |
kubetail.clusterAPI.podTemplate.securityContext | map | {} | Pod security context |
kubetail.clusterAPI.podTemplate.affinity | map | {} | Pod affinity rules |
kubetail.clusterAPI.podTemplate.nodeSelector | map | {} | Node selector |
kubetail.clusterAPI.podTemplate.tolerations | array | [] | Pod tolerations |
kubetail.clusterAPI.configMap.name | string | null | Override ConfigMap name |
kubetail.clusterAPI.configMap.annotations | map | {} | Additional ConfigMap annotations |
kubetail.clusterAPI.configMap.labels | map | {} | Additional ConfigMap labels |
kubetail.clusterAPI.deployment.name | string | null | Override Deployment name |
kubetail.clusterAPI.deployment.annotations | map | {} | Additional Deployment annotations |
kubetail.clusterAPI.deployment.labels | map | {} | Additional Deployment labels |
kubetail.clusterAPI.deployment.replicas | int | 1 | Number of replicas |
kubetail.clusterAPI.deployment.revisionHistoryLimit | int | 5 | Revision history limit |
kubetail.clusterAPI.deployment.strategy | map | {type: RollingUpdate} | Deployment update strategy |
kubetail.clusterAPI.rbac.name | string | null | Override RBAC resource names |
kubetail.clusterAPI.rbac.annotations | map | {} | Additional RBAC annotations |
kubetail.clusterAPI.rbac.labels | map | {} | Additional RBAC labels |
kubetail.clusterAPI.secret.enabled | bool | true | Create a Secret resource |
kubetail.clusterAPI.secret.name | string | null | Override Secret name |
kubetail.clusterAPI.secret.annotations | map | {} | Additional Secret annotations |
kubetail.clusterAPI.secret.labels | map | {} | Additional Secret labels |
kubetail.clusterAPI.service.name | string | null | Override Service name |
kubetail.clusterAPI.service.annotations | map | {} | Additional Service annotations |
kubetail.clusterAPI.service.labels | map | {} | Additional Service labels |
kubetail.clusterAPI.service.ports.http | int | 8080 | Service HTTP port |
kubetail.clusterAPI.serviceAccount.name | string | null | Override ServiceAccount name |
kubetail.clusterAPI.serviceAccount.annotations | map | {} | Additional ServiceAccount annotations |
kubetail.clusterAPI.serviceAccount.labels | map | {} | Additional ServiceAccount labels |
Cluster Agent
Section titled “Cluster Agent”| Parameter | Type | Default | Description |
|---|---|---|---|
kubetail.clusterAgent.enabled | bool | true | Enable or disable the Cluster Agent component |
kubetail.clusterAgent.runtimeConfig | map | see values.yaml | Cluster Agent runtime configuration (see Cluster Agent reference) |
kubetail.clusterAgent.image.registry | string | "ghcr.io" | Image registry |
kubetail.clusterAgent.image.repository | string | "kubetail-org/kubetail-cluster-agent" | Image repository |
kubetail.clusterAgent.image.tag | string | see values.yaml | Image tag |
kubetail.clusterAgent.image.digest | string | null | Override image tag with a digest |
kubetail.clusterAgent.image.pullPolicy | string | "IfNotPresent" | Image pull policy |
kubetail.clusterAgent.container.name | string | "kubetail-cluster-agent" | Container name |
kubetail.clusterAgent.container.extraEnv | array | [] | Additional environment variables |
kubetail.clusterAgent.container.extraEnvFrom | array | [] | Additional envFrom sources |
kubetail.clusterAgent.container.securityContext | map | see values.yaml | Container security context |
kubetail.clusterAgent.container.resources | map | {} | CPU/memory resource requests and limits |
kubetail.clusterAgent.podTemplate.annotations | map | {} | Additional pod annotations |
kubetail.clusterAgent.podTemplate.labels | map | {} | Additional pod labels |
kubetail.clusterAgent.podTemplate.extraContainers | array | [] | Additional sidecar containers |
kubetail.clusterAgent.podTemplate.securityContext | map | {fsGroup: 0} | Pod security context |
kubetail.clusterAgent.podTemplate.affinity | map | {} | Pod affinity rules |
kubetail.clusterAgent.podTemplate.nodeSelector | map | {} | Node selector |
kubetail.clusterAgent.podTemplate.tolerations | array | see values.yaml | Pod tolerations (master/control-plane nodes tolerated by default) |
kubetail.clusterAgent.configMap.name | string | null | Override ConfigMap name |
kubetail.clusterAgent.configMap.annotations | map | {} | Additional ConfigMap annotations |
kubetail.clusterAgent.configMap.labels | map | {} | Additional ConfigMap labels |
kubetail.clusterAgent.daemonSet.name | string | null | Override DaemonSet name |
kubetail.clusterAgent.daemonSet.annotations | map | {} | Additional DaemonSet annotations |
kubetail.clusterAgent.daemonSet.labels | map | {} | Additional DaemonSet labels |
kubetail.clusterAgent.networkPolicy.enabled | bool | true | Create a NetworkPolicy resource |
kubetail.clusterAgent.networkPolicy.name | string | null | Override NetworkPolicy name |
kubetail.clusterAgent.networkPolicy.annotations | map | {} | Additional NetworkPolicy annotations |
kubetail.clusterAgent.networkPolicy.labels | map | {} | Additional NetworkPolicy labels |
kubetail.clusterAgent.service.name | string | null | Override Service name |
kubetail.clusterAgent.service.annotations | map | {} | Additional Service annotations |
kubetail.clusterAgent.service.labels | map | {} | Additional Service labels |
kubetail.clusterAgent.service.ports.grpc | int | 50051 | Service gRPC port |
kubetail.clusterAgent.serviceAccount.name | string | null | Override ServiceAccount name |
kubetail.clusterAgent.serviceAccount.annotations | map | {} | Additional ServiceAccount annotations |
kubetail.clusterAgent.serviceAccount.labels | map | {} | Additional ServiceAccount labels |