Authoring and Shipping Helm Charts
Quiz: --set Syntax and Types
한국어 원문으로 표시합니다.
--set nodeSelector.kubernetes.io/os=linux 로 렌더하면 values 에 무엇이 들어가나요?
nodeSelector: {kubernetes: {io/os: linux}}— 점이 깊이를 파는 기호로 읽힌다nodeSelector: {"kubernetes.io/os": linux}— 슬래시가 있으면 헬름이 한 키로 인식한다- 키에 점이 있으면 문법 오류로 렌더가 멈춘다
nodeSelector가 문자열kubernetes.io/os=linux로 통째로 대체된다
helm 3.16 에서 --set image.tag=1.10 과 --set image.tag=8 의 결과 타입은?
- 둘 다 숫자 — 숫자로 보이는 값은 모두 숫자로 들어간다
- 둘 다 문자열 — --set 은 언제나 문자열로 넣는다
- 1.10 은 문자열, 8 은 숫자 — 정수로 읽히는 값만 숫자가 된다
- 1.10 은 숫자 1.1, 8 은 문자열 — 소수점이 있으면 숫자로 읽는다
--set image.tag=null 과 --set image.tag= 의 차이는?
- 둘 다 키를 삭제한다 — 표기만 다르다
- null 은 키를 삭제하고, 빈 값은 빈 문자열을 넣는다
- null 은 빈 문자열을 넣고, 빈 값은 문법 오류가 난다
- 둘 다 빈 문자열을 넣지만 null 쪽은 경고를 낸다
인증서 파일 본문을 config.ca 값으로 넣으려 합니다. 알맞은 방법은?
--set config.ca=$(cat ca.pem)— 셸이 내용을 펼쳐 넣는다--set-json config.ca=ca.pem— JSON 옵션이 파일을 읽어 준다--set config.ca=ca.pem— 헬름이 경로를 보고 파일을 읽는다--set-file config.ca=ca.pem— 파일 내용을 값으로 넣는 전용 옵션이다
--set-json 을 쓰는 것이 --set 보다 나은 상황은?
- 리스트 안에 객체가 들어가거나 숫자·불리언 타입을 정확히 지정해야 할 때
- 값이 한 개뿐이고 문자열일 때 — 문법이 더 짧다
- values 파일이 이미 있어 그 위에 값을 덮어쓸 때
- 키 이름 안에 점이 들어 있을 때 — 탈출이 필요 없어진다
values 파일에 tag: "8" 이라고 적은 것과 --set image.tag=8 로 넘긴 것의 렌더 결과를 비교하면?
- 완전히 같다 — 헬름이 values 파일 값도 숫자로 다시 읽는다
- 완전히 같다 — --set 은 values 파일과 같은 파서를 쓴다
- 타입이 다르다 — 파일 쪽은 문자열, --set 쪽은 숫자다
- --set 쪽이 무시된다 — values 파일이 언제나 이긴다