headscale
headscale
 
 
An open source, self-hosted implementation of the Tailscale control server.
Maintainers
| Name | Url | |
|---|---|---|
| WrenIX | https://wrenix.eu | 
Usage
Helm must be installed and setup to your kubernetes cluster to use the charts. Refer to Helm’s documentation to get started. Once Helm has been set up correctly, fetch the charts as follows:
helm pull oci://codeberg.org/wrenix/helm-charts/headscaleYou can install a chart release using the following command:
helm install headscale-release oci://codeberg.org/wrenix/helm-charts/headscale --values values.yamlTo uninstall a chart release use helm’s delete command:
helm uninstall headscale-releaseValues
| Key | Type | Default | Description | 
|---|---|---|---|
| affinity | object | {} | |
| autoscaling.enabled | bool | false | |
| autoscaling.maxReplicas | int | 100 | |
| autoscaling.minReplicas | int | 1 | |
| autoscaling.targetCPUUtilizationPercentage | int | 80 | |
| fullnameOverride | string | "" | |
| headscale.certmanager.dnsNames[0] | string | "example.com" | |
| headscale.certmanager.enabled | bool | true | |
| headscale.certmanager.issuerRef.group | string | "cert-manager.io" | |
| headscale.certmanager.issuerRef.kind | string | "ClusterIssuer" | |
| headscale.certmanager.issuerRef.name | string | "letsencrypt-prod" | |
| headscale.config.database.postgres.host | string | "localhost" | |
| headscale.config.database.postgres.name | string | "headscale" | |
| headscale.config.database.postgres.pass | string | "bar" | |
| headscale.config.database.postgres.port | int | 5432 | |
| headscale.config.database.postgres.user | string | "foo" | |
| headscale.config.database.sqlite.path | string | "/var/lib/headscale/db.sqlite" | |
| headscale.config.database.type | string | "sqlite" | |
| headscale.config.derp.paths | list | [] | |
| headscale.config.derp.server.enabled | bool | true | |
| headscale.config.derp.server.private_key_path | string | "/etc/headscale/secrets/derp.key" | |
| headscale.config.derp.server.region_code | string | "headscale" | |
| headscale.config.derp.server.region_id | int | 999 | |
| headscale.config.derp.server.region_name | string | "Headscale Embedded DERP" | |
| headscale.config.derp.server.stun_listen_addr | string | "0.0.0.0:3478" | |
| headscale.config.derp.update_frequency | string | "24h" | |
| headscale.config.derp.urls | list | [] | |
| headscale.config.disable_check_updates | bool | true | |
| headscale.config.dns.base_domain | string | "example.com" | |
| headscale.config.grpc_listen_addr | string | ":50443" | |
| headscale.config.listen_addr | string | ":8080" | |
| headscale.config.metrics_listen_addr | string | ":9090" | |
| headscale.config.noise.private_key_path | string | "/etc/headscale/secrets/noise.key" | |
| headscale.config.prefixes.allocation | string | "sequential" | |
| headscale.config.prefixes.v4 | string | "100.64.0.0/10" | |
| headscale.config.prefixes.v6 | string | "fd7a:115c:a1e0::/48" | |
| headscale.config.private_key_path | string | "/etc/headscale/secrets/wireguard.key" | |
| headscale.config.server_url | string | "http://127.0.0.1:8080" | |
| headscale.config.tls_cert_path | string | "/etc/headscale/certs/tls.crt" | |
| headscale.config.tls_key_path | string | "/etc/headscale/certs/tls.key" | |
| headscale.keys.create | bool | true | Create a new private key, if not exists | 
| headscale.keys.existingSecret | string | "" | Use an existing secret | 
| image.pullPolicy | string | "IfNotPresent" | |
| image.registry | string | "ghcr.io" | |
| image.repository | string | "juanfont/headscale" | |
| image.tag | string | "" | |
| imagePullSecrets | list | [] | |
| ingress.annotations | object | {} | |
| ingress.className | string | "" | |
| ingress.enabled | bool | false | |
| ingress.hosts[0].host | string | "chart-example.local" | |
| ingress.hosts[0].paths[0].path | string | "/" | |
| ingress.hosts[0].paths[0].pathType | string | "ImplementationSpecific" | |
| ingress.tls | list | [] | |
| nameOverride | string | "" | |
| networkPolicy.egress.enabled | bool | false | activate egress no networkpolicy | 
| networkPolicy.egress.extra | list | [] | egress rules | 
| networkPolicy.enabled | bool | false | |
| networkPolicy.ingress.derp | list | [{"ipBlock":{"cidr":"0.0.0.0/0"}},{"ipBlock":{"cidr":"::/0"}}] | ingress for derp | 
| networkPolicy.ingress.grpc | list | [] | ingress for grpc port | 
| networkPolicy.ingress.http | list | [] | ingress for http port (e.g. ingress-controller) | 
| networkPolicy.ingress.metrics | list | [] | ingress for metrics port (e.g. prometheus) | 
| nodeSelector | object | {} | |
| persistence.accessMode | string | "ReadWriteOnce" | |
| persistence.annotations | object | {} | |
| persistence.enabled | bool | false | |
| persistence.existingClaim | string | nil | A manually managed Persistent Volume and Claim Requires persistence.enabled: true If defined, PVC must be created manually before volume will be bound | 
| persistence.hostPath | string | nil | Create a PV on Node with given hostPath storageClass has to be manual | 
| persistence.size | string | "1Gi" | |
| persistence.storageClass | string | nil | data Persistent Volume Storage Class If defined, storageClassName: | 
| podAnnotations | object | {} | |
| podLabels | object | {} | |
| podSecurityContext | object | {} | |
| prometheus.rules.additionalRules | list | [] | |
| prometheus.rules.defaults.enabled | bool | true | |
| prometheus.rules.defaults.filter | string | "" | |
| prometheus.rules.defaults.lastUpdates.critical | int | 3600 | |
| prometheus.rules.defaults.lastUpdates.info | int | 300 | |
| prometheus.rules.defaults.lastUpdates.warning | int | 600 | |
| prometheus.rules.enabled | bool | false | |
| prometheus.rules.labels | object | {} | |
| prometheus.servicemonitor.enabled | bool | false | |
| prometheus.servicemonitor.labels | object | {} | |
| replicaCount | int | 1 | |
| resources | object | {} | |
| securityContext | object | {} | |
| service.annotations | string | nil | |
| service.derp.annotations | string | nil | |
| service.derp.port | int | 3478 | |
| service.derp.type | string | "LoadBalancer" | |
| service.port.grpc | int | 50443 | |
| service.port.http | int | 8080 | |
| service.port.metrics | int | 9090 | |
| service.type | string | "ClusterIP" | |
| serviceAccount.annotations | object | {} | |
| serviceAccount.create | bool | true | |
| serviceAccount.name | string | "" | |
| tolerations | list | [] | 
Autogenerated from chart metadata using helm-docs