-
Notifications
You must be signed in to change notification settings - Fork 8
Description
현재:
[CB-Spider]
[setup.env]
export CBSPIDER_ROOT=$GOPATH/src/github.com/cloud-barista/cb-spider
export CBSTORE_ROOT=$GOPATH/src/github.com/cloud-barista/cb-spider
export CBLOG_ROOT=$GOPATH/src/github.com/cloud-barista/cb-spider
[store_conf.yaml]
storetype: NUTSDB
#storetype: ETCD
nutsdb:
dbpath: "$CBSTORE_ROOT/meta_db/dat"
segmentsize: 1048576 # 1048576 1024*1024 (1MB)
etcd:
etcdserverport: "129.254.175.43:2379"
[log_conf.yaml]
cblog:
## true | false
loopcheck: false # This temp method for development is busy wait. cf) cblogger.go:levelSetupLoop().
## debug | info | warn | error
loglevel: info # If loopcheck is true, You can set this online.
## true | false
logfile: true
## Config for File Output ##
logfileinfo:
filename: ./log/cblogs.log
maxsize: 10 # megabytes
maxbackups: 50
maxage: 31 # days
[CB-Tumblebug]
[setup.env]
export CBSTORE_ROOT=$GOPATH/src/github.com/cloud-barista/cb-tumblebug
export CBLOG_ROOT=$GOPATH/src/github.com/cloud-barista/cb-tumblebug
export SPIDER_URL=http://localhost:1024
[store_conf.yaml]
상동
[log_conf.yaml]
상동
env var 로 되어 있는 것은
docker run
이나 docker-compose up
으로 Spider, TB 실행할 때
손쉽게 변경할 수 있는데,
yaml 안에 있는 것은
- yaml 파일을 수정하고 컨테이너 이미지를 다시 만들어서 실행 (매우 안 좋은 방법)
Dockerfile
에sed
명령을 넣어서 변경 (사실 1번과 동일함)- 호스트 머신에 있는 yaml 파일을 수정하고, Docker 의 volume mount 기능을 이용하여, 컨테이너 실행
등의 방법으로 수정하여 실행할 수 있겠습니다.
그런데 장기적으로 생각해 보면
CB 시스템을 Helm chart 로 작성하여 K8s 클러스터에 배포할 것이기 때문에
이를 고려해야 합니다.
Helm 에는 values.yaml
파일이 있고,
https://helm.sh/docs/chart_template_guide/values_files/
여기를 보면
values.yaml
에
favoriteDrink: coffee
이렇게 적고
K8s ConfigMap template 에
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ .Release.Name }}-configmap
data:
myvalue: "Hello World"
drink: {{ .Values.favoriteDrink }}
이렇게 적으면
apiVersion: v1
kind: ConfigMap
metadata:
name: good-puppy-configmap
data:
myvalue: "Hello World"
drink: coffee
이렇게 K8s ConfigMap yaml 로 render 된다고 합니다.
[K8s ConfigMap]
https://arisu1000.tistory.com/27843
ConfigMap 에 써 있는 값들은
K8s 컨테이너에
- 환경 변수로 적용되거나 (예:
DEBUG_LEVEL=debug
) - 컨테이너 안의 임의의 경로(예:
/etc/config
)에 파일 형태로 (예:DB_URL
이라는 파일, 내용은http://...
둘 중 하나의 형태로 적용됩니다.
2번 보다는 1번이 더 좋을 것 같구요
요약하면, Helm chart 의 values.yaml 에 적혀 있는 값은
결국 K8s 컨테이너에는 env var 로 적용된다는 것입니다.
위의 사유로,
store_conf.yaml
을 통해 설정하도록 되어 있는 설정값들을
env var 를 통해 설정하도록 변경하는 것이 어떨까 하여 이슈를 작성합니다.
(Spider, TB 등을 컨테이너로 띄울 때
nutsdb 대신 etcd를 사용하려고 하니
해당 설정값이 yaml 파일 안에 있어서.. 발생한 사안입니다.)
Ref: @powerkimhub @seokho-son