Skip to main content

Config

config은 kollection에 포함된 어플리케이션과 패키지 정보를 담고 있다.

Application#

kollection에 포함되는 어플리케이션은 주로 사용자가 자신이 원하는 어플리케이션을 service cluster에 배포하는 경우에 사용된다. (이런 이유로 kupboard에서 디폴트로 제공되는 어플리케이션은 없다.) Dockerfile이 포함된 소스파일을 kollection에 포함시키고 (단순히 디렉토리 복사를 통해서) 빌드 및 배포 옵션을 config에 정의한다. 그러면 kupboard는 config에 정의된 스펙을 바탕으로 어플리케이션을 빌드하고 service cluster에 배포하게 된다.

apps:
- name: myapp
version: 1.0
app_port: 80
service_port: 8080
exposed_port: 32001
replica: 2
envs:
- name: ENV1
value: value_of_ENV1
- name: ENV2
value: value_of_ENV2
  • name 어플리케이션 이름. 어플리케이션 소스 디렉토리는 apps 디렉토래 내에 어플리케이션 이름과 동일한 이름으로 위치해야 한다.
  • version 어플리케이션 버전 (컨테이너 빌드 후 적용되는 태그)
  • app_port 쿠버네티스 파드 포트
  • service_port 쿠버네티스 서비스 포트
  • exposed_port 쿠버네티스 서비스 포트(nodeport). 쿠버네티스 외부에 노출이 필요한 서비스의 경우 exposed_port를 사용하여 포트를 지정한다. 32000~32767 사이의 포트를 사용한다.
  • replica 파드 레플리카
  • envs 컨테이너 환경변수

Packages#

클러스터에 사용자가 필요한 자신만의 솔루션이나 오픈소스등을 package로 만들면 kupboard를 통해서 설치할 수 있으며, 단순히 설치뿐만 아니라 다양한 actionparameter를 정의하여 원하는 동작을 수행할 수 있도록 정의할 수 있다. 각 패키지는 반드시 Ansible Playbook을 하나 이상 포함하고 있어야 하며, kupboard의 명령어를 사용하여 패키지에 포함된 playbook과 config에 정의된 action을 사용하여 다양한 방식으로 동작할 수 있다.

packages:
- name: mypackage
vars:
target_group: gateway
playbook: nginx/nginx.yaml
actions:
- name: deploy
default: true
vars:
state: present
params:
- "name=value"
  • name 패키지 이름
  • vars playbook 변수 (패키지 공통)
  • actions 액션 리스트
    • name 액션 이름
    • default 디폴트 설정. 액션을 지정하지 않을 경우 true로 설정된 액션이 수행된다.
    • vars playbook 변수 (액션)
    • params playbook 수행시 추가할 ansile-playbook 옵션