Configuration
Kupboard의 설정파일은 yaml 포맷으로 작성되며 확장자는 .yaml이 되어야 한다. 설정파일에는 버전, 메타정보, 글로벌 변수들 그리고 전체 클러스터 구성까지 다양한 정보가 정의된다.
note
설정파일의 기본 이름은 kupboard.yaml이며, 프로젝트 또는 서비스 별로 설정파일을 구성하여 사용할 수 있다. 만약 kupboard.yaml이 아닌 다른 이름을 사용할 경우에는 kupboard 명령어를 사용할 때 --config <config-name>과 같이 설정파일의 이름(확장자가 생략된)을 지정해야 한다.
Basic Structure#
설정파일은 version, metadata, vars 그리고 cluster로 구성된다.
Version#
version은 설정파일의 버전을 명시한다.
Metadata#
metadata에는 name과 company가 반드시 정의되어야 하며, 이외에 사용자가 원하는 meta정보를 추가할 수 있다.
name프로젝트명 또는 서비스명company회사명
Global Variables#
vars 블럭은 다양한 변수가 정의될 수 있으며, 이렇게 정의된 변수들은 kupboard 내부와 디폴트 Kollection, 그리고 사용자가 생성하거나 다운로드 받은 Kollection에서 참조되어 사용될 수 있다.
필수로 정의되어야 하는 글로벌변수에는 Project Information과 Secrets 항목이 있다.
Project Information#
Project Information은 글로벌변수의 일부로 정의되며 Kupboard가 전체 서비스를 운영하기 위해서 필요한 정보이다.
레지스트리 패키지에 대한 자세한 내용은 Harbor Package를 참고한다.
note
kube_registry_password should be 8-20 characters long with at least 1 uppercase, 1 lowercase and 1 number.
Secrets#
Secrets은 글로벌변수의 일부로 정의되며 디폴트 Kollection Package로 설치되는 오픈소스솔루션에 접근하기 위해 사용된다.
Cluster#
cluster 블럭은 kupboard 플랫폼의 전체 클러스터를 구성하는 서버들의 public ip와 private ip정보가 정의된다. 클러스터의 구성은 사용자가 원하는 구성으로 정의가 가능하다. 만약 테스트 또는 데모 용도로 구성하고 싶다면 위와 같이 6개의 서버로 구성이 가능하지만, 관리와 운영을 위한 다양한 솔루션을 설치하고 여러가지 서비스를 제공하기 위해서는 Gateway서버를 3개로 구성하고 Service클러스터도 4개 이상으로 구성할 수 있다. Data Plane을 독립적으로 구축하고 싶다면 Storage 클러스터를 별도로 구성할 수 있고, Elastic클러스터도 추가할 수 있다. 단, admin 클러스터의 서버는 1개이어야 한다.
Example 1#
Example 2#
Example 3#
Custom Cluster#
You can also add clusters with names you want as shown in the following example.
Hostname#
kupboard는 cluster 블럭에 정의된 서버들은 <cluster-name>-node#과 같은 naming rule에 의해서 구분되어 사용된다. 예를 들어 admin 클러스터의 첫번재 서버는 admin-node1로 구분된다. 그리고 service 클러스터의 서버들은 service-node1, service-node2, service-node3, service-node4가 된다.