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"