blob: d952c2ce69247ebe781bffb37676e4de2af204e0 [file] [log] [blame]
Matthias Andreas Benkardf0f2f1a2026-10-23 07:15:47 +02001---
2apiVersion: networking.k8s.io/v1
3kind: Ingress
4metadata:
5 name: znc
6 namespace: mulk
7 labels:
8 name: znc
9 k8s-app: znc
10 annotations:
11 kubernetes.io/ingress.class: nginx
12 cert-manager.io/cluster-issuer: letsencrypt-prod
13spec:
14 rules:
15 - host: znc.mulk.eu
16 http:
17 paths:
18 - path: /.well-known/acme-challenge
19 pathType: ImplementationSpecific
20 backend:
21 service:
22 name: znc
23 port:
24 name: acme
25 - path: /
26 pathType: ImplementationSpecific
27 backend:
28 service:
29 name: znc
30 port:
31 name: znc
32 tls:
33 - secretName: znc-tls
34 hosts:
35 - znc.mulk.eu
36---
37apiVersion: v1
38kind: Service
39metadata:
40 name: znc
41 namespace: mulk
42 labels:
43 name: znc
44 k8s-app: znc
45spec:
46 selector:
47 name: znc
48 type: ClusterIP
49 ports:
50 - name: zncs
51 port: 10456
52 targetPort: zncs
53 protocol: TCP
54 - name: znc
55 port: 10457
56 targetPort: znc
57 protocol: TCP
58 - name: acme
59 port: 10458
60 targetPort: acme
61 protocol: TCP
62---
63apiVersion: apps/v1
64kind: Deployment
65metadata:
66 name: znc
67 namespace: mulk
68 labels:
69 name: znc
70 k8s-app: znc
71spec:
72 replicas: 1
73 strategy:
74 rollingUpdate:
75 maxSurge: 1
76 maxUnavailable: 1
77 selector:
78 matchLabels:
79 k8s-app: znc
80 name: znc
81 template:
82 metadata:
83 labels:
84 name: znc
85 k8s-app: znc
86 spec:
87 imagePullSecrets:
88 - name: kube-registry-token
89 containers:
90 - name: master
91 image: docker.io/library/znc:1.8.2-slim
92 env:
93 - name: TZ
94 value: Europe/Vienna
95 - name: PUID
96 value: "80"
97 - name: PGID
98 value: "80"
99 volumeMounts:
100 - name: data
101 mountPath: /znc-data
102 - name: acme
103 mountPath: /etc/letsencrypt
104 ports:
105 - name: zncs
106 containerPort: 10456
107 hostPort: 10456
108 - name: znc
109 containerPort: 10457
110 - name: acme
111 image: docker.io/certbot/certbot
112 command: ['/bin/sh']
113 args:
114 - -c
115 - certbot certonly --email=id+letsencrypt@mulk.eu --agree-tos --non-interactive --standalone -d znc.mulk.eu && cat /etc/letsencrypt/live/znc.mulk.eu/privkey.pem /etc/letsencrypt/live/znc.mulk.eu/fullchain.pem >/etc/letsencrypt/live/znc.mulk.eu/fullchain+key.pem && chown -R 100:101 /etc/letsencrypt && sleep 30d
116 volumeMounts:
117 - name: acme
118 mountPath: /etc/letsencrypt
119 ports:
120 - containerPort: 80
121 name: acme
122 volumes:
123 - name: data
124 persistentVolumeClaim:
125 claimName: znc-data
126 - name: acme
127 persistentVolumeClaim:
128 claimName: znc-acme
129---
130apiVersion: v1
131kind: PersistentVolumeClaim
132metadata:
133 name: znc-data
134 namespace: mulk
135 labels:
136 k8s-app: znc
137 annotations:
138 volume.beta.kubernetes.io/storage-provisioner: rancher.io/local-path
139spec:
140 storageClassName: local-path
141 accessModes:
142 - ReadWriteOnce
143 resources:
144 requests:
145 storage: 1Gi
146---
147apiVersion: v1
148kind: PersistentVolumeClaim
149metadata:
150 name: znc-acme
151 namespace: mulk
152 labels:
153 k8s-app: znc
154 annotations:
155 volume.beta.kubernetes.io/storage-provisioner: rancher.io/local-path
156spec:
157 storageClassName: local-path
158 accessModes:
159 - ReadWriteOnce
160 resources:
161 requests:
162 storage: 1Gi
163---