apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: adopt-a-street-ingress
  annotations:
    # Uncomment the appropriate ingress class for your cluster
    kubernetes.io/ingress.class: "haproxy"   # For HAProxy Ingress
    # kubernetes.io/ingress.class: "nginx"   # For NGINX Ingress

    # Uncomment if using cert-manager for TLS
    # cert-manager.io/cluster-issuer: "letsencrypt-prod"

    # Traefik specific annotations (uncomment if using Traefik)
    # traefik.ingress.kubernetes.io/router.entrypoints: web,websecure
    # traefik.ingress.kubernetes.io/router.middlewares: default-redirect-https@kubernetescrd
spec:
  ingressClassName: haproxy
  rules:
    - host: app.adopt-a-street.192.168.153.241.nip.io  # CHANGE THIS to your actual domain
      http:
        paths:
          # API endpoints
          - path: /api
            pathType: Prefix
            backend:
              service:
                name: adopt-a-street-backend
                port:
                  number: 5000

          # Socket.IO endpoints
          - path: /socket.io
            pathType: Prefix
            backend:
              service:
                name: adopt-a-street-backend
                port:
                  number: 5000

          # Frontend (must be last - catches all other paths)
          - path: /
            pathType: Prefix
            backend:
              service:
                name: adopt-a-street-frontend
                port:
                  number: 80

  # Uncomment for TLS/HTTPS
  # tls:
  #   - hosts:
  #       - adopt-a-street.local
  #     secretName: adopt-a-street-tls
