# 개발 세션 하나. __NAME__을 세션 이름으로 바꿔 적용한다.
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: __NAME__-home
spec:
  accessModes: [ReadWriteOnce]
  resources:
    requests:
      storage: 1Gi
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: __NAME__
  labels:
    session: "true"
spec:
  replicas: 1
  strategy:
    type: Recreate   # 템플릿 변경으로 교체할 때 옛 파드를 먼저 내린다
  selector:
    matchLabels:
      app: __NAME__
  template:
    metadata:
      labels:
        app: __NAME__
    spec:
      securityContext:
        fsGroup: 1000
      containers:
        - name: ide
          image: codercom/code-server:4.144.0
          args: ["--auth", "none", "--bind-addr", "0.0.0.0:8080", "/home/coder"]
          ports:
            - containerPort: 8080
          readinessProbe:
            tcpSocket:
              port: 8080
          resources:
            limits:
              nvidia.com/gpu: 1
          volumeMounts:
            - name: home
              mountPath: /home/coder
            - name: tmp
              mountPath: /tmp
      volumes:
        - name: home
          persistentVolumeClaim:
            claimName: __NAME__-home
        - name: tmp
          emptyDir: {}
---
apiVersion: v1
kind: Service
metadata:
  name: __NAME__
spec:
  selector:
    app: __NAME__
  ports:
    - port: 8080
      targetPort: 8080
