Twingate is remote access for the modern world.
$ helm repo add springboard https://helm-charts.springboardvr.com
$ helm install my-release springboard/twingate -n [namespace]This chart bootstraps a Twingate Access Node deployment on a Kubernetes cluster using the Helm package manager.
This chart is heavily influenced by Bitnami charts best practices.
- Kubernetes 1.12+
- Helm 3.0+
To install the chart with the release name my-release:
$ helm repo add springboard https://helm-charts.springboardvr.com
$ helm install my-release springboard/twingate -n [namespace]These commands deploy Twingate on the Kubernetes cluster in the default configuration. The Parameters section lists the parameters that can be configured during installation.
Tip: List all releases using
helm ls -n [namespace]
To uninstall/delete the my-release deployment:
$ helm del my-release -n [namespace]The command removes all the Kubernetes components associated with the chart and deletes the release.
The following table lists the configurable parameters of the Twingate chart and their default values.
| Parameter | Description | Default |
|---|---|---|
image.registry |
Twingate image registry | docker.io |
image.repository |
Twingate image name | twingate/access-node |
image.tag |
Twingate image tag | latest |
image.pullPolicy |
Twingate image pull policy | IfNotPresent |
image.pullSecrets |
Specify docker-registry secret names as an array | [] (does not add image pull secrets to deployed pods) |
nameOverride |
String to partially override twingate.fullname template | nil |
fullnameOverride |
String to fully override twingate.fullname template | nil |
replicas |
Number of replicas for the application | 1 |
applicationPort |
Port where the application will be running | 80 |
extraEnv |
Any extra environment variables to be pass to the pods | {} |
envFrom |
An envFrom for the deployment, for adding a secret as ENV vars | {} |
affinity |
Map of node/pod affinities | {} (The value is evaluated as a template) |
nodeSelector |
node labels for pod assignment | {} (The value is evaluated as a template) |
tolerations |
Tolerations for pod assignment | [] (The value is evaluated as a template) |
securityContext.enabled |
Enable security context | true |
securityContext.fsGroup |
Group ID for the container | 1001 |
securityContext.runAsUser |
User ID for the container | 1001 |
resources |
Resource requests and limits | {} |
service.type |
Kubernetes Service type | ClusterIP |
service.port |
Kubernetes Service port | 80 |
service.annotations |
Annotations for the Service | {} |
service.loadBalancerIP |
LoadBalancer IP if Service type is LoadBalancer |
nil |
service.nodePort |
nodePort if Service type is LoadBalancer or nodePort |
nil |
ingress.enabled |
Enable ingress controller resource | false |
ingress.hosts[0].name |
Hostname to your Twingate installation | twingate.local |
ingress.hosts[0].path |
Path within the url structure | / |
ingress.hosts[0].tls |
Utilize TLS backend in ingress | false |
ingress.hosts[0].certManager |
Add annotations for cert-manager | false |
ingress.hosts[0].tlsSecret |
TLS Secret (certificates) | twingate.local-tls-secret |
ingress.hosts[0].annotations |
Annotations for this host's ingress record | [] |
ingress.secrets[0].name |
TLS Secret Name | nil |
ingress.secrets[0].certificate |
TLS Secret Certificate | nil |
ingress.secrets[0].key |
TLS Secret Key | nil |
The above parameters map to the env variables defined in spittal/twingate.
Specify each parameter using the --set key=value[,key=value] argument to helm install. For example,
$ helm install my-release \
--set repository=https://github.com/jbianquetti-nami/simple-twingate-app.git,replicas=2 \
springboard/twingateThe above command clones the remote git repository to the /app/ directory of the container. Additionally it sets the number of replicas to 2.
Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart. For example,
$ helm install my-release -f values.yaml springboard/twingateTip: You can use the default values.yaml
You can configure any twingate setting using the envFrom parameter like so. Learn about envFrom.
envFrom:
- configMapRef:
name: name-of-config-map-with-env-varsOr you can do individual settings like.
extraArgs:
- name: TYPESENSE_API_PORT
value: 8080A list of the available options can be found in the Twingate documentation.
First install the nginx-ingress controller and then deploy the Twingate Helm chart with the following parameters:
ingress.enabled=true
ingress.host=example.com
service.type=ClusterIPYou must manually create a secret containing the certificate and key for your domain. Then ensure you deploy the Helm chart with the following ingress configuration:
ingress:
enabled: false
path: /
host: example.com
annotations:
kubernetes.io/ingress.class: nginx
tls:
hosts:
- example.com