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` | — |
|
| ArgoCD | `argocd` | — |
|
||||||
| CNPG Operator | `cnpg-system` | — |
|
| CNPG Operator | `cnpg-system` | — |
|
||||||
| PostgreSQL (HA) | `postgres` | 3 instances (CloudNativePG) |
|
| PostgreSQL (HA) | `postgres` | 2 instances (CloudNativePG) |
|
||||||
| Forgejo | `forgejo` | `git.czsk.it` / `git.asxp.io` |
|
| Forgejo | `forgejo` | `git.czsk.it` / `git.asxp.io` |
|
||||||
| WatchParty | `watchparty` | `watch.k8s.asxp.io` |
|
| WatchParty | `watchparty` | `watch.k8s.asxp.io` |
|
||||||
|
| VBrowser Gateway | `vbrowser-gateway` | `vbrowser.k8s.asxp.io` |
|
||||||
|
|
||||||
## Structure
|
## 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:
|
containers:
|
||||||
- name: watchparty
|
- name: watchparty
|
||||||
image: muaeabudhabi/watchparty-v8:latest
|
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:
|
ports:
|
||||||
- containerPort: 8080
|
- containerPort: 8080
|
||||||
name: http
|
name: http
|
||||||
|
|
@ -29,9 +32,38 @@ spec:
|
||||||
secretKeyRef:
|
secretKeyRef:
|
||||||
name: watchparty-db-credentials
|
name: watchparty-db-credentials
|
||||||
key: DATABASE_URL
|
key: DATABASE_URL
|
||||||
|
envFrom:
|
||||||
|
- secretRef:
|
||||||
|
name: watchparty-vbrowser-config
|
||||||
|
optional: true
|
||||||
resources:
|
resources:
|
||||||
requests:
|
requests:
|
||||||
memory: 256Mi
|
memory: 256Mi
|
||||||
cpu: 100m
|
cpu: 100m
|
||||||
limits:
|
limits:
|
||||||
memory: 512Mi
|
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