apiVersion: cert-manager.io/v1 kind: Certificate metadata: name: nocodelytics-dashboard spec: secretName: nocodelytics-dashboard-net-tls issuerRef: name: letsencrypt-prod kind: Issuer commonName: default.nocodelytics.com dnsNames: - default.nocodelytics.com --- apiVersion: apps/v1 kind: Deployment metadata: name: nocodelytics-dashboard spec: replicas: 1 selector: matchLabels: ms: nocodelytics-dashboard template: metadata: labels: ms: nocodelytics-dashboard spec: imagePullSecrets: - name: regcred containers: - name: nocodelytics-dashboard imagePullPolicy: Always image: container-registry.nocodelytics.com/nocodelytics/dashboard:latest env: - name: PORT value: "8080" - name: ENCRYPTION_KEY valueFrom: secretKeyRef: name: secrets key: ENCRYPTION_KEY resources: limits: memory: "512Mi" cpu: "100m" nodeSelector: kubernetes.io/arch: arm64 tolerations: - key: "arch" operator: "Equal" value: "arm64" effect: "NoSchedule" --- apiVersion: v1 kind: Service metadata: name: nocodelytics-dashboard spec: type: NodePort selector: ms: nocodelytics-dashboard ports: - port: 8080 targetPort: 8080 --- apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: nocodelytics-dashboard-nginx-ingress annotations: kubernetes.io/ingress.class: "traefik" cert-manager.io/issuer: letsencrypt-prod traefik.ingress.kubernetes.io/redirect-entry-point: https cert-manager.io/acme-challenge-type: http01 spec: rules: - host: default.nocodelytics.com http: paths: - path: / pathType: Prefix backend: service: name: ssl-redirect port: name: use-annotation - path: / pathType: Prefix backend: service: name: nocodelytics-dashboard tls: - hosts: - default.nocodelytics.com secretName: nocodelytics-dashboard-net-tls