1 - 코드 저장소

사용자는 프로젝트의 코드 저장소 메뉴에서 프로젝트에서 사용 중인 GitHub, GitLab 등 코드저장소 목록 조회 및 저장소 추가를 할 수 있습니다.

코드 저장소 시작하기

코드 저장소를 시작하려면 다음 절차를 따르세요.

  1. 메인 페이지에서 프로젝트 카드를 클릭하세요. 프로젝트 대시보드 페이지로 이동합니다.
  2. 왼쪽 메뉴에서 저장소 > 코드 저장소 메뉴를 클릭하세요. 코드 저장소 페이지로 이동합니다.

코드 저장소 추가하기

코드 저장소를 추가하려면 다음 절차를 따르세요.

  1. 코드 저장소 페이지에서 오른쪽 위의 코드 저장소 추가 버튼을 클릭하세요. 코드 저장소 추가 페이지로 이동합니다.
  2. 코드 저장소 추가 페이지에서 각 항목을 입력/설정 하세요.
  3. Connection Test 버튼을 클릭하세요.
  4. 저장 버튼을 클릭하세요.
    항목설명
    저장소 유형사용할 저장소를 선택
    • 등록 툴: 사용자가 사용가능한 SCM Repository 툴의 유형(Github, Gitlab 등)들을 선택하고 사용할 수 있습니다.
    • 미등록 툴: 등록되지 않을 툴의 도메인을 입력하여 사용할 수 있습니다. 미등록 툴 항목은 소스코드가 미포함된(Environment Only) App. 템플릿일때만 나타납니다.
    신규/기존 사용 여부신규 저장소 생성 또는 기존 저장소 사용 여부를 선택
    저장소 정보저장소 정보를 입력
    • 신규 저장소 생성 시 프로젝트그룹명/프로젝트명으로 URL이 구성됩니다.
    인증 정보인증정보를 입력하세요.
    저장소 정보저장소 정보를 입력
    • DevOps Console의 툴로 등록되지 않은 코드 저장소를 사용할 수 있습니다.
    • URL Check 과정을 추가로 거쳐야 합니다.
    표. 코드 저장소 추가 입력 항목

코드 저장소 관리하기

코드 저장소 목록

항목설명
사용자 권한 설정사용자 권한 설정 팝업창이 열립니다.
웹훅 설정웹훅 설정 팝업창이 열립니다.
편집 아이콘코드 저장소의 인증정보 수정 팝업창이 열립니다.
삭제코드 저장소를 삭제 합니다.
삭제시 SCM에 있는 코드 저장소도 함께 삭제 여부를 선택할 수 있습니다.
표. 코드 저장소 목록 화면 항목

코드 저장소에 계정 추가하기

코드 저장소에 계정을 추가하려면 다음 절차를 따르세요.

  1. 코드 저장소 페이지에서 설정할 코드 저장소의 사용자 권한 설정 아이콘을 클릭하세요. 사용자 권한 설정 팝업창이 열립니다.
  2. 사용자 권한 설정 팝업창에서 추가하려는 계정의 인증정보를 입력 후 저장 버튼을 클릭하여 계정 추가를 완료하세요.

코드 저장소에 웹훅 설정하기

코드 저장소 브랜치에 commit, push 등 변경이 발생하는 경우 파이프라인이 실행되도록 웹훅을 설정할 수 있습니다.

웹훅을 설정하려면 다음 절차를 따르세요.

  1. 코드 저장소 페이지에서 설정할 코드 저장소의 웹훅 설정 아이콘을 클릭하세요. 웹훅 설정 팝업창이 열립니다.
  2. 웹훅 설정 팝업창에서 추가 버튼을 클릭하세요.
  3. 웹훅 설정 팝업창에서 실행하려는 파이프라인을 선택하고 브랜치 명을 입력 후 저장 버튼을 클릭하여 웹훅 설정을 완료하세요.

코드 저장소에 계정 변경하기

코드 저장소에 계정을 변경하려면 다음 절차를 따르세요.

  1. 코드 저장소 페이지에서 변경할 코드 저장소의 편집 아이콘을 클릭하세요. 인증정보 수정 팝업창이 열립니다.
  2. 인증정보 수정 팝업창에서 인증정보 입력 후 저장 버튼을 클릭하여 계정 변경을 완료하세요.

코드 저장소 삭제하기

코드 저장소를 삭제하려면 다음 절차를 따르세요.

  1. 코드 저장소 페이지에서 삭제할 코드 저장소의 X 아이콘을 클릭하세요. 코드 저장소 삭제 팝업창이 열립니다.
  2. 코드 저장소 삭제 팝업창에서 SCM에 있는 저장소도 함께 삭제를 선택 후 확인 버튼을 클릭하여 코드 저장소 삭제를 완료하세요.
참고

