Sunnypup-Helm/templates/routing.yaml

284 lines
5.4 KiB
YAML
Raw Permalink Normal View History

apiVersion: v1
kind: Secret
metadata:
name: digitalocean-dns
namespace: cert-manager
data:
access-token: {{ .Values.digitalocean.access }}
---
apiVersion: cert-manager.io/v1
kind: ClusterIssuer
metadata:
name: letsencrypt
spec:
acme:
email: ava@sunnypup.io
server: https://acme-v02.api.letsencrypt.org/directory
privateKeySecretRef:
name: cert-issuer-account-key
solvers:
- dns01:
digitalocean:
tokenSecretRef:
name: digitalocean-dns
key: access-token
---
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
name: sunnypup-certs
spec:
secretName: sunnypup-certs
issuerRef:
name: letsencrypt
kind: ClusterIssuer
dnsNames:
- cloud.sunnypup.io
- office.sunnypup.io
- echo.sunnypup.io
- hephaestus.sunnypup.io
# - mimir.sunnypup.io
- annwn.sunnypup.io
---
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
name: smsm-certs
spec:
secretName: smsm-certs
issuerRef:
name: letsencrypt
kind: ClusterIssuer
dnsNames:
- stmatthewsanmateo.org
---
apiVersion: k8s.nginx.org/v1
kind: VirtualServer
metadata:
name: church-site
labels:
acme.cert-manager.io/http01-solver: "true"
spec:
host: stmatthewsanmateo.org
tls:
cert-manager:
cluster-issuer: letsencrypt
secret: smsm-certs
redirect:
enable: true
upstreams:
- name: wordpress
service: wordpress
port: 80
routes:
- path: /
action:
pass: wordpress
---
#apiVersion: k8s.nginx.org/v1
#kind: VirtualServer
#metadata:
# name: observability
# labels:
# acme.cert-manager.io/http01-solver: "true"
#spec:
# host: mimir.sunnypup.io
# tls:
# cert-manager:
# cluster-issuer: letsencrypt
# secret: sunnypup-certs
# redirect:
# enable: true
# upstreams:
# - name: observability
# service: observability
# port: 3000
# routes:
# - path: /
# action:
# pass: observability
#---
apiVersion: k8s.nginx.org/v1
kind: VirtualServer
metadata:
name: forge
labels:
acme.cert-manager.io/http01-solver: "true"
spec:
host: hephaestus.sunnypup.io
tls:
cert-manager:
cluster-issuer: letsencrypt
secret: sunnypup-certs
redirect:
enable: true
upstreams:
- name: forge
service: forge
port: 3000
client-max-body-size: 1G
read-timeout: 120s
routes:
- path: /
action:
pass: forge
---
apiVersion: k8s.nginx.org/v1
kind: VirtualServer
metadata:
name: collabora
labels:
acme.cert-manager.io/http01-solver: "true"
spec:
host: office.sunnypup.io
tls:
cert-manager:
cluster-issuer: letsencrypt
secret: sunnypup-certs
redirect:
enable: true
upstreams:
- name: collabora
service: collabora-collabora-online
port: 9980
client-max-body-size: 1G
routes:
- path: /browser
action:
pass: collabora
- path: /hosting/discovery
action:
pass: collabora
- path: /hosting/capabilities
action:
pass: collabora
- path: /cool/adminws
action:
proxy:
upstream: collabora
requestHeaders:
pass: true
set:
- name: Connection
value: "Upgrade"
- name: Upgrade
value: "${http_upgrade}"
- path: ~ ^/cool/(.*)/ws$
action:
proxy:
upstream: collabora
requestHeaders:
pass: true
set:
- name: Connection
value: "Upgrade"
- name: Upgrade
value: "${http_upgrade}"
- path: /cool
action:
pass: collabora
---
apiVersion: k8s.nginx.org/v1
kind: VirtualServer
metadata:
name: homeassistant
labels:
acme.cert-manager.io/http01-solver: "true"
spec:
host: annwn.sunnypup.io
tls:
cert-manager:
cluster-issuer: letsencrypt
secret: sunnypup-certs
redirect:
enable: true
upstreams:
- name: homeassistant
service: homeassistant
port: 8123
routes:
- path: /
location-snippets: |
proxy_buffering off;
proxy_redirect http:// https://;
action:
proxy:
upstream: homeassistant
requestHeaders:
pass: true
---
apiVersion: k8s.nginx.org/v1
kind: VirtualServer
metadata:
name: echo
labels:
acme.cert-manager.io/http01-solver: "true"
spec:
host: echo.sunnypup.io
tls:
cert-manager:
cluster-issuer: letsencrypt
secret: sunnypup-certs
upstreams:
- name: echo
service: echo
port: 8080
routes:
- path: /
action:
pass: echo
---
apiVersion: k8s.nginx.org/v1
kind: VirtualServer
metadata:
name: nextcloud
labels:
acme.cert-manager.io/http01-solver: "true"
spec:
host: cloud.sunnypup.io
tls:
cert-manager:
cluster-issuer: letsencrypt
secret: sunnypup-certs
redirect:
enable: true
upstreams:
- name: nextcloud
service: nextcloud
port: 80
client-max-body-size: 4g
routes:
- path: /
action:
pass: nextcloud
---
apiVersion: k8s.nginx.org/v1
kind: TransportServer
metadata:
name: forge-ssh-passthrough
spec:
listener:
name: forge-ssh
protocol: TCP
upstreams:
- name: forge
service: forge
port: 22222
action:
pass: forge
---
apiVersion: k8s.nginx.org/v1
kind: TransportServer
metadata:
name: matter-passthrough
spec:
listener:
name: matter-api
protocol: TCP
upstreams:
- name: matter
service: matter
port: 5580
action:
pass: matter