apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
  name: nocodelytics-tracker-api
spec:
  secretName: nocodelytics-tracker-api-net-tls
  issuerRef:
    name: letsencrypt-prod
    kind: Issuer
  commonName: nocodelytics-tracker-api.nocodelytics.com
  dnsNames:
    - nocodelytics-tracker-api.nocodelytics.com
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nocodelytics-tracker-api
spec:
  replicas: 1
  selector:
    matchLabels:
      ms: nocodelytics-tracker-api
  template:
    metadata:
      labels:
        ms: nocodelytics-tracker-api
    spec:
      imagePullSecrets:
        - name: regcred
      containers:
        - name: nocodelytics-tracker-api
          imagePullPolicy: Always
          image: container-registry.nocodelytics.com/nocodelytics-tracker-api:latest
          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-tracker-api
spec:
  type: NodePort
  selector:
    ms: nocodelytics-tracker-api
  ports:
    - port: 3001
      targetPort: 3001
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: nocodelytics-tracker-api-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: nocodelytics-tracker-api.nocodelytics.com
      http:
        paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: ssl-redirect
                port:
                  name: use-annotation
          - path: /
            pathType: Prefix
            backend:
              service:
                name: nocodelytics-tracker-api
                # port:
                #   number: 3001
  tls:
    - hosts:
        - nocodelytics-tracker-api.nocodelytics.com
      secretName: nocodelytics-tracker-api-net-tls