# Requires an ingress controller (e.g. ingress-nginx) already running # in the cluster — `kubectl get nodes` output didn't show one and # none was mentioned, so install one first: # kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.11.3/deploy/static/provider/baremetal/deploy.yaml # If you'd rather not run an ingress controller, delete this file and # uncomment the NodePort Service below instead. apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: gateway namespace: enkly annotations: cert-manager.io/cluster-issuer: production nginx.ingress.kubernetes.io/proxy-body-size: "25m" # chat file/photo attachments nginx.ingress.kubernetes.io/proxy-read-timeout: "300" # long-running agent/chat responses spec: ingressClassName: nginx tls: - hosts: - ai.enkly.org # match ENKLY_BASE_URL in 01-config.yaml, or set to your real domain secretName: ai-enkly-org rules: - host: ai.enkly.org http: paths: - path: / pathType: Prefix backend: service: {name: gateway, port: {number: 8080}} --- # Bare-metal fallback with no ingress controller installed: exposes # the gateway directly on every node's IP at a fixed high port. Apply # this INSTEAD OF (not in addition to) the Ingress above if preferred. # apiVersion: v1 # kind: Service # metadata: {name: gateway-nodeport, namespace: enkly} # spec: # type: NodePort # selector: {app: gateway} # ports: [{name: http, port: 8080, targetPort: http, nodePort: 30080}]