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