Skip to main content

Introduction

Kollection은 플랫폼에 설치할 소프트웨어 패키지들과 어플리케이션으로 구성된 하나의 묶음이다. 예를 들어 Nginx 또는 Prometheus와 같은 오픈소스가 포함될 수 있고, 사용자가 배포하고 싶은 contianer 형태의 어플리케이션이 포함될 수도 있다.

ansible


kollection-1


Kollection은 package와 application 그리고 config.yaml으로 구성되며 Kupboard는 디폴트 kollection package를 포함하고 있다. 원하는 package를 CLI 명령어를 사용하여 지정된 클러스터에 설치할 수 있다. 기본 kollection 정보는 아래 섹션에서 확인이 가능하다.

Deault Package


kollection-2


사용자는 자신만의 Kollection을 생성하여 kupboard를 통해서 배포할 수 있다. 이는 프로젝트 별로 또는 서비스별로 구분해서 플랫폼을 관리해야 할 경우 유용하다. Kollection에 포함된 패지키는 일반적으로 사용되는 오픈소스가 될 수 있으며 사용자가 작성한 소프트웨어도 될 수 있다. Kupboard에서 인식할 수 있도록 패키지 설치에 필요한 간단한 Ansible Playbook만 작성하면 된다. 서비스의 경우 소스파일의 포함 여부와 상관없이 Dockerfile과 컨테이너 빌드에 필요한 정보만 제공되면 된다.


kollection-3


하나의 kollection 포함되는 config.yaml은 Kollection에 포함된 패지키와 서비스의 정보가 정의되어 있다. 유저는 각 패키지와 서비스 배포에 필요한 action을 정의할 수 있으며, 각 action이 수행될 때 필요한 parameter도 지정할 수 있다. config는 kupboard에 의해서 자동으로 로딩되고, 유저는 config에 정의된 action을 사용해서 원하는 패키지와 서비스를 배포할 수 있다. Kollection은 중복되지 않은 이름으로 data/kollections에 위치해야 한다.

tip

Kollection은 kollection-name.tar.gz과 같은 archive 형태도 가능하다.

Structure#

mykollection
├── apps
│   ├── app1
│   │   └── Dockerfile
│   └── app2
│ ├── src
│   └── Dockerfile
├── config.yaml
└── packages
├── package1
│   └── playbook.yaml
└── package2
├── data
└── playbook.yaml