Helm: app-name์— ๋ฐฐํฌ ๋œ ๋ฆด๋ฆฌ์Šค๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

์— ๋งŒ๋“  2019๋…„ 04์›” 12์ผ  ยท  120์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: helm/helm

helm version ์ถœ๋ ฅ :

$ helm version 
Client: &version.Version{SemVer:"v2.13.1", GitCommit:"618447cbf203d147601b4b9bd7f8c37a5d39fbb4", GitTreeState:"clean"}
Server: &version.Version{SemVer:"v2.13.1", GitCommit:"618447cbf203d147601b4b9bd7f8c37a5d39fbb4", GitTreeState:"clean"}

kubectl version ์ถœ๋ ฅ :

$ kubectl version 
Client Version: version.Info{Major:"1", Minor:"14", GitVersion:"v1.14.0", GitCommit:"641856db18352033a0d96dbc99153fa3b27298e5", GitTreeState:"clean", BuildDate:"2019-03-25T15:53:57Z", GoVersion:"go1.12.1", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"10", GitVersion:"v1.10.11", GitCommit:"637c7e288581ee40ab4ca210618a89a555b6e7e9", GitTreeState:"clean", BuildDate:"2018-11-26T14:25:46Z", GoVersion:"go1.9.3", Compiler:"gc", Platform:"linux/amd64"}

ํด๋ผ์šฐ๋“œ ์ œ๊ณต ์—…์ฒด / ํ”Œ๋žซํผ (AKS, GKE, Minikube ๋“ฑ) : Amazon

๋ฌด์Šจ ์ผ์ด ์ผ์–ด๋‚˜๊ณ  ์žˆ๋Š”์ง€ :
๋ช‡ ๋ฒˆ์˜ ์ค‘๋‹จ ๋œ ๋ฐฐํฌ ํ›„์— helm (๋˜๋Š” tiller)์ด ์ค‘๋‹จ๋˜๊ณ  ๋ชจ๋“  ํ›„์† ๋ฐฐํฌ (๊ณ ์ •๋˜์—ˆ๋Š”์ง€ ์—ฌ๋ถ€์— ๊ด€๊ณ„์—†์ด)๊ฐ€ ๋‹ค์Œ ์˜ค๋ฅ˜๋กœ ์ข…๋ฃŒ๋ฉ๋‹ˆ๋‹ค. app-name has no deployed releases

์žฌ์ƒ์‚ฐ ๋ฐฉ๋ฒ• :
์šฐ๋ฆฌ๋Š”

spec:
  revisionHistoryLimit: 1

ํ•˜์ง€๋งŒ ๊ด€๋ จ์ด ์—†๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

๊ฒฝ๋กœ A :

  1. ๋ชจ๋“  ์„œ๋น„์Šค ๋ฐฐํฌ-์ž‘๋™
  2. ์˜ˆ๋ฅผ ๋“ค์–ด ์‹œ์ž‘ ํ›„ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ข…๋ฃŒํ•˜์—ฌ ์ค‘๋‹จํ•˜๋ฉด ์ „์ฒด ๋ฐฐํฌ๊ฐ€ ์ค‘๋‹จ๋ฉ๋‹ˆ๋‹ค.
  3. ์ •ํ™•ํžˆ 3 ํšŒ ๋ฐ˜๋ณต
  4. ๋ชจ๋“  ๋‹ค์Œ ๋ฐฐํฌ์—๋Š” ์ˆ˜์ • ๋˜๋Š” ์†์ƒ ์—ฌ๋ถ€์— ๊ด€๊ณ„์—†์ด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

๊ฒฝ๋กœ b :

  1. ์ค‘๋‹จ ๋œ ์„œ๋น„์Šค ๋ฐฐํฌ-์œ„์˜ # 2 ์ฐธ์กฐ
  2. ๋ชจ๋“  ๋‹ค์Œ ๋ฐฐํฌ์—๋Š” ์ˆ˜์ • ๋˜๋Š” ์†์ƒ ์—ฌ๋ถ€์— ๊ด€๊ณ„์—†์ด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
questiosupport

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

๋” ์ด์ƒ ๋™์˜ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ ์ƒ์‚ฐ์—๋„ ๋™์ผํ•œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ฐจํŠธ๋ฅผ ์‚ญ์ œํ•˜๋Š” ๊ฒƒ์€ ์„ ํƒ ์‚ฌํ•ญ์ด ์•„๋‹ˆ๋ฉฐ ๊ฐ•์ œ๋กœ ์„ค์น˜ํ•˜๋Š” ๊ฒƒ์€ ์œ„ํ—˜ ํ•ด ๋ณด์ž…๋‹ˆ๋‹ค. ์ด ์˜ค๋ฅ˜๋Š” Helm 3์—๋„ ์—ฌ์ „ํžˆ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ˆ˜์ • ๋˜๋Š” ๋” ์•ˆ์ „ํ•œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ํฌํ•จํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

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

์•ˆ๋…•ํ•˜์„ธ์š”. ๋ฐฐํฌ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์ข€ ๋” ์ž์„ธํžˆ ์„ค๋ช…ํ•ด ์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ? ํ˜น์‹œ helm upgrade --install ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ๊ณ„์‹ญ๋‹ˆ๊นŒ? ๊ทธ๋ ‡๋‹ค๋ฉด ๋ฐฐํฌ๊ฐ€ ์ค‘๋‹จ๋˜์—ˆ์„ ๋•Œ ๋ฐฐํฌ ์ƒํƒœ๋Š” ์–ด๋–ป๊ฒŒ๋ฉ๋‹ˆ๊นŒ ( helm ls )-์•„๋งˆ๋„ Failed ์ผ๊นŒ์š”?

์ด ๊ฒฝ์šฐ helm delete --purge <deployment> ๊ฐ€ ํŠธ๋ฆญ์„ ์ˆ˜ํ–‰ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š”, ์ •๋ณด๋ฅผ ๋†“์ณ์„œ ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค.
์˜ˆ, helm upgrade --install
์˜ˆ, ๋ฐฐํฌ๋Š” Failed ์˜์›ํžˆ ์œ ์ง€๋ฉ๋‹ˆ๋‹ค.
์•ˆํƒ€๊น๊ฒŒ๋„ helm delete --purge <deployment> ์€ (๋Š”) ์—ฌ๊ธฐ์—์„œ ์ „ํ˜€ ์˜ต์…˜์ด ์•„๋‹™๋‹ˆ๋‹ค. ๊ทธ ๋•Œ๋ฌธ์— ํ”„๋กœ๋•์…˜ ์„œ๋น„์Šค๋ฅผ ์‚ญ์ œํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. :)

๋ฌธ์ œ๋Š” 3 ํšŒ ์—ฐ์† ์‹คํŒจ ํ›„ helm์ด ํšŒ๋ณต ํ•  ์ˆ˜์—†๋Š” ์ด์œ ์ž…๋‹ˆ๋‹ค.

๋ฆด๋ฆฌ์Šค๋ฅผ ์‚ญ์ œํ•˜์ง€ ์•Š๊ณ  ์ •๋ ฌํ•˜๋Š” ์œ ์ผํ•œ ๋ฐฉ๋ฒ•์€ --force

--force ๋ฌด์—‡์—? ~ helm upgrade --install ?
๊ทธ๋ ‡๋‹ค๋ฉด ์œ„์˜ ๋ฌธ์ œ๊ฐ€ ์‹ค์ œ๋กœ ์˜ˆ์ƒ๋˜๋Š” ๊ธฐ๋Šฅ์ด๋ฉฐ ๋ชจ๋“  ๋ฐฐํฌ์— --force ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•จ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. -๊ทธ๋ ‡๋‹ค๋ฉด ๊นจ์ง„ ๋ฆด๋ฆฌ์Šค๋ฅผ ๊ฐ•์ œ๋กœ ๋ฐฐํฌํ•œ๋‹ค๋Š” ์˜๋ฏธ์ž…๋‹ˆ๊นŒ?

์˜ˆ, ๋ฌผ๋ก  helm upgrade --install :)
์˜ˆ, ๋ชจ๋“  ๋ฐฐํฌ์— --force ๋ฅผ ์‚ฌ์šฉํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

--force ์ด (๊ฐ€) ์†์ƒ๋œ ๋ฆด๋ฆฌ์Šค๋„ ๊ฐ•์ œ๋กœ ๋ฐฐํฌํ•œ๋‹ค๋Š” ์˜๋ฏธ์ž…๋‹ˆ๊นŒ? -ํฌ๋“œ๊ฐ€ ๋Š์–ด์ง€๊ณ  ํ•ญ์ƒ ๋‹ค์‹œ ์‹œ์ž‘๋˜๋ฉด ์ด์ „ ํฌ๋“œ๋ฅผ ์‚ญ์ œํ•˜๊ณ  ์ƒˆ ํฌ๋“œ๋ฅผ ์˜ˆ์•ฝํ•ฉ๋‹ˆ๊นŒ?
--force force resource update through delete/recreate if needed
delete ์กฐ๊ฑด์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ์ •ํ™•ํžˆ ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•˜๋Š”์ง€ ์ž์„ธํžˆ ์„ค๋ช…ํ•ด ์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ? ์ด๋Ÿฌํ•œ ์ค‘์š”ํ•œ ํ”Œ๋ž˜๊ทธ์— ๋Œ€ํ•ด์„œ๋Š” ์„ค๋ช…์ด ๋„ˆ๋ฌด ์งง์Šต๋‹ˆ๋‹ค. ๋‚ด๋ถ€์ ์œผ๋กœ ์ˆ˜์ฒœ ๊ฐ€์ง€ ์ž‘์—…์„ ์ˆ˜ํ–‰ ํ•  ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒํ•ฉ๋‹ˆ๋‹ค.

BTW ๋‚˜๋Š” ์ •๋ง๋กœ ์‚ญ์ œ ๋œ ์ƒ์‚ฐ ์„œ๋น„์Šค๋กœ ๋๋‚˜๊ณ  ์‹ถ์ง€ ์•Š์œผ๋ฏ€๋กœ --force ํ”Œ๋ž˜๊ทธ๋Š” ๋‚˜์—๊ฒŒ ์˜ต์…˜์ด ์•„๋‹™๋‹ˆ๋‹ค.

์ •๋ง ๋ฌธ์ œ๊ฐ€ ์•„๋‹ˆ๋ผ๊ณ  ์ƒ๊ฐํ•˜์‹ญ๋‹ˆ๊นŒ?
์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๋„ ์ž˜๋ชป๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
app-name has no deployed releases
๋ฐฐํฌ ๋œ ๋ฆด๋ฆฌ์Šค ๊ฐ€ .
์ƒํƒœ์— ์žˆ์ง€๋งŒ,์ด ์ƒํƒœ์—์„œ Failed ์™€ ์กฐํƒ€๋„ :( ๊ทธ๊ฒƒ์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์‹œ๋„ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค - ๋‚ด ๋ง์„ ๊ณ ์ •ํ•˜์—ฌ ๋‹จ์ง€ ๋Œ€์‹  ๋งค์šฐ ์‹œ์ž‘ ํฌ๊ธฐ์˜, ๋ฐฐํฌ ํ•ด๋ณด์„ธ์š”

๋” ์ด์ƒ ๋™์˜ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ ์ƒ์‚ฐ์—๋„ ๋™์ผํ•œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ฐจํŠธ๋ฅผ ์‚ญ์ œํ•˜๋Š” ๊ฒƒ์€ ์„ ํƒ ์‚ฌํ•ญ์ด ์•„๋‹ˆ๋ฉฐ ๊ฐ•์ œ๋กœ ์„ค์น˜ํ•˜๋Š” ๊ฒƒ์€ ์œ„ํ—˜ ํ•ด ๋ณด์ž…๋‹ˆ๋‹ค. ์ด ์˜ค๋ฅ˜๋Š” Helm 3์—๋„ ์—ฌ์ „ํžˆ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ˆ˜์ • ๋˜๋Š” ๋” ์•ˆ์ „ํ•œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ํฌํ•จํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

storage.go : 136์—์„œ "status": "deployed"๋ฅผ ์ œ๊ฑฐํ•˜์—ฌ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ฐธ์กฐ : https://github.com/helm/helm/pull/6933/commits/638229c3d3646e78d0fd5157309f8aeadfd01af1

์‹œ๊ฐ„์ด ์žˆ์œผ๋ฉด Pull Request๋ฅผ ์ˆ˜์ •ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

์ œ์ž๋ฆฌ์—์žˆ๋Š” ์ฝ”๋“œ๋Š” ์›๋ž˜ ์ •ํ™•ํ–ˆ์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ ์ƒํƒœ์— ๊ด€๊ณ„์—†์ด ์˜๋„ํ•˜์ง€ ์•Š์€ ๊ฒฐ๊ณผ๋ฅผ ์ดˆ๋ž˜ํ•  ์ˆ˜์žˆ๋Š” ์ƒํƒœ์— ๊ด€๊ณ„์—†์ด Helm์ด ์—…๊ทธ๋ ˆ์ด๋“œ ํ•  ์ตœ์‹  ๋ฆด๋ฆฌ์Šค๋ฅผ ์ฐพ๋Š” ์ฟผ๋ฆฌ ๊ฒฐ๊ณผ์—์„œ status: deployed ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค. ์ผ์‹œ์ ์œผ๋กœ ๋ฌธ์ œ๋ฅผ ์šฐํšŒํ•˜์ง€๋งŒ ์•ž์œผ๋กœ ๋” ํฐ ๋ฌธ์ œ๋ฅผ ์•ผ๊ธฐํ•ฉ๋‹ˆ๋‹ค.

์ด ๋ฒ„๊ทธ๋ฅผ ๋ฐœ๊ฒฌํ–ˆ์„ ๋•Œ helm history ์˜ ์ถœ๋ ฅ์„ ์ œ๊ณต ํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ๋„์›€์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ฆด๋ฆฌ์Šค ์›์žฅ์— "๋ฐฐํฌ ๋จ"์ƒํƒœ์˜ ๋ฆด๋ฆฌ์Šค๊ฐ€์—†๋Š” ๊ฒฝ์šฐ ์ข…๋ฃŒ ๋ฐฉ๋ฒ•์„ ๊ฒฐ์ •ํ•˜๋Š” ๊ฒƒ์ด ๋” ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.

์ƒˆ ํด๋Ÿฌ์Šคํ„ฐ์— ์ฒ˜์Œ ๋ฐฐํฌ ํ•  ๋•Œ์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. --force ๋„ ์‚ฌ์šฉํ•ด์•ผํ•ฉ๋‹ˆ๊นŒ?

--purge ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ์ด์ „ ๋ฆด๋ฆฌ์Šค๋ฅผ ์‚ญ์ œํ•  ๋•Œ์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

helm delete --purge <release-name>

Helm ๋ฒ„์ „

Client: &version.Version{SemVer:"v2.15.X"}
Server: &version.Version{SemVer:"v2.15.X"}

์ด ๋ฌธ์ œ๋„ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

๋ฟก ๋นต๋€จ
๋‚˜๋Š” ์ด๊ฒƒ์„ helm3๋กœ ์ณค๋‹ค. ์ด๊ฒƒ์ด ๋ฐœ์ƒํ•˜๋ฉด ๊ธฐ๋ก์€ ์™„์ „ํžˆ ๋น„์–ด ์žˆ์ง€๋งŒ ์‹œ๋„ 1 ์ดํ›„๋กœ ๊นจ์ง„ k8s ๋ฆฌ์†Œ์Šค๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฒˆ์‹์€ ์ •๋ง ์‰ฌ์›Œ ๋ณด์ž…๋‹ˆ๋‹ค.

  1. helm upgrade --install "์˜ค๋ฅ˜๋กœ ์ข…๋ฃŒ๋˜๋Š” ์ปจํ…Œ์ด๋„ˆ๊ฐ€์žˆ๋Š” ํฌ๋“œ๊ฐ€์žˆ๋Š” ๊ฒƒ"
  2. ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์ข…๋ฃŒ ๋œ ์›์ธ (์˜ˆ : ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€์˜ ์‹คํ–‰ ํŒŒ์ผ์— ๋Œ€ํ•ด ์ž˜๋ชป๋œ ์ธ์ˆ˜๊ฐ€์žˆ๋Š” ๊ฐ’)์„ ์ˆ˜์ •ํ•˜๊ณ  ๋‹ค์‹œ ์‹œ๋„ํ•˜์‹ญ์‹œ์˜ค.
    -> ์˜ค๋ฅ˜ : UPGRADE FAILED : "foo"์— ๋ฐฐํฌ ๋œ ๋ฆด๋ฆฌ์Šค๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

--atomic ํ”Œ๋ž˜๊ทธ๋Š” ๋‚ด (CI / CD) ์‹œ๋‚˜๋ฆฌ์˜ค์—์„œ ์•ž์œผ๋กœ ๋‚˜์•„๊ฐˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฒ˜์Œ ์‹คํŒจํ•œ ๋ฆด๋ฆฌ์Šค๋ฅผ ์ „ํ˜€ ๋ฐœ์ƒํ•˜์ง€ ์•Š์€ ๊ฒƒ์ฒ˜๋Ÿผ ์™„์ „ํžˆ ์ •๋ฆฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋‹ค์Œ ์‹œ๋„์—์„œ์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์„œ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค. delete ๋˜๋Š” --force ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ํŠนํžˆ ์˜๊ตฌ ๋ณผ๋ฅจ์ด์žˆ๋Š” ๊ฒฝ์šฐ ํŠนํžˆ ๊ทธ๋ผ ํŒŒ๋‚˜ ๋Œ€์‹œ ๋ณด๋“œ๋ฅผ ๋ชจ๋‘ ์žƒ์–ด ๋ฒ„๋ ธ์Šต๋‹ˆ๋‹ค. ๋‹ค์‹œ :)

์—…๋ฐ์ดํŠธ : ๋‚ด ๊ฒฝ์šฐ btw๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ด์œ ๋กœ ๋ฆด๋ฆฌ์Šค๊ฐ€ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค.

Upgrade "grafana" failed: cannot patch "grafana" with kind PersistentVolumeClaim: PersistentVolumeClaim "grafana" is invalid: spec: Forbidden: is immutable after creation except resources.requests for bound claims

๊ทธ๋ผ ํŒŒ๋‚˜ ๊ฐ’์„ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š์•„๋„

@ alex88 helm history ์˜ ์ถœ๋ ฅ์„ ์ œ๊ณต ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์ด์ด ์‚ฌ๊ฑด์„ ์–ด๋–ป๊ฒŒ ๊ณต๊ฒฉํ•˜๋Š”์ง€ ์•Œ์•„์•ผ ๊ทผ๋ณธ ์›์ธ์„ ํŒŒ์•…ํ•˜๊ณ  ํ•ด๊ฒฐ์ฑ…์„ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@bacongobbler ๋‚˜๋Š” ๋ช‡ ๋ฒˆ ์˜๊ตฌ ๋ณผ๋ฅจ์„ ์žƒ์–ด ๋ฒ„๋ ธ๊ธฐ ๋•Œ๋ฌธ์— helm์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์— ๋Œ€ํ•ด ์ •๋ง๋กœ ์‹ ์ค‘ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์ด ์ˆ˜์ • ๋œ ๊ฒƒ์„๋ณด๊ณ  ์‹ถ์—ˆ์Šต๋‹ˆ๋‹ค (์•„๋งˆ๋„ ๋‚ด ์ž˜๋ชป์ž…๋‹ˆ๋‹ค)

