blob: f85f7534333778f68435a01d9e96e3a67c8a4981 [file] [log] [blame]
Giorgi Lekveishvilicb64b162023-06-16 11:51:00 +04001# apiVersion: v1
2# kind: PersistentVolumeClaim
3# metadata:
4# name: tailscale
5# namespace: {{ .Release.Namespace }}
6# annotations:
7# helm.sh/resource-policy: keep
8# spec:
9# accessModes:
10# - ReadWriteOnce
11# resources:
12# requests:
13# storage: 1Gi
Giorgi Lekveishvili2c1253c2023-06-13 12:06:42 +040014---
Giorgi Lekveishvili81ba75e2023-06-15 21:14:21 +040015apiVersion: headscale.dodo.cloud/v1
16kind: HeadscaleUser
17metadata:
18 name: {{ .Values.username }}
19 namespace: {{ .Release.Namespace }}
20spec:
Giorgi Lekveishvili2a1c3522023-06-21 14:15:08 +040021 headscaleAddress: {{ .Values.apiServer }}
Giorgi Lekveishvili81ba75e2023-06-15 21:14:21 +040022 name: {{ .Values.username }}
23 preAuthKey:
24 enabled: true
25 secretName: {{ .Values.preAuthKeySecret }}
26---
Giorgi Lekveishvili2c1253c2023-06-13 12:06:42 +040027apiVersion: apps/v1
28kind: Deployment
29metadata:
30 name: tailscale
31 namespace: {{ .Release.Namespace }}
32spec:
33 selector:
34 matchLabels:
35 app: tailscale
36 replicas: 1
37 template:
38 metadata:
39 labels:
40 app: tailscale
41 spec:
Giorgi Lekveishvilicb64b162023-06-16 11:51:00 +040042 # volumes:
43 # - name: tailscale
44 # persistentVolumeClaim:
45 # claimName: tailscale
Giorgi Lekveishvili2c1253c2023-06-13 12:06:42 +040046 containers:
47 - name: tailscale
48 image: {{ .Values.image.repository }}:{{ .Values.image.tag }}
49 imagePullPolicy: {{ .Values.image.pullPolicy }}
50 securityContext:
51 privileged: true
52 capabilities:
53 add:
54 - NET_ADMIN
55 env:
56 - name: TS_KUBE_SECRET
Giorgi Lekveishvilicb64b162023-06-16 11:51:00 +040057 value: {{ .Values.preAuthKeySecret }}
58 # - name: TS_STATE_DIR
59 # value: /tailscale-state
60 # - name: TS_AUTHKEY
61 # valueFrom:
62 # secretKeyRef:
63 # name: {{ .Values.preAuthKeySecret }}
64 # key: key
Giorgi Lekveishvili81ba75e2023-06-15 21:14:21 +040065 - name: TS_HOSTNAME
66 value: {{ .Values.hostname }}
giof6ad2982024-08-23 17:42:49 +040067 {{- if .Values.ipSubnet }}
Giorgi Lekveishvili81ba75e2023-06-15 21:14:21 +040068 - name: TS_ROUTES
69 value: {{ .Values.ipSubnet }}
giof6ad2982024-08-23 17:42:49 +040070 {{- end }}
Giorgi Lekveishvili2c1253c2023-06-13 12:06:42 +040071 - name: TS_EXTRA_ARGS
Giorgi Lekveishvili117694a2023-06-16 11:35:07 +040072 value: --login-server={{ .Values.loginServer }}
Giorgi Lekveishvilicb64b162023-06-16 11:51:00 +040073 # volumeMounts:
74 # - name: tailscale
75 # mountPath: /tailscale-state
Giorgi Lekveishvili488ac3b2023-06-16 12:14:11 +040076---
77apiVersion: rbac.authorization.k8s.io/v1
78kind: Role
79metadata:
80 name: secrets
81 namespace: {{ .Release.Namespace }}
82rules:
83- apiGroups: [""]
84 resources: ["secrets"]
Giorgi Lekveishvili89212972023-06-16 12:32:06 +040085 verbs: ["get", "watch", "list", "patch", "update"]
Giorgi Lekveishvili488ac3b2023-06-16 12:14:11 +040086---
87apiVersion: rbac.authorization.k8s.io/v1
88kind: RoleBinding
89metadata:
90 name: secrets
91 namespace: {{ .Release.Namespace }}
92subjects:
93- kind: ServiceAccount
94 name: default
95 namespace: {{ .Release.Namespace }}
96roleRef:
97 kind: Role
98 name: secrets
99 apiGroup: rbac.authorization.k8s.io