watchparty vbrowser and workers
This commit is contained in:
parent
45782dd711
commit
65d51cef01
7 changed files with 144 additions and 1 deletions
|
|
@ -23,9 +23,10 @@ GitOps repo for self-hosted Kubernetes cluster on Hetzner, managed by ArgoCD.
|
|||
|-----|-----------|-----|
|
||||
| ArgoCD | `argocd` | — |
|
||||
| CNPG Operator | `cnpg-system` | — |
|
||||
| PostgreSQL (HA) | `postgres` | 3 instances (CloudNativePG) |
|
||||
| PostgreSQL (HA) | `postgres` | 2 instances (CloudNativePG) |
|
||||
| Forgejo | `forgejo` | `git.czsk.it` / `git.asxp.io` |
|
||||
| WatchParty | `watchparty` | `watch.k8s.asxp.io` |
|
||||
| VBrowser Gateway | `vbrowser-gateway` | `vbrowser.k8s.asxp.io` |
|
||||
|
||||
## Structure
|
||||
|
||||
|
|
|
|||
20
apps/vbrowser-gateway.yaml
Normal file
20
apps/vbrowser-gateway.yaml
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
apiVersion: argoproj.io/v1alpha1
|
||||
kind: Application
|
||||
metadata:
|
||||
name: vbrowser-gateway
|
||||
namespace: argocd
|
||||
spec:
|
||||
project: default
|
||||
source:
|
||||
repoURL: ssh://git@git.czsk.it/asxpi/k8s-asxpio-gitops.git
|
||||
targetRevision: main
|
||||
path: apps/vbrowser-gateway
|
||||
destination:
|
||||
server: https://kubernetes.default.svc
|
||||
namespace: vbrowser-gateway
|
||||
syncPolicy:
|
||||
automated:
|
||||
prune: true
|
||||
selfHeal: true
|
||||
syncOptions:
|
||||
- CreateNamespace=true
|
||||
27
apps/vbrowser-gateway/configmap.yaml
Normal file
27
apps/vbrowser-gateway/configmap.yaml
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: vbrowser-gateway
|
||||
namespace: vbrowser-gateway
|
||||
data:
|
||||
nginx.conf: |
|
||||
events {
|
||||
worker_connections 1024;
|
||||
}
|
||||
http {
|
||||
server {
|
||||
listen 80;
|
||||
|
||||
location / {
|
||||
resolver 1.1.1.1 ipv6=off;
|
||||
proxy_pass http://$arg_ip;
|
||||
proxy_http_version 1.1;
|
||||
proxy_set_header Upgrade $http_upgrade;
|
||||
proxy_set_header Connection "upgrade";
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header Host $host;
|
||||
proxy_read_timeout 86400s;
|
||||
proxy_send_timeout 86400s;
|
||||
}
|
||||
}
|
||||
}
|
||||
35
apps/vbrowser-gateway/deployment.yaml
Normal file
35
apps/vbrowser-gateway/deployment.yaml
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: vbrowser-gateway
|
||||
namespace: vbrowser-gateway
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: vbrowser-gateway
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: vbrowser-gateway
|
||||
spec:
|
||||
containers:
|
||||
- name: nginx
|
||||
image: nginx:alpine
|
||||
ports:
|
||||
- containerPort: 80
|
||||
name: http
|
||||
volumeMounts:
|
||||
- name: config
|
||||
mountPath: /etc/nginx/nginx.conf
|
||||
subPath: nginx.conf
|
||||
resources:
|
||||
requests:
|
||||
memory: 32Mi
|
||||
cpu: 10m
|
||||
limits:
|
||||
memory: 64Mi
|
||||
volumes:
|
||||
- name: config
|
||||
configMap:
|
||||
name: vbrowser-gateway
|
||||
16
apps/vbrowser-gateway/ingress.yaml
Normal file
16
apps/vbrowser-gateway/ingress.yaml
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
apiVersion: traefik.io/v1alpha1
|
||||
kind: IngressRoute
|
||||
metadata:
|
||||
name: vbrowser-gateway
|
||||
namespace: vbrowser-gateway
|
||||
spec:
|
||||
entryPoints:
|
||||
- websecure
|
||||
routes:
|
||||
- match: Host(`vbrowser.k8s.asxp.io`)
|
||||
kind: Rule
|
||||
services:
|
||||
- name: vbrowser-gateway
|
||||
port: 80
|
||||
tls:
|
||||
certResolver: letsencrypt
|
||||
12
apps/vbrowser-gateway/service.yaml
Normal file
12
apps/vbrowser-gateway/service.yaml
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: vbrowser-gateway
|
||||
namespace: vbrowser-gateway
|
||||
spec:
|
||||
selector:
|
||||
app: vbrowser-gateway
|
||||
ports:
|
||||
- name: http
|
||||
port: 80
|
||||
targetPort: http
|
||||
|
|
@ -16,6 +16,9 @@ spec:
|
|||
containers:
|
||||
- name: watchparty
|
||||
image: muaeabudhabi/watchparty-v8:latest
|
||||
command: ["/bin/sh", "-c"]
|
||||
args:
|
||||
- sed -i 's/cpx11/cx23/g; s/cpx31/cx33/g' /app/server/vm/hetzner.ts && exec npm start
|
||||
ports:
|
||||
- containerPort: 8080
|
||||
name: http
|
||||
|
|
@ -29,9 +32,38 @@ spec:
|
|||
secretKeyRef:
|
||||
name: watchparty-db-credentials
|
||||
key: DATABASE_URL
|
||||
envFrom:
|
||||
- secretRef:
|
||||
name: watchparty-vbrowser-config
|
||||
optional: true
|
||||
resources:
|
||||
requests:
|
||||
memory: 256Mi
|
||||
cpu: 100m
|
||||
limits:
|
||||
memory: 512Mi
|
||||
- name: vmworker
|
||||
image: muaeabudhabi/watchparty-v8:latest
|
||||
command: ["/bin/sh", "-c"]
|
||||
args:
|
||||
- sed -i 's/cpx11/cx23/g; s/cpx31/cx33/g' /app/server/vm/hetzner.ts && exec node --experimental-strip-types server/vmWorker.ts
|
||||
workingDir: /app
|
||||
ports:
|
||||
- containerPort: 3100
|
||||
name: vmworker
|
||||
env:
|
||||
- name: DATABASE_URL
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: watchparty-db-credentials
|
||||
key: DATABASE_URL
|
||||
envFrom:
|
||||
- secretRef:
|
||||
name: watchparty-vbrowser-config
|
||||
optional: true
|
||||
resources:
|
||||
requests:
|
||||
memory: 128Mi
|
||||
cpu: 50m
|
||||
limits:
|
||||
memory: 256Mi
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue