k3s-infra/apps/codeserver/deployment.yaml
2023-10-05 14:34:37 +02:00

127 lines
2.1 KiB
YAML

apiVersion: v1
kind: Namespace
metadata:
name: codeserver
---
apiVersion: v1
kind: PersistentVolume
metadata:
namespace: codeserver
name: codeserver-data-nfs
labels:
directory: codeserver
spec:
storageClassName: fast
capacity:
storage: "10Gi"
volumeMode: Filesystem
accessModes:
- ReadWriteOnce
nfs:
path: /codeserver
server: nfs-server.storage.svc.cluster.local
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
namespace: codeserver
name: codeserver-data-nfs
spec:
storageClassName: fast
accessModes:
- ReadWriteOnce
resources:
requests:
storage: "10Gi"
selector:
matchLabels:
directory: codeserver
---
apiVersion: apps/v1
kind: Deployment
metadata:
namespace: codeserver
name: codeserver
labels:
app: codeserver
spec:
replicas: 1
selector:
matchLabels:
app: codeserver
template:
metadata:
labels:
app: codeserver
spec:
containers:
- name: codeserver
image: gitpod/openvscode-server
ports:
- containerPort: 3000
volumeMounts:
- mountPath: /home/workspace
name: codeserver-data
volumes:
- name: codeserver-data
persistentVolumeClaim:
claimName: codeserver-data-nfs
---
apiVersion: v1
kind: Service
metadata:
namespace: codeserver
name: codeserver
spec:
type: ClusterIP
ports:
- name: http
port: 3000
selector:
app: codeserver
---
apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
name: codeserver-ingress
namespace: codeserver
spec:
entryPoints:
- websecure
routes:
- match: Host(`code.kluster.moll.re`)
middlewares:
- name: codeserver-websocket
kind: Rule
services:
- name: codeserver
port: 3000
tls:
certResolver: default-tls
---
apiVersion: traefik.containo.us/v1alpha1
kind: Middleware
metadata:
name: codeserver-websocket
namespace: codeserver
spec:
headers:
customRequestHeaders:
X-Forwarded-Proto: "https"
# enable websockets
Upgrade: "websocket"