규도자 개발 블로그

오픈소스 프로젝트 yamlier v0.1.0 릴리즈 본문

Golang

오픈소스 프로젝트 yamlier v0.1.0 릴리즈

규도자 (gyudoza) 2022. 4. 25. 22:23

저번 포스팅(https://this-programmer.tistory.com/495)에서 계획했던 오픈소스 프로젝트의 가장 기본적인 기능을 제공하는 버전의 릴리즈를 마쳤다. 저장소는 https://github.com/jujumilk3/yamlier이다.

 

yamlier가 무엇이냐. 저장소 description에 써있듯

 

Super Simple Cli yaml Editor

 

 

이다. 필요하다고 느낀 계기는 CI/CD과정에서였는데 외부로 노출되어선 안되는 값을 yaml로된 config파일에 집어넣어야 했고 그 과정에서 나는 당연히 cli단에서 yaml파일을 에디팅해주는 tool이 있을 거라 생각했다. 왜냐, 나만 해도 kustomize로 k8s에서 사용하는 yaml파일을 마음껏 주무르고 있었기 때문이다. 하지만 이게 웬걸, cli단에서 yaml editing이 필요할 때 다들 shell script나 bash script, 혹은 python script를 임시로 생성하여 사용하고 있었다.

 

kustomize는 왜 yaml을 주무르는 기능을 만들었으면서 yaml파일 자체를 다루는 cli 프로그램은 제작하지 않았을까. 궁금해서 kustomize를 까보니(https://github.com/kubernetes-sigs/kustomize) 이미 k8s 설정으로 쓰이는 yaml form은 전부 인터페이스화 되어서 프로젝트 안에 존재했다. 그러니까 결국 k8s yaml file에만 쓸 수 있는 형태였다는 것이다. 이건 기회다 싶어서 호다다닥 가장 간단하고 필요했던 기능인 edit만 만들어서 릴리즈해버렸다. kustomize와 datadog-agent, 그리고 kubectl과 기타 수많은 오픈소스 cli tool들이 go의 cli framework인 cobra로 만들어져있다는 것을 확인했기 때문에 계획한지 3일이라는 시간 안에 빨리 만들 수 있었다.

 

저장소에도 간략하게 적었지만 사용법은 다음과 같다.

 

wget https://github.com/jujumilk3/yamlier/releases/download/v0.1.0/yamlier

 

로 바이너리파일을 설치한 뒤에

 

yamlier edit [file_path] [key] [value] | [output_filepath]

 

형태로 명령어를 때리면 된다. 말 그대로 super simple하게 제작했다. 그럴 시간밖에 없기도 했고. 사실 edit 내에 get기능은 있는 거나 마찬가지이기도 한데 가장 먼저 필요하다고 생각한 기능부터 제작하였다. 나도 졸리고 피곤하기 때문에 ㅠ.

 

 

차차 추가될 기능으로는 다음이 있다.

1. template language form을 하나 정해서 edit할 때 환경변수에서 읽어와야할 값이 있으면 해당 값으로 치환.

2. get 기능. (0.2.0에서 완료)

3. --- 형태로 separate돼있는 yaml파일에 대한 edit 기능.

4. 대쉬 선언으로 list형태가 돼있는 key, value에 대한 수정 기능

5. 기타 자잘한 오류수정 및 예외처리

 

일단 지금 생각나는 건 여기까지다. 오랜만에 재미있었다. 많은 사람들이 써줫으면 좋겟다 ㅎㅎ

 

 

아, 이름은 소믈리에(Sommelier)에서 따왔다. 항상 yaml의 발음에 대해서 궁금했는데 야멜, 야믈, 와이엠엘, 와이엠엘 등등 각자 부르는 방법이 다양하더라. 난 그중에서도 야믈이라고 주로 읽었는데(그냥 yaml이 야믈이니까) 이걸 만들자고 마음먹으니까 야믈 -> 소믈리에 -> 야믈리에가 떠올랐다. 그래서 그냥 우당탕탕 후다닥 지었다. 근데 꽤나 이름이 예쁜 것 같아서 만족스럽다 ㅎㅎ.

 

'Golang' 카테고리의 다른 글

golang에 대한 단상  (0) 2022.04.20
Comments