* support running backend + frontend together on k8s * split nginx container into separate frontend service, which uses nignx-base image and the static frontend files * add nginx-based frontend image to docker-compose build (for building only, docker-based combined deployment not yet supported) * backend: - fix paths for email templates - chart: support '--set backend_only=1' and '--set frontend_only=1' to only force deploy one or the other - run backend from root /api in uvicorn
84 lines
2.0 KiB
YAML
84 lines
2.0 KiB
YAML
{{- if .Values.ingress.host }}
|
|
|
|
---
|
|
apiVersion: networking.k8s.io/v1
|
|
kind: Ingress
|
|
metadata:
|
|
name: ingress-main
|
|
namespace: {{ .Release.Namespace }}
|
|
annotations:
|
|
kubernetes.io/ingress.class: "nginx"
|
|
nginx.ingress.kubernetes.io/rewrite-target: /$1
|
|
nginx.ingress.kubernetes.io/enable-cors: "true"
|
|
nginx.ingress.kubernetes.io/cors-allow-origin: "*"
|
|
{{- if .Values.ingress.tls }}
|
|
cert-manager.io/cluster-issuer: "cert-main"
|
|
{{- end }}
|
|
nginx.ingress.kubernetes.io/upstream-vhost: "{{ .Values.ingress.host }}"
|
|
nginx.ingress.kubernetes.io/configuration-snippet: |
|
|
proxy_set_header X-Forwarded-Proto {{ .Values.ingress.scheme | default "https" }};
|
|
|
|
spec:
|
|
{{- if .Values.ingress.tls }}
|
|
tls:
|
|
- hosts:
|
|
- {{ .Values.ingress.host }}
|
|
secretName: cert-main
|
|
{{- end }}
|
|
|
|
rules:
|
|
- host: {{ .Values.ingress.host }}
|
|
http:
|
|
paths:
|
|
{{- if .Values.minio_local }}
|
|
- path: /data/(.*)
|
|
pathType: Prefix
|
|
backend:
|
|
service:
|
|
name: local-minio
|
|
port:
|
|
number: 9000
|
|
{{- end }}
|
|
|
|
- path: /api/(.*)
|
|
pathType: Prefix
|
|
backend:
|
|
service:
|
|
name: browsertrix-cloud-backend
|
|
port:
|
|
number: 8000
|
|
|
|
- path: /(.*)
|
|
pathType: Prefix
|
|
backend:
|
|
service:
|
|
name: browsertrix-cloud-frontend
|
|
port:
|
|
number: 80
|
|
|
|
{{ if .Values.ingress.tls }}
|
|
---
|
|
|
|
apiVersion: cert-manager.io/v1
|
|
kind: ClusterIssuer
|
|
metadata:
|
|
name: cert-main
|
|
namespace: cert-manager
|
|
spec:
|
|
acme:
|
|
# The ACME server URL
|
|
server: https://acme-v02.api.letsencrypt.org/directory
|
|
# Email address used for ACME registration
|
|
email: {{ .Values.ingress.cert_email }}
|
|
# Name of a secret used to store the ACME account private key
|
|
privateKeySecretRef:
|
|
name: cert-main
|
|
# Enable the HTTP-01 challenge provider
|
|
solvers:
|
|
- http01:
|
|
ingress:
|
|
class: nginx
|
|
|
|
{{ end }}
|
|
{{ end }}
|