Helm: ํŒŒ์ผ์˜ ๋ฌธ์ž์—ด์„ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

์— ๋งŒ๋“  2018๋…„ 05์›” 15์ผ  ยท  3์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: helm/helm

์•ˆ๋…•ํ•˜์„ธ์š”,
Helm์„ ์‚ฌ์šฉํ•˜์—ฌ configmap์„ ๋ฐฐํฌํ•˜๋ ค๊ณ  ํ•  ๋•Œ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฌธ์ œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์„ค๋ช…๋ฉ๋‹ˆ๋‹ค.
๋‹ค์Œ๊ณผ ๊ฐ™์€ ํด๋” ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง„ helm ์ฐจํŠธ๊ฐ€ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค.

โ”œโ”€โ”€ ์ฐจํŠธ
โ”œโ”€โ”€ Chart.yaml
โ”œโ”€โ”€ conf
โ”‚ โ””โ”€โ”€ tee.xml
โ”œโ”€โ”€ ํ…œํ”Œ๋ฆฟ
โ”‚ โ””โ”€โ”€ ConfigMap.yaml
โ””โ”€โ”€ values.yaml

tee.xml์€ ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

<note>
<to>Tove</to>
<from>${name}</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>

ConfigMap.yaml์€ ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

apiVersion: v1
kind: ConfigMap
metadata:
  name: mytest-var
xml:
  {{ .Values.from }}
data:
  {{- $file := .Files }}
  {{- $var := .Values.from }}
  {{- range $path, $byte := .Files.Glob "conf/*" }}
  {{- $list := $path | splitList "/"}}
  {{- $length := len $list }}
  {{- $last := add $length -1 }}
  {{ index $list $last }}: |-
    {{- range $file.Lines $path }}
    {{ . }}
    {{- end }}
  {{- end }}

values.yaml์˜ ์ผ๋ถ€๋Š” ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.
from: Shashi

๋‚˜๋Š” ์กฐํƒ€ ์žฅ์น˜๊ฐ€ ์„ค์น˜ ๋ช…๋ น์„ ์‹คํ–‰ํ•˜๋ฉด, ๋‚ด๊ฐ€ ๋Œ€์ฒดํ•˜๋ ค๋Š” ๊ฐ’ ${name} tee.xml ํŒŒ์ผ (์— ์œ„์น˜ํ•œ <from>${name}</from> values.yaml์— ์„ค์ •๋˜์–ด์žˆ๋Š” ๊ฐ’์—์„œ์ด). helm์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๊นŒ? ๊ฐ€๋Šฅํ•˜๋‹ค๋ฉด ๊ด€๋ จ ๋ณ€๊ฒฝ ์ž‘์—…์„ ๋„์™€ ์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

questiosupport

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

์•ˆ๋…•ํ•˜์„ธ์š”,

"๊ต์ฒด"๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์œ„์˜ ๋ฌธ์ œ์— ๋Œ€ํ•œ ํ•ด๊ฒฐ์ฑ…์„ ์ฐพ์„ ์ˆ˜์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์•„๋ž˜์— ๊ด€๋ จ helm ํŒŒ์ผ์„ ์ฒจ๋ถ€ํ–ˆ์Šต๋‹ˆ๋‹ค.

ConfigMap.yaml

apiVersion: v1
kind: ConfigMap
metadata:
  name: mytest-var
xml:
  {{ .Values.from }}
data:
  {{- $file := .Files }}
  {{- $var := .Values.from }}
  {{- range $path, $byte := .Files.Glob "conf/*" }}
  {{- $list := $path | splitList "/"}}
  {{- $length := len $list }}
  {{- $last := add $length -1 }}
  {{ index $list $last }}: |-
    {{- range $line := $file.Lines $path }}
    {{ $line | replace "John" $var }}
    {{- end }}
  {{- end }}

tee.xml

<note>
<to>Tove</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>

values.yaml์˜ ์ผ๋ถ€
from: Cigra

