본문으로 건너뛰기

폼 편집기

폼 편집기는 YAML을 직접 작성하지 않고도 시각적 폼 인터페이스를 통해 Kubernetes 리소스를 생성하고 편집할 수 있는 기능입니다. 각 필드에 적절한 입력 컨트롤이 제공되므로 YAML 문법에 익숙하지 않은 사용자도 쉽게 리소스를 관리할 수 있습니다.

개요

폼 편집기는 리소스의 각 필드를 사용자 친화적인 입력 요소로 변환합니다. 다음과 같은 장점을 제공합니다.

  • YAML 문법 오류의 위험이 없습니다.
  • 각 필드에 대한 설명과 기본값이 표시됩니다.
  • 필수 필드가 명확하게 구분됩니다.
  • 데이터 타입에 맞는 입력 검증이 실시간으로 수행됩니다.

화면 구성

필드 그룹

관련된 필드들이 섹션별로 그룹화되어 표시됩니다. 일반적으로 다음과 같은 그룹으로 구성됩니다.

  • 메타데이터: 이름, 네임스페이스, 레이블, 어노테이션
  • 스펙: 리소스 타입에 따른 핵심 설정 필드
  • 고급 설정: 선택적 또는 전문적인 설정 필드

각 그룹은 접기/펼치기가 가능하여 관심 있는 설정에 집중할 수 있습니다.

도구 모음

화면 상단에는 다음 도구가 제공됩니다.

  • Apply 버튼: 현재 폼 내용을 클러스터에 적용합니다.
  • YAML 전환 버튼: YAML 편집기로 전환합니다.
  • 초기화 버튼: 폼 내용을 초기 상태로 되돌립니다.

지원 필드 타입

텍스트

단일 행 또는 여러 행의 텍스트를 입력하는 필드입니다. 리소스 이름, 컨테이너 이미지 주소, 설명 등에 사용됩니다. 입력 제한(최소/최대 길이, 패턴)이 설정된 경우 실시간으로 검증됩니다.

숫자

정수 또는 실수를 입력하는 필드입니다. 레플리카 수, 포트 번호, 리소스 용량 등에 사용됩니다. 최소값과 최대값이 설정된 경우 범위를 벗어나는 값을 입력하면 경고가 표시됩니다. 증가/감소 버튼을 사용하여 값을 조정할 수도 있습니다.

선택 (드롭다운)

미리 정의된 옵션 중 하나를 선택하는 필드입니다. 서비스 타입(ClusterIP, NodePort 등), 프로토콜(TCP, UDP), 재시작 정책 등에 사용됩니다.

키-값 쌍

레이블, 어노테이션, 환경 변수 등 키-값 형태의 데이터를 입력하는 필드입니다. + 추가 버튼을 클릭하여 새 키-값 쌍을 추가하고, 각 행의 삭제 버튼을 클릭하여 제거할 수 있습니다.

배열

포트 목록, 볼륨 마운트 목록 등 동일한 구조의 항목이 반복되는 필드입니다. + 추가 버튼으로 새 항목을 추가하고, 각 항목의 삭제 버튼으로 제거합니다. 항목의 순서를 드래그 앤 드롭으로 변경할 수 있는 경우도 있습니다.

불린 (토글)

true/false 값을 설정하는 필드입니다. 토글 스위치로 표현되며, 클릭으로 값을 전환합니다. 서비스 계정 토큰 자동 마운트, 호스트 네트워크 사용 여부 등에 사용됩니다.


리소스 설정 (CPU/Memory)

Deployment, StatefulSet, DaemonSet 등 워크로드 리소스의 컨테이너에 CPU와 Memory의 Request/Limit을 설정할 수 있는 전용 위젯입니다. 폼 편집기에서 컨테이너의 Resource Limits 섹션에 테이블 형태로 표시됩니다.

ResourceQuota 위젯 테이블

RequestsLimits
CPU텍스트 입력텍스트 입력
Memory숫자 입력 + 단위 선택숫자 입력 + 단위 선택

CPU 입력 형식 (millicores)

  • 100m: 0.1 CPU (100 millicores)
  • 500m: 0.5 CPU (500 millicores)
  • 1: 1 CPU (1000 millicores)
  • 2: 2 CPU (2000 millicores)

Memory 입력 형식 (Mi/Gi)