SCM에 있는 저장소도 함께 삭제

  • 선택: 코드 저장소 목록과 SCM의 실제 코드 저장소가 모두 삭제됩니다.
  • 미선택: 코드 저장소 목록에서만 삭제되고 SCM의 코드 저장소는 남아 있습니다.

2 - 아티팩트 저장소

사용자는 Nexus와 연계하여 Nexus에 프로젝트 생성 및 생성된 프로젝트를 가져와 활용할 수 있습니다.

아티팩트 저장소 시작하기

아티팩트 저장소 관리를 시작하려면 다음 절차를 따르세요.

  1. 메인 페이지에서 프로젝트 카드를 클릭하세요. 프로젝트 대시보드 페이지로 이동합니다.
  2. 왼쪽 메뉴에서 저장소 > 아티팩트 저장소 메뉴를 클릭하세요. 아티팩트 저장소 페이지로 이동합니다.

아티팩트 저장소 추가하기

아티팩트 저장소를 추가하려면 다음 절차를 따르세요.

  1. 아티팩트 저장소 페이지에서 오른쪽 위의 아티팩트 저장소 추가 버튼을 클릭하세요. 아티팩트 저장소 추가 페이지로 이동합니다.
  2. 아티팩트 저장소 추가 페이지에서 각 항목을 입력/설정 하세요.
  3. Connection Test 버튼을 클릭하세요.
  4. 저장 버튼을 클릭하세요.
    항목설명
    저장소 생성 여부 선택새로 저장소를 생성할지, 기존 저장소를 사용할지 선택합니다.
    기본정보 입력Base URL, 저장소 타입 선택 및 저장소/인증정보 입력합니다.
    표. 아티팩트 저장소 추가하기 입력 항목

아티팩트 저장소 관리하기

아티팩트 저장소 목록

항목설명
계정 변경아티팩트 저장소 인증정보를 수정합니다.
삭제아티팩트 저장소를 삭제합니다.
표. 아티팩트 저장소 목록 화면 항목

아티팩트 저장소 계정 변경하기

아티팩트 저장소에 계정을 변경하려면 다음 절차를 따르세요.

  1. 아티팩트 저장소 페이지에서 변경할 아티팩트 저장소의 편집 아이콘을 클릭하세요. 인증정보 수정 팝업창이 열립니다.
  2. 인증정보 수정 팝업창에서 인증정보 입력 후 저장 버튼을 클릭하여 계정 변경을 완료하세요.

아티팩트 저장소 삭제하기

아티팩트 저장소를 삭제하려면 설정 하려면 다음 절차를 따르세요.

  1. 아티팩트 저장소 페이지에서 삭제할 아티팩트 저장소의 X 아이콘을 클릭하세요. 아티팩트 저장소 삭제 팝업창이 열립니다.
  2. 아티팩트 저장소 삭제 팝업창에서 Nexus에 있는 저장소도 함께 삭제를 선택 후 확인 버튼을 클릭하여 아티팩트 저장소 삭제를 완료하세요.
참고

Nexus에 있는 저장소도 함께 삭제

  • 선택: 아티팩트 저장소 목록과 Nexus의 저장소가 모두 삭제됩니다.
  • 미선택: 아티팩트 저장소 목록에서만 삭제되고 Nexus의 저장소는 남아 있습니다.

3 - 이미지 저장소

사용자는 프로젝트의 이미지 저장소 메뉴에서 프로젝트에서 사용 중인 이미지 저장소를 관리할 수 있습니다.

이미지 저장소 시작하기

이미지 저장소 관리를 시작하려면 다음 절차를 따르세요.

  1. 메인 페이지에서 프로젝트 카드를 클릭하세요. 프로젝트 대시보드 페이지로 이동합니다.
  2. 왼쪽 메뉴에서 저장소 > 이미지 저장소 메뉴를 클릭하세요. 이미지 저장소 페이지로 이동합니다.

이미지 저장소 추가하기

이미지 저장소를 추가하려면 다음 절차를 따르세요.

App. 이미지 저장소 추가

  1. 이미지 저장소 페이지에서 오른쪽 위의 App. 이미지 저장소 추가 버튼을 클릭하세요. App. 이미지 저장소 추가 페이지로 이동합니다.
  2. App. 이미지 저장소 추가 페이지에서 각 항목을 입력/설정 하세요.
  3. Connection Test 버튼을 클릭하세요.
  4. 저장 버튼을 클릭하세요.
    항목설명
    저장소 유형 선택이미지 저장소 유형을 선택하세요.
    Devops Console에 등록되지 않은 이미지 저장소를 사용하려면 Image Registry 유형을 선택하세요.
    저장소 생성 여부 선택새로 저장소를 생성할지, 기존 저장소를 사용할지 선택하세요.
    • 앞에서 Docker hubImage Registry 유형을 선택한 경우 기존 저장소 사용만 선택할 수 있습니다.
    등록된 툴저장소 정보를 입력하세요.
    미 등록 툴저장소 정보를 입력
    • DevOps Console의 툴로 등록되지 않은 이미지 저장소를 등록할 수 있습니다.
    • URL Check 버튼을 클릭하여 확인 과정을 진행합니다.
    • 기존 저장소 사용만 선택할 수 있습니다.
    표. App. 이미지 저장소 추가 입력 항목