REVISION    UPDATED                     STATUS  CHART           APP VERSION DESCRIPTION
4           Wed Dec  4 02:45:59 2019    failed  grafana-4.1.0   6.5.0       Upgrade "grafana" failed: cannot patch "grafana" with kind PersistentVolumeClaim: PersistentVolumeClaim "grafana" is invalid: spec: Forbidden: is immutable after creation except resources.requests for bound claims
5           Mon Dec  9 12:27:22 2019    failed  grafana-4.1.0   6.5.0       Upgrade "grafana" failed: cannot patch "grafana" with kind PersistentVolumeClaim: PersistentVolumeClaim "grafana" is invalid: spec: Forbidden: is immutable after creation except resources.requests for bound claims
6           Mon Dec  9 12:33:54 2019    failed  grafana-4.1.0   6.5.0       Upgrade "grafana" failed: cannot patch "grafana" with kind PersistentVolumeClaim: PersistentVolumeClaim "grafana" is invalid: spec: Forbidden: is immutable after creation except resources.requests for bound claims
7           Mon Dec  9 12:36:02 2019    failed  grafana-4.1.0   6.5.0       Upgrade "grafana" failed: cannot patch "grafana" with kind PersistentVolumeClaim: PersistentVolumeClaim "grafana" is invalid: spec: Forbidden: is immutable after creation except resources.requests for bound claims
8           Mon Dec  9 13:06:55 2019    failed  grafana-4.1.0   6.5.0       Upgrade "grafana" failed: cannot patch "grafana" with kind PersistentVolumeClaim: PersistentVolumeClaim "grafana" is invalid: spec: Forbidden: is immutable after creation except resources.requests for bound claims
9           Mon Dec  9 13:38:19 2019    failed  grafana-4.1.0   6.5.0       Upgrade "grafana" failed: cannot patch "grafana" with kind PersistentVolumeClaim: PersistentVolumeClaim "grafana" is invalid: spec: Forbidden: is immutable after creation except resources.requests for bound claims
10          Mon Dec  9 13:38:51 2019    failed  grafana-4.1.0   6.5.0       Upgrade "grafana" failed: cannot patch "grafana" with kind PersistentVolumeClaim: PersistentVolumeClaim "grafana" is invalid: spec: Forbidden: is immutable after creation except resources.requests for bound claims
11          Mon Dec  9 13:41:30 2019    failed  grafana-4.1.0   6.5.0       Upgrade "grafana" failed: cannot patch "grafana" with kind PersistentVolumeClaim: PersistentVolumeClaim "grafana" is invalid: spec: Forbidden: is immutable after creation except resources.requests for bound claims
12          Mon Dec  9 13:56:01 2019    failed  grafana-4.1.0   6.5.0       Upgrade "grafana" failed: cannot patch "grafana" with kind PersistentVolumeClaim: PersistentVolumeClaim "grafana" is invalid: spec: Forbidden: is immutable after creation except resources.requests for bound claims
13          Mon Dec  9 15:15:05 2019    failed  grafana-4.1.0   6.5.0       Upgrade "grafana" failed: cannot patch "grafana" with kind PersistentVolumeClaim: PersistentVolumeClaim "grafana" is invalid: spec: Forbidden: is immutable after creation except resources.requests for bound claims

๊ธฐ๋ณธ์ ์œผ๋กœ ์ผ๋ถ€ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ๋ณ€๊ฒฝํ•˜๊ธฐ ์œ„ํ•ด ์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ ์—ฌ๋Ÿฌ ๋ฒˆ ์‹œ๋„ํ–ˆ์œผ๋ฉฐ ๋ฐฐํฌ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๋™์•ˆ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๊ฐ€ ์–ด์จŒ๋“  ๋ณ€๊ฒฝ๋˜์—ˆ์œผ๋ฏ€๋กœ ๊ณ„์† ์˜ค๋ฅ˜๋ฅผ ๋ฌด์‹œํ–ˆ์Šต๋‹ˆ๋‹ค.

๋ชจ๋“  ๋ฆด๋ฆฌ์Šค๊ฐ€ ์‹คํŒจํ•œ ์ƒํƒœ๊ฐ€ ๋œ ๋ฐฉ๋ฒ•์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ๋ฆด๋ฆฌ์Šค 1, 2, 3์€ ์–ด๋””์— ์žˆ์Šต๋‹ˆ๊นŒ?

๋ชจ๋“  ๋ฆด๋ฆฌ์Šค๊ฐ€ ์‹คํŒจํ•œ ์ƒํƒœ๊ฐ€ ๋œ ๋ฐฉ๋ฒ•์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ๋ฆด๋ฆฌ์Šค 1, 2, 3์€ ์–ด๋””์— ์žˆ์Šต๋‹ˆ๊นŒ?

ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ๋ณ€๊ฒฝํ•˜๊ณ  (์—ฌ๋Ÿฌ ๋ฒˆ ๋ณ€๊ฒฝํ•ด์•ผ ํ•จ) ๋งค๋ฒˆ ์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๊ฐ€ ๋ณ€๊ฒฝ๋˜์—ˆ์ง€๋งŒ ์˜๊ตฌ ๋ณผ๋ฅจ ์˜ค๋ฅ˜๋ฅผ ์ˆ˜์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค.

์—…๋ฐ์ดํŠธ : btw I 'm using

version.BuildInfo{Version:"v3.0.0", GitCommit:"e29ce2a54e96cd02ccfce88bee4f58bb6e2a28b6", GitTreeState:"clean", GoVersion:"go1.13.4"}

์ด์ „ ๋ฆด๋ฆฌ์Šค์™€ ๊ด€๋ จํ•˜์—ฌ ์•„๋งˆ๋„ helm์€ ๊ทธ์ค‘ 10 ๊ฐœ๋งŒ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค.

Helm3 : istio๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋Š” ๋™์•ˆ ๋น„์Šทํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜์—ฌ ๋ฆด๋ฆฌ์Šค๊ฐ€ ์‹คํŒจํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ ํ…œํ”Œ๋ฆฟ์˜ ์ž‘์€ ์˜ค๋ฅ˜๊ฐ€ ์ˆ˜์ • ๋˜์—ˆ๋Š”๋ฐ๋„ ๋‹ค์‹œ ๋ฐฐํฌ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. istio-ingress ์„œ๋น„์Šค์™€ ๊ด€๋ จ๋œ ELB๋„ ์‚ญ์ œ๋˜๋ฏ€๋กœ ํ”„๋กœ๋•์…˜ ๋ฆด๋ฆฌ์Šค๋ฅผ ์‚ญ์ œํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์ดˆ๊ธฐ ๋ฆด๋ฆฌ์Šค๊ฐ€ ์‹คํŒจํ•œ ์ƒํƒœ๋กœ ๋๋‚  ๋•Œ ๋…ผ๋ฆฌ๋ฅผ ๋ณ€๊ฒฝํ•˜๊ธฐ์œ„ํ•œ ํ–ฅํ›„ ์ž‘์—…์ด ์žˆ์Šต๋‹ˆ๊นŒ?

๋‹ค์šด ํƒ€์ž„์ด ํ—ˆ์šฉ๋˜์ง€ ์•Š์œผ๋ฉด ์–ด๋–ป๊ฒŒํ•ด์•ผํ•ฉ๋‹ˆ๊นŒ?

% helm upgrade prometheus-thanos --namespace metrics -f values.yaml . 
Error: UPGRADE FAILED: "prometheus-thanos" has no deployed releases
% helm install --atomic prometheus-thanos --namespace metrics -f values.yaml .                                                                                                               
Error: cannot re-use a name that is still in use
% helm version
version.BuildInfo{Version:"v3.0.1", GitCommit:"7c22ef9ce89e0ebeb7125ba2ebf7d421f3e82ffa", GitTreeState:"clean", GoVersion:"go1.13.4"}

๋‹ค์šด ํƒ€์ž„์ด ํ—ˆ์šฉ๋˜์ง€ ์•Š์œผ๋ฉด ์–ด๋–ป๊ฒŒํ•ด์•ผํ•ฉ๋‹ˆ๊นŒ?

์ง€๊ธˆ์€ helm์„ ์‚ฌ์šฉํ•˜์—ฌ ํ…œํ”Œ๋ฆฟ์„ ์ƒ์„ฑํ•˜๊ณ  ์ˆ˜๋™์œผ๋กœ ๋กœ์ปฌ์— ์ €์žฅํ•˜๊ณ  ์ ์šฉํ•ฉ๋‹ˆ๋‹ค.

--atomic ํ”Œ๋ž˜๊ทธ๋Š” ๋‚ด (CI / CD) ์‹œ๋‚˜๋ฆฌ์˜ค์—์„œ ์•ž์œผ๋กœ ๋‚˜์•„๊ฐˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฒ˜์Œ ์‹คํŒจํ•œ ๋ฆด๋ฆฌ์Šค๋ฅผ ์ „ํ˜€ ๋ฐœ์ƒํ•˜์ง€ ์•Š์€ ๊ฒƒ์ฒ˜๋Ÿผ ์™„์ „ํžˆ ์ •๋ฆฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋‹ค์Œ ์‹œ๋„์—์„œ์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

@ henrikb123 ์œ„๋Š” ํ•ญ์ƒ --atomic ํ”Œ๋ž˜๊ทธ๋ฅผ ์‚ฌ์šฉํ•œ ๊ฒฝ์šฐ ์—๋งŒ ์ž‘๋™ --atomic ํ”Œ๋ž˜๊ทธ์™€ ํ•จ๊ป˜ ๋™์ผํ•œ ๋ช…๋ น์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๊นจ์งˆ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ฐธ๊ณ ๋กœ ์ตœ์‹  Helm ๋ฒ„์ „-> 3.0.2๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

@ alex88 helm ๊ธฐ๋ก์˜ ์ถœ๋ ฅ์„ ์ œ๊ณต ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์ด์ด ์‚ฌ๊ฑด์„ ์–ด๋–ป๊ฒŒ ๊ณต๊ฒฉํ•˜๋Š”์ง€ ์•Œ์•„์•ผ ๊ทผ๋ณธ ์›์ธ์„ ํŒŒ์•…ํ•˜๊ณ  ํ•ด๊ฒฐ์ฑ…์„ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@bacongobbler ๋ฌธ์ œ๋ฅผ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ํ•˜๊ธฐ ์œ„ํ•ด @ henrikb123์ด ์—ฌ๊ธฐ ์—์„œ ๋งํ•œ๋Œ€๋กœํ•˜์ง€ ์•Š๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? @ henrikb123์ด ์ง€์ ํ•œ ๊ฒƒ์ฒ˜๋Ÿผ ์—ญ์‚ฌ๋Š” ์™„์ „ํžˆ ๋น„์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ €๋„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ œ๋ฐœ๋ณด์„ธ์š” :

$ helm upgrade --install --cleanup-on-fail --reset-values --force --namespace teleport --values values.test.yaml teleport ./
Release "teleport" does not exist. Installing it now.
Error: Secret "teleport-secrets" is invalid: metadata.labels: Invalid value: "helm.sh/chart:teleport-1.0.0app.kubernetes.io/managed-by": a qualified name must consist of alphanumeric characters, '-', '_' or '.', and must start and end with an alphanumeric character (e.g. 'MyName',  or 'my.name',  or '123-abc', regex used for validation is '([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]') with an optional DNS subdomain prefix and '/' (e.g. 'example.com/MyName')

$ helm history teleport
Error: release: not found

$ helm upgrade --install --cleanup-on-fail --reset-values --force --namespace teleport --values values.test.yaml teleport ./
Error: UPGRADE FAILED: "teleport" has no deployed releases

๋‚˜๋Š” ๋˜ํ•œ Istio์™€ ํ•จ๊ป˜ ์ด๊ฒƒ์„ ๋งŒ๋‚ฌ์Šต๋‹ˆ๋‹ค.

1.4.3์— Istio ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ Kubernetes API ์„œ๋ฒ„์— ๋„๋‹ฌ ํ•  ์ˆ˜์—†๋Š” ๊ฒฝ์šฐ ์„ค์น˜ ์‹คํ–‰ ์ž‘์—… ์ค‘ ํ•˜๋‚˜๊ฐ€ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ์ž‘์—…์„ ๋‚จ๊ฒจ๋‘๊ณ  Helm ๋ช…๋ น์„ ๋‹ค์‹œ ์‹คํ–‰ํ•˜๋ ค๊ณ ํ•˜๋ฉด ์ž‘์—…์ด ์ด๋ฏธ ์กด์žฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค. ์ž‘์—…์„ ์‚ญ์ œํ•˜๊ณ , ์ˆ˜์ •ํ•˜๊ณ , ์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ ๋‹ค์‹œ ์‹คํ–‰ํ•˜๋ ค๊ณ ํ–ˆ์ง€๋งŒ ์„ฑ๊ณตํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ ๋ง‰ํ˜”์Šต๋‹ˆ๋‹ค.

(๊ทธ๊ฒƒ์— ๋Œ€ํ•œ ์งˆ๋ฌธ์ด ์žˆ์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์ด ์™„์ „ํžˆ ์‹คํŒจํ•œ ๋ฆด๋ฆฌ์Šค ์ƒํƒœ๋กœ ๋“ค์–ด๊ฐˆ ์ˆ˜์žˆ๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.)

REVISION    UPDATED                     STATUS  CHART       APP VERSION DESCRIPTION                                                                                                                                                                                                         
10          Tue Jan 14 09:17:00 2020    failed  istio-1.4.3 1.4.3       Upgrade "istio" failed: post-upgrade hooks failed: timed out waiting for the condition
11          Tue Jan 14 09:22:21 2020    failed  istio-1.4.3 1.4.3       Upgrade "istio" failed: post-upgrade hooks failed: warning: Hook post-upgrade istio/charts/security/templates/create-custom-resources-job.yaml failed: jobs.batch "istio-security-post-install-1.4.3" already exists
12          Tue Jan 14 09:23:10 2020    failed  istio-1.4.3 1.4.3       Upgrade "istio" failed: post-upgrade hooks failed: warning: Hook post-upgrade istio/charts/security/templates/create-custom-resources-job.yaml failed: jobs.batch "istio-security-post-install-1.4.3" already exists
13          Tue Jan 14 09:25:58 2020    failed  istio-1.4.3 1.4.3       Upgrade "istio" failed: post-upgrade hooks failed: timed out waiting for the condition 
14          Tue Jan 14 09:35:21 2020    failed  istio-1.4.3 1.4.3       Upgrade "istio" failed: post-upgrade hooks failed: warning: Hook post-upgrade istio/charts/security/templates/create-custom-resources-job.yaml failed: jobs.batch "istio-security-post-install-1.4.3" already exists
15          Tue Jan 14 09:38:08 2020    failed  istio-1.4.3 1.4.3       Upgrade "istio" failed: post-upgrade hooks failed: timed out waiting for the condition 
16          Tue Jan 14 14:02:47 2020    failed  istio-1.4.3 1.4.3       Upgrade "istio" failed: post-upgrade hooks failed: timed out waiting for the condition
17          Tue Jan 14 14:19:44 2020    failed  istio-1.4.3 1.4.3       Upgrade "istio" failed: post-upgrade hooks failed: timed out waiting for the condition
18          Tue Jan 14 14:33:36 2020    failed  istio-1.4.3 1.4.3       Upgrade "istio" failed: post-upgrade hooks failed: warning: Hook post-upgrade istio/charts/security/templates/create-custom-resources-job.yaml failed: jobs.batch "istio-security-post-install-1.4.3" already exists
19          Tue Jan 14 14:36:59 2020    failed  istio-1.4.3 1.4.3       Upgrade "istio" failed: post-upgrade hooks failed: timed out waiting for the condition

์ด๊ฒƒ์€ Helm 3.0.2์ž…๋‹ˆ๋‹ค.

IMO ์ด๊ฒƒ์€ ์ตœ๋Œ€ํ•œ ๋นจ๋ฆฌ ์ˆ˜์ •ํ•ด์•ผํ•˜๋Š” ์ค‘์š”ํ•œ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. ๋ฒ„์ „ 2๋ถ€ํ„ฐ ๋™์ผํ•œ ๋ฌธ์ œ์— ๋Œ€ํ•ด ์—ด๋ ค์žˆ๋Š” ๋‹ค๋ฅธ ๋งŽ์€ ์œ ์‚ฌํ•œ ๋ฌธ์ œ๋ฅผ ๋ณด์•˜๊ณ  ์ง€๊ธˆ๊นŒ์ง€ ์ˆ˜์ •๋˜์ง€ ์•Š์€ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๋ฅผ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ํ•˜๊ธฐ ์œ„ํ•ด @ henrikb123 ์ด ์ž์‹ ์˜ ์˜๊ฒฌ์—์„œ ๋งํ•œ๋Œ€๋กœ ๊ฐœ๋ฐœ์ž์—๊ฒŒ ์š”์ฒญํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์„ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ํ•˜๋Š” ๋งค์šฐ ๊ฐ„๋‹จํ•œ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ๋ชจ๋“  Helm ๋ฒ„์ „ (2.xx ๋ฐ 3.xx)์œผ๋กœ ํ…Œ์ŠคํŠธ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ทธ๋“ค ๋ชจ๋‘์—์„œ ์ผ์–ด๋‚  ๊ฒƒ์ด๋ผ๊ณ  ๊ฑฐ์˜ ํ™•์‹ ํ•ฉ๋‹ˆ๋‹ค.

์•„๋งˆ๋„ --atomic ์€ (๋ช…๋ น ์ค„ ์ธ์ˆ˜๊ฐ€ ์•„๋‹Œ) ์–ด๋ ค์šด ์š”๊ตฌ ์‚ฌํ•ญ์ด์–ด์•ผํ•ฉ๋‹ˆ๋‹ค. --cleanup-on-fail ์ฒ˜๋Ÿผ ์ƒ๋‹นํžˆ ์ค‘๋ณต๋ฉ๋‹ˆ๋‹ค. ์ฐจ์ด์ ์€ --cleanup-on-fail ๊ฐ€ --atomic ์ฒ˜๋Ÿผ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜์ง€ ์•Š์•˜๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ๋˜ํ•œ ์ƒ์‚ฐ ๊ณผ์ •์—์„œ์ด ๋ฌธ์ œ๋ฅผ ๋งŒ๋‚ฌ์œผ๋ฉฐ ๊ฐ€๋™ ์ค‘์ง€ ์‹œ๊ฐ„์€ ์˜ต์…˜์ด ์•„๋‹™๋‹ˆ๋‹ค. ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ๋Œ€์‹  STATUS: DEPLOYED ๋ ˆ์ด๋ธ”์„ ๊ฐ–๋„๋ก ์ตœ์‹  FAILED ๊ตฌ์„ฑ ๋งต์„ ํŒจ์น˜ํ•˜์—ฌ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ์ฐพ์•˜์Šต๋‹ˆ๋‹ค.

kubectl -n kube-system patch configmap app-name.v123 --type=merge -p '{"metadata":{"labels":{"STATUS":"DEPLOYED"}}}'

์šฐ๋ฆฌ์˜ ๊ฒฝ์šฐ ๋งˆ์ง€๋ง‰ FAILED ๊ฐœ์ •์ด ์‹ค์ œ๋กœ kubernetes์— ์˜ํ•ด ์„ฑ๊ณต์ ์œผ๋กœ ๋ฐฐํฌ๋˜์—ˆ๋‹ค๊ณ  ํ™•์‹ ํ–ˆ์Šต๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ์–ด๋–ป๊ฒŒ์ด ์ƒํƒœ์— ๋“ค์–ด๊ฐ”์Šต๋‹ˆ๊นŒ?

๊ธฐ๋ณธ์ ์œผ๋กœ Kubernetes๋Š” helm ์‹œ๊ฐ„์ด ์ดˆ๊ณผ ๋œ ํ›„์—๋„ ์—ฌ์ „ํžˆ ์ˆ˜์ •์„ํ•˜๊ณ  ์žˆ์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ฐœ๋ฐœ ํŒ€์€ FAILED ์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ ๋ฌด์‹œํ–ˆ์Šต๋‹ˆ๋‹ค.

