41 lines
1.5 KiB
YAML
41 lines
1.5 KiB
YAML
# 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}]
|