Pull 전용 이미지 저장소 추가

  1. 이미지 저장소 페이지에서 오른쪽 위의 Pull 전용 이미지 저장소 추가 버튼을 클릭하세요. Pull 전용 이미지 저장소 추가 페이지로 이동합니다.
  2. Pull 전용 이미지 저장소 추가 페이지에서 각 항목을 입력/설정 하세요.
  3. Connection Test 버튼을 클릭하세요.
  4. 저장 버튼을 클릭하세요.

이미지 저장소 관리하기

이미지 저장소 목록

항목설명
계정 변경이미지 저장소의 인증정보 수정 팝업창이 열립니다
삭제이미지 저장소 삭제 팝업창이 열립니다
표. 이미지 저장소 목록 화면 항목

이미지 저장소 계정 변경하기

이미지 저장소에 계정을 변경하려면 다음 절차를 따르세요.

  1. 이미지 저장소 페이지에서 변경할 이미지 저장소의 편집 아이콘을 클릭하세요. 인증정보 수정 팝업창이 열립니다.
  2. 인증정보 수정 팝업창에서 인증정보 입력 후 저장 버튼을 클릭하여 계정 변경을 완료하세요.

이미지 저장소 삭제하기

이미지 저장소를 삭제하려면 다음 절차를 따르세요.

  1. 이미지 저장소 페이지에서 삭제할 이미지 저장소의 X 아이콘을 클릭하세요. 이미지 저장소 삭제 팝업창이 열립니다.
  2. 이미지 저장소 삭제 팝업창에서 IR에 있는 Repository도 함께 삭제를 선택 후 확인 버튼을 클릭하여 이미지 저장소 삭제를 완료하세요.
참고

IR에 있는 Repository도 함께 삭제

  • 선택: 이미지 저장소 목록과 실제 이미지 저장소의 Repository가 모두 삭제됩니다.
  • 미선택: 이미지 저장소 목록에서만 삭제되고 실제 이미지 저장소의 Repository는 남아 있습니다.

4 - 차트 저장소

사용자는 차트 저장소에 헬름으로 만든 차트를 업로드하고 삭제할 수 있습니다.

차트 저장소에 업로드된 차트는 헬름차트 추가하기 에서 사용되어 헬름인스톨이나 프로젝트 생성 시 사용됩니다.

차트 저장소 시작하기

차트 저장소 관리를 시작하려면 다음 절차를 따르세요.

  1. 메인 페이지 오른쪽 위의 관리 아이콘을 클릭하세요. 테넌트 대시보드 페이지로 이동합니다.
  2. 왼쪽 메뉴에서 툴 & 템플릿 > 차트 저장소 메뉴를 클릭하세요. 차트 저장소 화면이 나타납니다.

프로젝트 차트 저장소 시작하기

Note
프로젝트 내부에서만 사용 가능한 차트를 차트 저장소에 업로드/수정/삭제 할 수 있습니다.
  1. 메인 페이지에서 프로젝트 카드를 클릭하세요. 프로젝트 대시보드 페이지로 이동합니다.
  2. 왼쪽 메뉴에서 저장소 > 차트 저장소 메뉴를 클릭하세요. 차트 저장소 페이지로 이동합니다.

차트 업로드하기

참고
Chart.yaml 에 대한 자세한 사항은 Helm 공식 페이지를 참고하세요.

업로드하는 차트의 Chart.yaml 파일의 name, version 을 기준으로 등록 정보가 자동 생성됩니다.

차트 저장소에 차트를 업로드하려면 다음 절차를 따르세요.

  1. 메인 페이지 오른쪽 위의 관리 아이콘을 클릭하세요. 테넌트 대시보드 페이지로 이동합니다.
  2. 왼쪽 메뉴에서 툴 & 템플릿 > 차트 저장소 메뉴를 클릭하세요. 차트 저장소 화면이 나타납니다.
  3. 차트 저장소 페이지에서 업로드 버튼을 클릭하세요. 차트 파일 업로드 팝업창이 열립니다.
  4. 차트 파일 업로드 팝업창에서 내용 입력 후 업로드 버튼을 클릭하세요
    항목설명
    차트 유형차트 유형을 선택하세요.
    테넌트 / 프로젝트그룹차트가 사용될 테넌트 / 프로젝트그룹을 선택하세요.
    차트 파일찾아보기 버튼을 클릭하여 차트 파일을 업로드하세요.
    • helm package 명령어를 통해 생성한 .tgz 파일만 업로드가 가능합니다.
    표. 차트 업로드 입력 항목

차트 삭제하기

