blob: d952c2ce69247ebe781bffb37676e4de2af204e0 [file] [log] [blame]
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: znc
namespace: mulk
labels:
name: znc
k8s-app: znc
annotations:
kubernetes.io/ingress.class: nginx
cert-manager.io/cluster-issuer: letsencrypt-prod
spec:
rules:
- host: znc.mulk.eu
http:
paths:
- path: /.well-known/acme-challenge
pathType: ImplementationSpecific
backend:
service:
name: znc
port:
name: acme
- path: /
pathType: ImplementationSpecific
backend:
service:
name: znc
port:
name: znc
tls:
- secretName: znc-tls
hosts:
- znc.mulk.eu
---
apiVersion: v1
kind: Service
metadata:
name: znc
namespace: mulk
labels:
name: znc
k8s-app: znc
spec:
selector:
name: znc
type: ClusterIP
ports:
- name: zncs
port: 10456
targetPort: zncs
protocol: TCP
- name: znc
port: 10457
targetPort: znc
protocol: TCP
- name: acme
port: 10458
targetPort: acme
protocol: TCP
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: znc
namespace: mulk
labels:
name: znc
k8s-app: znc
spec:
replicas: 1
strategy:
rollingUpdate:
maxSurge: 1
maxUnavailable: 1
selector:
matchLabels:
k8s-app: znc
name: znc
template:
metadata:
labels:
name: znc
k8s-app: znc
spec:
imagePullSecrets:
- name: kube-registry-token
containers:
- name: master
image: docker.io/library/znc:1.8.2-slim
env:
- name: TZ
value: Europe/Vienna
- name: PUID
value: "80"
- name: PGID
value: "80"
volumeMounts:
- name: data
mountPath: /znc-data
- name: acme
mountPath: /etc/letsencrypt
ports:
- name: zncs
containerPort: 10456
hostPort: 10456
- name: znc
containerPort: 10457
- name: acme
image: docker.io/certbot/certbot
command: ['/bin/sh']
args:
- -c
- 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
volumeMounts:
- name: acme
mountPath: /etc/letsencrypt
ports:
- containerPort: 80
name: acme
volumes:
- name: data
persistentVolumeClaim:
claimName: znc-data
- name: acme
persistentVolumeClaim:
claimName: znc-acme
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: znc-data
namespace: mulk
labels:
k8s-app: znc
annotations:
volume.beta.kubernetes.io/storage-provisioner: rancher.io/local-path
spec:
storageClassName: local-path
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: znc-acme
namespace: mulk
labels:
k8s-app: znc
annotations:
volume.beta.kubernetes.io/storage-provisioner: rancher.io/local-path
spec:
storageClassName: local-path
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
---