| --- |
| 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 |
| --- |