helm install์„ ์‹คํ–‰ํ•˜์—ฌ ""ํ‚ค๋กœ ๋Œ€์ฒด๋˜๋Š” ๊ตฌ์„ฑ ๋งต์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.๋‚จ์ž ""Cigra "๋ผ๋Š” ๋‹จ์–ด์—์„œ

์ด๊ฒƒ์ด ์˜ฌ๋ฐ”๋ฅธ ๋ฐฉ๋ฒ•์ด๋ผ๊ณ  ๋งํ•ด์ฃผ์„ธ์š”.

๋ชจ๋“  3 ๋Œ“๊ธ€

์•ˆ๋…•ํ•˜์„ธ์š”,

"๊ต์ฒด"๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์œ„์˜ ๋ฌธ์ œ์— ๋Œ€ํ•œ ํ•ด๊ฒฐ์ฑ…์„ ์ฐพ์„ ์ˆ˜์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์•„๋ž˜์— ๊ด€๋ จ helm ํŒŒ์ผ์„ ์ฒจ๋ถ€ํ–ˆ์Šต๋‹ˆ๋‹ค.

ConfigMap.yaml

apiVersion: v1
kind: ConfigMap
metadata:
  name: mytest-var
xml:
  {{ .Values.from }}
data:
  {{- $file := .Files }}
  {{- $var := .Values.from }}
  {{- range $path, $byte := .Files.Glob "conf/*" }}
  {{- $list := $path | splitList "/"}}
  {{- $length := len $list }}
  {{- $last := add $length -1 }}
  {{ index $list $last }}: |-
    {{- range $line := $file.Lines $path }}
    {{ $line | replace "John" $var }}
    {{- end }}
  {{- end }}

tee.xml

<note>
<to>Tove</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>

values.yaml์˜ ์ผ๋ถ€
from: Cigra

helm install์„ ์‹คํ–‰ํ•˜์—ฌ ""ํ‚ค๋กœ ๋Œ€์ฒด๋˜๋Š” ๊ตฌ์„ฑ ๋งต์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.๋‚จ์ž ""Cigra "๋ผ๋Š” ๋‹จ์–ด์—์„œ

์ด๊ฒƒ์ด ์˜ฌ๋ฐ”๋ฅธ ๋ฐฉ๋ฒ•์ด๋ผ๊ณ  ๋งํ•ด์ฃผ์„ธ์š”.

์ž‘๋™ํ•˜๋ฉด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. replace ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ฃผ์–ด์ง„ ๋ฌธ์ž์—ด ๋‚ด์—์„œ ํ•˜์œ„ ๋ฌธ์ž์—ด์˜ ๋ชจ๋“  ์ธ์Šคํ„ด์Šค๋ฅผ ๋Œ€์ฒดํ•˜๋Š” ๊ฒƒ์ด ํ•ฉ๋ฆฌ์ ์œผ๋กœ ๋“ค๋ฆฝ๋‹ˆ๋‹ค.

๋™์˜ํ•ฉ๋‹ˆ๋‹ค. replace ์€์ด ๊ฒฝ์šฐ ๊ฝค ์ข‹์€ ์˜ต์…˜์ฒ˜๋Ÿผ ๋“ค๋ฆฝ๋‹ˆ๋‹ค.

@KavinduZoysa ์ด ์†”๋ฃจ์…˜์ด ์ž‘๋™ํ•˜๋ฉด์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ์˜ˆ์ƒ๋Œ€๋กœ ์ž‘๋™ํ•˜์ง€ ์•Š๊ฑฐ๋‚˜ ๋‹ค๋ฅธ ๊ด€๋ จ ์งˆ๋ฌธ์ด์žˆ๋Š” ๊ฒฝ์šฐ ์–ธ์ œ๋“ ์ง€ ๋‹ค์‹œ์—ฌ์‹ญ์‹œ์˜ค. ๊ฐ์‚ฌ!

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