ํŠนํžˆ Helm 2๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์œผ๋ฉฐ tiller-deploy ๋ฐฐํฌ์— TILLER_HISTORY_MAX=20 ์„ค์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. ์‹œ๊ฐ„์ด ์ง€๋‚จ์— ๋”ฐ๋ผ ๋” ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๋Š” ๋ชจ๋“  RollingUpdate ์—…๊ทธ๋ ˆ์ด๋“œ์— helm upgrade --wait --timeout 1080 ๋ฅผ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ helm ์—…๊ทธ๋ ˆ์ด๋“œ๊ฐ€ ์‹œ๊ฐ„ ์ดˆ๊ณผ๋˜๊ธฐ ์‹œ์ž‘ํ–ˆ์ง€๋งŒ Kubernetes๊ฐ€ ์—ฌ์ „ํžˆ ์„ฑ๊ณต์ ์œผ๋กœ ์ˆ˜์ •์„ํ•˜๊ณ  ์žˆ์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์•„๋ฌด๋„ ๋†€๋ผ์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. 20 ๊ฐœ์˜ ์—…๊ทธ๋ ˆ์ด๋“œ ์‹œ๊ฐ„์ด ์ดˆ๊ณผ ๋œ ํ›„ (์˜ค๋Š˜), ๋Œ€์‹  app-name has no deployed releases ์ด (๊ฐ€) ํ‘œ์‹œ๋˜์–ด ๋” ์ด์ƒ ๋ฐฐํฌ ํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— ์šฐ๋ฆฌ๋Š” ๋†€๋ž์Šต๋‹ˆ๋‹ค.

ํŒจ์น˜๊ฐ€ ์ž‘๋™ํ•˜๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

์šฐ๋ฆฌ๋Š” Helm์ด ์•„๋งˆ๋„ ๋‹ค์Œ๊ณผ ์œ ์‚ฌํ•œ ์š”์ฒญ์„ ์‚ฌ์šฉํ•˜์—ฌ configmap์„ ์š”์ฒญํ•˜๊ณ  ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ๊นจ๋‹ฌ์•˜ ๊ธฐ ๋•Œ๋ฌธ์— configmap์˜ STATUS ๋ ˆ์ด๋ธ”์„ ํŒจ์น˜ํ•ด์•ผํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ์•„ ๋ƒˆ์Šต๋‹ˆ๋‹ค.

kubectl -n kube-system get configmap -l NAME=app-name,STATUS=DEPLOYED

configmap yaml์„๋ณด๊ณ  ๋‹ค์Œ ๋ ˆ์ด๋ธ”์„ ๋ฐœ๊ฒฌํ–ˆ์„ ๋•Œ ๋‹จ์„œ๊ฐ€ ๋ฐœ๊ฒฌ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

$ kubectl -n kube-system describe configmap app-name.v123
Name:         app-name.v123
Namespace:    kube-system
Labels:       MODIFIED_AT=1579154404
              NAME=app-name
              OWNER=TILLER
              STATUS=FAILED
              VERSION=123
Annotations:  <none>
Data
====
release:
----
H4sIAAAAAAAC...snipped...

๊ทธ๋ฆฌ๊ณ  ์ด๊ฒƒ์€ https://github.com/helm/helm/issues/5595#issuecomment -552743196๊ณผ ์ผ์น˜ํ•ฉ๋‹ˆ๋‹ค.

@bacongobbler ์‹คํŒจํ•œ ์ƒํƒœ๊ฐ€๋˜๋Š” ๋ฐฉ๋ฒ•์„ ๊ถ๊ธˆํ•ดํ•˜๋Š” ๋Œ€์‹  ์‹คํŒจํ•˜์ง€ ์•Š์•„์•ผํ•˜๋Š” ์‹คํŒจํ•œ ์„ค์น˜ ์—…๊ทธ๋ ˆ์ด๋“œ์— ๋Œ€ํ•œ ๊ท€์ค‘ํ•œ ์ˆ˜์ • ์‚ฌํ•ญ์„ ๊ณ ๋ คํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ์‹ค์ œ๋กœ, ๊ท€ํ•˜์˜ ์šฐ๋ ค์— ๋‹ตํ•˜๊ธฐ ์œ„ํ•ด ์‹œ๊ฐ„ ์ดˆ๊ณผ๋Š” ๋ฆด๋ฆฌ์Šค ์‹คํŒจ์˜ ์ข‹์€ ์ด์œ ์ž…๋‹ˆ๋‹ค. ๋ฆด๋ฆฌ์Šค๋„ ์ค‘๋‹จ๋˜๋ฉฐ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๊ณ  ์‹œ๊ฐ„ ์ดˆ๊ณผ๋กœ ์‹คํ–‰๋  ๋•Œ ๋กค๋ฐฑ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ํด๋ ˆ์ž„์— ์˜ํ•ด ๋™์ ์œผ๋กœ ์ƒ์„ฑ ๋œ ๋ณผ๋ฅจ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ฐจํŠธ๋ฅผ ์‚ญ์ œํ•˜์—ฌ ์ฒญ๊ตฌ๋ฅผ ์‚ญ์ œํ•˜๋ฉด ๋ณผ๋ฅจ ๋„ ์˜๊ตฌ์ ์œผ๋กœ ์‚ญ์ œ๋ฉ๋‹ˆ๋‹ค . ๊ทธ๊ฒƒ์€ ๋‹น์‹ ์ด ๊ทธ๊ฒƒ์„ ์ข‹์•„ํ•˜๋Š” ๋ฐฉ์‹์ด ์•„๋‹™๋‹ˆ๋‹ค. ๋‚˜์™€ ๋‹ค๋ฅธ ๋งŽ์€ ๊ฐœ๋ฐœ์ž๋“ค์€ ๋ช‡ ๋‹ฌ ๋™์•ˆ ๊ฐ‡ํ˜€ ์žˆ์œผ๋ฉฐ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋ ค๊ณ  ๋…ธ๋ ฅํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์ฟผ๋ฆฌ์—์„œ status: deployed ๋ฅผ ์ œ๊ฑฐํ•˜๋Š” ๊ฒƒ์ด ๋งˆ์Œ์— ๋“ค์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ์ƒํƒœ๊ฐ€ ๋ฐฐํฌ๋˜์—ˆ๊ฑฐ๋‚˜ ์‹คํŒจํ–ˆ๋Š”์ง€ ์—ฌ๋ถ€์— ๊ด€๊ณ„์—†์ด ์‹ค์ œ๋กœ ์ตœ์‹  ๋ฆด๋ฆฌ์Šค๋ฅผ ํ‘œ์‹œ ํ•˜๋Š” ์ƒˆ ๋ ˆ์ด๋ธ”์„ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์€ ์–ด๋–ป์Šต๋‹ˆ๊นŒ? ๊ทธ๊ฒƒ์€ ์‹ค์ œ๋กœ ์˜๋ฏธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ์—ฌ๋Ÿฌ๋ถ„์ด ์›ํ•˜๋Š” ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— ์—…๊ทธ๋ ˆ์ด๋“œ ํ•  ์ตœ์‹  ๋ฆด๋ฆฌ์Šค๋ฅผ ์–ป๊ณ  ์žํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์•„๋ฌด๊ฒƒ๋„ ์—†์œผ๋ฉด ์‹คํŒจํ•œ ๋ฆด๋ฆฌ์Šค๋ฅผ ๋Œ€์‹  ํ™•์ธํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ๋˜๋Š” ์ตœ์‹  ๋ ˆ์ด๋ธ”์„ ์ง์ ‘ ํ‘œ์‹œํ•˜๋Š” ์ƒˆ ๋ ˆ์ด๋ธ”์„ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค.

_ ์ด์— ๋Œ€ํ•œ ์—ฌ๋Ÿฌ๋ถ„์˜ ์˜๊ฒฌ์„ ๋“ฃ๊ณ  ๊ธฐ์ฉ๋‹ˆ๋‹ค ._

์™„๋ฒฝํ•œ ์ฝ”๋”” @AmazingTurtle.

์ด ๋ฌธ์ œ๊ฐ€ ์ด๋ฏธ ์–ธ๊ธ‰๋˜์—ˆ๋Š”์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์ง€๋งŒ ์ฐจํŠธ์˜ ์ฒซ ๋ฒˆ์งธ ์„ค์น˜๊ฐ€ ์–ด๋–ค ์ด์œ ๋กœ ๋“  ์‹คํŒจํ•˜๋Š” ๊ฒฝ์šฐ์—๋„์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค (ํŠนํžˆ ์ฐจํŠธ์—์„œ ๋ฐ˜๋ณตํ•ด์•ผ ํ•  ์ˆ˜์žˆ๋Š” ์ฒ˜์Œ ์ฐจํŠธ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋งค์šฐ ์ผ๋ฐ˜์ ์ธ ๊ฒฝ์šฐ). ์‹คํ–‰์„์œ„ํ•œ ๊ตฌ์„ฑ).

์ด ๊ฒฝ์šฐ CLI ์‚ฌ์šฉ์ž๋ฅผ์œ„ํ•œ ์œ ์ผํ•œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€ ๋น„๋ฐ€ ๋“œ๋ผ์ด๋ฒ„๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ๋ฆด๋ฆฌ์Šค ์ถ”์  ๋น„๋ฐ€์„ ์‚ญ์ œํ•˜๋Š” ๊ฒƒ๋ฟ ์•„๋‹ˆ๋ผ ๋งˆ์ง€๋ง‰ ๋ฆด๋ฆฌ์Šค์—์„œ ์ƒ์„ฑ ๋œ ๋ชจ๋“  ๋ฆฌ์†Œ์Šค๋ฅผ ์‚ญ์ œํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค (Helm์˜ ๋ฆฌ์†Œ์Šค ์†Œ์œ ๊ถŒ ๊ฒ€์‚ฌ ์‹คํ–‰์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด).

์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ๋•Œ์ด ๋ฌธ์ œ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ๋‚ด๋ถ€์ ์œผ๋กœ ์ž‘์„ฑํ•œ ๋„๊ตฌ์˜ ์‹ค์ œ ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค.

package foo

import (
    "helm.sh/helm/v3/pkg/action"
    "helm.sh/helm/v3/pkg/release"
    "helm.sh/helm/v3/pkg/storage/driver"
)

// DangerouslyApplyRelease allows installing or upgrading any release from a failed state,
// but does not enforce Helm's standard resource ownership checks.
func DangerouslyApplyRelease(cfg *action.Configuration, rel *release.Release) error {
    // Forcibly mark the last release as successful and increment the version
    rel.Info = &release.Info{
        Status: release.StatusDeployed,
    }
    rel.Version++

    var err error

    // Attempt to create the release
    err = cfg.Releases.Create(rel)

    // If release already exists, update it
    if err == driver.ErrReleaseExists {
        err = cfg.Releases.Update(rel)
    }

    return err
}

@jlegrone helm delete --purge (v2) ๋˜๋Š” helm uninstall (v3) ์‚ฌ์šฉ๋„ ๋ชจ๋‘ ์‹คํŒจํ•œ ๋ฆด๋ฆฌ์Šค์ด๋ฏ€๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๊นŒ?

@jlegrone ์ด ์ง€์ ํ•œ ๊ฒƒ์€ ์‚ฌ์‹ค์ž…๋‹ˆ๋‹ค.
@hickeyma ๊ท€ํ•˜์˜ ์ œ์•ˆ์€ ์ž‘๋™ ํ•  ์ˆ˜์žˆ๋Š” ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ํ™•์‹คํ•œ ํ•ด๊ฒฐ์ฑ…์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

์ง€๋‚œ 2 ๋…„๊ฐ„ ์œ ํ•ดํ•œ ๋ฒ„๊ทธ์ด๋ฉฐ helm์€ ๊ณ ์น˜์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.
helm delete ์€ ๋Œ€๋ถ€๋ถ„์˜ ํ”„๋กœ๋•์…˜ ์ผ€์ด์Šค์—์„œ ํ—ˆ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
helm3์—์„œ๋Š” ์•”ํ˜ธํ™”๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ kubectl edit secret sh.helm.release.... ์„ (๋ฅผ) ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
helm rollback <latest-successful> ์€ ์˜ฌ๋ฐ”๋ฅธ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ• ์ผ๋ฟ์ž…๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ HISTORY_MAX = 10์ด ์žˆ๊ณ  ์ž‘๋™ํ•˜๋„๋ก 10 ๋ฒˆ ์‹œ๋„ํ–ˆ๋‹ค๋ฉด ์™„์ „ํžˆ ์žƒ์–ด๋ฒ„๋ฆฐ ๊ฒƒ์ž…๋‹ˆ๋‹ค ...

์„ค์น˜์™€ ์—…๊ทธ๋ ˆ์ด๋“œ์— ๋Œ€ํ•œ ๋…ผ๋ฆฌ๊ฐ€์žˆ๋Š” ๊ฒฝ์šฐ sh.helm.release ..... v * ๋น„๋ฐ€์„ ์‚ญ์ œํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

ํˆฌ๊ตฌ๋Š” ์ฃฝ๊ฑฐ๋‚˜ ๊ณ ์ณ์•ผํ•ฉ๋‹ˆ๋‹ค

ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ์ฐพ์•˜์Šต๋‹ˆ๋‹ค.
helm3์€ ๋น„๋ฐ€์— ๋ ˆ์ด๋ธ”์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
kubectl get secrets --show-labels | grep sh.helm.release.v1

....
sh.helm.release.v1.helm-must-die.v34                 helm.sh/release.v1                    1         13h       modifiedAt=1580326073,name=helm-must-die,owner=helm,status=failed,version=34
sh.helm.release.v1.helm-must-die.v35                 helm.sh/release.v1                    1         13h       modifiedAt=1580326228,name=helm-must-die,owner=helm,status=failed,version=35
sh.helm.release.v1.helm-must-die.v36                 helm.sh/release.v1                    1         1h        modifiedAt=1580370043,name=helm-must-die,owner=helm,status=failed,version=36
...

์ตœ์‹  kubectl edit secret sh.helm.release.v1.helm-must-die.v36 ํ•˜๊ณ  ๋ ˆ์ด๋ธ” status = deployed๋ฅผ ์„ค์ •ํ•˜์‹ญ์‹œ์˜ค.
์ด์ „ ๋ฆด๋ฆฌ์Šค (v35)์˜ ๊ฒฝ์šฐ ๋ ˆ์ด๋ธ” status = superseded๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ helm upgrade --install ... ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค

@ kosta709 ๋ชจ๋“  CAPS ๋ ˆ์ด๋ธ”์ด์žˆ๋Š” kube-system ๋„ค์ž„ ์ŠคํŽ˜์ด์Šค์— ๋ฆด๋ฆฌ์Šค๋ฅผ ConfigMaps๋กœ ์ €์žฅํ•˜๋Š” Helm2์— ๋Œ€ํ•œ ๋‚ด ๋ฐœ๊ฒฌ๊ณผ ์œ ์‚ฌํ•˜๊ฒŒ, Helm3์€ ์ด์ œ ๋ ˆ์ด๋ธ”์ด ๋ชจ๋‘ ์†Œ๋ฌธ์ž ์ธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋„ค์ž„ ์ŠคํŽ˜์ด์Šค์— ๋ฆด๋ฆฌ์Šค๋ฅผ Secrets๋กœ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ Helm3์˜ ๊ฒฝ์šฐ ์•ฝ๊ฐ„ ๋‹ค๋ฅธ kubectl patch ๋ช…๋ น์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

kubectl -n app-namespace patch secret app-name.v123 --type=merge -p '{"metadata":{"labels":{"status":"deployed"}}}'

์ด๋Ÿฌํ•œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ๋…ผ์˜ ํ•  ํ•„์š”๊ฐ€ ์—†์—ˆ ์œผ๋ฉดํ•ฉ๋‹ˆ๋‹ค. ์ œํ’ˆ์—์„œ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๊ฒƒ์ด ์ตœ์šฐ์„  ๊ณผ์ œ์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ์–ผ๋งˆ๋‚˜ ๋‚˜์œ์ง€์— ๋Œ€ํ•œ ์•Œ๋ฆผ (ํ•ด๊ฒฐ ๋ฐฉ๋ฒ• ๋ฌด์‹œ) :

๋ฆด๋ฆฌ์Šค๊ฐ€ ์ฒ˜์Œ ๋ฐฐํฌ ๋  ๋•Œ ์‹คํŒจํ–ˆ๊ฑฐ๋‚˜ ์ถฉ๋ถ„ํ•œ ๋ฆด๋ฆฌ์Šค๊ฐ€ ๋งˆ์ง€๋ง‰ ์„ฑ๊ณต์„ ๊ธฐ๋ก์—์„œ ๊ต์ฒดํ•˜์ง€ ๋ชปํ•œ ๊ฒฝ์šฐ ์ˆ˜๋™ ๊ฐœ์ž…์—†์ด ๋ฆด๋ฆฌ์Šค๋ฅผ ์ˆ˜์ •ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์—ฐ์† ๋ฐฐํฌ ํŒŒ์ดํ”„ ๋ผ์ธ์—์„œ Helm์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ผ๋ฐ˜์ ์ธ ํŒจํ„ด์ด๊ฑฐ๋‚˜ ์ ์–ด๋„ ์›ํ•˜๋Š” ํŒจํ„ด ์ผ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์ด๋Š” ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ์™„์ „ํžˆ ๋™์˜ํ•˜์ง€๋งŒ ์ตœ์†Œํ•œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ๋ช…ํ™•ํ•˜๊ฒŒ ๋ฌธ์„œํ™”ํ•˜๊ณ  ์‹ถ์—ˆ์Šต๋‹ˆ๋‹ค.์ด ์ƒํƒœ์— ๋“ค์–ด๊ฐ€๋ฉด ๋ฆด๋ฆฌ์Šค๋ฅผ ํฌ๊ธฐํ•˜๊ณ  ์ค‘๋‹จํ•˜๋Š” ๊ฒƒ ์™ธ์— ๋‹ค๋ฅธ ์˜ต์…˜์ด์—†๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋Š๊ปด์ง€๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

์ค‘๋‹จ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ์œ„ํ•œ ํŒจ์น˜์™€ ํ•จ๊ป˜ helm --wait ์‚ฌ์šฉ์„ ์ค‘๋‹จํ•˜๊ณ  ๋Œ€์‹  ์ž์ฒด ํด๋ง ๋กœ์ง์— ์˜์กดํ•˜์—ฌ ๋ฆด๋ฆฌ์Šค๊ฐ€ ์„ฑ๊ณตํ–ˆ๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋” ๋งŽ์€ ์ž‘์—…์ด์ง€๋งŒ ์ด์ œ๋Š” ๋” ๋งŽ์€ ๊ฐ€์‹œ์„ฑ์„ ํ™•๋ณดํ•˜์—ฌ ๋ฆด๋ฆฌ์Šค๊ฐ€ ์˜ˆ์ƒ๋ณด๋‹ค ์˜ค๋ž˜ ๊ฑธ๋ฆด ๋•Œ ๋„์›€์ด๋˜๋ฉฐ ์ œํ•œ ์‹œ๊ฐ„๋ณด๋‹ค ์ผ์ฐ ์˜ค๋ฅ˜๋ฅผ ๊ฐ์ง€ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ์ด์ „ ๋ฒ„์ „์˜ helm์—์„œ ๋ฌธ์ œ๊ฐ€๋˜์ง€ ์•Š์•˜์œผ๋ฉฐ ๋ฐฐํฌ์— ์‹คํŒจํ•˜์ง€ ์•Š์•˜์œผ๋ฉฐ kubectl์€ ์‹คํ–‰์ค‘์ธ ์„œ๋น„์Šค๋ฅผ ํ‘œ์‹œํ•˜๊ณ  ๋ชจ๋“  ๊ฒƒ์ด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

์ด์ œ ๋‹จ์ˆœํžˆ helm upgrade -f app.yaml --namespace prometheus prometheus prometheus ์‹คํ–‰ํ•˜๋ ค๊ณ ํ•˜๋Š”๋ฐ Error: UPGRADE FAILED: "prometheus" has no deployed releases ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜์ง€๋งŒ ์ด๊ฒƒ์ด ์ œํ’ˆ์— ํฌํ•จ๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ์‹œ๋„ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

