Description:
배경
현재 /pvc API는 생성과 리사이즈를 같은 엔드포인트에서 처리하고,
StorageClass의 subdir 템플릿 문법이 NFS CSI 프로비저너에서 지원되지
않아
모든 유저 PVC가 같은 NFS 디렉터리를 공유하는 버그가 있음.
문제
- B-3: WAS가
storage 필드 없이 POST /pvc 호출 시
"pvcs list is required" 400 에러로 PVC 생성 전체 실패
- StorageClass subdir 파싱 버그:
${pvc.annotations.nfs.io/username} 문법은
NFS CSI v4.13.1에서 미지원 → 모든 PVC가 리터럴 경로 하나를 공유
- 생성/리사이즈 혼재: 같은
POST /pvc 엔드포인트에서 존재
여부에 따라
생성/리사이즈를 분기 → 의도치 않은 리사이즈 발생 가능
해결 방안
StorageClass 신규 설계
nfs-user-storage: subdir: user/${pvc.metadata.name}
nfs-group-storage: subdir: group/${pvc.metadata.name}
PVC 이름 컨벤션 변경
- user PVC:
{username} (기존: pvc-{username}-share)
- group PVC:
{groupname} (기존: pvc-{name}-group-share)
API 분리
POST /pvc → 생성 전용 (이미 존재하면 409)
PATCH /pvc → 리사이즈 전용 (없으면 404)
storage 미지정 시 기본값 처리 (B-3 수정)
Description:
배경
현재
/pvcAPI는 생성과 리사이즈를 같은 엔드포인트에서 처리하고,StorageClass의 subdir 템플릿 문법이 NFS CSI 프로비저너에서 지원되지
않아
모든 유저 PVC가 같은 NFS 디렉터리를 공유하는 버그가 있음.
문제
storage필드 없이POST /pvc호출 시"pvcs list is required" 400 에러로 PVC 생성 전체 실패
${pvc.annotations.nfs.io/username}문법은NFS CSI v4.13.1에서 미지원 → 모든 PVC가 리터럴 경로 하나를 공유
POST /pvc엔드포인트에서 존재여부에 따라
생성/리사이즈를 분기 → 의도치 않은 리사이즈 발생 가능
해결 방안
StorageClass 신규 설계
nfs-user-storage:subdir: user/${pvc.metadata.name}nfs-group-storage:subdir: group/${pvc.metadata.name}PVC 이름 컨벤션 변경
{username}(기존:pvc-{username}-share){groupname}(기존:pvc-{name}-group-share)API 분리
POST /pvc→ 생성 전용 (이미 존재하면 409)PATCH /pvc→ 리사이즈 전용 (없으면 404)storage미지정 시 기본값 처리 (B-3 수정)