YAML에서 스칼라는 문자열, 숫자, 불리언 등의 단일 값을 나타냅니다. Helm에서는 다음과 같이 사용할 수 있습니다.
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ .Release.Name }}-configmap
data:
myvalue: "Hello World"
drink: {{ .Values.favorite.drink | default "tea" | quote }}
food: {{ .Values.favorite.food | upper | quote }}
YAML Node Tag
YAML의 Node Tag를 사용해 Value에 특정 타입을 강제할 수 있습니다.
coffee: "yes, please"
age: !!str 21
port: !!int "80"
YAML의 플로우 스타일을 사용하면 간결한 표현이 가능합니다.
arguments: ["--debug", "--no-cache", "--log-file", "/tmp/app.log"]
way1: bare words
way2: "double-quoted strings"
way3: 'single-quoted strings'
\\
로 이스케이프 처리될 수 있습니다. 예를 들어 “\\”Hello\\“, she said”
. \\n
으로 줄 바꿈을 이스케이프 처리할 수 있습니다.\\
를 사용하여 문자를 이스케이프 처리하지 않습니다. 유일한 이스케이프 시퀀스는 ' '
이며, 이는 단일 ' '
로 디코딩됩니다.여러 줄의 문자열을 표현할 때는 '|' 문자를 사용할 수 있습니다.
coffee: |
Latte
Cappuccino
Espresso
|
문자로 작성된 멀티라인 문자열은 단일 문자열로 취급합니다. [Latte\\nCappuccino\\nEspresso\\n
]
주의 할 점은 |
문자 사용시 들여 쓰기가 올바르지 않을 경우 에러가 발생합니다.
coffee: |
Latte
Cappuccino
Espresso
--- Error
Error parsing file: error converting YAML to JSON: yaml: line 7: did not find expected key
|
문자열을 사용하는 경우 작성된 문자열의 맨 끝에 새로운 줄(\\n
)이 추가되는 것을 알 수 있습니다. 이 줄을 추가하지 않기 위해선 |-
문자열을 사용해야 합니다.
coffee: |-
Latte
Cappuccino
Espresso
--- Result
Latte\\nCappuccino\\nEspresso
만약 별도의 여백을 허용하고 싶다면 |+
문자열을 사용할 수 있습니다.
coffee: |+
Latte
Cappuccino
Espresso
another: value
--- Result
coffee의 값: Latte\\nCappuccino\\nEspresso\\n\\n\\n