@zrsm ์ง€๊ธˆํ•˜๊ณ ์žˆ๋Š” ๊ฒƒ์€ helm์„ ์‚ฌ์šฉํ•˜์—ฌ yaml ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜๊ณ  kubectl diff / dry-run์„ ์‚ฌ์šฉํ•˜์—ฌ ์ˆ˜๋™์œผ๋กœ ์ ์šฉํ•˜๊ธฐ ์ „์— ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๋ฏธ๋ฆฌ ๋ณด๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@zrsm ์ง€๊ธˆํ•˜๊ณ ์žˆ๋Š” ๊ฒƒ์€ helm์„ ์‚ฌ์šฉํ•˜์—ฌ yaml ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜๊ณ  kubectl diff / dry-run์„ ์‚ฌ์šฉํ•˜์—ฌ ์ˆ˜๋™์œผ๋กœ ์ ์šฉํ•˜๊ธฐ ์ „์— ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๋ฏธ๋ฆฌ ๋ณด๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋‹ต์žฅ์„ ๋ณด๋‚ด ์ฃผ์…”์„œ 2.15.1๋กœ ๋‹ค์šด ๊ทธ๋ ˆ์ด๋“œํ–ˆ์ง€๋งŒ ๋น„์Šทํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์ง€๋งŒ ~ / .helm ์‚ญ์ œ์™€ ๊ฐ™์€ ์ž‘์—…์„ ์‹œ๋„ํ•œ ๋‹ค์Œ kubectl์—์„œ ํ‹ธ๋Ÿฌ ์„œ๋น„์Šค ๊ณ„์ •์„ ๋‹ค์‹œ ์ดˆ๊ธฐํ™” ํ•œ ํ›„ kubernetes์— ์ฐจํŠธ๋ฅผ ์ ์šฉ ํ•  ์ˆ˜์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. . ์˜ค๋Š˜ ๋‚˜์ค‘์— helm 3๋กœ ์ด๊ฒƒ์„ ํ…Œ์ŠคํŠธํ•˜๊ณ  ์ˆ˜์ • ์‚ฌํ•ญ์œผ๋กœ ๋‹ต์žฅ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ๋ฌธ์ œ ์ผ ์ˆ˜๋„ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š”, ๊ทธ๋ž˜์„œ ์ด๊ฒƒ์„ ํ…Œ์ŠคํŠธํ–ˆ์Šต๋‹ˆ๋‹ค ... ์ด์ „ ~ / .helm /์„ ์‚ญ์ œ ํ•œ ํ›„ ๋‹ค์Œ ๋ช…๋ น์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค.์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค ...

helm init --service-account tiller --override spec.selector.matchLabels.'name'='tiller',spec.selector.matchLabels.'app'='helm' --output yaml | sed 's<strong i="6">@apiVersion</strong>: extensions/v1beta1<strong i="7">@apiVersion</strong>: apps/v1@' | kubectl apply -f -

์ƒˆ helm ๋ฒ„์ „์„ ์„ค์น˜ํ•˜๊ณ  ์„œ๋น„์Šค ๊ณ„์ • ํ•ญ๋ชฉ์ด ์œ„์น˜ํ•˜์ง€ ์•Š์œผ๋ฉด (๋‚ด ๋…ธํŠธ๋ถ์„ ์ง€์šฐ๊ณ  ์–ธ์  ๊ฐ€ ๋ณต์›) ์ด๋Ÿฐ ์ผ์ด ๋ฐœ์ƒํ•˜๊ณ  ์ด๊ฒƒ์ด ์ˆ˜์ •์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ทธ๊ฒƒ์ด ๋‹น์‹ ์—๊ฒŒ๋„ ํšจ๊ณผ๊ฐ€ ์žˆ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

์ด ๋ฒ„๊ทธ๋Š” Helm 3์—์„œ ์ง„ํ–‰ ์ค‘์ž…๋‹ˆ๋‹ค. ๊ณ„ํš๋œ ์ˆ˜์ •์ด ์žˆ์Šต๋‹ˆ๊นŒ?

๋˜ํ•œ ์‹œ๊ฐ„ ์ดˆ๊ณผ๋กœ ์ธํ•ด ์ƒˆ ํด๋Ÿฌ์Šคํ„ฐ ๋ฐ ์ƒˆ ๋ฐฐํฌ์—์„œ์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ํด๋Ÿฌ์Šคํ„ฐ์— ์ˆ˜๋™์œผ๋กœ ์—ฐ๊ฒฐํ•˜๋Š” ๊ฒƒ์„ ์ข‹์•„ํ•˜์ง€ ์•Š์ง€๋งŒ ์ง€๊ธˆ์€ ์ด๊ฒƒ์ด ์œ ์ผํ•œ ์˜ต์…˜์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๊ฐ€ ์ตœ๋Œ€ํ•œ ๋นจ๋ฆฌ ํ•ด๊ฒฐ๋˜๋„๋ก ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

์ด ๋ฌธ์ œ๋Š” ๋„ˆ๋ฌด ๋‹ต๋‹ตํ•ด์„œ helm ์‚ฌ์šฉ์„ ์ค‘๋‹จํ•ด์•ผํ•˜๋Š” ์ด์œ ์ž…๋‹ˆ๋‹ค.

๋‚˜๋Š” ๋™์˜ํ•œ๋‹ค. ์ด๊ฒƒ์€ ๋‚˜๋ฅผ ๋ฏธ์น˜๊ฒŒ ๋งŒ๋“ ๋‹ค. ๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ๊ณ ์น˜๊ธฐ ์œ„ํ•ด ๋…ธ๋ ฅํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ–‰์šด์„ ๋นŒ์–ด ์š”.

๋‚˜๋Š” ๋™์˜ํ•œ๋‹ค. ์ด๊ฒƒ์€ ๋‚˜๋ฅผ ๋ฏธ์น˜๊ฒŒ ๋งŒ๋“ ๋‹ค. ๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ๊ณ ์น˜๊ธฐ ์œ„ํ•ด ๋…ธ๋ ฅํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ–‰์šด์„ ๋นŒ์–ด ์š”.

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ํ–‰์šด์„ ๋น•๋‹ˆ๋‹ค!

PR # 7653์„ ๋ณด๋„๋ก ์—ฌ๋Ÿฌ๋ถ„ ์ค‘ ๋ช‡ ๋ช…์—๊ฒŒ๋„ ๊ดœ์ฐฎ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ์ด๊ฒƒ์ด ์œ„์—์„œ ์„ค๋ช…ํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ๊ฒƒ์ด๋ผ๊ณ  ๋ฏฟ์Šต๋‹ˆ๋‹ค.

๋ฉ”์ธํ…Œ์ด๋„ˆ์˜ ๋ฐ˜์‘์—†์ด ์•„์ง ์—ด๋ ค ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ๋ฏฟ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

cc @bacongobbler @mattfarina

helm delete --purge (v2) ๋˜๋Š” helm uninstall (v3)๋„ ๋ชจ๋‘ ์‹คํŒจํ•œ ๋ฆด๋ฆฌ์Šค์ด๋ฏ€๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๊นŒ?

@hickeyma ํ•ญ์ƒ ์•„๋‹™๋‹ˆ๋‹ค; ์ด๋Š” helm ๋ฆด๋ฆฌ์Šค ๋ฉ”ํƒ€ ๋ฐ์ดํ„ฐ ์†์ƒ์˜ ๊ฒฐ๊ณผ ์ผ ์ˆ˜๋„ ์žˆ์œผ๋ฏ€๋กœ ๊ฒฝ์šฐ์— ๋”ฐ๋ผ ์ œ๊ฑฐํ•˜๋ฉด๋กœ๋“œ์ค‘์ธ ๋ฆฌ์†Œ์Šค๊ฐ€ ์‚ญ์ œ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋•Œ๋กœ๋Š” ๋ฆด๋ฆฌ์Šค๊ฐ€ ์‹คํŒจํ•˜์ง€ ์•Š์•˜์ง€๋งŒ ์‹œ๊ฐ„ ์ดˆ๊ณผ ๋ฐ helm์ด ์‹คํŒจํ•œ ๊ฒƒ์œผ๋กœ ๋ ˆ์ด๋ธ”์„ ์ง€์ •ํ•˜๊ณ  ๋‹ค์Œ์— ๋ฐฐํฌ ๋œ ๋ฆด๋ฆฌ์Šค๊ฐ€์—†๋Š” ๊ฒƒ์œผ๋กœ ํ‘œ์‹œ๋˜์ง€๋งŒ ์•ฑ์ด ์‹ค์ œ๋กœ ์™„์ „ํžˆ ์ž‘๋™ํ•˜๋Š” ๊ฒฝ์šฐ ์—ฌ๋Ÿฌ ๋ฒˆ ๋ฐœ์ƒํ•˜์—ฌ ๋ฆด๋ฆฌ์Šค๋ฅผ ๋ณ€๊ฒฝํ•ด์•ผํ–ˆ์Šต๋‹ˆ๋‹ค. deployed 1์— ๋ผ๋ฒจ์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ํ•ญ์ƒ helm delete --purge (v2) or helm uninstall (v3) ํ•  ์ˆ˜์žˆ๋Š” ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค.

@rimusz ๋ฆด๋ฆฌ์Šค ๋ ˆ์ด๋ธ”์„ ์–ด๋–ป๊ฒŒ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๊นŒ?

@dudicoco helm v3 ์ตœ์‹  ๋ฆด๋ฆฌ์Šค ๋น„๋ฐ€์„ ์ˆ˜๋™์œผ๋กœ ํŽธ์ง‘ํ•˜์—ฌ์ด๋ฅผ ์ž๋™ํ™”ํ•˜๊ณ  kubectl patch

๋งค๋ ฅ์ฒ˜๋Ÿผ ์ž‘๋™ํ•˜๋Š” https://github.com/k14s/kapp ๋กœ ์ด๋™ํ–ˆ์Šต๋‹ˆ๋‹ค.

@rimusz ๊ทธ๊ฒŒ ๋‚ด๊ฐ€ ์ƒ๊ฐํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค, ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

๋˜ํ•œ # 7668์˜ helm 2์— ๋Œ€ํ•œ ์ˆ˜์ • ์‚ฌํ•ญ์„ ๋ฐฑ ํฌํŒ…ํ–ˆ์ง€๋งŒ # 7653์— ๋Œ€ํ•œ ํ”ผ๋“œ๋ฐฑ์„ ๊ธฐ๋‹ค๋ฆฌ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์— ๊ฐ™์€ ๋ฌธ์ œ,

--wait ๋ฐฐํฌ ๋œ ๋ฆด๋ฆฌ์Šค๊ฐ€ ์‹œ๊ฐ„ ์ดˆ๊ณผ๋˜์—ˆ์œผ๋ฉฐ ๋งˆ์ง€๋ง‰์œผ๋กœ ์‹คํ–‰ ์ค‘์ž…๋‹ˆ๋‹ค. ์—ฌ์ „ํžˆ ์‹คํŒจ๋กœ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.
๋”ฐ๋ผ์„œ ์ดํ›„ ๋ฐฐํฌ๋„ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค.

์ด๋Š” ๋ฆด๋ฆฌ์Šค ์ƒํƒœ๊ฐ€ ์‹ ๋ขฐํ•  ์ˆ˜์žˆ๋Š” ์ •๋ณด๊ฐ€ ์•„๋‹˜์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ์ƒ์‚ฐ์—์„œ ๋งŽ์€ ์„œ๋น„์Šค๋ฅผ ์œ„ํ•ด ํšŒ์‚ฌ์—์„œ k8s๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
ํ•œ ๋‹ฌ์— ๋ช‡ ๋ฒˆ ๋™์•ˆ ๋‹ค๋ฅธ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์— ๋Œ€ํ•œ helm๊ณผ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค ( " * ์—๋Š” ๋ฐฐํฌ ๋œ ๋ฆด๋ฆฌ์Šค๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.").
์šฐ๋ฆฌ๋Š” ๋‹ค๋ฅธ ๋ฒ„์ „์˜ helm (2.7์—์„œ 3.0.3๊นŒ์ง€)์„ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค.
๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.
์ด๋กœ ์ธํ•ด ์‚ฌ์šฉ์ž (ํด๋Ÿฌ์Šคํ„ฐ์— ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ๋ฐฐํฌํ•˜๋Š” ๊ฐœ๋ฐœ์ž)์—๊ฒŒ ๋งŽ์€ ๋ถˆํŽธ ํ•จ์ด ์ƒ๊น๋‹ˆ๋‹ค.
๋งค๋ฒˆ ๊ณต๊ฒฉ ํ•  ๋•Œ๋งˆ๋‹ค ์ตœ์‹  ๋ฆด๋ฆฌ์Šค ๋น„๋ฐ€ (๋ฐฐํฌ ์ƒํƒœ) ๋งŒ ํŒจ์น˜ํ•ฉ๋‹ˆ๋‹ค.
๋งˆ์ง€๋ง‰ ๋ฆด๋ฆฌ์Šค ์ƒํƒœ๋ฅผ ๋ฌด์‹œํ•˜๊ณ  ์ƒˆ ๋ฆด๋ฆฌ์Šค๋ฅผ ์„ค์น˜ํ•˜๋Š” ๋™์ž‘์„ ์ถ”๊ฐ€ ํ•  ๊ณ„ํš์ด ์žˆ์Šต๋‹ˆ๊นŒ?

--history-max ์„ 10 (๊ธฐ๋ณธ๊ฐ’)์œผ๋กœ ์„ค์ •ํ•˜๋ฉด ์ฒซ ๋ฒˆ์งธ ๋ฆด๋ฆฌ์Šค๊ฐ€ ์„ฑ๊ณตํ–ˆ์Šต๋‹ˆ๋‹ค.
๊ทธ๋Ÿฐ ๋‹ค์Œ ๋‹ค์Œ 10 ๊ฐœ ๋ฆด๋ฆฌ์Šค๊ฐ€ ์‹คํŒจํ–ˆ์Šต๋‹ˆ๋‹ค.
Error: UPGRADE FAILED: timed out waiting for the condition (์‹œ๋ฎฌ๋ ˆ์ดํŠธ๋˜์—ˆ์œผ๋ฏ€๋กœ ์˜ˆ์ƒ ๋จ).
๊ทธ ํ›„ ๋‹ค์Œ (11 ๋ฒˆ์งธ ์‹คํŒจ) ๋ฆด๋ฆฌ์Šค๊ฐ€ ์‹คํŒจํ–ˆ์Šต๋‹ˆ๋‹ค.
Error: UPGRADE FAILED: "app" has no deployed releases (๊ทธ๊ฒŒ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค!)

Helm์ด ๊ฐ€์žฅ ์ตœ๊ทผ์˜ 10 ๊ฐœ (์ƒํƒœ์— ๊ด€๊ณ„์—†์ด) ์™ธ์— ๊ธฐ๋ก์—์„œ ๊ฐ€์žฅ ์ตœ๊ทผ์˜ ์„ฑ๊ณต์ ์ธ ๋ฆด๋ฆฌ์Šค๋ฅผ ํ•ญ์ƒ ๋ณด์กด ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

๋‚˜๋Š” ์•„์ด๋””์–ด๋ฅผ ์ข‹์•„ํ•œ๋‹ค. ์ €์žฅ ๊ธฐ๋Šฅ์„ ์ˆ˜์ •ํ•ด์•ผํ•˜์ง€๋งŒ ํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

https://github.com/helm/helm/pull/4978 ์ด Helm 2 ์šฉ์œผ๋กœ ๋ณ‘ํ•ฉ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์•„๋งˆ๋„ Helm 3์œผ๋กœ ์ด์‹๋˜์ง€ ์•Š์•˜์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ˆ„๊ตฐ๊ฐ€ ์‹œ๊ฐ„์ด ์žˆ๊ณ ์ด๋ฅผ ์ด์‹ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ๋ถ€๋‹ด์—†์ด ์‚ฌ์šฉํ•ด์ฃผ์„ธ์š”.

๋‚˜๋Š” ์ด๊ฒƒ์„ # 7806์œผ๋กœ Helm 3์— ์ด์‹ํ•˜๋ ค๊ณ  ์‹œ๋„ํ–ˆ์œผ๋ฉฐ ์ตœ๋Œ€ํ•œ ๋นจ๋ฆฌ ๋ณ‘ํ•ฉ๋˜๋Š” ๊ฒƒ์„๋ณด๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค, @ultimateboy!

_first_ ์„ค์น˜์— ์‹คํŒจํ•œ ๋ฆด๋ฆฌ์Šค, ์ฆ‰ ์ด์ „์— ์„ฑ๊ณตํ•œ ๋ฆด๋ฆฌ์Šค๊ฐ€์—†๋Š” ๋ฆด๋ฆฌ์Šค๋Š” ์–ด๋–ป์Šต๋‹ˆ๊นŒ?
helm ๋ฆด๋ฆฌ์Šค์˜ ๋ฉฑ๋“ฑ ์  ๋ฐฐํฌ์— upgrade --install ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์œผ๋ฉฐ ์ฒซ ๋ฒˆ์งธ ๋ฆด๋ฆฌ์Šค๊ฐ€ ์‹คํŒจํ•˜๋ฉด upgrade --install ์˜ ๋ชจ๋“  ํ›„์† ํ˜ธ์ถœ์ด "๋ฐฐํฌ ๋œ ๋ฆด๋ฆฌ์Šค ์—†์Œ"์˜ค๋ฅ˜ (์ด ๋ฌธ์ œ)์™€ ํ•จ๊ป˜ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค.

"์ฒซ ๋ฒˆ์งธ ๋ฆด๋ฆฌ์Šค ์‹คํŒจ"์‹œ๋‚˜๋ฆฌ์˜ค๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ์ˆ˜๋™์œผ๋กœ ์‹คํ–‰ํ•˜๊ฑฐ๋‚˜ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๊ธฐ ๋•Œ๋ฌธ์— (๊ทธ๋ฆฌ๊ณ  ๋ฐ”๋กœ ๊ทธ ์ž๋ฆฌ์—์„œ ์ˆ˜์ • ์‚ฌํ•ญ์„ ์ ์šฉ ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์—) ๊ด€๋ฆฌ๊ฐ€ ๋” ์šฉ์ดํ•ฉ๋‹ˆ๋‹ค. ์ฝ”๋“œ๋ฅผ ์ˆ˜์ • ํ•œ ํ›„์—๋„ ๋ณต๊ตฌ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋ฌผ๋ก  ์—ฌ์ „ํžˆ ์ˆ˜์ •๋˜์–ด์•ผํ•ฉ๋‹ˆ๋‹ค.

์ด ๋ฒ„๊ทธ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋งˆ์ง€๋ง‰์œผ๋กœ ์„ฑ๊ณตํ•œ ๋ฆด๋ฆฌ์Šค๋ฅผ ๋ณด์กดํ•˜๋Š” ๊ฒƒ๋„ ๊ฐ€์น˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ : ๊ฐ’ ํŒŒ์ผ ๋“ฑ์˜ ๋””๋ฒ„๊น… ๋ฌธ์ œ

@peterholak "์ฒซ ๋ฒˆ์งธ ๋ฆด๋ฆฌ์Šค ์‹คํŒจ"์‹œ๋‚˜๋ฆฌ์˜ค๋Š” ๋•Œ๋•Œ๋กœ CI / CD๋กœ๋„ ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ํด๋Ÿฌ์Šคํ„ฐ์— ๋Œ€ํ•œ ์•ก์„ธ์Šค๊ฐ€ ์ œํ•œ๋˜์–ด ์žˆ๊ณ  "๊ด€๋ฆฌ"๋ฅผ ์–ด๋–ป๊ฒŒํ•ด์•ผํ•ฉ๋‹ˆ๊นŒ?

