blob: 479c3eaae37210009fbd958e8dbbb0e2c72d4618 [file] [log] [blame]
Giorgi Lekveishvili08a19412023-02-04 22:36:01 +04001apiVersion: cert-manager.io/v1
2kind: Certificate
3metadata:
4 name: headscale.{{ .Values.domain }}
5 namespace: {{ .Release.Namespace }}
6 annotations:
7 helm.sh/resource-policy: keep
8spec:
9 dnsNames:
10 - 'headscale.{{ .Values.domain }}'
11 issuerRef:
12 name: {{ .Values.certificateIssuer }}
13 kind: ClusterIssuer
14 secretName: cert-headscale.{{ .Values.domain }}
15---
16apiVersion: networking.k8s.io/v1
17kind: Ingress
18metadata:
19 name: ingress
20 namespace: {{ .Release.Namespace }}
21spec:
22 ingressClassName: {{ .Values.ingressClassName }}
23 tls:
24 - hosts:
25 - headscale.{{ .Values.domain }}
26 secretName: cert-headscale.{{ .Values.domain }}
27 rules:
28 - host: headscale.{{ .Values.domain }}
29 http:
30 paths:
31 - path: /
32 pathType: Prefix
33 backend:
34 service:
35 name: headscale
36 port:
37 name: http
38---
39apiVersion: v1
40kind: Service
41metadata:
42 name: headscale
43 namespace: {{ .Release.Namespace }}
44spec:
45 type: LoadBalancer
46 selector:
47 app: headscale
48 ports:
49 - name: http
50 port: 80
51 targetPort: http
52 protocol: TCP
53---
54apiVersion: v1
55kind: PersistentVolumeClaim
56metadata:
57 name: data
58 namespace: {{ .Release.Namespace }}
59spec:
60 accessModes:
61 - ReadWriteOnce
62 resources:
63 requests:
64 storage: {{ .Values.storage.size }}
65---
66apiVersion: apps/v1
67kind: StatefulSet
68metadata:
69 name: headscale
70 namespace: {{ .Release.Namespace }}
71spec:
72 selector:
73 matchLabels:
74 app: headscale
75 serviceName: headscale
76 replicas: 1
77 template:
78 metadata:
79 labels:
80 app: headscale
81 spec:
82 volumes:
83 - name: data
84 persistentVolumeClaim:
85 claimName: data
86 - name: config
87 configMap:
88 name: config
89 containers:
90 - name: headscale
91 image: {{ .Values.image.repository }}:{{ .Values.image.tag }}
92 imagePullPolicy: {{ .Values.image.pullPolicy }}
93 ports:
94 - name: http
95 containerPort: 8080
96 protocol: TCP
97 command: ["headscale", "--config=/headscale/config/config.yaml", "serve"]
98 resources:
99 # requests:
100 # memory: "10Mi"
101 # cpu: "10m"
102 # limits:
103 # memory: "20Mi"
104 # cpu: "100m"
105 # tolerations:
106 # - key: "pcloud"
107 # operator: "Equal"
108 # value: "role"
109 # effect: "NoSchedule"
110 volumeMounts:
111 - name: data
112 mountPath: /headscale/data
113 readOnly: false
114 - name: config
115 mountPath: /headscale/config
116 readOnly: true