Memory는 숫자를 입력한 후 단위를 드롭다운에서 선택합니다.

  • Mi (Mebibytes): 예) 128Mi, 256Mi, 512Mi
  • Gi (Gibibytes): 예) 1Gi, 2Gi

Request와 Limit의 의미

  • Request: Pod 스케줄링 시 보장받을 최소 리소스 양입니다. Kubernetes 스케줄러가 이 값을 기반으로 Pod을 배치할 노드를 결정합니다.
  • Limit: 컨테이너가 사용할 수 있는 최대 리소스 양입니다. CPU Limit 초과 시 스로틀링되고, Memory Limit 초과 시 OOMKilled로 컨테이너가 종료됩니다.

참고: Request/Limit을 설정하지 않으면 Pod이 Best-Effort QoS로 분류되어 리소스 부족 시 가장 먼저 종료 대상이 됩니다. 안정적인 운영을 위해 반드시 설정하는 것을 권장합니다.


CRD 스키마 기반 동적 폼

CRD(사용자 정의 리소스 정의)에 OpenAPI v3 스키마가 정의되어 있는 경우, 폼 편집기가 해당 스키마를 읽어 동적으로 폼을 생성합니다. CRD 개발자가 정의한 스키마에 따라 적절한 입력 컨트롤이 자동으로 생성되므로, 사용자 정의 리소스도 표준 리소스와 동일한 편의성으로 편집할 수 있습니다.

지원되는 스키마 속성은 다음과 같습니다.

  • type: 필드의 데이터 타입 (string, integer, number, boolean, array, object)
  • description: 필드에 대한 설명 텍스트 (입력 필드 아래에 표시)
  • default: 기본값 (새 리소스 생성 시 자동 채워짐)
  • enum: 허용되는 값 목록 (드롭다운 선택으로 변환)
  • required: 필수 필드 표시
  • minimum/maximum: 숫자 필드의 범위 제한
  • minLength/maxLength: 텍스트 필드의 길이 제한
  • pattern: 텍스트 필드의 정규식 패턴 제약

Form / YAML 전환

폼 편집기와 YAML 편집기는 언제든지 서로 전환할 수 있습니다. 한쪽에서 수정한 내용은 다른 쪽에 즉시 반영됩니다.

  • 폼에서 YAML로: 폼 편집기 도구 모음의 YAML 버튼을 클릭하면 현재 폼 내용이 YAML 형식으로 변환되어 표시됩니다.
  • YAML에서 폼으로: YAML 편집기 도구 모음의 버튼을 클릭하면 현재 YAML 내용이 파싱되어 폼 편집기의 각 필드에 매핑됩니다.

참고: YAML에서 폼으로 전환할 때, 폼 편집기가 지원하지 않는 고급 필드는 YAML 전환 시에만 편집 가능합니다.


ConfigMap/Secret 생성 시 기본값

ConfigMap 기본값

새 ConfigMap 생성 시 다음 기본 구조가 제공됩니다.

  • 이름: 빈 텍스트 필드 (필수 입력)
  • 네임스페이스: 현재 선택된 네임스페이스가 기본값으로 설정
  • 데이터: 키-값 쌍 편집기. + 추가 버튼으로 데이터 항목을 추가

Secret 기본값

새 Secret 생성 시 다음 기본 구조가 제공됩니다.

  • 이름: 빈 텍스트 필드 (필수 입력)
  • 네임스페이스: 현재 선택된 네임스페이스가 기본값으로 설정
  • 타입: Opaque가 기본값으로 선택. 드롭다운에서 다른 타입 선택 가능
  • 데이터: 키-값 쌍 편집기. 입력한 값은 자동으로 Base64 인코딩되어 저장

타입을 변경하면 해당 타입에 필요한 키가 자동으로 추가됩니다. 예를 들어 kubernetes.io/tls 타입을 선택하면 tls.crttls.key 키가 자동으로 생성됩니다.


유효성 검증

폼 편집기는 입력값에 대한 실시간 유효성 검증을 제공합니다.

  • 필수 필드 검증: 필수 필드가 비어 있으면 해당 필드가 적색 테두리로 강조되고 오류 메시지가 표시됩니다.
  • 타입 검증: 숫자 필드에 문자를 입력하거나, 범위를 벗어나는 값을 입력하면 즉시 경고가 표시됩니다.
  • 서버 측 검증: Apply 시 Kubernetes API 서버에서 추가 검증이 수행되며, 서버 측 오류가 발생하면 오류 메시지가 다이얼로그로 표시됩니다.