Skip to content

[feat] PVC 생성/리사이즈 분리 + StorageClass 신규 설계 적용 #50

@pkhyrn268

Description

@pkhyrn268

Description:

배경

현재 /pvc API는 생성과 리사이즈를 같은 엔드포인트에서 처리하고,
StorageClass의 subdir 템플릿 문법이 NFS CSI 프로비저너에서 지원되지
않아
모든 유저 PVC가 같은 NFS 디렉터리를 공유하는 버그가 있음.

문제

  1. B-3: WAS가 storage 필드 없이 POST /pvc 호출 시
    "pvcs list is required" 400 에러로 PVC 생성 전체 실패
  2. StorageClass subdir 파싱 버그:
    ${pvc.annotations.nfs.io/username} 문법은
    NFS CSI v4.13.1에서 미지원 → 모든 PVC가 리터럴 경로 하나를 공유
  3. 생성/리사이즈 혼재: 같은 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 수정)

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions