= headscale
image::https://img.shields.io/badge/Version-0.2.6-informational?style=flat-square[Version: 0.2.6]
image::https://img.shields.io/badge/Version-application-informational?style=flat-square[Type: application]
image::https://img.shields.io/badge/AppVersion-0.22.3-informational?style=flat-square[AppVersion: 0.22.3]
== Maintainers
.Maintainers
|===
| Name | Email | Url
| WrenIX
|
| <https://wrenix.eu>
|===
== Usage
Helm must be installed and setup to your kubernetes cluster to use the charts.
Refer to Helm's https://helm.sh/docs[documentation] to get started.
Once Helm has been set up correctly, fetch the charts as follows:
[source,bash]
----
helm pull oci://codeberg.org/wrenix/helm-charts/headscale
----
You can install a chart release using the following command:
[source,bash]
----
helm install headscale-release oci://codeberg.org/wrenix/helm-charts/headscale --values values.yaml
----
To uninstall a chart release use `helm`'s delete command:
[source,bash]
----
helm uninstall headscale-release
----
== Values
.Values
|===
| 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.db_path
| string
| `"/var/lib/headscale/db.sqlite"`
|
| headscale.config.db_type
| string
| `"sqlite3"`
|
| headscale.config.derp.paths
| list
| `[]`
|
| headscale.config.derp.server.enabled
| bool
| `true`
|
| 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.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.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
| `"joanfont/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
| `""`
|
| 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: <storageClass> 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)
| podAnnotations
| object
| `{}`
|
| podLabels
| object
| `{}`
|
| podSecurityContext
| object
| `{}`
|
| prometheus.rules.additionalRules
| list
| `[]`
|
| 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 https://github.com/norwoodj/helm-docs[helm-docs]