차트를 삭제하려면 다음 절차를 따르세요.

  1. 메인 페이지 오른쪽 위의 관리 아이콘을 클릭하세요. 테넌트 대시보드 페이지로 이동합니다.
  2. 왼쪽 메뉴에서 툴 & 템플릿 > 차트 저장소 메뉴를 클릭하세요. 차트 저장소 화면이 나타납니다.
  3. 차트 저장소 목록에서 삭제할 항목의 체크박스를 선택하고 삭제 버튼을 클릭하세요.
  4. 확인 팝업창에서 확인 버튼을 클릭하세요.
주의
차트가 헬름차트에 등록된 경우 삭제할 수 없습니다. 먼저 헬름차트 메뉴에서 정보를 제거해 주세요.

차트의 특정 버전만 삭제하기

차트에서 특정 버전만 삭제하려면 다음 절차를 따르세요.

  1. 메인 페이지 오른쪽 위의 관리 아이콘을 클릭하세요. 테넌트 대시보드 페이지로 이동합니다.
  2. 왼쪽 메뉴에서 툴 & 템플릿 > 차트 저장소 메뉴를 클릭하세요. 차트 저장소 화면이 나타납니다.
  3. 차트 저장소 목록에서 삭제할 항목을 클릭하세요. 차트 버전 목록 페이지로 이동합니다.
  4. 차트 버전 목록 페이지에서 삭제할 항목의 체크박스를 선택하고 삭제 버튼을 클릭하세요.
  5. 확인 팝업창에서 확인 버튼을 클릭하세요.

5 - 헬름차트

헬름차트는 차트 저장소에 등록된 차트를 DevOps Console에서 사용가능 하도록 등록하는 기능입니다.

헬름차트는 헬름인스톨 하기를 통해 사용할 수 있습니다. 또한 지원 헬름차트 추가하기를 통해 App. 템플릿과 연계할 수 있습니다.

헬름차트 시작하기

헬름차트 관리를 시작하려면 다음 절차를 따르세요.

  1. 메인 페이지 오른쪽 위의 관리 아이콘을 클릭하세요. 관리 페이지가 열립니다.
  2. 왼쪽 메뉴에서 툴 & 템플릿 > 헬름차트 메뉴를 클릭하세요.

프로젝트 헬름차트 시작하기

Note
프로젝트 내부에서만 사용 가능한 헬름차트를 등록/수정/삭제 할 수 있습니다.
  1. 메인 페이지에서 프로젝트 카드를 클릭하세요. 프로젝트 대시보드 페이지로 이동합니다.
  2. 왼쪽 메뉴에서 저장소 > 헬름차트 메뉴를 클릭하세요. 헬름차트 페이지로 이동합니다.

헬름차트 추가하기

사용자는 자신만의 헬름차트를 추가할 수 있습니다.

사용자는 헬름차트 등록 전 차트 업로드하기를 통해 사용할 차트를 먼저 업로드해야 합니다.

