headscale

headscale

Version: 1.0.0 Type: application AppVersion: 0.23.0

An open source, self-hosted implementation of the Tailscale control server.

Maintainers

NameEmailUrl
WrenIXhttps://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/headscale

You can install a chart release using the following command:

helm install headscale-release oci://codeberg.org/wrenix/helm-charts/headscale --values values.yaml

To uninstall a chart release use helm’s delete command:

helm uninstall headscale-release

Values

KeyTypeDefaultDescription
affinityobject{}
autoscaling.enabledboolfalse
autoscaling.maxReplicasint100
autoscaling.minReplicasint1
autoscaling.targetCPUUtilizationPercentageint80
fullnameOverridestring""
headscale.certmanager.dnsNames[0]string"example.com"
headscale.certmanager.enabledbooltrue
headscale.certmanager.issuerRef.groupstring"cert-manager.io"
headscale.certmanager.issuerRef.kindstring"ClusterIssuer"
headscale.certmanager.issuerRef.namestring"letsencrypt-prod"
headscale.config.database.postgres.hoststring"localhost"
headscale.config.database.postgres.namestring"headscale"
headscale.config.database.postgres.passstring"bar"
headscale.config.database.postgres.portint5432
headscale.config.database.postgres.userstring"foo"
headscale.config.database.sqlite.pathstring"/var/lib/headscale/db.sqlite"
headscale.config.database.typestring"sqlite"
headscale.config.derp.pathslist[]
headscale.config.derp.server.enabledbooltrue
headscale.config.derp.server.private_key_pathstring"/etc/headscale/secrets/derp.key"
headscale.config.derp.server.region_codestring"headscale"
headscale.config.derp.server.region_idint999
headscale.config.derp.server.region_namestring"Headscale Embedded DERP"
headscale.config.derp.server.stun_listen_addrstring"0.0.0.0:3478"
headscale.config.derp.update_frequencystring"24h"
headscale.config.derp.urlslist[]
headscale.config.disable_check_updatesbooltrue
headscale.config.dns.base_domainstring"example.com"
headscale.config.grpc_listen_addrstring":50443"
headscale.config.listen_addrstring":8080"
headscale.config.metrics_listen_addrstring":9090"
headscale.config.noise.private_key_pathstring"/etc/headscale/secrets/noise.key"
headscale.config.prefixes.allocationstring"sequential"
headscale.config.prefixes.v4string"100.64.0.0/10"
headscale.config.prefixes.v6string"fd7a:115c:a1e0::/48"
headscale.config.private_key_pathstring"/etc/headscale/secrets/wireguard.key"
headscale.config.server_urlstring"http://127.0.0.1:8080"
headscale.config.tls_cert_pathstring"/etc/headscale/certs/tls.crt"
headscale.config.tls_key_pathstring"/etc/headscale/certs/tls.key"
headscale.keys.createbooltrueCreate a new private key, if not exists
headscale.keys.existingSecretstring""Use an existing secret
image.pullPolicystring"IfNotPresent"
image.registrystring"ghcr.io"
image.repositorystring"juanfont/headscale"
image.tagstring""
imagePullSecretslist[]
ingress.annotationsobject{}
ingress.classNamestring""
ingress.enabledboolfalse
ingress.hosts[0].hoststring"chart-example.local"
ingress.hosts[0].paths[0].pathstring"/"
ingress.hosts[0].paths[0].pathTypestring"ImplementationSpecific"
ingress.tlslist[]
nameOverridestring""
networkPolicy.egress.enabledboolfalseactivate egress no networkpolicy
networkPolicy.egress.extralist[]egress rules
networkPolicy.enabledboolfalse
networkPolicy.ingress.derplist[{"ipBlock":{"cidr":"0.0.0.0/0"}},{"ipBlock":{"cidr":"::/0"}}]ingress for derp
networkPolicy.ingress.grpclist[]ingress for grpc port
networkPolicy.ingress.httplist[]ingress for http port (e.g. ingress-controller)
networkPolicy.ingress.metricslist[]ingress for metrics port (e.g. prometheus)
nodeSelectorobject{}
persistence.accessModestring"ReadWriteOnce"
persistence.annotationsobject{}
persistence.enabledboolfalse
persistence.existingClaimstringnilA manually managed Persistent Volume and Claim Requires persistence.enabled: true If defined, PVC must be created manually before volume will be bound
persistence.hostPathstringnilCreate a PV on Node with given hostPath storageClass has to be manual
persistence.sizestring"1Gi"
persistence.storageClassstringnildata Persistent Volume Storage Class If defined, storageClassName: If set to “-”, storageClassName: “”, which disables dynamic provisioning If undefined (the default) or set to null, no storageClassName spec is set, choosing the default provisioner. (gp2 on AWS, standard on GKE, AWS & OpenStack)
podAnnotationsobject{}
podLabelsobject{}
podSecurityContextobject{}
prometheus.rules.additionalRuleslist[]
prometheus.rules.defaults.enabledbooltrue
prometheus.rules.defaults.filterstring""
prometheus.rules.defaults.lastUpdates.criticalint3600
prometheus.rules.defaults.lastUpdates.infoint300
prometheus.rules.defaults.lastUpdates.warningint600
prometheus.rules.enabledboolfalse
prometheus.rules.labelsobject{}
prometheus.servicemonitor.enabledboolfalse
prometheus.servicemonitor.labelsobject{}
replicaCountint1
resourcesobject{}
securityContextobject{}
service.annotationsstringnil
service.derp.annotationsstringnil
service.derp.portint3478
service.derp.typestring"LoadBalancer"
service.port.grpcint50443
service.port.httpint8080
service.port.metricsint9090
service.typestring"ClusterIP"
serviceAccount.annotationsobject{}
serviceAccount.createbooltrue
serviceAccount.namestring""
tolerationslist[]

Autogenerated from chart metadata using helm-docs