Files
vt-fe/k3s.yaml

227 lines
4.8 KiB
YAML

---
apiVersion: v1
kind: Namespace
metadata:
name: vt
labels:
name: vt
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: vt-fe
namespace: vt
spec:
selector:
matchLabels:
app: vt-fe
template:
metadata:
labels:
app: vt-fe
spec:
containers:
- name: vt-fe
image: git.kocoder.xyz/kocoded/vt-fe:2025120501
resources:
limits:
memory: "128Mi"
cpu: "500m"
requests:
memory: "64Mi"
cpu: "500m"
env:
- name: BACKEND_URI
value: "https://vt-api.kocoder.xyz"
- name: RPC_URI
value: "https://vt-rpc.kocoder.xyz"
- name: OIDC_USE_MOCK
value: "false"
- name: OIDC_ISSUER_URI
value: https://keycloak.kocoder.xyz/realms/che
- name: OIDC_CLIENT_ID
value: eventory
- name: VITE_ENVIRONMENT
value: "development"
ports:
- containerPort: 3000
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: vt-be
namespace: vt
spec:
selector:
matchLabels:
app: vt-be
template:
metadata:
labels:
app: vt-be
spec:
containers:
- name: vt-be
image: git.kocoder.xyz/kocoded/vt-be:2025120302
resources:
limits:
memory: "128Mi"
cpu: "500m"
requests:
memory: "64Mi"
cpu: "500m"
env:
- name: CLIENT_ID
value: "golang-vt-backend"
- name: CLIENT_SECRET
value: "awumIoacqNmwKTxRilQSM9cDmA7xA0j0"
- name: BACKEND_URI
value: "https://vt-api.kocoder.xyz"
- name: FRONTEND_URI
value: "https://vt.kocoder.xyz"
- name: OTEL_EXPORTER_OTLP_TRACES_ENDPOINT
value: "https://otel.kocoder.xyz/v1/traces"
- name: OTEL_EXPORTER_OTLP_METRICS_ENDPOINT
value: "https://otel.kocoder.xyz/v1/metrics"
- name: OTEL_EXPORTER_OTLP_LOGS_ENDPOINT
value: "https://otel.kocoder.xyz/v1/logs"
- name: DB_DSN
value: "host=10.1.0.2 user=vt password=20a1c7809cd065bc5afe7c36fde26abf625316c8a83cc841b435c9acf3619b1f dbname=vt port=5432 sslmode=prefer TimeZone=Europe/Vienna"
- name: VALKEY_HOST
value: "10.1.0.2"
- name: VALKEY_PORT
value: "6379"
- name: VALKEY_USER
value: "default"
- name: VALKEY_PASS
value: "Konsti2007!"
ports:
- containerPort: 3000
name: "api"
- containerPort: 3002
name: "rpc"
---
apiVersion: v1
kind: Service
metadata:
name: vt-fe
namespace: vt
spec:
selector:
app: vt-fe
ports:
- port: 3000
targetPort: 3000
---
apiVersion: v1
kind: Service
metadata:
name: vt-be
namespace: vt
spec:
selector:
app: vt-be
ports:
- port: 3000
targetPort: 3000
- port: 3002
targetPort: 3002
---
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
name: vt-kocoder-xyz-prod
namespace: vt
spec:
secretName: vt-tls
issuerRef:
name: letsencrypt-prod
kind: ClusterIssuer
commonName: "vt.kocoder.xyz"
dnsNames:
- "vt.kocoder.xyz"
- "vt-api.kocoder.xyz"
- "vt-rpc.kocoder.xyz"
---
apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata:
name: vt-fe
namespace: vt
spec:
entryPoints:
- web
- websecure
routes:
- kind: Rule
match: Host(`vt.kocoder.xyz`)
observability:
accessLogs: true
metrics: true
tracing: true
priority: 10
services:
- kind: Service
name: vt-fe
namespace: vt
passHostHeader: true
port: 3000
responseForwarding:
flushInterval: 1ms
scheme: http
sticky:
cookie:
httpOnly: true
name: cookie
secure: true
strategy: wrr
weight: 10
- kind: Rule
match: Host(`vt-api.kocoder.xyz`)
observability:
accessLogs: true
metrics: true
tracing: true
priority: 10
services:
- kind: Service
name: vt-be
namespace: vt
passHostHeader: true
port: 3000
responseForwarding:
flushInterval: 1ms
scheme: http
sticky:
cookie:
httpOnly: true
name: cookie
secure: true
strategy: wrr
weight: 10
- kind: Rule
match: Host(`vt-rpc.kocoder.xyz`)
observability:
accessLogs: true
metrics: true
tracing: true
priority: 10
services:
- kind: Service
name: vt-be
namespace: vt
passHostHeader: true
port: 3002
responseForwarding:
flushInterval: 1ms
scheme: http
sticky:
cookie:
httpOnly: true
name: cookie
secure: true
strategy: wrr
weight: 10
tls:
secretName: vt-tls