헬름차트를 추가하려면 다음 절차를 따르세요.

  1. 메인 페이지 오른쪽 위의 관리 아이콘을 클릭하세요. 관리 페이지가 열립니다.
  2. 왼쪽 메뉴에서 툴 & 템플릿 > 헬름차트 메뉴를 클릭하세요. 헬름차트 페이지가 열립니다.
  3. 헬름차트 유형 메뉴에서 헬름차트 유형을 선택하세요. 선택한 정보에 따라 등록 권한이 있는 경우에만 헬름차트 추가 버튼이 보입니다.
  4. 헬름차트 추가 버튼을 클릭하세요. 헬름차트 등록 페이지로 이동합니다.
  5. 헬름차트 기본 정보 입력 후 시작 버튼을 클릭하세요.
    항목설명
    헬름차트 유형추가할 헬름차트의 유형을 선택하세요.
    테넌트/프로젝트그룹헬릌차트를 추가할 테넌트/프로젝트그룹을 선택
    • 테넌트 선택 시, 선택한 테넌트의 프로젝트에서만 등록한 차트를 사용할 수 있습니다.
    • 프로젝트그룹 선택 시, 선택한 프로젝트그룹의 프로젝트에서만 등록한 차트를 사용할 수 있습니다.
    신규설치 허용여부헬름인스톨 하기를 통한 신규설치 허용여부를 선택하세요
    표. 헬름차트 기본 정보 설정 항목
  6. 헬름차트 저장소헬름차트 선택 후 Validation Check 버튼을 클릭하세요.
  7. 나머지 정보를 입력 후 다음 버튼을 클릭하세요.
    저장소
    항목
    설명
    ChartMuseum헬름 차트 저장소차트 저장소를 ChartMuseum으로 선택하세요.
    차트 선택차트 업로드하기를 통해 등록한 차트중 헬름차트로 등록할 차트를 선택하세요.
    Harbor OCI헬름 차트 저장소차트 저장소를 Harbor OCI로 선택하세요.
    인증정보차트 저장소의 인증정보를 넣고 Connection Test 버튼을 클릭하세요.
    차트 선택입력한 인증정보로 조회가능한 헬름차트를 선택하고 Validation Check 버튼을 클릭하세요.
    OCI헬름 차트 저장소차트 저장소를 OCI로 선택하세요.
    인증정보차트 저장소의 인증정보를 넣고 Connection Test 버튼을 클릭하세요.
    차트 입력인증정보에서 입력한 인증정보로 조회가능한 헬름차트를 입력하고 Validation Check 버튼을 클릭하세요.
    (ex. oci://chart.url/repo/chartname:version)
    공통아이콘헬름차트를 표현할 아이콘을 선택하세요.
    CI/CD 정보CI/CD 기능의 지원 여부를 선택
    • App. 템플릿과의 연계 여부를 나타냅니다.
    • 차트의 Values.yaml 파일에 image.repository, image.tag imagePullSecrest[0].name 키값이 존재해야 합니다.
    • Support CI/CD선택 시, CI/CD 정보 단계가 추가됩니다.
    차트 이미지이미지 등록 여부를 선택
    • 차트의 Values.yaml 파일에 imagePullSecrets[0].name 키값이 존재해야 합니다.
    • 이미지 없음 선택 시 이미지 시크릿 정보 단계가 제외됩니다.
    표. 차트 저장소 설정 항목
  8. 이미지 저장소 선택 및 인증정보 입력 후 Connection Test 버튼을 클릭하세요.
  9. 나머지 정보를 입력 후 다음 버튼을 클릭하세요.
    항목설명
    이미지 저장소 정보이미지 저장소를 선택 및 인증정보를 입력하세요.
    • 이미지 저장소의 관리자 권한이 필요합니다.
    • 헬름차트를 사용하여 헬름인스톨을 하려는 사용자에게 이미지 저장소의 조회 권한을 부여합니다.
    • 입력한 인증정보를 이용하여 이미지 저장소에 권한을 부여합니다.
    사용되는 이미지 추가선택한 이미지 저장소의 이미지 경로를 추가하세요.
    • 목록에서 이미지 선택: Organization, Repository, Tag를 선택하여 추가합니다.
    • 사용자가 직접 입력: 이미지의 docker repository, docker tag를 직접 입력하여 추가합니다.
    • 복수 개 입력 가능합니다.
    등록자의 인증정보 사용이미지 저장소에서 선택한 이미지 저장소가 권한을 부여할 수 없는 툴인 경우(ex. SCR) 선택할 수 있는 옵션입니다.
    • 체크를 하지 않는 경우 헬름차트 사용자가 인스톨을 수행할 때, 헬름차트 사용자에게 사용되는 이미지의 Pull 권한을 추가합니다. 권한 부여를 할수 없는 툴인 경우 권한 부여를 수행하지 않습니다.
    • 체크를 하지 않는 경우 헬름차트 사용자가 인스톨을 수행할 때, 헬름차트 사용자의 권한 대신 헬름차트 등록자의 인증정보를 사용합니다.
    체크 시 주의사항
    • 헬름차트 사용자에게 등록자의 인증정보가 노출될 수 있으므로, 필요한 경우에만 사용하도록 주의를 요합니다.
    • 이미지 Pull만 제공하는 이미지저장소인 경우에 선택해야 사용 중에 문제가 발생하지 않습니다. 반드시 별도의 Pull 용도로만 사용할 이미지저장소를 입력해야 합니다. (체크한 경우 하나의 이미지저장소에 대해 Pull, Push가 동시에 불가능합니다.)
    • 등록자의 인증정보는 프로젝트 > 이미지저장소 > Pull 전용 이미지와 헬름릴리스의 ImagePull Secret에서 사용합니다. 해당 인증정보는 헬름차트 사용자는 변경이 불가능하며, 헬름차트에서 등록자의 인증정보를 변경한 경우 일괄적으로 변경됩니다.
    도커 베이스 이미지 선택도커 베이스 이미지로 사용될 이미지를 선택
    • 이전 단계에서 Support CI/CD를 선택한 경우에만 선택하며, Docker build 시 사용할 베이스 이미지로 사용합니다.
    표. 이미지 시크릿 정보 설정 항목
  10. 지원할 App. 템플릿 선택 후 완료 버튼을 클릭하세요.
참고
Environment Only로 표기된 App. 템플릿은 프로젝트 샘플 소스코드 없이 빌드/배포환경만 제공합니다.

헬름차트 수정하기

헬름차트를 수정하려면 다음 절차를 따르세요.

  1. 메인 페이지 오른쪽 위의 관리 아이콘을 클릭하세요. 관리 페이지가 열립니다.
  2. 왼쪽 메뉴에서 툴 & 템플릿 > 헬름차트 메뉴를 클릭하세요.
  3. 헬름차트 목록에서 수정하려는 헬름차트 카드를 클릭하세요. 헬름차트 상세 페이지가 열립니다.
  4. 오른쪽 아래의 수정 버튼을 클릭 하세요.
  5. 정보를 수정한 후 저장 버튼을 클릭해서 수정을 완료하세요.

헬름차트 버전 추가하기

헬름차트 버전을 추가하기 위해서는 차트 업로드하기를 통해 버전만 다른 동일한 차트가 미리 등록되어 있어야 합니다.

헬름차트의 버전을 추가하려면 다음 절차를 따르세요.

  1. 메인 페이지 오른쪽 위의 관리 아이콘을 클릭하세요. 관리 페이지가 열립니다.
  2. 왼쪽 메뉴에서 툴 & 템플릿 > 헬름차트 메뉴를 클릭하세요.
  3. 헬름차트 목록에서 수정하려는 헬름차트 카드를 클릭하세요. 헬름차트 상세 페이지가 열립니다.
  4. 오른쪽 아래의 버전 추가 버튼을 클릭하세요. 헬름차트 버전 추가 팝업창이 열립니다.
  5. 정보를 입력한 후 저장 버튼을 클릭해서 버전 추가를 완료하세요.
    항목설명
    차트 버전추가할 차트 버전을 선택
    • 차트 저장소에 등록된 차트 중 헬름차트로 등록되지 않은 차트의 버전이 보여집니다.
    표. 헬름차트 버전 추가 설정 항목

헬름차트 삭제하기

헬름차트를 삭제하려면 다음 절차를 따르세요.

  1. 메인 페이지 오른쪽 위의 관리 아이콘을 클릭하세요. 관리 페이지가 열립니다.
  2. 왼쪽 메뉴에서 툴 & 템플릿 > 헬름차트 메뉴를 클릭하세요. 헬름차트 페이지가 열립니다.
  3. 헬름차트 목록에서 삭제하려는 헬름차트 카드를 클릭하세요. 헬름차트 상세 페이지가 열립니다.
  4. 오른쪽 아래의 삭제 버튼을 클릭하세요.
  5. 확인 팝업창에서 확인 버튼을 클릭해서 삭제를 완료하세요.

5.1 - Form 입력을 지원하는 헬름차트 작성하기

사용자는 Form 입력을 지원하는 헬름차트를 작성할 수 있습니다.

참고
Helm 3 이상의 버전에서만 사용 가능합니다.

Form 입력을 지원하는 헬름차트

Form 입력을 지원하는 헬름차트를 사용해서 헬름인스톨을 하면 각 항목을 입력할 수 있는 사용자 UI가 제공됩니다.

헬름차트 파일 구성 및 values.schema.json 파일

헬름차트 파일 구성

Form 입력을 지원하기 위해서는 기본적인 헬름차트의 파일 구성에 values.schema.json 파일이 추가로 필요합니다.

헬름차트 디렉토리 구조
그림. 헬름차트 디렉토리 구조

values.schema.json 과 values.yaml 파일의 관계

values.schema.json 과 values.yaml 파일의 관계
그림. values.schema.json 과 values.yaml 파일의 관계

values.schema.json

  • values.yaml 파일에 입력된 값을 validation 하기 위해 JSON Schema로 정의한 파일입니다.
  • DevOps Console에서는 JSON Schema의 기능에 더해 화면에 Form을 표시하고 사용자가 쉽게 입력할 수 있도록 기능을 추가 하였습니다.

JSON Schema 기본

DevOps Console에서 사용하는 values.schema.json 파일은 JSON Schema에서 정의한 표준 포맷을 지원하고 있습니다.

참고

표준 포맷에 대한 자세한 가이드는 아래 사이트를 참고하세요.

기본적인 속성에 대한 설명은 다음과 같습니다.

속성Description데이터 타입허용 값
$schemastringhttp://json-schema.org/schema#
type데이터 타입
  • 데이터 타입에 따라 default rendering form이 결정 됨
string
  • string
    • 문자열을 입력받는 input field를 생성
    • oneOf, enum 존재시 combobox 렌더링
    • render가 password인 경우 input password 렌더링
  • number
    • 정수+실수를 입력받는 input field 생성
  • integer
    • 정수를 입력받는 input field 생성
  • object
    • properties와 함께, form 그룹을 정의
    • 계층형 구조 처리를 위해 사용
  • array
    • 다건의 데이터를 입력받을 수 있는 input field 목록 렌더링
  • boolean
    • 체크박스 렌더링
  • null
title라벨string항목의 라벨 정의
descriptiondescriptionstringtooltip으로 표시 됨
readOnlyread only 여부boolean
  • default: false
  • 생성된 form이 read only로 표시됨
required필수 입력 항목 목록arraye.g, "required": ["username", "password"]
표. JSON Schema 속성 항목

DevOps Console에서 정의한 항목

아래 항목은 DevOps Console에서 정의한 항목으로 DevOps Console에서만 유효하게 동작합니다.

속성Description데이터 타입허용 값
formDevOps Console 화면 표시 여부
  • true로 지정한 경우에만 화면에 Form으로 표시
booleandefault: false
render렌더러 변경string
  • password: Form 에서 암호 등 특수한 처리(마스킹)를 해야 하는 경우에 사용
formatstring format reference 참고string
  • ip, hostname, uri 등: JSON Schema에서 기본으로 제공되는 포맷을 입력할 수 있음
  • password_confirm: 암호 확인용 input field 생성
form_locale국제화 처리를 위해 정의
  • 설정된 로케일이 없을 경우, 기본 속성값을 사용
  • 국문(ko)/영문(en) 지원
object
  • ko
    • label
    • description
  • en
    • label
    • description
표. DevOps Console에서 정의한 항목

계층형 처리

계층형 구조를 처리하기 위해서 JSON Schema는 "type": "object" 속성 값과 properties 라는 속성을 정의할 수 있습니다.
하위 속성의 경우는 properties 항목 하위에 정의합니다.

아래는 service.internalPort 속성을 정의한 예시입니다.

배경색 변경
"service": {
    "type": "object",
    "form": true,
    "properties": {
        "internalPort": {
            "type": "number",
            "title": "Container Port",
            "description": "HTTP port to expose at container level",
            "form": true
        }
<중략>
"service": {
    "type": "object",
    "form": true,
    "properties": {
        "internalPort": {
            "type": "number",
            "title": "Container Port",
            "description": "HTTP port to expose at container level",
            "form": true
        }
<중략>
계층형 처리 예시

국제화 처리

국제화 처리를 위해서는 form_locale 속성을 사용하고 아래와 같이 정의합니다.

국문/영문을 지원하고 있습니다.

배경색 변경
"db": {
  "type": "string",
  "title": "DB",
  "description": "choose db type",
  "oneOf": [
    {
      "const": "in",
      "title": "internal"
    },
    {
      "const": "ex",
      "title": "external"
    }
  ],
  "form": true,
  "form_locale": {
    "ko": {
      "label": "데이터베이스",
      "description": "데이터베이스 타입을 선택하세요",
      "internal": "내부",
      "external": "외부"
    },
    "en": {
      "label": "Database"
    }
  }
}
"db": {
  "type": "string",
  "title": "DB",
  "description": "choose db type",
  "oneOf": [
    {
      "const": "in",
      "title": "internal"
    },
    {
      "const": "ex",
      "title": "external"
    }
  ],
  "form": true,
  "form_locale": {
    "ko": {
      "label": "데이터베이스",
      "description": "데이터베이스 타입을 선택하세요",
      "internal": "내부",
      "external": "외부"
    },
    "en": {
      "label": "Database"
    }
  }
}
국제화 처리 예시

values.schema.json 작성 예제

Form 유형별 예제

Input

values.schema.json 파일에 정의된 필드를 화면에 form으로 보여주기 위해서는 form 필드의 값을 true로 설정해 주어야 합니다.

배경색 변경
{
  "$schema": "http://json-schema.org/schema#",
  "type": "object",
  "properties": {
    "form_field": {
      "type": "string", <--- 문자열을 입력받는 input field 생성
      "form": true <----- true 시 화면에 표시
    },
    "hide_field": {  <-- 미표시
      "type": "string"
    }
  }
}
{
  "$schema": "http://json-schema.org/schema#",
  "type": "object",
  "properties": {
    "form_field": {
      "type": "string", <--- 문자열을 입력받는 input field 생성
      "form": true <----- true 시 화면에 표시
    },
    "hide_field": {  <-- 미표시
      "type": "string"
    }
  }
}
Input 처리 예시

Password

배경색 변경
{
  "$schema": "http://json-schema.org/schema#",
  "type": "object",
  "properties": {
    "password_field": {
      "type": "string",
      "form": true,
      "render": "password", <---- password 로 표시
      "format": "password_confirm" <--- password 확인 입력창 추가 시
    }
  }
}
{
  "$schema": "http://json-schema.org/schema#",
  "type": "object",
  "properties": {
    "password_field": {
      "type": "string",
      "form": true,
      "render": "password", <---- password 로 표시
      "format": "password_confirm" <--- password 확인 입력창 추가 시
    }
  }
}
Password 처리 예시

Checkbox

배경색 변경
"enabled": {
  "title": "enable persistence",
  "type": "boolean",
  "form": true
}
"enabled": {
  "title": "enable persistence",
  "type": "boolean",
  "form": true
}
Checkbox 처리 예시

Dropdown 필드를 화면에 표시하고 허용값을 지정하기 위해서, enum 과 oneOf 속성을 이용할 수 있습니다.

enum

화면에 표시되는 텍스트와 저장되는 값이 동일한 경우 사용합니다.

배경색 변경
"postgres": {
  "type": "string",
  "title": "Postgres",
  "description": "choose PostgreSQL type.",
  "enum": [
    "internal",
    "external",
    "both"
  ],
  "form": true
}
"postgres": {
  "type": "string",
  "title": "Postgres",
  "description": "choose PostgreSQL type.",
  "enum": [
    "internal",
    "external",
    "both"
  ],
  "form": true
}
enum 처리 예시

oneOf

화면에 표시되는 텍스트와 저장되는 값을 각각 다르게 할 경우 사용합니다.

배경색 변경
"Oneof": {
  "type": "string",
  "title": "DB",
  "description": "choose db type",
  "oneOf": [
    {
      "const": "in",  <-- 선택시 yaml 파일에 저장되는 값
      "title": "internal" <-- dropdown form에 표시되는 값
    },
    {
      "const": "ex",
      "title": "external"
    }
  ],
  "form": true
}
"Oneof": {
  "type": "string",
  "title": "DB",
  "description": "choose db type",
  "oneOf": [
    {
      "const": "in",  <-- 선택시 yaml 파일에 저장되는 값
      "title": "internal" <-- dropdown form에 표시되는 값
    },
    {
      "const": "ex",
      "title": "external"
    }
  ],
  "form": true
}
oneOf 처리 예시

Array

배경색 변경
"Array": {
  "type": "array",
  "items": {
    "type": "string",
    "form": true
  },
  "form": true
}
"Array": {
  "type": "array",
  "items": {
    "type": "string",
    "form": true
  },
  "form": true
}
Array 처리 예시

Object Array

배경색 변경
"objectArray": {
  "type": "array",
  "title": "Object Array",
  "form": true,
  "items": {
    "type": "object",
    "form": true,
    "properties": {
      "host": {
        "type": "string",
        "form": true
      },
      "path": {
        "type": "string",
        "form": true
      }
    }
  }
}
"objectArray": {
  "type": "array",
  "title": "Object Array",
  "form": true,
  "items": {
    "type": "object",
    "form": true,
    "properties": {
      "host": {
        "type": "string",
        "form": true
      },
      "path": {
        "type": "string",
        "form": true
      }
    }
  }
}
Object Array 처리 예시

values.schema.json 전체 파일 작성 예제

system-nginx

배경색 변경
{
    "$schema": "http://json-schema.org/schema#",
    "type": "object",
    "form": true,
    "properties": {
        "service": {
            "type": "object",
            "form": true,
            "properties": {
                "type": {
                    "type": "string",
                    "title": "Service Type",
                    "form": true,
                    "enum": ["ClusterIP", "NodePort", "LoadBalancer", "ExternalName"]
                },
                "externalPort": {
                    "type": "number",
                    "title": "Service Port",
                    "description": "HTTP port to expose at service level",
                    "form": true
                },
                "internalPort": {
                    "type": "number",
                    "title": "Container Port",
                    "description": "HTTP port to expose at container level",
                    "form": true
                }
            },
            "required": ["type", "externalPort", "internalPort"]
        },
        "ingress": {
            "type": "object",
            "form": true,
            "properties": {
                "enabled": {
                    "type": "boolean",
                    "title": "Use Ingress",
                    "form": true
                },
                "domain": {
                    "type": ["string", "null"],
                    "format": "hostname",
                    "title": "Ingress Domain",
                    "description": "Default host for the ingress resource (required when `ingress.enabled=true`)",
                    "form": true
                }
            }
        },
        "networkPolicy": {
            "type": "object",
            "form": true,
            "properties": {
                "enabled": {
                    "type": "boolean",
                    "title": "Use NetworkPolicy",
                    "form": true
                }
            }
        }
    }
}
{
    "$schema": "http://json-schema.org/schema#",
    "type": "object",
    "form": true,
    "properties": {
        "service": {
            "type": "object",
            "form": true,
            "properties": {
                "type": {
                    "type": "string",
                    "title": "Service Type",
                    "form": true,
                    "enum": ["ClusterIP", "NodePort", "LoadBalancer", "ExternalName"]
                },
                "externalPort": {
                    "type": "number",
                    "title": "Service Port",
                    "description": "HTTP port to expose at service level",
                    "form": true
                },
                "internalPort": {
                    "type": "number",
                    "title": "Container Port",
                    "description": "HTTP port to expose at container level",
                    "form": true
                }
            },
            "required": ["type", "externalPort", "internalPort"]
        },
        "ingress": {
            "type": "object",
            "form": true,
            "properties": {
                "enabled": {
                    "type": "boolean",
                    "title": "Use Ingress",
                    "form": true
                },
                "domain": {
                    "type": ["string", "null"],
                    "format": "hostname",
                    "title": "Ingress Domain",
                    "description": "Default host for the ingress resource (required when `ingress.enabled=true`)",
                    "form": true
                }
            }
        },
        "networkPolicy": {
            "type": "object",
            "form": true,
            "properties": {
                "enabled": {
                    "type": "boolean",
                    "title": "Use NetworkPolicy",
                    "form": true
                }
            }
        }
    }
}
values.schema.json 전체 파일 작성 예제