Skip to main content

도구 설정

COP Console의 도구(Tools) 메뉴는 외부 도구 및 리소스에 대한 빠른 접근을 제공합니다. DevOps 파이프라인에서 사용하는 다양한 플랫폼(GitLab, Jenkins, Harbor, ArgoCD 등)의 웹 UI로 Console에서 바로 이동할 수 있습니다.

도구 메뉴는 사이드바와 전용 페이지 두 곳에서 접근할 수 있습니다.

  • 사이드바: 사이드바 하단의 "도구" 메뉴를 통해 하위 항목으로 각 도구에 접근합니다.
  • 도구 페이지: /tools 경로로 접근하면 모든 도구가 카드 형태로 표시되는 전용 페이지를 볼 수 있습니다.

도구 페이지 화면 구성

도구 페이지(/tools)에서는 등록된 모든 도구가 카드 형태의 그리드 레이아웃으로 표시됩니다. 각 카드는 다음 요소로 구성됩니다.

  • 아이콘: 도구의 아이콘이 좌측 상단에 표시됩니다.
  • 이름: 도구의 표시 이름과 외부 링크 아이콘이 함께 표시됩니다.
  • 설명: 도구에 대한 간략한 설명이 표시됩니다.

카드를 클릭하면 해당 도구의 웹 UI가 새 브라우저 탭에서 열립니다.


도구 메뉴 구성 방법

도구 메뉴는 openmaru-cop 네임스페이스의 ConfigMap openmaru-cop-config에서 관리됩니다. ConfigMap의 tools.json 키에 JSON 배열 형식으로 도구 목록을 정의합니다.

편집 방법

COP Console에서 직접 편집하려면 사이드바에서 관리 > 구성 맵으로 이동한 후 openmaru-cop 네임스페이스에서 openmaru-cop-config를 선택하여 tools.json 데이터를 편집합니다.

또는 kubectl로 직접 편집할 수 있습니다.

kubectl edit configmap openmaru-cop-config -n openmaru-cop

ConfigMap을 수정한 후 페이지를 새로고침하면 변경 사항이 반영됩니다.

항목 필드 설명

필드필수설명
name도구의 고유 식별자입니다. 사이드바 메뉴 항목의 내부 이름으로 사용됩니다.
label도구의 표시 이름입니다. 사이드바와 도구 페이지의 카드에 표시됩니다.
icon도구의 아이콘입니다. Iconify 형식의 아이콘 이름을 사용합니다.
url도구의 웹 UI 주소입니다. 클릭 시 새 탭에서 열립니다.
description아니오도구에 대한 설명입니다. 기본 언어(한국어)로 작성합니다.
description.en아니오도구에 대한 영어 설명입니다. Console이 영어 모드일 때 이 값이 사용됩니다.

구성 예시

COP 플랫폼에서 사용하는 주요 도구를 등록하는 예시입니다.

[
{
"name": "keycloak",
"label": "Keycloak SSO",
"icon": "mdi:account-key",
"url": "https://sso.example.com/admin/master/console/",
"description": "사용자 인증 및 권한 관리를 위한 통합 SSO 시스템",
"description.en": "Integrated SSO system for user authentication and authorization"
},
{
"name": "harbor",
"label": "Harbor Registry",
"icon": "mdi:docker",
"url": "https://registry.example.com",
"description": "컨테이너 이미지 레지스트리",
"description.en": "Container image registry"
},
{
"name": "gitlab",
"label": "GitLab",
"icon": "mdi:gitlab",
"url": "https://gitlab.example.com",
"description": "소스 코드 저장소 및 CI/CD 파이프라인 관리",
"description.en": "Source code repository and CI/CD pipeline management"
},
{
"name": "jenkins",
"label": "Jenkins",
"icon": "mdi:room-service-outline",
"url": "https://jenkins.example.com",
"description": "빌드 및 배포 자동화 서버",
"description.en": "Build and deployment automation server"
},
{
"name": "argocd",
"label": "ArgoCD",
"icon": "mdi:truck-delivery-outline",
"url": "https://argocd.example.com",
"description": "GitOps 기반 지속적 배포 도구",
"description.en": "GitOps-based continuous deployment tool"
},
{
"name": "nexus",
"label": "Nexus",
"icon": "mdi:package-variant-closed",
"url": "https://nexus.example.com",
"description": "Maven, npm 등 아티팩트 저장소 관리",
"description.en": "Repository manager for Maven, npm and other artifacts"
},
{
"name": "openmaru-observ",
"label": "Observability",
"icon": "mdi:telescope",
"url": "https://observability.example.com",
"description": "메트릭, 로그, 트레이스 통합 모니터링 플랫폼",
"description.en": "Integrated monitoring platform for metrics, logs, and traces"
},
{
"name": "openmaru-apm",
"label": "APM",
"icon": "mdi:loupe",
"url": "https://apm.example.com",
"description": "애플리케이션 성능 모니터링 도구",
"description.en": "Application Performance Monitoring tool"
}
]