mirror of
				https://github.com/juanfont/headscale.git
				synced 2025-10-28 10:51:44 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			83 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			83 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
apiVersion: apps/v1
 | 
						|
kind: StatefulSet
 | 
						|
metadata:
 | 
						|
  name: headscale
 | 
						|
spec:
 | 
						|
  serviceName: headscale
 | 
						|
  replicas: 1
 | 
						|
  selector:
 | 
						|
    matchLabels:
 | 
						|
      app: headscale
 | 
						|
  template:
 | 
						|
    metadata:
 | 
						|
      labels:
 | 
						|
        app: headscale
 | 
						|
    spec:
 | 
						|
      containers:
 | 
						|
        - name: headscale
 | 
						|
          image: "headscale:latest"
 | 
						|
          imagePullPolicy: IfNotPresent
 | 
						|
          command: ["/go/bin/headscale", "serve"]
 | 
						|
          env:
 | 
						|
            - name: SERVER_URL
 | 
						|
              value: $(PUBLIC_PROTO)://$(PUBLIC_HOSTNAME)
 | 
						|
            - name: LISTEN_ADDR
 | 
						|
              valueFrom:
 | 
						|
                configMapKeyRef:
 | 
						|
                  name: headscale-config
 | 
						|
                  key: listen_addr
 | 
						|
            - name: METRICS_LISTEN_ADDR
 | 
						|
              valueFrom:
 | 
						|
                configMapKeyRef:
 | 
						|
                  name: headscale-config
 | 
						|
                  key: metrics_listen_addr
 | 
						|
            - name: DERP_MAP_PATH
 | 
						|
              value: /vol/config/derp.yaml
 | 
						|
            - name: EPHEMERAL_NODE_INACTIVITY_TIMEOUT
 | 
						|
              valueFrom:
 | 
						|
                configMapKeyRef:
 | 
						|
                  name: headscale-config
 | 
						|
                  key: ephemeral_node_inactivity_timeout
 | 
						|
            - name: DB_TYPE
 | 
						|
              value: sqlite3
 | 
						|
            - name: DB_PATH
 | 
						|
              value: /vol/data/db.sqlite
 | 
						|
          ports:
 | 
						|
            - name: http
 | 
						|
              protocol: TCP
 | 
						|
              containerPort: 8080
 | 
						|
          livenessProbe:
 | 
						|
            tcpSocket:
 | 
						|
              port: http
 | 
						|
            initialDelaySeconds: 30
 | 
						|
            timeoutSeconds: 5
 | 
						|
            periodSeconds: 15
 | 
						|
          volumeMounts:
 | 
						|
            - name: config
 | 
						|
              mountPath: /vol/config
 | 
						|
            - name: data
 | 
						|
              mountPath: /vol/data
 | 
						|
            - name: secret
 | 
						|
              mountPath: /vol/secret
 | 
						|
            - name: etc
 | 
						|
              mountPath: /etc/headscale
 | 
						|
      volumes:
 | 
						|
        - name: config
 | 
						|
          configMap:
 | 
						|
            name: headscale-site
 | 
						|
        - name: etc
 | 
						|
          configMap:
 | 
						|
            name: headscale-etc
 | 
						|
        - name: secret
 | 
						|
          secret:
 | 
						|
            secretName: headscale
 | 
						|
  volumeClaimTemplates:
 | 
						|
    - metadata:
 | 
						|
        name: data
 | 
						|
      spec:
 | 
						|
        storageClassName: local-path
 | 
						|
        accessModes: ["ReadWriteOnce"]
 | 
						|
        resources:
 | 
						|
          requests:
 | 
						|
            storage: 1Gi
 |