Skip to main content

Configuration

Configuration은 전체 시스템에 대한 다양한 정보를 포함하고 있다. 이 섹션에서는 예제를 사용하여 Kupboard Configuation을 작성해본다.

Version and Metadata#

다음 3개 항목은 반드시 정의되어야 하며, 이 항목들은 사용자가 원하는 정보로 정의될 수 있다. kupboard 내부에서는 configuration을 구분하기 위한 최소 정보로 사용된다.

version: v0.1
metadata:
name: hello kupboard
company: mycompany

Global Variables#

vars 블럭에는 kupboard 내부와 디폴트 Kollection, 그리고 사용자가 생성하거나 다운로드 받은 Kollection에서 참조되어 사용될 수 있는 변수들이 정의되어 있다.

Project Information#

Project Information은 글로벌변수의 일부로 정의되며 Kupboard가 전체 서비스를 운영하기 위해서 필요한 정보이다. Harbor Register 설치 및 연동을 위해서는 유요한 도메인과 인증서가 준비되어야 한다.

## Project Information
##
kbd_service_domain: mycompany.com
kube_enable_rook: true
kube_namespace: myproject
kube_registry_username: kupboard
kube_registry_password: Kupboard1234
kube_registry_email: username@email.com
kube_registry_domain: harbor.mycompany.com
kube_registry_url: harbor.mycompany.com/myproject
note

kube_registry_password should be 8-20 characters long with at least 1 uppercase, 1 lowercase and 1 number.

Secrets#

Secrets은 글로벌변수의 일부로 정의되며 디폴트 Kollection Package로 설치되는 오픈소스솔루션에 접근하기 위해 사용된다. 리스트된 오픈소스솔루션을 사용하지 않는다면 여기에 정의된 변수들은 사용되지 않을 것이다.

## Secrets
##
grafana_admin_password: kupboard
harbor_admin_password: kupboard
argocd_admin_password: kupboard
mysql_root_password: kupboardroot
mysql_user_password: kupboard1234
mongodb_root_password: kupboardroot
redis_root_password: kupboardroot
influxdb_root_password: kupboardroot
minio_access_key: kupboard
minio_secret_key: kupboard1234
keycloak_admin_password: kupboard

Cluster#

cluster 블럭은 전체 클러스터를 구성하는 서버의 public ip와 private ip정보가 정의된다. 이전 과정에서 생성된 6개 서버의 ip정보를 지정된 클러스터에 맞게 정의한다.

## Cluster Definition
##
cluster:
admin:
- name: admin-node1
public_ip: x.x.x.x
private_ip: x.x.x.x
gateway:
- name: gateway-node1
public_ip: x.x.x.x
private_ip: x.x.x.x
service:
- name: service-node1
public_ip: x.x.x.x
private_ip: x.x.x.x
- name: service-node2
public_ip: x.x.x.x
private_ip: x.x.x.x
- name: service-node3
public_ip: x.x.x.x
private_ip: x.x.x.x
- name: service-node4
public_ip: x.x.x.x
private_ip: x.x.x.x

클러스터의 구성은 사용자가 원하는 구성으로 정의가 가능하다. 만약 테스트 또는 데모 용도로 구성하고 싶다면 위와 같이 6개의 서버로 구성이 가능하지만, 관리와 운영을 위한 다양한 솔루션을 설치하고 여러가지 서비스를 제공하기 위해서는 Gateway서버를 3개로 구성하고 Service클러스터도 4개 이상으로 구성할 수 있다. Data Plane을 별도로 구축하기 원한다면 Storage 클러스터를 추가로 구성할 수 있고 Elastic클러스터도 추가할 수 있다.

Custom Cluster#

You can also add clusters with names you want as shown in the following example.

## Cluster Definition
##
cluster:
admin:
- name: admin-node1
public_ip: x.x.x.x
private_ip: x.x.x.x
finance:
- name: finance-node1
public_ip: x.x.x.x
private_ip: x.x.x.x
- name: finance-node2
public_ip: x.x.x.x
private_ip: x.x.x.x
blockchain:
- name: blockchain-node1
public_ip: x.x.x.x
private_ip: x.x.x.x

Hostname#

kupboard는 cluster 블럭에 정의된 서버들은 <cluster-name>-node#과 같은 naming rule에 의해서 구분되어 사용된다. 예를 들어 admin 클러스터의 첫번재 서버는 admin-node1로 구분된다. 그리고 service 클러스터의 서버들은 service-node1, service-node2, service-node3, service-node4가 된다.

note

클러스터 초기화가 완료되면 kupboard ssh admin-node1 명령어를 사용하여 특정 서버로 ssh 접속이 가능하다.