์ด ๋ฌธ์ œ๋Š” ๋Œ€๋ถ€๋ถ„์˜ ์‚ฌ๋žŒ๋“ค์ด ํ”„๋กœ๋•์…˜์—์„œ helm์„ ์‚ฌ์šฉํ•œ๋‹ค๋Š” ์ ์—์„œ ์šฐ์„  ์ˆœ์œ„๊ฐ€ ๋†’์€ ๋ฌธ์ œ ์—ฌ์•ผํ•ฉ๋‹ˆ๋‹ค. --atomic helm ์„ค์น˜๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ๋ฐฐํฌํ•˜๊ธฐ ์ „์— ์‹คํŒจ ์ด์œ ๋ฅผ ๊ฒ€์‚ฌํ•˜๋ ค๋ฉด ์–ด๋–ป๊ฒŒํ•ด์•ผํ•ฉ๋‹ˆ๊นŒ? ์„ค์น˜๊ฐ€ ์‹คํŒจํ•˜๊ธฐ ์ „์— ์‹œ๊ฐ„ ์ œํ•œ์œผ๋กœ ์ธํ•ด ์‹œ๊ฐ„์ด ์ œํ•œ๋˜๊ณ  ๋˜๋Œ์•„๊ฐ‘๋‹ˆ๋‹ค. ์„ฑ๊ณต์ ์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œ ํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ์‹คํŒจ๋ฅผ ๊ฒ€์‚ฌ ํ•  ๋•Œ ์‹œ๊ฐ„์„ ๋‚ญ๋น„ํ•˜์ง€ ์•Š์•„๋„๋ฉ๋‹ˆ๋‹ค.

๋˜ํ•œ helm ๋ฆด๋ฆฌ์Šค์˜ ๋ฉฑ๋“ฑ ์  ๋ฐฐํฌ๋ฅผ ์œ„ํ•ด upgrade --install์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ์ž๋™ํ™” ๋œ ci / cd ํŒŒ์ดํ”„ ๋ผ์ธ์ด ์ž‘๋™ํ•˜๋Š” ๋ฐฉ์‹์ด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๋ฐฐํฌ ํŒŒ์ดํ”„ ๋ผ์ธ์„ ์šฐํšŒํ•˜๊ธฐ ๋•Œ๋ฌธ์— helm์„ ์ˆ˜๋™์œผ๋กœ ์กฐ์ž‘ ํ•  ๊ณ„ํš์€ ์—†์Šต๋‹ˆ๋‹ค.

์ž๋™ํ™” ๋œ ๋ฐฐํฌ ํŒŒ์ดํ”„ ๋ผ์ธ์—์„œ ์ฒซ ๋ฒˆ์งธ ๋ฐฐํฌ๋Š” ๊ฑฐ์˜ ํ•ญ์ƒ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค. ํ›„์† ๋ฐฐํฌ๋Š” ์ฒซ ๋ฒˆ์งธ ์‹œ๋„์™€ ๋‹ค๋ฅด๊ฒŒ ํŠธ๋ฆฌ๊ฑฐ๋˜์ง€ ์•Š์•„์•ผํ•ฉ๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ์˜ ์šฐ์„  ์ˆœ์œ„๋ฅผ ์ƒ๋‹นํžˆ ๋†’์ด์‹ญ์‹œ์˜ค.

๊ฒฝํ—˜์ด ๋„ˆ๋ฌด ๋‚˜์˜๊ณ  ํ”„๋กœ๋•์…˜ ์ค‘์ด๊ธฐ ๋•Œ๋ฌธ์— ์ „์ฒด ๋ฆด๋ฆฌ์Šค๋ฅผ ๋‹จ์ˆœํžˆ ์‚ญ์ œํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค! ์„œ๋ฒ„ ๋‹ค์šด ํƒ€์ž„์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค! ๊ฒฐ๊ตญ์ด ๋ฌธ์ œ๋ฅผ ์–ด๋–ป๊ฒŒ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ์„๊นŒ์š”?

๋˜ํ•œ ๋ˆ„๊ตฐ๊ฐ€ ์งˆ๋ฌธ / ์ง€์› ๋ ˆ์ด๋ธ”์„ ์ œ๊ฑฐ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ์ด ๋ฌธ์ œ๋Š” ๋ˆ„๋ฝ ๋œ ๋ฌธ์„œ์— ๊ด€ํ•œ ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์ž๋™ํ™” ๋œ ๋ฐฐํฌ ํŒŒ์ดํ”„ ๋ผ์ธ์—์„œ์˜ ์‚ฌ์šฉ์„ ์ง€์›ํ•˜์ง€ ์•Š๋Š” Helm์˜ ํ˜„์žฌ ๋™์ž‘์— ๊ด€ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

# 7806 PR์ด ๋งˆ์Šคํ„ฐ์— ๋ณ‘ํ•ฉ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. 3.2์—์„œ ์ถœ์‹œ ๋  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค. ์ด์— ๋”ฐ๋ผ์ด ๋ฌธ์ œ๋ฅผ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค.

ํฐ! ์ด๊ฒƒ์€ Helm๊ณผ ๊ด€๋ จ๋œ ๋Œ€๋ถ€๋ถ„์˜ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๋‹ค.

์ฒซ ๋ฒˆ์งธ ๋ฆด๋ฆฌ์Šค๊ฐ€ ์‹คํŒจํ•˜๋ฉด ํ˜„์žฌ ๋™์ž‘์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ (์•„์ง ๋ฐฐํฌ ๋œ ๋ฆด๋ฆฌ์Šค๊ฐ€ ์—†์Œ)?

์žˆ์—ˆ๋‹ค https://github.com/helm/helm/issues/3353 ์— ์˜ํ•ด ํ•ด๊ฒฐ ๋œ https://github.com/helm/helm/pull/3597 ๋งŒํ•˜๋ฉด --force ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

