blob: e1fbc0947295a7c78470249cda3f92b7a8fd247e [file] [log] [blame]
# apiVersion: v1
# kind: PersistentVolumeClaim
# metadata:
# name: tailscale
# namespace: {{ .Release.Namespace }}
# annotations:
# helm.sh/resource-policy: keep
# spec:
# accessModes:
# - ReadWriteOnce
# resources:
# requests:
# storage: 1Gi
---
apiVersion: headscale.dodo.cloud/v1
kind: HeadscaleUser
metadata:
name: {{ .Values.username }}
namespace: {{ .Release.Namespace }}
spec:
headscaleAddress: {{ .Values.loginServer }}
name: {{ .Values.username }}
preAuthKey:
enabled: true
secretName: {{ .Values.preAuthKeySecret }}
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: tailscale
namespace: {{ .Release.Namespace }}
spec:
selector:
matchLabels:
app: tailscale
replicas: 1
template:
metadata:
labels:
app: tailscale
spec:
# volumes:
# - name: tailscale
# persistentVolumeClaim:
# claimName: tailscale
containers:
- name: tailscale
image: {{ .Values.image.repository }}:{{ .Values.image.tag }}
imagePullPolicy: {{ .Values.image.pullPolicy }}
securityContext:
privileged: true
capabilities:
add:
- NET_ADMIN
env:
- name: TS_KUBE_SECRET
value: {{ .Values.preAuthKeySecret }}
# - name: TS_STATE_DIR
# value: /tailscale-state
# - name: TS_AUTHKEY
# valueFrom:
# secretKeyRef:
# name: {{ .Values.preAuthKeySecret }}
# key: key
- name: TS_HOSTNAME
value: {{ .Values.hostname }}
- name: TS_ROUTES
value: {{ .Values.ipSubnet }}
- name: TS_EXTRA_ARGS
value: --login-server={{ .Values.loginServer }}
# volumeMounts:
# - name: tailscale
# mountPath: /tailscale-state
---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: secrets
namespace: {{ .Release.Namespace }}
rules:
- apiGroups: [""]
resources: ["secrets"]
verbs: ["get", "watch", "list", "patch", "update"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: secrets
namespace: {{ .Release.Namespace }}
subjects:
- kind: ServiceAccount
name: default
namespace: {{ .Release.Namespace }}
roleRef:
kind: Role
name: secrets
apiGroup: rbac.authorization.k8s.io