--force ์€ Helm 3 (https://github.com/helm/helm/issues/6378)์—์„œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ์œ„ํ•œ ์ œ์•ˆ (https://github.com/helm/helm/ issues / 7082), ๊ทธ๋ฆฌ๊ณ  ์–ธ๊ธ‰ ๋œ์ด ์Šค๋ ˆ๋“œ์˜ ๋‹ค๋ฅธ ์ฝ”๋ฉ˜ํŠธ์ฒ˜๋Ÿผ --force ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ํ•ญ์ƒ ์ ํ•ฉํ•œ ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ „์ฒด ์ƒํ™ฉ์€ ์—ฌ์ „ํžˆ โ€‹โ€‹๋‹ค์†Œ ๋ถˆ๋ถ„๋ช…ํ•ฉ๋‹ˆ๋‹ค.

@technosophos ์ˆ˜์ • ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ํ˜ธ๊ธฐ์‹ฌ, ์–ธ์ œ 3.2. ๋ฆด๋ฆฌ์Šค๋ฅผ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ๊ธฐ์กด์— ์‹คํŒจํ•œ ๋ฆด๋ฆฌ์Šค์—์„œ app-name has no deployed releases ์˜ค๋ฅ˜๊ฐ€ ๊ณ„์† ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ทธ๊ฒƒ์€ CI / CD ํŒŒ์ดํ”„ ๋ผ์ธ์˜ ์ผ์ข…์˜ ์ฐจ๋‹จ์ œ์ž…๋‹ˆ๋‹ค.

@peterholak #

3.2๋Š” 4 ์›” 16 ์ผ ๊ณต๊ฐœ ๊ฐœ๋ฐœ ํšŒ์˜์—์„œ ๋…ผ์˜๋ฉ๋‹ˆ๋‹ค. ์ง€๊ธˆ ๋ฐ”๋กœ ๋งˆ๋ฌด๋ฆฌ ํ•  ์ˆ˜์žˆ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด๋Š” ํ•ญ๋ชฉ์œผ๋กœ ๋ถ„๋ฅ˜ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ๋ฒ ํƒ€ ๋ฆด๋ฆฌ์Šค ํ”„๋กœ์„ธ์Šค๋ฅผ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค (๊ด€๋ฆฌ์ž๊ฐ€ ๋‚ด์ผ ์ „ํ™”์— ๋ชจ๋‘ ๋™์˜ํ•œ๋‹ค๊ณ  ๊ฐ€์ •).

๋‹ค์Œ ๋ช…๋ น์œผ๋กœ ์–ธ๊ธ‰ ๋œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด AKS ํ•ด๊ฒฐ์—์„œ ๋™์ผํ•œ ๋ฌธ์ œ์— ์ง๋ฉดํ–ˆ์Šต๋‹ˆ๋‹ค.

helm version : 3.1.2
๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ k8s ํด๋Ÿฌ์Šคํ„ฐ์—์„œ ํŒจํ‚ค์ง€๋ฅผ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค.
helm delete <release-name>

๋ฐฐํฌ์ฃผ๊ธฐ๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๋‹ค.

3.2.0 ๋ฒ„์ „์—๋Š” ์—ฌ์ „ํžˆ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

@deimosfr ๋ฆด๋ฆฌ์Šค 3.2.1์— ํฌํ•จ๋  # 7653์—์„œ ์ˆ˜์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์•„์ง ๋ฆด๋ฆฌ์Šค๋˜์ง€ ์•Š์•˜์ง€๋งŒ ๋งˆ์Šคํ„ฐ๋ฅผ ๊ตฌ์ถ•ํ•˜๋ ค๋Š” ๊ฒฝ์šฐ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” 3.2.1์ด๊ณ  ์ด๊ฒƒ์€ ์—ฌ์ „ํžˆ โ€‹โ€‹์ผ์–ด๋‚˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜์žˆ๋Š” ์ด์œ ๋Š” ์—ฌ์ „ํžˆ ์žˆ์Šต๋‹ˆ๋‹ค. 3.2.1์€ ๋‹จ์ˆœํžˆ ์˜ค๋ฅ˜๋ฅผ ์ œ๊ฑฐํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ์›์ธ ์ค‘ ์ผ๋ถ€๋ฅผ ์ œ๊ฑฐํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜๋„ ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์ง€ ์•Š์œผ๋ฉด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์ง€ ์•Š์€ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@yinzara ๋ฌธ์ œ๊ฐ€์—†๋Š” ์ƒˆ ํด๋Ÿฌ์Šคํ„ฐ์— ๋Œ€ํ•œ ์›๋ž˜ ์„ค๋ช…์—์„œ "๊ฒฝ๋กœ b"๋ผ๋Š” ๊ณ ์ „์ ์ธ ๊ฒฝ์šฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. Helm v2๊ฐ€ ์ œ๋Œ€๋กœ ์ž‘๋™ํ•˜๋Š” ๋‹ค๋ฅธ ํด๋Ÿฌ์Šคํ„ฐ์—์„œ๋„์ด ์˜ค๋ฅ˜๋ฅผ ์žฌํ˜„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๋ฌผ๋ก  ๊ณ ์ „์ ์ธ "์ด๊ฒƒ์€ ๋‹ค๋ฅธ ๊ฒƒ์— ์˜ํ•ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์ƒˆ๋กœ์šด ๋ฌธ์ œ๋ฅผ์—ฌ์‹ญ์‹œ์˜ค"๋Œ„์Šค๋ฅผ ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ๊ทธ๊ฒƒ์ด ์‹ค์ œ๋กœ ํ•ด๊ฒฐ๋˜์ง€ ์•Š์•˜๋‹ค๋Š” ๊ฒƒ์„ ๋‹จ์ˆœํžˆ ์ธ์‹ํ•˜๋ฉด ๋” ๋น ๋ฅผ ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

helm list ์˜ ๊ฒฐ๊ณผ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ์ด์ „์— ์‹คํŒจํ•œ ๋ฆด๋ฆฌ์Šค์˜ "์ƒํƒœ"๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? Helm 2์—๋Š”์ด ๋ฌธ์ œ๊ฐ€ ์žˆ์œผ๋ฉฐ ์ „ํ˜€ ์ˆ˜์ •๋˜์ง€ ์•Š์•˜์œผ๋ฏ€๋กœ ์—ฌ์ „ํžˆ ๋ฌธ์ œ๊ฐ€ ์ƒ๊ฐํ•˜๋Š” ๊ฒƒ๊ณผ ๋‹ค๋ฅด๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

๋ฒ„์ „ 3.2.1์—์„œ ๊ณ„์† ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

์ดˆ๊ธฐ ๋ฐฐํฌ๊ฐ€ 3 ๋ฒˆ ์‹คํŒจํ•˜๋ฉด ๋ชจ๋“  ๊ฒƒ์ด ์ค‘๋‹จ๋ฉ๋‹ˆ๋‹ค ... ์ฐจํŠธ๋ฅผ ์‚ญ์ œํ•˜์ง€ ์•Š๊ณ  ์ข‹์€ ์ฐจํŠธ๋ฅผ ๋ฐฐํฌํ•˜๋ฉด ์ˆ˜์ •ํ•  ๋ฐฉ๋ฒ•์ด ์—†์Šต๋‹ˆ๋‹ค.

์„ธ๋ถ€:

helm history t3-mac -n t3                                                                                                                                                                 REVISION        UPDATED                         STATUS          CHART           APP VERSION     DESCRIPTION
1               Fri May 22 18:55:11 2020        failed          t3-mac-2.13.0   2.13.0          Release "t3-mac" failed: timed out waiting for the condition
2               Fri May 22 19:33:44 2020        failed          t3-mac-2.13.0   2.13.0          Upgrade "t3-mac" failed: timed out waiting for the condition
3               Fri May 22 19:57:51 2020        pending-upgrade t3-mac-2.13.0   2.13.0          Preparing upgrade

helm.exe upgrade --namespace t3b --install --force --wait t3b-mac t3b-mac-2.13.0.tgz
2020-05-22T18:14:01.7103689Z Error: UPGRADE FAILED: "t3b-mac" has no deployed releases

๋ฐฐํฌ ๋œ ์ฐจํŠธ์—์„œ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๊ณ  ํฌ๋“œ๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ์‹คํ–‰๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

vm-victoria-metrics-single-server-0                    1/1     Running     0          2d18h

ํ•˜์ง€๋งŒ ์—…๊ทธ๋ ˆ์ด๋“œ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

$ helm version
version.BuildInfo{Version:"v3.1.2", GitCommit:"d878d4d45863e42fd5cff6743294a11d28a9abce", GitTreeState:"clean", GoVersion:"go1.13.8"}

$ kubectl version
Client Version: version.Info{Major:"1", Minor:"18", GitVersion:"v1.18.0", GitCommit:"9e991415386e4cf155a24b1da15becaa390438d8", GitTreeState:"clean", BuildDate:"2020-03-26T06:16:15Z", GoVersion:"go1.14", Compiler:"gc", Platform:"darwin/amd64"}
Server Version: version.Info{Major:"1", Minor:"16", GitVersion:"v1.16.8", GitCommit:"ec6eb119b81be488b030e849b9e64fda4caaf33c", GitTreeState:"clean", BuildDate:"2020-03-12T20:52:22Z", GoVersion:"go1.13.8", Compiler:"gc", Platform:"linux/amd64"}


ismail ~ $ helm list
NAME    NAMESPACE   REVISION    UPDATED                                 STATUS      CHART                                   APP VERSION    
vm      default     1           2020-05-23 16:20:35.243505 +0300 +03    deployed    victoria-metrics-single-0.5.3           1.35.6         

$ helm upgrade vm vm/victoria-metrics-single --set "-selfScrapeInterval=10" 
Error: UPGRADE FAILED: "vm" has no deployed releases


ismail ~ $ helm upgrade --install vm vm/victoria-metrics-single --set "-selfScrapeInterval=10" 
Release "vm" does not exist. Installing it now.
Error: rendered manifests contain a resource that already exists. Unable to continue with install: existing resource conflict: namespace: , name: vm-victoria-metrics-single, existing_kind: policy/v1beta1, Kind=PodSecurityPolicy, new_kind: policy/v1beta1, Kind=PodSecurityPolicy

๋‚ด ์ชฝ์—์„œ๋„ ์ผ์–ด ๋‚ฌ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค

@zodraz helm ์ƒํƒœ๋Š” ์˜ค๋ฅ˜์˜ ์›์ธ์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ์ตœ์‹  ๋ฆด๋ฆฌ์Šค๋Š” ์‹คํŒจํ•œ ๊ฒƒ์œผ๋กœ ํ‘œ์‹œ๋˜์ง€ ์•Š๊ณ  "์„ค์น˜ ๋Œ€๊ธฐ ์ค‘"์œผ๋กœ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ์ด๋Š” ๋งˆ์ง€๋ง‰ ์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ ๊ด€๋ฆฌํ•˜๋˜ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์™„๋ฃŒ๋˜๊ธฐ ์ „์— (์ฆ‰, ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๊ฑฐ๋‚˜ ์„ฑ๊ณตํ•˜๊ธฐ ์ „์—) ์ธ์œ„์ ์œผ๋กœ ์ข…๋ฃŒ๋˜์—ˆ์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ ํ—ˆ์šฉํ•˜๊ธฐ ์œ„ํ•ด ๋ณด๋ฅ˜์ค‘์ธ ์„ค์น˜ ์ƒํƒœ๋ฅผ ์œ ํšจํ•œ ์˜ค๋ฅ˜ ์ƒํƒœ๋กœ ํฌํ•จํ•˜์ง€ ์•Š๊ธฐ๋กœ ๊ฒฐ์ •ํ•œ ๊ฒƒ์€ ํ”„๋กœ์ ํŠธ ๊ด€๋ฆฌ์ž์˜ ๊ฒฐ์ •์ด์—ˆ์Šต๋‹ˆ๋‹ค. (์ฆ‰ ์ด๊ฒƒ์€ ์„ค๊ณ„๋œ๋Œ€๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค)

ํ—ฌ๋ฉง ์—…๊ทธ๋ ˆ์ด๋“œ๊ฐ€ ์™„๋ฃŒ๋˜๊ธฐ ์ „์— ์ทจ์†Œ๋˜๋Š” ์ด์œ ๋ฅผ ํ™•์ธํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ํ”ผํ•  ์ˆ˜์žˆ๋Š” ์ƒํ™ฉ์ด์–ด์•ผํ•ฉ๋‹ˆ๋‹ค.

๋ฐฐํฌ ๋œ ์ฐจํŠธ์—์„œ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๊ณ  ํฌ๋“œ๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ์‹คํ–‰๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

vm-victoria-metrics-single-server-0                    1/1     Running     0          2d18h

ํ•˜์ง€๋งŒ ์—…๊ทธ๋ ˆ์ด๋“œ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

$ helm version
version.BuildInfo{Version:"v3.1.2", GitCommit:"d878d4d45863e42fd5cff6743294a11d28a9abce", GitTreeState:"clean", GoVersion:"go1.13.8"}

$ kubectl version
Client Version: version.Info{Major:"1", Minor:"18", GitVersion:"v1.18.0", GitCommit:"9e991415386e4cf155a24b1da15becaa390438d8", GitTreeState:"clean", BuildDate:"2020-03-26T06:16:15Z", GoVersion:"go1.14", Compiler:"gc", Platform:"darwin/amd64"}
Server Version: version.Info{Major:"1", Minor:"16", GitVersion:"v1.16.8", GitCommit:"ec6eb119b81be488b030e849b9e64fda4caaf33c", GitTreeState:"clean", BuildDate:"2020-03-12T20:52:22Z", GoVersion:"go1.13.8", Compiler:"gc", Platform:"linux/amd64"}


ismail ~ $ helm list
NAME  NAMESPACE   REVISION    UPDATED                                 STATUS      CHART                                   APP VERSION    
vm    default     1           2020-05-23 16:20:35.243505 +0300 +03    deployed    victoria-metrics-single-0.5.3           1.35.6         

$ helm upgrade vm vm/victoria-metrics-single --set "-selfScrapeInterval=10" 
Error: UPGRADE FAILED: "vm" has no deployed releases


ismail ~ $ helm upgrade --install vm vm/victoria-metrics-single --set "-selfScrapeInterval=10" 
Release "vm" does not exist. Installing it now.
Error: rendered manifests contain a resource that already exists. Unable to continue with install: existing resource conflict: namespace: , name: vm-victoria-metrics-single, existing_kind: policy/v1beta1, Kind=PodSecurityPolicy, new_kind: policy/v1beta1, Kind=PodSecurityPolicy

๋‚˜๋Š” ๋‹น์‹ ์˜ ๋ฌธ์ œ๊ฐ€ ๋‚˜์—๊ฒŒ ์ƒ๋‹นํžˆ ๋‹นํ˜น ์Šค๋Ÿฝ๋‹ค๊ณ  ๋งํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋‹น์‹ ์ด ๊ฐ€์ง„ ๋กœ๊ทธ ์ถœ๋ ฅ์„ ๊ฐ์•ˆํ•  ๋•Œ ์–ด๋–ป๊ฒŒ ์ผ์–ด๋‚  ์ˆ˜ ์žˆ์—ˆ๋Š”์ง€ ๋ณผ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. 3.2.1์˜ ์ˆ˜์ • ๋ฆด๋ฆฌ์Šค๋Š” ์‹คํŒจํ•œ ๋ฆด๋ฆฌ์Šค๊ฐ€ ์—†์œผ๋ฏ€๋กœ ์ƒํ™ฉ์— ๋„์›€์ด๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. helm ๋ฆด๋ฆฌ์Šค ์ •๋ณด๋ฅผ ํฌํ•จํ•˜๋Š” Kubernetes์—์„œ ์ผ๋ถ€ ๋น„๋ฐ€์ด ์ œ๊ฑฐ ๋œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ ๋ฆด๋ฆฌ์Šค๋ฅผ ์™„์ „ํžˆ ์ œ๊ฑฐํ•˜๊ณ  ๋‹ค์‹œ ์„ค์น˜ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

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

๋ฌธ์ œ๋Š” ์ทจ์†Œํ•˜์ง€ ์•Š์•˜๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ œ๊ฐ€ ์„ธ ๋ฒˆ์งธ๋กœ ์‹œ์ž‘ (๊ทธ๋ฆฌ๊ณ  ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜์—ฌ ์‹คํŒจํ•˜๋„๋ก ๋ฐฐํฌ์— ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ๊ธฐ ๋•Œ๋ฌธ์—)์ด "์†์ƒ๋œ ์ƒํƒœ"์— ๋„๋‹ฌ ํ•œ ์„ธ ๋ฒˆ์งธ ์‹œ๊ฐ„์„ ์ดํ•ดํ•ฉ๋‹ˆ๋‹ค. .

์ด ์ƒํƒœ๋Š” ๋ณต๊ตฌ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ์ด๋ฅผ ์ˆ˜์ •ํ•˜๋Š” ์œ ์ผํ•œ ๋ฐฉ๋ฒ•์€ ์ฐจํŠธ๋ฅผ ์‚ญ์ œํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค ... ์›์ž ํ”Œ๋ž˜๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ•ญ์ƒ ๋กค๋ฐฑํ•˜๊ณ ์ด "์†์ƒ๋œ ์ƒํƒœ"์— ๋„๋‹ฌํ•˜์ง€ ์•Š๋„๋ก ๋ฐฉ์ง€ํ•˜๋Š” ์ œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

๋‚˜๋Š” ๋ฉ”์ธํ…Œ์ด๋„ˆ์˜ ๊ฒฐ์ •์„ ์ดํ•ดํ•œ๋‹ค ... ๊ทธ๋Ÿฌ๋‚˜ ์ด๊ฒƒ์€ ํ˜ผ๋ž€์„ ์•ผ๊ธฐํ•˜๊ณ , ์ „ํ˜€ ๊ฐ€๋Šฅํ•œ ํ•ด๊ฒฐ์ฑ…์ด ์—†๋‹ค (์ฐจํŠธ๋ฅผ ์‚ญ์ œํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด) ๊ทธ๋ฆฌ๊ณ  ๊ธ€์Ž„, ๋‚ด๊ฐ€ ๋งํ–ˆ๋“ฏ์ด 3 ๊ฐœ์˜ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ์ด ์ƒํƒœ์— ๋„๋‹ฌํ–ˆ๋‹ค ... ์ทจ์†Œํ•˜์ง€ ์•Š๊ณ  .. .

์–ด์จŒ๋“  ๊ตํ›ˆ์€ ์›์ž ํ”Œ๋ž˜๊ทธ๋ฅผ ํ†ตํ•ด ๋กค๋ฐฑํ•˜๊ณ  ๋ฐฐ์› ์Šต๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š” @yinzara

์‹คํŒจํ•œ ์ด์œ ๋ฅผ ์ฐพ์•˜์Šต๋‹ˆ๋‹ค.

์ž˜๋ชป๋œ ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ -selfScrapeInterval=10 ํ–ˆ์Šต๋‹ˆ๋‹ค. server.extraArgs.selfScrapeInterval = 10์ด์–ด์•ผํ•ฉ๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ๋งค๊ฐœ ๋ณ€์ˆ˜์˜ - ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค.
์ด ์œ ํ˜•์˜ ๋ณ€์ˆ˜ ์˜ค๋ฅ˜์— ๋Œ€ํ•ด helm ์˜ค๋ฅ˜๊ฐ€ ์˜๋ฏธ๊ฐ€ ์—†์—ˆ์„ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ•˜๋‚˜ ์‹คํŒจ :

ismail sf $ helm upgrade vm vm/victoria-metrics-single --set "-selfScrapeInterval=10" 
Error: UPGRADE FAILED: "vm" has no deployed releases

์„ฑ๊ณต:

ismail sf $ helm upgrade vm vm/victoria-metrics-single --set "server.extraArgs.selfScrapeInterval=10" 
Release "vm" has been upgraded. Happy Helming!
NAME: vm
LAST DEPLOYED: Tue May 26 22:35:15 2020
NAMESPACE: default
STATUS: deployed
REVISION: 3
TEST SUITE: None
NOTES:
TBD

์ด๊ฒƒ์€ ๋˜ํ•œ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค :

ismail sf $ helm upgrade vm vm/victoria-metrics-single --set "selfScrapeInterval=10" 
Release "vm" has been upgraded. Happy Helming!
NAME: vm
LAST DEPLOYED: Tue May 26 22:37:43 2020
NAMESPACE: default
STATUS: deployed
REVISION: 4
TEST SUITE: None
NOTES:
TBD

๋‚˜๋Š” ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค : '(๊ทธ๋ฆฌ๊ณ  ๋‚˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์žƒ์„ ๊ฒƒ์ด๊ณ  ๊ทธ๊ฒƒ์„ ํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— ํผ์ง€๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ์ค‘์š”ํ•œ ์›Œํฌ๋กœ๋“œ๋ฅผ ๋ฐฐํฌ ํ•  ๋•Œ helm ๋ฆด๋ฆฌ์Šค๋ฅผ ๋ฒ„๋ ค์•ผํ•ฉ๋‹ˆ๋‹ค. ์‹ฌ์ง€์–ด istio์˜ istioctl์ด ์ด๋Ÿฌํ•œ ์ด์œ ๋กœ helm์„ ๋ฒ„๋ฆฝ๋‹ˆ๋‹ค (๋‚ด ์ƒ๊ฐ์—). ํˆฌ๊ตฌ ํ…œํ”Œ๋ฆฟ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค kubctl -f- ์ด ๋ฌธ์ œ๋ฅผ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด์ด ๊ณผ์ •์—์„œ ์‚ญ์ œ ๋œ ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•ด ๊ธฐ์–ตํ•ด์•ผํ•˜๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

@GloriaPG ๋” ๋งŽ์€ ์ •๋ณด๋ฅผ ๊ณต์œ  ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์–ด๋–ป๊ฒŒ ๋ฐœ์ƒํ•ฉ๋‹ˆ๊นŒ? @yinzara ๊ฐ€ ์Šค๋ ˆ๋“œ์—์„œ ์•ž์„œ ์–ธ๊ธ‰ํ–ˆ๋“ฏ์ด # 7652๋กœ ํ•ด๊ฒฐ๋˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ทธ ๊ฒฐ๋ก ์— ๋„๋‹ฌํ•˜๊ธฐ ์ „์— ๋„์›€์ด ๋  ๋” ๋งŽ์€ ์ •๋ณด๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š” @bacongobbler

--install ๋ฐ --force ํ”Œ๋ž˜๊ทธ์™€ ํ•จ๊ป˜ helm upgrade ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

helm upgrade --install ${PROJECT_NAME} ${CHART_NAME} \
ย   --namespace $NAMESPACE_NAME \
ย   --values ${SECRETS} \
ย   --values ${CONFIG_VALUES} \
ย   --force \
ย   --wait \
ย   --timeout ${MAX_WAIT_SECONDS} || rollback

๋ถˆํ–‰ํžˆ๋„ ๋ฆด๋ฆฌ์Šค๊ฐ€ ์‹คํŒจํ•œ ์ƒํƒœ ์ธ ๊ฒฝ์šฐ :

$ helm list
NAME                    NAMESPACE   REVISION    UPDATED                                 STATUS      CHART           APP VERSION
PROJECT_NAME                CHART_NAME      136         2020-07-09 14:13:09.192381483 +0000 UTC failed      CHART_NAME-0.1.0

๊ฒฐ๊ณผ :

Error: UPGRADE FAILED: "PROJECT_NAME" has no deployed releases
Error: failed to replace object: Deployment.apps "PROJECT_NAME" is invalid: spec.selector: Invalid value: v1.LabelSelector{MatchLabels:map[string]string{"app":"PROJECT_NAME"}, MatchExpressions:[]v1.LabelSelectorRequirement(nil)}: field is immutable

์–ด๋–ป๊ฒŒ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ๋ณด์ธ๋‹ค --force ์™€ --install ํ”Œ๋ž˜๊ทธ๊ฐ€ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค

์ด๊ฒƒ์ด ํ”„๋กœ๋•์…˜ ํ™˜๊ฒฝ์ด๋ฏ€๋กœ ๋ฆด๋ฆฌ์Šค๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  ์ฒ˜์Œ๋ถ€ํ„ฐ ๋งŒ๋“ค ์ˆ˜๋Š” ์—†์Šต๋‹ˆ๋‹ค.

์ œ์•ˆ ํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค

https://github.com/kubernetes/client-go/issues/508 ๊ณผ ๊ด€๋ จ๋œ ์˜ค๋ฅ˜ ์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.
๋ฐฐํฌ์—์„œ ์„ ํƒ๊ธฐ๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋ฐฐํฌ๋ฅผ ์ทจ์†Œํ•˜๊ณ  ๋‹ค์‹œ ๋ฐฐํฌํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

@yinzara ์žฌ๋ฏธ์žˆ๋Š” ์ ์€ ๋ฐฐํฌ์—์„œ ์„ ํƒ๊ธฐ๋ฅผ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๊ณ  ๋ชจ๋“  ๊ฒƒ์ด 9/10 ๋ฆด๋ฆฌ์Šค์—์„œ ์ž‘๋™ํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ฐฐํฌ ์ค‘ ํ•˜๋‚˜์—์„œ sth๊ฐ€ ์ž˜๋ชป๋˜์–ด ๋ฆด๋ฆฌ์Šค๊ฐ€ ์‹คํŒจํ•œ ์ƒํƒœ์ด๊ณ  ์–ด๋–ค ์‹ ์œผ๋กœ๋“  ๋ณต๊ตฌ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋ฐฐํฌ ์ž์ฒด๊ฐ€ ์ž‘๋™ํ•˜๊ณ  Pod๊ฐ€ ์‹คํ–‰ ์ค‘์ด์ง€๋งŒ ๋” ์ด์ƒ ์ˆ˜์ •ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

๋ฆด๋ฆฌ์Šค๊ฐ€ ์‹คํŒจํ•œ ์ƒํƒœ๊ฐ€ ๋œ ํ›„ ๋” ์ด์ƒ helm์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†๋‹ค๋Š” ๊ฒƒ์€ ๋‹ค์†Œ ๋ฐ˜ ์ง๊ด€์ ์ž…๋‹ˆ๋‹ค. --force ํ”Œ๋ž˜๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ „์ฒด ๋ฐฐํฌ๋ฅผ ๊ต์ฒดํ•˜๊ฑฐ๋‚˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ ์šฉ ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ๊ธฐ์กด ๋ฆด๋ฆฌ์Šค๋ฅผ ์ˆ˜์ •ํ•˜๊ณ  ์ž‘์—… ํ•  ๋ฐฉ๋ฒ•์„ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

๋„ค, ์•ˆํƒ€๊น๊ฒŒ๋„ ์ด๊ฒƒ์€ ์‹ค์ œ๋กœ ์กฐํƒ€ ๋ฌธ์ œ๊ฐ€ ์•„๋‹Œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋ฆด๋ฆฌ์Šค์— ๋Œ€ํ•ด ๋ญ”๊ฐ€ ์‹คํŒจํ–ˆ์œผ๋ฉฐ Kubernetes์—์„œ ์ž˜๋ชป๋œ ์ƒํƒœ์ž…๋‹ˆ๋‹ค. ์„ ํƒ๊ธฐ๊ฐ€ ์—‰๋ง์ด๊ฑฐ๋‚˜ ์˜ˆ์ƒ ํ•œ ๊ฒƒ๊ณผ ๋‹ค๋ฅผ ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์ง€๋งŒ "app-name"์— ๋Œ€ํ•ด ํ‘œ์‹œ๋˜๋Š” ์˜ค๋ฅ˜๋Š” ๋ฐฐํฌ ๋œ ๋ฆด๋ฆฌ์Šค๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

์ด์ „ ๋ฒ„์ „์œผ๋กœ ๋กค๋ฐฑ์„ ์‹œ๋„ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ฆด๋ฆฌ์Šค๋Š” ํ˜„์žฌ deployed ์ƒํƒœ์ž…๋‹ˆ๋‹ค. ๋ถˆํ–‰ํžˆ๋„ ์•„๋ฌด๊ฒƒ๋„ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์œผ๋ฏ€๋กœ ๋ถˆํ–‰ํžˆ๋„ ์‚ญ์ œํ•˜๊ณ  ๋‹ค์‹œ ๋ฐฐํฌํ•˜๋Š” ๊ฒƒ์ด ์œ ์ผํ•œ ๋ฐฉ๋ฒ•์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ์ด๊ฒƒ์— ๋Œ€ํ•œ ๋‚˜์˜ ํŠน๋ณ„ํ•œ ๋ฌธ์ œ๋Š” ์žฌํ˜„ํ•˜๊ธฐ ์‰ฝ์Šต๋‹ˆ๋‹ค.

helm3 ( --atomic ๋ฐ --cleanup-on-fail )์œผ๋กœ ๋ฌด์–ธ๊ฐ€ ๋ฐฐํฌ๋ฅผ ์‹œ์ž‘ํ•˜๊ณ  ๋ฆฌ์†Œ์Šค ์ƒ์„ฑ์„ ์‹œ์ž‘ํ•œ ํ›„ ํ”„๋กœ์„ธ์Šค๋ฅผ ctrl + cํ•ฉ๋‹ˆ๋‹ค. ๋กค๋ฐฑ ๋œ ํ•ญ๋ชฉ์ด์—†๊ณ  ๋ฆฌ์†Œ์Šค๊ฐ€ ์—ฌ์ „ํžˆ ์กด์žฌํ•˜๋ฉฐ ์ดํ›„์— install --upgrade ์‹คํ–‰์„ ์‹œ๋„ํ•˜๋ฉด "๋ฐฐํฌ ๋œ ๋ฆด๋ฆฌ์Šค๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค"์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

์ด ctrl + c๋Š” ๋นŒ๋“œ๊ฐ€ ์ด๋ฏธ ์‹คํ–‰์ค‘์ธ ๋™์•ˆ ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ CI ์‹œ์Šคํ…œ์˜ ๋ธŒ๋žœ์น˜์— ์ƒˆ ์ปค๋ฐ‹์„ ํ‘ธ์‹œ ํ•  ๋•Œ ๋ณธ์งˆ์ ์œผ๋กœ ๋ฐœ์ƒํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. helm ์—…๊ทธ๋ ˆ์ด๋“œ๊ฐ€ ์ทจ์†Œ๋˜๊ณ  ์™„์ „ํžˆ ์ค‘๋‹จ ๋œ ์ƒํƒœ๊ฐ€๋ฉ๋‹ˆ๋‹ค.

์ด ์‹œ์  ์ดํ›„์— ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๊นŒ? ์ด ์Šค๋ ˆ๋“œ์˜ ๋‹ค๋ฅธ ๋งŽ์€ ์‚ฌ๋žŒ๋“ค๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์‚ญ์ œ๋Š” ์˜ต์…˜์ด ์•„๋‹™๋‹ˆ๋‹ค.

ํŽธ์ง‘ : ์ผ๋‹จ ์ด๊ฒƒ์ด ๊นจ์ง€๋ฉด helm ls ๋Š” ๋ฆด๋ฆฌ์Šค๋ฅผ ํ‘œ์‹œํ•˜์ง€ ์•Š๊ณ  helm history ๋Š” ์„ค์น˜ ๋ณด๋ฅ˜ ์ƒํƒœ๋กœ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

์‚ฌ์‹ค-์‹ ๊ฒฝ ์“ฐ์ง€ ๋งˆ์„ธ์š”. ์ด๋กœ ์ธํ•ด ์˜ํ–ฅ์„๋ฐ›๋Š” ์‚ฌ๋žŒ๋“ค์„ ์œ„ํ•ด ํ•œ ๊ฐ€์ง€ ํ•ด๊ฒฐ์ฑ…์ด ์žˆ์Šต๋‹ˆ๋‹ค. kubernetes์—์„œ ์ˆ˜๋™์œผ๋กœ ๊ธฐ๋ก ๋ ˆ์ฝ”๋“œ๋ฅผ ์‚ญ์ œํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋น„๋ฐ€๋กœ ์ €์žฅ๋ฉ๋‹ˆ๋‹ค. ๋ฌธ์ œ๊ฐ€๋˜๋Š” pending-install ์ƒํƒœ ํ•ญ๋ชฉ์„ ์‚ญ์ œํ•˜๋ฉด upgrade --install ๋‹ค์‹œ ์„ฑ๊ณต์ ์œผ๋กœ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค!

@AirbornePorcine- ์„ค์น˜ ๋ณด๋ฅ˜ ํ•ญ๋ชฉ์„ ์‚ญ์ œํ•˜๊ธฐ ์œ„ํ•ด kubernetes์—์„œ ํ•„์š”ํ•œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์„ค๋ช…ํ•ด ์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

@ tarunnarang0201 Helm์€ ๋ฐฐํฌ ํ•œ ๊ฒƒ๊ณผ ๋™์ผํ•œ ๋„ค์ž„ ์ŠคํŽ˜์ด์Šค์—์„œ ๊ฐ ๋ฐฐํฌ์— ๋Œ€ํ•œ kubernetes ๋น„๋ฐ€์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. 'helm.sh/release.v1'์œ ํ˜•์ด๊ณ  'sh.helm.release.v1.release'์™€ ๊ฐ™์€ ์ด๋ฆ„์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. -name.v1 '. ๊ฐ€์žฅ ์ตœ๊ทผ์˜ ๋น„๋ฐ€์„ ์‚ญ์ œํ•˜๊ธฐ ๋งŒํ•˜๋ฉด๋ฉ๋‹ˆ๋‹ค (์˜ˆ์ œ์—์„œ 'v1'์ ‘๋ฏธ์‚ฌ๋ฅผ ๋ณด๋ฉด ๋ฐฐํฌ ํ•  ๋•Œ๋งˆ๋‹ค ์ฆ๊ฐ€ํ•ฉ๋‹ˆ๋‹ค).

@AirbornePorcine ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

@AirbornePorcine @ tarunnarang0201 @ ninja- ์ƒํƒœ ๋ ˆ์ด๋ธ”์„ ํŒจ์น˜ ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ํŠนํžˆ ์ด์ „์— ๋ฐฐํฌ ๋œ ๋ฆด๋ฆฌ์Šค๊ฐ€์—†๋Š” ๊ฒฝ์šฐ ํŠนํžˆ ๊ทธ๋ ‡์Šต๋‹ˆ๋‹ค.

Helm 3์˜ ๊ฒฝ์šฐ https://github.com/helm/helm/issues/5595#issuecomment -580449247์—์„œ ๋‚ด ์˜๊ฒฌ์„

Helm 2์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ๊ณผ ์ง€์นจ์€ https://github.com/helm/helm/issues/5595#issuecomment -575024277์—์„œ ๋‚ด ์˜๊ฒฌ์„

์ด ๋Œ€ํ™”๋Š” ๋„ˆ๋ฌด ๊น๋‹ˆ๋‹ค. ๊ฐ ๋Œ“๊ธ€์—๋Š” ํ•˜๋‚˜์˜ ํ•ด๊ฒฐ์ฑ…์ด ์žˆ์Šต๋‹ˆ๋‹ค. .... ๊ฒฐ๋ก ์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?
์ด์ „ Helm 2.12๋ฅผ ์‚ฌ์šฉํ•ด ์™”์œผ๋ฉฐ ๋ฌธ์ œ๊ฐ€ ์—†์—ˆ์ง€๋งŒ ์ด์ œ v3.2.4์—์„œ๋Š” ์ด์ „์— ์‹คํŒจํ•œ ๋ฐฐํฌ๊ฐ€์ด ์˜ค๋ฅ˜์™€ ํ•จ๊ป˜ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” Terraform๊ณผ ์ตœ์‹  helm ๊ณต๊ธ‰์ž๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ --force ๋˜๋Š” --replace ์‚ฌ์šฉํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

@xbmono ๋Œ€ํ™”๊ฐ€ ๊ธธ๊ธฐ ๋•Œ๋ฌธ์—

  • ๋‹น์‹ ์˜ ์„๋ฐฉ์ด์ด ์ƒํƒœ๊ฐ€ ๋  ์ˆ˜์žˆ๋Š” ๋งŽ์€ ์ด์œ ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ด๊ฒƒ์€ Helm 2์—์„œ๋„ ๊ฐ€๋Šฅํ–ˆ์œผ๋ฉฐ Helm 3์—์„œ ์ž‘๋™ํ•˜๋Š” ์†”๋ฃจ์…˜์ด ๋‹ค๋ฆ…๋‹ˆ๋‹ค.
  • ์ด ๋ฌธ์ œ์˜ ์‚ฌ์šฉ์ž๊ฐ€ ๊ฑฐ๊ธฐ์— ๋„๋‹ฌํ•˜๊ธฐ ์œ„ํ•ด ์ทจํ•œ ๊ฒฝ๋กœ๊ฐ€ ๋‹ค๋ฆ…๋‹ˆ๋‹ค.
  • ์ˆ˜ํ–‰ํ•˜๋ ค๋Š” ์ž‘์—…๊ณผ PVC ์†์‹ค ๋ฐ ๋‹ค์–‘ํ•œ ๊ฐ€๋Šฅํ•œ ๋‹ค์šด ํƒ€์ž„ ์กฐํ•ฉ์˜ ์œ„ํ—˜์„ ๊ฐ์ˆ˜ ํ•  ์˜์‚ฌ๊ฐ€ ์žˆ๋Š”์ง€ ์—ฌ๋ถ€์— ๋”ฐ๋ผ ๋‹ค์–‘ํ•œ ์˜ต์…˜์ด ์žˆ์Šต๋‹ˆ๋‹ค.

"๋ฐฐํฌ ๋œ ๋ฆด๋ฆฌ์Šค๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค"์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐ install --replace ๋˜๋Š” upgrade --install --force ์ด (๊ฐ€) ์Šค์Šค๋กœ ๋„์›€์ด ๋ ์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค.

ํ˜„๋ช…ํ•œ ์ œ์•ˆ์€ ์•„๋งˆ๋„ ์ฃผ์–ด์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค

  • ์‚ฌ๋žŒ๋“ค์ด ๋ฌด์Šจ ์ผ์ด ์ผ์–ด ๋‚ฌ๋Š”์ง€ ๋ณผ ์ˆ˜ ์žˆ๋„๋ก ๋ฆด๋ฆฌ์Šค์— helm history ๋ฅผ ์ œ๊ณตํ•˜๋ฉด
  • ์‹คํŒจ์˜ ์›๋ž˜ ์ด์œ  / ๊ทธ ๊ณณ์— ๋„๋‹ฌํ•˜๊ธฐ ์œ„ํ•ด ์ˆ˜ํ–‰ ํ•œ ์ž‘์—…์„ ๊ณต์œ ํ•˜๋Š” ๊ฒฝ์šฐ-์›๋ž˜ ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ๋‹ค๊ณ  ๋Š๋ผ๋Š”์ง€ ์—ฌ๋ถ€

๊ฐ€๋Šฅํ•œ ์˜ต์…˜์— ๋Œ€ํ•œ ์š”์•ฝ

  • ๊ธฐ์กด k8s ๋ฆฌ์†Œ์Šค ๋˜๋Š” ๋‹ค์šด ํƒ€์ž„์— ์‹ ๊ฒฝ ์“ฐ์ง€ ์•Š๋Š”๋‹ค๋ฉด helm uninstall && helm install ๊ฐ€ ์˜ต์…˜ ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ฐจํŠธ ์„ค์น˜๊ฐ€ ์ฒ˜์Œ ์‹คํŒจํ•œ ๊ฒฝ์šฐ ๋ฆด๋ฆฌ์Šค ๋น„๋ฐ€ ๋ฉ”ํƒ€ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ญ์ œ ํ•˜๊ณ  helm install ๋‹ค์‹œ ์‚ญ์ œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. --atomic ๋“ฑ์„ ์‚ฌ์šฉํ–ˆ๋Š”์ง€ ์—ฌ๋ถ€์— ๋”ฐ๋ผ ์‹คํŒจ๋กœ ์ธํ•ด ์ž”ํ•ด๊ฐ€ ๋‚จ๋Š” ๊ฒฝ์šฐ k8s ๋ฆฌ์†Œ์Šค๋ฅผ ์ˆ˜๋™์œผ๋กœ ์ •๋ฆฌํ•ด์•ผ ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.
  • --wait ed ์„ค์น˜๋ฅผ ์ค‘๋‹จํ•˜๊ณ  helm history ์— ๋งˆ์ง€๋ง‰ ๋ฆด๋ฆฌ์Šค๊ฐ€ pending-install ์ด ํ‘œ์‹œ ๋˜๋ฉด ์ตœ์‹  ๋ฆด๋ฆฌ์Šค ๋น„๋ฐ€ ๋ฉ”ํƒ€ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ญ์ œ ํ•˜๊ฑฐ๋‚˜ ๋ฆด๋ฆฌ์Šค ์ƒํƒœ๋ฅผ ํŒจ์น˜ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์‹œ๋‚˜๋ฆฌ์˜ค์˜ ์ผ๋ถ€ ๋‹ค๋ฅธ ์กฐํ•ฉ์—์„œ, ๊ทธ๊ฒƒ๋„ ํ•  ์ˆ˜์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค ๋ฆด๋ฆฌ์Šค ์ƒํƒœ๋ฅผ ํŒจ์น˜ ์ดํ›„์˜ ๊ฒฝ์šฐ ํ•˜๋‚˜ ๋˜๋Š” ๊ทธ ์ด์ƒ์˜ ๋ฆด๋ฆฌ์Šค ๋น„๋ฐ€์˜ ๋ณผ upgrade ์ง„ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค, ๊ทธ๋Ÿฌ๋‚˜ ๋‚ด ์ง€์‹, ์ด๋Ÿฌํ•œ ๊ฒฝ์šฐ์˜ ๋Œ€๋ถ€๋ถ„์€ ํ•ด๊ฒฐ๋˜์—ˆ๋‹ค # 7653์— ์˜ํ•ด (์—ญ์‚ฌ์ƒ ์–ด๋”˜๊ฐ€์— deployed ๋ฆด๋ฆฌ์Šค๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด) ๊ทธ๋ž˜์„œ ์ด๊ฒƒ์ด ์ง€๊ธˆ ์œ ์šฉํ•˜๋‹ค๋ฉด ๋†€๋ž„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ๋‹ซํžŒ ๋ฌธ์ œ์ด๊ธฐ ๋•Œ๋ฌธ์— ์–ด์จŒ๋“  ๋” ๊ตฌ์ฒด์ ์ธ ๋‹ค๋ฅธ ํ‹ฐ์ผ“์—์„œ ๋””๋ฒ„๊ทธํ•˜๊ณ  ๋ฌธ์„œํ™”ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์€ ๊ทผ๋ณธ ์›์ธ์ด ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

@chadlwilson ์‘๋‹ต

helm history ๋Š” ํ–‰์„ ๋ฐ˜ํ™˜ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค!

Error: release: not found

๊ทธ๋Ÿฌ๋‚˜ helm list ๋Š” ์‹คํŒจํ•œ ๋ฐฐํฌ๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

M:\>helm3 list -n cluster171
NAME            NAMESPACE       REVISION        UPDATED                                 STATUS  CHART                           APP VERSION
cluster171      cluster171      1               2020-09-01 04:45:26.108606381 +0000 UTC failed    mychart-prod-0.2.0-alpha.10    1.0

์šฐ๋ฆฌ๋Š” Terraform์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์œผ๋ฉฐ Jenkins์—์„œ ๋งค์‹œ๊ฐ„ ์ž๋™์œผ๋กœ ํ™˜๊ฒฝ์„ ๋ฐฐํฌํ•ฉ๋‹ˆ๋‹ค. terraform์„ ์‚ฌ์šฉํ•˜๋ฉด helm upgrade ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. helm ๊ณต๊ธ‰์ž๊ฐ€ ์ˆ˜ํ–‰ํ•˜๋Š” ์ž‘์—…์ž…๋‹ˆ๋‹ค.

ํ…Œ๋ผ ํผ ์ฝ”๋“œ์—์„œ force_update ์„ true ์„ค์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. ์šด์ด์—†๊ณ  replace ๋ฅผ true ์œผ๋กœ ์„ค์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.

resource "helm_release" "productStack" {
  name = "${var.namespace}"
  namespace = "${var.namespace}"
  chart = "${var.product_stack}"
  force_update = true//"${var.helm_force_update}"
  max_history = 10
  replace = true

  wait = true
  timeout = "${var.timeout_in_seconds}"

}

๊ทธ๋ž˜์„œ ๋‚˜๋Š” ๊ทธ๊ฒƒ์ด wait=true ์™€ ๊ด€๋ จ์ด ์žˆ๋Š”์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ด์ „ ๋ฐฐํฌ๊ฐ€ ์‹คํŒจํ•œ ์ด์œ ๋Š” ํด๋Ÿฌ์Šคํ„ฐ๊ฐ€ ๋„์ปค ์ €์žฅ์†Œ์™€ ํ†ต์‹  ํ•  ์ˆ˜ ์—†์–ด timeout ๋„๋‹ฌํ•˜๊ณ  ์ƒํƒœ๊ฐ€ failed ๋˜์—ˆ์ง€๋งŒ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ณ  pods ์„ฑ๊ณต์ ์œผ๋กœ ๋‹ค์‹œ ์‹œ์ž‘๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ ๋ถ„๋ช…ํžˆ helm delete ์ž‘๋™ํ•˜์ง€๋งŒ ๋งค๋ฒˆ์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋ฉด ๊ด€๋ฆฌ์ž ๋‚˜ ๊ฐœ๋ฐœ์ž๊ฐ€ ๊ธฐ๋ปํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

helm v2๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ฐฐํฌ๊ฐ€ ์‹คํŒจํ•˜๊ณ  ๊ฐœ๋ฐœ์ž๊ฐ€์ด๋ฅผ ์ˆ˜์ •ํ•˜๋ฉด ๋‹ค์Œ ๋ฐฐํฌ์—์„œ ์‹คํŒจํ•œ ๋ฐฐํฌ๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ•ฉ๋‹ˆ๋‹ค.

M:\>helm3 list -n cluster171
NAME            NAMESPACE       REVISION        UPDATED                                 STATUS  CHART                           APP VERSION
cluster171      cluster171      1               2020-09-01 04:45:26.108606381 +0000 UTC failed    mychart-prod-0.2.0-alpha.10    1.0

helm history ์‹คํŒจ (์˜คํƒ€? ๋†“์นœ ๋„ค์ž„ ์ŠคํŽ˜์ด์Šค? ์ž˜๋ชป๋œ ํˆฌ๊ตฌ ๋ฒ„์ „?) ์ด์ƒํ•œ ๋ณด์ด์ง€๋งŒ, ๊ทธ๊ฒƒ์˜ ๊ฐœ์ • ์ฃผ์–ด์ง„ 1 ์—์„œ list ๋‹น์‹ ์€ ์ œ ์ผ์„ํ•˜๋ ค๊ณ ํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ์ƒˆ ์ฐจํŠธ๋ฅผ ์„ค์น˜ํ•  ๋•Œ์™€ ์ฒ˜์Œ ์„ค์น˜๊ฐ€ ์‹คํŒจํ–ˆ์Šต๋‹ˆ๋‹ค. ์ฐจ๋‹จ์„ ํ•ด์ œํ•˜๋ ค๋Š” ๊ฒฝ์šฐ ์œ„์™€ ๊ฐ™์ด ๋ฆด๋ฆฌ์Šค ๋น„๋ฐ€ ๋ฉ”ํƒ€ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ญ์ œํ•˜๊ฑฐ๋‚˜ ์ƒํƒœ๋ฅผ ํŒจ์น˜ํ•˜๊ณ  ๋‹ค์‹œ ์‹œ๋„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” Helm ๋˜๋Š” Helm Terraform Provider์˜ ๊ด€์ ์—์„œ ๋ฉ”ํƒ€ ๋ฐ์ดํ„ฐ๊ฐ€ ์ž˜๋ชป๋œ ์ƒํƒœ์— ์žˆ์Œ์„ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ์ง€๋งŒ ์–ด๋–ป๊ฒŒ ๊ฑฐ๊ธฐ์— ๋„๋‹ฌํ–ˆ๋Š”์ง€๋Š” ์•„๋‹™๋‹ˆ๋‹ค.

์–ด์จŒ๋“ , # 7653์ด ๋ณ‘ํ•ฉ ๋œ ์ดํ›„๋กœ Helm 3.2.1 ์‹คํŒจํ•œ ์ตœ์ดˆ ๋ฐฐํฌ์— ๋น„ํ•ด upgrade ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐ ๋ฌธ์ œ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ๊ณต๊ธ‰์ž๊ฐ€ ์‹ค์ œ๋กœ ์‚ฌ์šฉ์ค‘์ธ ํŠน์ • Helm ๋ฒ„์ „์„ ๋‹ค์‹œ ํ™•์ธํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๊นŒ? Helm Terraform ๊ณต๊ธ‰์ž๊ฐ€ install ์‹คํŒจ ํ›„ ๋ฆด๋ฆฌ์Šค ์ƒํƒœ๋ฅผ ํŒŒ์•…ํ•˜๋Š” ๋ฐฉ์‹๊ณผ ๊ด€๋ จ์ด์žˆ์„ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ทธ ๊ณต๊ธ‰์ž์— ๋Œ€ํ•œ ๊ฒฝํ—˜์ด ์—†์œผ๋ฉฐ ๊ฐœ์ธ์ ์œผ๋กœ Helm์„ TF์™€ ๊ฐ™์€ ๋‹ค๋ฅธ ์„ ์–ธ์  ์ถ”์ƒํ™”๋กœ ๋ž˜ํ•‘ํ•˜๋Š” ๊ฒƒ์„ ์„ ํ˜ธํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ๋•Œ ํ›จ์”ฌ ๋” ๋ถˆํˆฌ๋ช…ํ•˜๋‹ค๋Š” ๊ฒƒ์„ ๋ฐœ๊ฒฌํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.ํ•˜์ง€๋งŒ ๋‹น์‹ ์€ ๋” ๊นŠ์ด ํŒŒ๊ณ  ๋“ค๊ณ  ์‹ถ์„ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. .

์–ด์จŒ๋“  ์œ„์—์„œ ๋งํ–ˆ๋“ฏ์ด ์ฒ˜์Œ ๋ฐฐํฌ์— ์‹คํŒจํ•œ ํ›„ ์˜ค๋ฅ˜๊ฐ€ has no deployed releases ์ด๋ฉด replace ๋„ force ๋„ ์ƒ๊ฐํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๊ฐœ์ž…์—†์ด ์ƒํ™ฉ์„ ๋˜์‚ด๋ฆฌ๋Š” ๋ฐ ๋„์›€์ด ๋  ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์œผ๋ฉฐ 51 ๋ช…์˜ ์ฐธ๊ฐ€์ž๊ฐ€์žˆ๋Š”์ด ์˜ค๋ž˜๋œ ๋น„๊ณต๊ฐœ ํ‹ฐ์ผ“์„ ์•ž๋’ค๋กœ ์ด๋™ํ•˜๋Š” ๊ฒƒ์ด ๋ชจ๋“  ๊ด€๋ จ์ž์—๊ฒŒ ๊ทธ๋ ‡๊ฒŒ ์ƒ์‚ฐ์ ์ด์ง€ ์•Š์€ ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด๊ธฐ ๋•Œ๋ฌธ์— ๋” ๋””๋ฒ„๊ทธํ•˜๊ณ  ๋‹ค๋ฅธ ๊ณณ์—์„œ ๋Œ€ํ™”๋ฅผ ๋‚˜๋ˆ„๋Š” ๊ฒƒ์ด ๊ฐ€์žฅ ์ข‹์Šต๋‹ˆ๋‹ค.

์˜คํƒ€๊ฐ€ ์—†์—ˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ์ด๋Š” ์ตœ์ดˆ ๋ฐฐํฌ ์—ฌ๋ถ€์™€ ๊ด€๊ณ„์—†์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

์•ž์„œ ์–ธ๊ธ‰ํ–ˆ๋“ฏ์ด Jenkins์—์„œ ๋ฐฐํฌ๋ฅผ ๊ธฐ๋‹ค๋ฆฐ ๋‹ค์Œ ๋ฐฐํฌ ์‹คํŒจ ์—ฌ๋ถ€๋ฅผ ์•Œ๋ฆฌ๊ธฐ ์œ„ํ•ด --wait ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์‹œ๊ฐ„ ์ดˆ๊ณผ์— ๋„๋‹ฌํ•˜๊ณ  ๋ฐฐํฌ๊ฐ€ ์„ฑ๊ณตํ•˜์ง€ ๋ชปํ•œ ๊ฒฝ์šฐ helm ๋Š” ๋ฐฐํฌ๋ฅผ failed ๋กœ ํ‘œ์‹œํ–ˆ์œผ๋ฉฐ ํ•ด๋‹น ๋ฆด๋ฆฌ์Šค๋ฅผ ์ˆ˜๋™์œผ๋กœ ์‚ญ์ œํ•˜๋Š” ๊ฒƒ ์™ธ์— ๋ณต๊ตฌ ํ•  ๋ฐฉ๋ฒ•์ด ์—†์Šต๋‹ˆ๋‹ค. ๋ฌด์„ญ๊ธฐ ๋•Œ๋ฌธ์— ๋ฆด๋ฆฌ์Šค๋ฅผ ์ž๋™์œผ๋กœ ์‚ญ์ œํ•˜๊ณ  ์‹ถ์ง€๋„ ์•Š์Šต๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ --wait ์˜ต์…˜์„ ์ œ๊ฑฐํ•˜๋ฉด helm ๋Š” ๋ฐฐํฌ๋ฅผ successful ๋กœ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

ํ•ด๊ฒฐ ๋ฐฉ๋ฒ• :

์ด์ œ ๋‹ค๋ฅธ ํ•ด๊ฒฐ์ฑ…์„ ์ฐพ์•˜์Šต๋‹ˆ๋‹ค. ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ๊ณ  ์ž๋™ํ™”๊ฐ€ ์ด์ „์— ์ž‘๋™ํ–ˆ๋˜ ๊ฒƒ์ฒ˜๋Ÿผ ์ž˜ ์ž‘๋™ํ•˜๊ธฐ๋ฅผ ์›ํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์„ ์œ„ํ•ด ๋‹ค์Œ์€ ๋‚ด ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

  • helm ๋ฐฐํฌ์—์„œ --wait ์˜ต์…˜ ์ œ๊ฑฐ
  • ์ด ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐฐํฌ ํ•  ๋„ค์ž„ ์ŠคํŽ˜์ด์Šค์— ๋Œ€ํ•œ ๋ฐฐํฌ ๋ชฉ๋ก์„ ๊ฒ€์ƒ‰ํ•ฉ๋‹ˆ๋‹ค. kubectl get deployments -n ${namespace} -o jsonpath='{range .items[*].metadata}{.name}{","}{end}'
  • split ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์œ„์˜ ์‰ผํ‘œ๋กœ ๊ตฌ๋ถ„ ๋œ ๋ชฉ๋ก์„ ๋ฐฐ์—ด๋กœ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๊ทธ๋Ÿฐ ๋‹ค์Œ ์—ฌ๋Ÿฌ ๋ช…๋ น์„ ๋ณ‘๋ ฌ๋กœ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค (Jenkins๋ฅผ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ ์‰ฝ๊ฒŒ ์ˆ˜ํ–‰ ํ•  ์ˆ˜ ์žˆ์Œ). kubectl rollout status deployment ${deploymentName} --watch=true --timeout=${timeout} -n ${namespace}
  • timeout ์ดํ›„์— ์˜ˆ๋ฅผ ๋“ค์–ด 7m 7 ๋ถ„์„ ์˜๋ฏธํ•˜๊ณ  ๋ฐฐํฌ๊ฐ€ ์—ฌ์ „ํžˆ ์„ฑ๊ณตํ•˜์ง€ ๋ชปํ•œ ๊ฒฝ์šฐ ๋ช…๋ น์ด ์˜ค๋ฅ˜์™€ ํ•จ๊ป˜ ์ข…๋ฃŒ๋ฉ๋‹ˆ๋‹ค.
  • ๋ฌธ์ œ ํ•ด๊ฒฐ๋จ.

์‚ฌ์‹ค-์‹ ๊ฒฝ ์“ฐ์ง€ ๋งˆ์„ธ์š”. ์ด๋กœ ์ธํ•ด ์˜ํ–ฅ์„๋ฐ›๋Š” ์‚ฌ๋žŒ๋“ค์„ ์œ„ํ•ด ํ•œ ๊ฐ€์ง€ ํ•ด๊ฒฐ์ฑ…์ด ์žˆ์Šต๋‹ˆ๋‹ค. kubernetes์—์„œ ์ˆ˜๋™์œผ๋กœ ๊ธฐ๋ก ๋ ˆ์ฝ”๋“œ๋ฅผ ์‚ญ์ œํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋น„๋ฐ€๋กœ ์ €์žฅ๋ฉ๋‹ˆ๋‹ค. ๋ฌธ์ œ๊ฐ€๋˜๋Š” pending-install ์ƒํƒœ ํ•ญ๋ชฉ์„ ์‚ญ์ œํ•˜๋ฉด upgrade --install ๋‹ค์‹œ ์„ฑ๊ณต์ ์œผ๋กœ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค!

๋˜๋Š” ์ด๊ฒƒ์€ ๋‚˜๋ฅผ ์œ„ํ•ด ์ผํ–ˆ์Šต๋‹ˆ๋‹ค.

helm uninstall {{release name}} -n {{namespace}}

kubectl -n $namespace delete secret -lstatus=pending-upgrade ๊ณ ์ •
์ง€๊ธˆ ๋‹ค์‹œ ์กฐํƒ€ํ•˜์‹ญ์‹œ์˜ค.

์™œ ์ด๊ฒƒ์ด ๋‹ซํ˜”๋Š”์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋ฐฉ๊ธˆ ์ƒˆ๋กœ์šด Helm 3.3.4๋ฅผ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค. ์ดˆ๊ธฐ ์„ค์น˜๊ฐ€ ์‹คํŒจํ•˜๋ฉด ๋‘ ๋ฒˆ์งธ helm upgrade --install --force๊ฐ€ ์—ฌ์ „ํžˆ ๋™์ผํ•œ ์˜ค๋ฅ˜๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ชจ๋“  ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€ ์ž‘๋™ํ•˜์ง€๋งŒ ์ˆ˜๋™ ์œผ๋กœ ์ด๋ฃจ์–ด์ง‘๋‹ˆ๋‹ค. 100 % ์ž๋™ CI / CD๋ฅผ ์›ํ•  ๋•Œ ๋„์›€์ด๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. 100 % ์ž๋™ CI / CD๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ˆ˜๋™์œผ๋กœ ์ •๋ฆฌ๋ฅผ ์ˆ˜ํ–‰ํ•˜์ง€ ์•Š๊ณ ๋„ ์ˆ˜์ • ์‚ฌํ•ญ์„ ํ‘ธ์‹œํ•˜์—ฌ ๋‹ค๋ฅธ ๋ฐฐํฌ๋ฅผ ํŠธ๋ฆฌ๊ฑฐ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ˆ„๊ตฌ๋“ ์ง€ ์ด๊ฒƒ์ด ์ฒซ ๋ฒˆ์งธ ๋ฆด๋ฆฌ์Šค์ด๋ฏ€๋กœ ์ž๋™์œผ๋กœ ์‚ญ์ œํ•˜๋Š” ๊ฒƒ์ด ์•ˆ์ „ํ•ด์•ผํ•œ๋‹ค๋Š” ํ”Œ๋ž˜๊ทธ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์„ ์ƒ๊ฐํ•œ ์ ์ด ์žˆ์Šต๋‹ˆ๊นŒ? ์•„๋‹ˆ๋ฉด "--force-delete-on-failure"์™€ ๊ฐ™์€ ๊ฒƒ์„ ์ถ”๊ฐ€ ํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ? ๋ฌธ์ œ๋ฅผ ๋ฌด์‹œํ•˜๋Š” ๊ฒƒ์€ ๋„์›€์ด๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

@ nick4fake AFIK PR # 7653์— ์˜ํ•ด ๋‹ซํ˜”์Šต๋‹ˆ๋‹ค. @yinzara ๋Š” ๋” ์ž์„ธํ•œ ์ •๋ณด๋ฅผ ์ œ๊ณต ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์—…๊ทธ๋ ˆ์ด๋“œ ๋ณด๋ฅ˜์ค‘์ธ ๋ฆด๋ฆฌ์Šค๋ฅผ ๋ฎ์–ด ์“ฐ๋Š” ๊ฒƒ์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š๊ธฐ๋กœ ํ•œ ์œ ์ง€ ๊ด€๋ฆฌ์ž์˜ ๊ฒฐ์ •์ด์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋ชจ๋“  ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด CI / CD ํŒŒ์ดํ”„ ๋ผ์ธ์—์„œ ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด๋ผ๋Š” ๊ท€ํ•˜์˜ ์ง„์ˆ ์€ ์‚ฌ์‹ค์ด ์•„๋‹™๋‹ˆ๋‹ค. helm ์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ ์ „์— ๋งˆ์ง€๋ง‰์œผ๋กœ ์ œ์•ˆ ๋œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ๋นŒ๋“œ ๋‹จ๊ณ„๋กœ ์ถ”๊ฐ€ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค (๋˜ํ•œ CI / CD pipieline์—์„œ --force๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Œ). ์‹คํŒจ์˜ ์›์ธ์„ ๋””๋ฒ„๊ทธ ํ•  ์ˆ˜ ์žˆ๋„๋กํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๋‹ค์Œ ๋ฆด๋ฆฌ์Šค๋ฅผ ์„ค์น˜ํ•˜๊ธฐ ์ง์ „์— ๋ฆด๋ฆฌ์Šค๋ฅผ ์‚ญ์ œํ•œ๋‹ค๋Š” ์ ์„ ์ œ์™ธํ•˜๊ณ ๋Š” ์ œ์•ˆํ•œ ๊ฒƒ๊ณผ ๋™์ผํ•œ ํšจ๊ณผ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ ์—…๊ทธ๋ ˆ์ด๋“œ ๋ช…๋ น์„ ์‹คํ–‰ํ•˜๊ธฐ ์ „์— ์ž๋™ํ™” ๋œ ๋นŒ๋“œ์—์„œ ๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜์—ฌ "๋ณด๋ฅ˜์ค‘์ธ"๋ฆด๋ฆฌ์Šค๋ฅผ ์ œ๊ฑฐํ–ˆ์Šต๋‹ˆ๋‹ค (NS_NAME ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ๋ฐฐํฌ ํ•  ๋„ค์ž„ ์ŠคํŽ˜์ด์Šค๋กœ ์„ค์ •ํ•ด์•ผ ํ•จ).
```bash

! / usr / bin / env bash

RELEASES = $ (helm list --namespace $ NS_NAME --pending --output json | jq -r '. [] | select (.status == "pending-install") | .name')
๋งŒ์•ฝ [[ ! -z "$ RELEASES"]]; ๊ทธ๋•Œ
helm delete --namespace $ NS_NAME $ RELEASES
fi

@yinzara ์Šค ๋‹ˆํŽซ์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค.์ด ์Šค๋ ˆ๋“œ๋ฅผ ์ฐพ๋Š” ๋ถ„๋“ค์—๊ฒŒ ๋งค์šฐ ๋„์›€์ด๋ฉ๋‹ˆ๋‹ค.

๋‚ด ์š”์ ์€ ์—ฌ์ „ํžˆ โ€‹โ€‹์œ ํšจํ•ฉ๋‹ˆ๋‹ค. ๋‹จ์ˆœํžˆ ๋ฆด๋ฆฌ์Šค๋ฅผ ์‚ญ์ œํ•˜๋Š” ๊ฒƒ์€ ์•ˆ์ „ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋‹จ์ผ ๋ฆฌ์†Œ์Šค๊ฐ€ ์‹คํŒจํ•˜๋Š” ๊ฒฝ์šฐ Helm ๊ฐ•์ œ ์—…๊ทธ๋ ˆ์ด๋“œ ๋ฆด๋ฆฌ์Šค๋ฅผ ์ˆ˜ํ–‰ ํ•  ์ˆ˜์—†๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ๋ฆด๋ฆฌ์Šค๋ฅผ ์ƒˆ ๋ฒ„์ „์œผ๋กœ ๊ต์ฒดํ•˜๋Š” ๊ฒƒ์ด ์ „์ฒด ์‚ญ์ œ๋ณด๋‹ค ๋” ๋‚˜์€ ํ•ด๊ฒฐ์ฑ…์œผ๋กœ ๋ณด์ž…๋‹ˆ๋‹ค. Helm์˜ ํ•ต์‹ฌ ๊ธฐ๋ณธ ์‚ฌํ•ญ (์ƒํƒœ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•๊ณผ ๊ฐ™์€)์„ ์ดํ•ดํ•˜์ง€ ๋ชปํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๋ถˆ๊ฐ€๋Šฅํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์ฒซ ๋ฒˆ์งธ ์„ค์น˜๊ฐ€ ์‹คํŒจ ํ•  ๊ฒฝ์šฐ ์‚ฌ์šฉ์ž๊ฐ€ ์ˆ˜๋™์œผ๋กœ ๊ฐœ์ž…ํ•˜๋„๋กํ•˜๋Š” ๊ฒƒ์ด ๋” ์ข‹์€ ์ด์œ ๋ฅผ ์—ฌ์ „ํžˆ ์ดํ•ดํ•˜์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค.

์ด ํ† ๋ก  ์Šค๋ ˆ๋“œ๋ฅผ ํ™•์ธํ•˜๋ฉด ์‚ฌ๋žŒ๋“ค์ด ์—ฌ์ „ํžˆ ๋ฌธ์ œ์— ์ง๋ฉด ํ•ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์Šค๋ ˆ๋“œ์— ๋Œ€ํ•œ ๋งํฌ์™€ ์ˆ˜ํ–‰ ํ•  ์ž‘์—…์— ๋Œ€ํ•œ ๋ช‡ ๊ฐ€์ง€ ์ œ์•ˆ๊ณผ ํ•จ๊ป˜ Helm ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€์— ์ถ”๊ฐ€ ์ •๋ณด๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์— ๋Œ€ํ•ด ์–ด๋–ป๊ฒŒ ์ƒ๊ฐํ•˜์‹ญ๋‹ˆ๊นŒ?

@ nick4fake "์‹คํŒจ"์™€ "์„ค์น˜ ๋Œ€๊ธฐ ์ค‘"์ด ์„ž์—ฌ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๊ด€๋ฆฌ์ž๋Š” ์‹คํŒจํ•œ ๋ฆด๋ฆฌ์Šค์— ๋Œ€ํ•ด ๊ท€ํ•˜์™€ ๋™์˜ํ•˜๋ฏ€๋กœ ๋‚ด PR์„ ์ˆ˜๋ฝํ–ˆ์Šต๋‹ˆ๋‹ค.

"์‹คํŒจํ•œ"๋ฆด๋ฆฌ์Šค๋Š” ์—…๊ทธ๋ ˆ์ด๋“œ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์ด ์ œ PR์ด ํ•œ ์ผ์ž…๋‹ˆ๋‹ค. ๋ฆฌ์†Œ์Šค ์ค‘ ํ•˜๋‚˜๊ฐ€ ์‹คํŒจํ•˜์—ฌ ๋ฆด๋ฆฌ์Šค๊ฐ€ ์‹คํŒจํ•˜๋ฉด ํ•ด๋‹น ๋ฆด๋ฆฌ์Šค๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค (์˜ˆ : upgrade --install๋„ ์ž‘๋™ ํ•จ). ๊ทธ๋Ÿฌ๋ฉด "app-name"์— ๋ฐฐํฌ ๋œ ๋ฆด๋ฆฌ์Šค ์—†์Œ ์˜ค๋ฅ˜๊ฐ€ ํ‘œ์‹œ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

"์„ค์น˜ ๋Œ€๊ธฐ ์ค‘"๋ฆด๋ฆฌ์Šค์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์œ ์ง€ ๊ด€๋ฆฌ์ž๋Š” ๋ณด๋ฅ˜์ค‘์ธ ์„ค์น˜ ๋ฆด๋ฆฌ์Šค (๊ฐ•์ œ ๋˜๋Š” ๊ธฐํƒ€)๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋Š” ๊ฒƒ์ด ์•ˆ์ „ํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์•„์ง ์ง„ํ–‰ ์ค‘์ด๊ฑฐ๋‚˜ ์ž๋™์œผ๋กœ ํ•ด๊ฒฐํ•  ์ˆ˜ ์—†๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋Š” ๋ถ€๋ถ„์ ์œผ๋กœ ์™„๋ฃŒ๋œ ์ƒํƒœ ์ผ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๋‚ด PR์€ ์›๋ž˜์ด ์ƒํƒœ๋ฅผ ํ—ˆ์šฉํ–ˆ๊ณ  ๊ด€๋ฆฌ์ž๋Š”์ด๋ฅผ ์ œ๊ฑฐํ•˜๋„๋ก ์š”์ฒญํ–ˆ์Šต๋‹ˆ๋‹ค.

์ด ์ƒํƒœ์—์„œ ๋ฆด๋ฆฌ์Šค๋ฅผ ์ฐพ์€ ๊ฒฝ์šฐ ๋ฐฐํฌ ๊ตฌ์„ฑ์„ ์žฌ๊ณ  ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ œ๋Œ€๋กœ ๊ตฌ์„ฑ๋œ CI / CD ํŒŒ์ดํ”„ ๋ผ์ธ์—์„œ๋Š” ์ด๋Ÿฐ ์ผ์ด ๋ฐœ์ƒํ•ด์„œ๋Š” ์•ˆ๋ฉ๋‹ˆ๋‹ค. ์‹คํŒจํ•˜๊ฑฐ๋‚˜ ์„ฑ๊ณตํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. "๋ณด๋ฅ˜ ์ค‘"์€ ์„ค์น˜๊ฐ€ ์•„์ง ์ฒ˜๋ฆฌ๋˜๋Š” ๋™์•ˆ ์ทจ์†Œ๋˜์—ˆ์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

๋‚˜๋Š” ์œ ์ง€ ๊ด€๋ฆฌ์ž๊ฐ€ ์•„๋‹ˆ๋ฏ€๋กœ ๊ท€ํ•˜์˜ ์ œ์•ˆ์— ๋Œ€ํ•œ ๋‚ด ์˜๊ฒฌ์€ ๊ด€๋ จ์ด ์—†์ง€๋งŒ ์‹ค์ œ๋กœ ์˜ค๋ฅ˜ ๋˜๋Š” ๋ฉ”์‹œ์ง€๋กœ ์ธ์‡„ ๋œ Github ๋ฌธ์ œ์— ๋Œ€ํ•œ ์ฝ”๋“œ๋ฒ ์ด์Šค์˜ ์–ธ๊ธ‰์„ ์ฐพ์ง€ ๋ชปํ•˜๋ฏ€๋กœ ํ—ˆ์šฉํ•˜์ง€ ์•Š์„ ๊ฒƒ์ด๋ผ๊ณ  ํ™•์‹ ํ•˜์ง€๋งŒ ๋‹น์‹ ์€ PR์„ ์ž‘์„ฑํ•˜๊ณ  ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค :-)

์ฆ‰, ๊ท€ํ•˜์˜ ์š”์ ์ด ์—ฌ์ „ํžˆ ์œ ํšจํ•˜๋‹ค๋Š” ๊ท€ํ•˜์˜ ์ง„์ˆ ์— ๋™์˜ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋‚ด ์ œ์•ˆ์€ ๋ณด๋ฅ˜์ค‘์ธ ๋ฆด๋ฆฌ์Šค๋ฅผ ์ œ๊ฑฐ ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ @abdennour ์ œ์•ˆ์€ ๋ณด๋ฅ˜์ค‘์ธ ์„ค์น˜ ๋ฆด๋ฆฌ์Šค๋ฅผ ์„ค๋ช…ํ•˜๋Š” ๋น„๋ฐ€์„ ์‚ญ์ œํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒํ•˜๋ฉด ๋ฆด๋ฆฌ์Šค์—์„œ ๋ฆฌ์†Œ์Šค๋ฅผ ์‚ญ์ œํ•˜์ง€ ์•Š๊ณ  ๋ฆด๋ฆฌ์Šค๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ์Šค๋ ˆ๋“œ์— ๋Œ€ํ•œ ๋งํฌ์™€ ์ˆ˜ํ–‰ ํ•  ์ž‘์—…์— ๋Œ€ํ•œ ๋ช‡ ๊ฐ€์ง€ ์ œ์•ˆ๊ณผ ํ•จ๊ป˜ Helm ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€์— ์ถ”๊ฐ€ ์ •๋ณด๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์— ๋Œ€ํ•ด ์–ด๋–ป๊ฒŒ ์ƒ๊ฐํ•˜์‹ญ๋‹ˆ๊นŒ?

์ด๊ฒƒ์— +1. ์ด ์Šค๋ ˆ๋“œ๋ฅผ ์ฐพ๊ณ  pending-install ๋ฆด๋ฆฌ์Šค๊ฐ€ ๋ฌด์—‡์ธ์ง€ ์ดํ•ดํ•˜๋ ค๋ฉด ์—ฌ์ „ํžˆ Google์„ ๊ฒ€์ƒ‰ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด์ด ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€์— ๋Œ€ํ•œ ์ถ”๋ก ์„ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” helm upgrade ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ๊ณ  ๊ทธ๊ฒƒ์ด ๋‚˜๋ฅผ ์—ฌ๊ธฐ๋กœ ์ด๋Œ์—ˆ์Šต๋‹ˆ๋‹ค. -n <namespace> ์ถ”๊ฐ€ํ•˜์—ฌ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์–ด์ฉŒ๋ฉด ๊ทธ๊ฒƒ์€ ๋ˆ„๊ตฐ๊ฐ€๋ฅผ ๋„์šธ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

Helm3์˜ ๊ฒฝ์šฐ ํŒจ์น˜๋ฅผ ํ†ตํ•ด ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Œ
kubectl -n <namespace> patch secret <release-name>.<version> --type=merge -p '{"metadata":{"labels":{"status":"deployed"}}}'

release-name ๋ฐ version - kubectl get secrets -n <namespace> | grep helm ์—์„œ ๋ณผ ์ˆ˜ ์žˆ์Œ

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