ç§ã®ç¥ãéãã helm install
çŸåšãã€ã³ã¹ããŒã«ããã°ã©ãã®ããŒãžã§ã³ãæå®ããããã®--version
ãã©ã°ã®æå®ã®ã¿ããµããŒãããŠããŸãã
Chart.yamlã®ãappVersionããã£ãŒã«ããã©ã®ããã«äœ¿çšããããã¯ããããŸãããããã£ãŒãã®ç¹å®ã®ããŒãžã§ã³ïŒãŸãã¯ããŒãžã§ã³ã»ããïŒã«å¯ŸããŠã¢ããªã±ãŒã·ã§ã³ãããŒãžã§ã³ç®¡çããããã®ãµããŒããè¿œå ããããšã¯äžè¬çã«äŸ¿å©ãªããã§ãã
ããã§appVersion
ãã£ãŒã«ãã誀çšããŠããŸããïŒ ä»£ããã«ã以åã®ããŒãžã§ã³ãšã®äžäœäºææ§ãä¿ã€ããã«ãã£ãŒããåžžã«æ§ç¯ããå¿
èŠããããŸããããã§ãªãå Žåãç¹å®ã®ããŒãžã§ã³ãå¿
èŠãªå Žåã«ã helm install
å®è¡ãããšãã«æå®ãããã£ãŒãããŒãžã§ã³ããŠãŒã¶ãŒã«æšæž¬ããã«ã¯ã©ãããã°ããã§ããïŒããã¯ããã«è€éã«ãªããŸãïŒãŠãŒã¶ãŒã--set image.tag
ãããªãã®ã§ãããã€ãããããŒãžã§ã³ãå€æŽããããšãã§ãããšèãããšãããã¯å€ãã®å Žåãã¢ããªã±ãŒã·ã§ã³ã®ããŒãžã§ã³å€æŽã«ã€ãªãããŸãïŒã
ç§ãããã«åºããããŸããã éåžžããã£ãŒãã®ããã±ãŒãžåæã«ç»åã¿ã°ãæå®ãããã®ã§ããããããã°ã®ããã«ãã¢ããªã¯å¥ã®ã¿ã°ã䜿çšããŠã€ã³ã¹ããŒã«ãå®è¡ããããšèããŠããŸããã
90æ¥éæäœããªããšãåé¡ã¯å€ããªããŸãã
/remove-lifecycle stale
ããŠãåé¡ãæ°èŠãšããŠããŒã¯ããŸãã
å€ãåé¡ã¯ãããã«30æ¥ééã¢ã¯ãã£ãã«ãªããšè
æããæçµçã«ã¯éããŸãã
ãã®åé¡ãä»ãã解決ã§ããå Žåã¯ã /close
ã
SIG-ãã¹ããkubernetes /ãã¹ãã»ã€ã³ãã©ããã³/ãŸãã¯ãžã®ãã£ãŒãããã¯ãéä¿¡fejta ã
/ lifecycle stale
https://github.com/kubernetes/charts/pull/5919ã§çºçããããããããå床衚瀺ã
ç§ã®æè¿ã®ã³ã¡ã³ãã®äžéšãã³ããŒããïŒ
ç¹ã«ããã£ãŒãã®ãã€ããŒããŒãžã§ã³ããã€ããŒã¢ããªã±ãŒã·ã§ã³ããŒãžã§ã³ãšäžèŽãããããšãéžæããŸãïŒãã ãããããããŒãžã§ã³çªå·ã¯ã°ãã°ãã«ãªãå¯èœæ§ããããŸãïŒã
ããã¯ãcert-managerã®æ°ãããªãªãŒã¹ã«æ°ãããã©ã°ãè¿œå ããå¯èœæ§ããããHelmãã£ãŒãã«ãµããŒããè¿œå ãããšããã©ã°ããµããŒãããŠããªããããå€ããªãªãŒã¹ã®cert-managerãšã®äºææ§ã倱ãããããã§ãã ããã¯ãäžè¬çãªIMOã§ã®ãã«ã ãã£ãŒãã®ããŒãžã§ã³ç®¡çã«é¢ããããªãåºæ¬çãªè³ªåã§ãããç§ãã¡ã«ã¯è¯ã話ããããŸããã
appVersionããã£ãŒãããŒãžã§ã³ã«åãããã®ã¯ãå§ãã§ããŸãããããã®ããã«ããŠããŠãŒã¶ãŒã¯Helmãã£ãŒãããŒãžã§ã³0.3.xãcert-manager 0.3.xã®ããããã§äœ¿çšã§ãããã£ãŒãããŒãžã§ã³0.4.xãcertã§äœ¿çšã§ããããšãç¥ã£ãŠããŸãã -ãããŒãžã£ãŒ0.4.xã äºææ§ã¯ãã€ããŒããŒãžã§ã³å ã§å®çŸ©ãããŠããŸãã
/ remove-lifecycle stale
ãããè°è«ã®ããã«æã¡åž°ããããšæããŸãã
å šäœãšããŠãäžéšã®ã³ã³ããŒãã³ãã§äœ¿çšãããŠããç»åã¿ã°ã ããå€æŽãããŠããå Žåãå éšã¢ããªã®ã°ã©ããããŒãžã§ã³ç®¡çããããšã«è³æãã説åŸåã¯ããŸããããŸããã ãªãªãŒã¹ãã¢ããã°ã¬ãŒãããå ŽåãappVersionãã£ãŒã«ãã¯ãã®æ å ±ã®é©åãªå Žæã®ããã«èŠããŸãã
äžèšã§åç §ããå ã®ææ¡ãã³ããŒããŸãã
ãã«ã ãã£ãŒãããããã€ããããã®çŸåšã®ã¯ãŒã¯ãããŒã«ã¯ãhelm upgrade CLIã³ãã³ããåŒã³åºãansibleã¿ã¹ã¯ãå«ãŸããŸããåããã£ãŒãããŒãžã§ã³ã®ãªãªãŒã¹ãæ¹èšãããšãã«ããã©ã°ãæž¡ããŠappVersionãèšå®ã§ãããšäŸ¿å©ã§ãã
appVersionã¯ãªãªãŒã¹ã§ã¯ãªããã£ãŒãã«é¢é£ä»ããããŠãããããæŠå¿µçã«ã¯å°ãå¥åŠãããããŸãããããã®å Žåãäžéšã®ã³ã³ãããŒã«äœ¿çšãããç»åã¿ã°ãæŽæ°ããŠããã ãã§ãã¯ãŒã¯ãããŒã«ãã£ãŒãããŒãžã§ã³ããã£ãŒããªããžããªãçµã¿èŸŒãŸããŠããŸããããŸã ã ããã¯å°æ¥å€æŽãããå¯èœæ§ããããŸããããã£ãŒã«ãã¯çŽç²ã«æ å ±æäŸã§ãããããä»ã®ãšãããã€ã³ã¹ããŒã«ãšã¢ããã°ã¬ãŒãæã«--app-versionã®ãã©ã°ãè¿œå ããŠãåé¡ã¯ãããŸããã
ç¬èªã®å
éšã¢ããªã±ãŒã·ã§ã³ãéçºããå Žåãã¢ããªèªäœã¯ãããããããã€ãããã£ãŒããããã¯ããã«å€§ããå€åããŸãã éåžžãç¶ç¶çãããã€ã³ãã³ãã¯helm upgrade
ã§ã --set imageTag=<new_version>
ãããããŸããïŒæããã«ããã£ãŒãã®ä»ã®å Žæã§ã³ã³ããã®ããŒãžã§ã³ãèšå®ããããã«äœ¿çšãããŸãïŒããã--app-versionã«çœ®ãæãããšã次ã®ããã«ãªããŸãã helm ls
å¥ã®èŠèŠçãªãã€ã³ãã䜿çšããŠããããã€ãããŠããã³ãŒãã®ããŒãžã§ã³ãšããããã€ãããŠãããã£ãŒãã®ããŒãžã§ã³ã確èªããŸãã
ãããããèŠãããããããã«ãã€ã³ã¹ããŒã«/ã¢ããã°ã¬ãŒãæã«æž¡ãããimageTagã«èšå®ãããimageTag
ã¡ã¿ããŒã¿ã¿ã°ã®èšå®ãæšæºåããŸããã ããã«ãããK8sããã·ã¥ããŒãã䜿çšããããimageTagã衚瀺ãããGraphanaããã·ã¥ããŒããç°¡åã«äœæãããã§ããŸãããã³ãã³ãã©ã€ã³ãé¢ããŠããŠã¹ãã¯ãªãã¯ããå¿
èŠããããŸãã
ããã«ã€ããŠäœããã¥ãŒã¹ã¯ãããŸããïŒ
ããããšã
ããã«é¢ããæŽæ°ã @Eraacããã®PRãèŠæ±ãããããšãhelm upgrade --set imageTag=<imagetag>
ãå®è¡ããŸãããããã¯helm ls
åºåã«ãªã¹ããããŠããAPPããŒãžã§ã³ãæŽæ°ããŸããã --set app-version
ãŸãã¯--set version
ãå®è¡ã§ãããšã helm upgrade
ãå®è¡ããŠã helm ls
ããããã€ãããŠããããŒãžã§ã³ãæ£ãã衚瀺ã§ããããã«ãªããŸãã
æŽæ°ã¯ãããŸããïŒ
ããããã€ã§ãããã«çŽ æµã«ãªãã§ãããïŒ
ãšãŠã䟿å©ã§ã
ãŸããäžè¬çãªã°ã©ãã䜿çšããŠã¢ããªã±ãŒã·ã§ã³ããããã€ãããããã€ã³ã¹ããŒã«æã«ã¢ããªã®ããŒãžã§ã³ãèšå®ããæ©èœãæ°ã«å ¥ã£ãŠããŸã
+1
+1
ããã¯éåžžã«åœ¹ã«ç«ã¡ãŸã
åããèŠæ±ãã
+1ã§ã¹ãã ãæ¢ããŠãã ããã ãã§ã«PRïŒhttps://github.com/helm/helm/pull/4961ïŒãããã人ã ã¯ææ¡ã«ã€ããŠè©±ãåã£ãŠããŸãã æåŸã®è¿äºã¯2æ¥åã§ããã
ããã«ã¡ã¯@filipre
ãã§ã«PRïŒïŒ4961ïŒãããã人ã ã¯ãã®ææ¡ã«ã€ããŠè©±ãåã£ãŠããŸãã
ãã®PRã«ãããšãããã¯ããã«ç§»åãããŸããïŒ
https://github.com/helm/helm/pull/5492
ããã¯ïŒ4961ã®ææ°ã®PRã§ãããã¬ãã¥ãŒãããŒãžãããã®ãåŸ
ã£ãŠããããã§ã...
@filipreèšã£ãŠ
ããã¯éåžžã«äŸ¿å©ã§ãã ã¢ããªã®ããŒãžã§ã³0.6.0ã«åºå®ããå¿ èŠãããåé¡ã«ééããŸããããã°ã©ãã®ããŒãžã§ã³ã¯ã¢ããªã®ããŒãžã§ã³ãšã¯é¢ä¿ãããŸããã
ç§ãåæããŸãããããéåžžã«åœ¹ç«ã€ãšæããŸãã æŽæ°ã¯ãããŸããïŒ
å€ãã®ã¢ããªã±ãŒã·ã§ã³ã§åå©çšããäºå®ã®Helmãã£ãŒããäœæããŠãããšãã«ããããåé¡ã«ãªãããšã«æ°ä»ãããšãã«ããã®åé¡ãçºçããŸããã ãã®åé¡ãç°¡åãªæ¹æ³ã§è§£æ±ºããããšïŒã€ãŸããã€ã³ã¹ããŒã«æã«ã¢ããªã®ããŒãžã§ã³ãèšå®ãããã©ã°ã䜿çšããããšïŒãé²ãã§ããªãããšãèãããšãä»ã®ãšããæ©èœããã¯ãã®ä»£æ¿æ¡ãèãåºããŸããã ããã¯æ¬åœã«ãšãŠãç°¡åã§ã-æåã«untarãªãã·ã§ã³ã§helm fetch
ãå®è¡ãã次ã«ããã«ååšãã--app-version
ãã©ã°ã§helm package
ãå®è¡ããŠããããã®ããŒã«ã«ãã£ãŒãã®ã€ã³ã¹ããŒã«ã«é²ã¿ãŸãã
çæ³çã§ã¯ãããŸãããã helm list
ã®æçµçµæã¯æ£ãããCIãµãŒããŒã§ãããè¡ãã®ã¯éåžžã«ç°¡åã§ãã --app-version
ãhelm install
ãšhelm upgrade
ã§å©çšã§ããããã«ããããšæããŸãã
ïŒ5492ã§ã®è°è«ã®èŠçŽã¯ã helm package
ãšhelm install
ã®ããžãã¯ãã©ããããã³ãã³ããããã®åé¡ã§æåã«èª¬æããããŠãŒã¹ã±ãŒã¹ã解決ãããšãããã®
ã€ãŸãã次ã®ã³ãã³ããå®è¡ããããšã§ãããåé¿ã§ããŸãã
$ helm package myapp --app-version 1.0.0
$ helm install myapp-1.0.0.tgz
ïŒæè¿ã¯ããŒãºãããPRããã®ã³ã¡ã³ããããã«ç§»åããŸã-ãããã£ãŠããã«ãŽã¡ãŒãã§çµããããšã¯ãããŸããïŒ
ãããç§ã®2ã»ã³ãã§ãïŒ
appVersion Y
ãµãŒãã¹ããããã€ãããã«ã chart version X
ããããšä»®å®ããŸãã
ãã«ã ãã£ãŒãã¯ã appVersion Y
ãµãŒãã¹ããã¹ãããããã«äœ¿çšãããchart version X
äžã®Kuberneteså
ã®ã€ã³ãã©ã¹ãã©ã¯ãã£ã説æããããã«äœ¿çšãããŸãã
åæéçºäžã X
ãšY
äž¡æ¹ãå®æçã«å€æŽãããŸãã ãã ããããæç¹ã§X
ã¯å€ããå°ãªããå®å®ãã Y
ã¯å€åãç¶ããŸãïŒ Y
ã«ã€ã³ãã©ã¹ãã©ã¯ãã£ã«å¯Ÿããæ°ããèŠä»¶ããªãéããããã¯ã»ãšãã©çºçããŸããã Y
ã®éçºãµã€ã¯ã«ã§ïŒã
ãã®ãã±ããã§ææ¡ãããŠããã¢ãããŒãã§ã¯ãããŒãžã§ã³X
å®å®ãããã«ã ãã£ãŒãããã±ãŒãžã䜿çšããŠãappVersion Y
ã Y+1
ã Y+N
ãªã©ããããã€ã§ããŸãã
ãã ãããã«ã ã®ã€ã³ã¹ããŒã«ãŸãã¯ã¢ããã°ã¬ãŒãäžã«ãã®ãã©ã°ããªãŒããŒã©ã€ãã§ããªãããã«ãã代ããã«ããã±ãŒãžãªã©ã§ã®ã¿ã X
ãšY
äž¡æ¹ãå¹æçã«çµã³ä»ããŠãåžžã«æ°ããX+1
äœæããå¿
èŠããããŸãã Y+1
ã§ãã ããã¯ç§ã«ã¯äžå¿
èŠã«æããæ°ããappVersion
åç
§ããŠããããšãé€ãã°ãå®è³ªçã«å€æŽãããŠããªã倧éã®ãã«ã ããã±ãŒãžã«ãªããŸãã ç§ã®èŠè§£ã§ã¯ãã¢ããªã±ãŒã·ã§ã³ã®ããŒãžã§ã³ãšãã®ã¢ããªã±ãŒã·ã§ã³ããã¹ãããŠããã€ã³ãã©ã¹ãã©ã¯ãã£ã®ããŒãžã§ã³ã«ã¯é¢ä¿ããããŸãããåå¥ã«ããŒãžã§ã³ç®¡çããå¿
èŠããããŸãã ãããã©ã®ããã«è¡ãããŠãããã¯ãããããã®éçºããŒã ã«ä»»ããã¹ãã§ãã
ãã®ã¢ãããŒãã¯ééããªãæ©èœããŸããã AppVersion
ãå€æŽãããå€ãã®äžèŠãªHelmããã±ãŒãžãçºçããŸãã
$ helm package myapp --app-version 1.0.0
$ helm install myapp-1.0.0.tgz
ãããã§ããç§ãäžã§è¿°ã¹ãã¢ãããŒãããšãã°ãããã¯ããã»ã©åé¡ã§ã¯ãªããšæããŸãã ã¢ããªã®ããŒãžã§ã³ãèšå®ãããŠããªãïŒãŸãã¯0.0.0ãªã©ïŒãã£ãŒããªããžããªã«ã°ã©ããããã·ã¥ããããã䜿çšããå Žåã¯ã helm fetch
ã䜿çšããé©åãªã¢ããªã®ããŒãžã§ã³ã§ããã±ãŒãžåããŠãããããŒã«ã«ã䜿çšããŸã.tgz
ãã¡ã€ã«ã§ããããã®ãã£ãŒããããã·ã¥ããªãã§ãã ããã ããããã°ããã£ãŒããªããžããªã¯ã¯ãªãŒã³ãªç¶æ
ã«ä¿ãããå®éã®ãã£ãŒãã®å€æŽã®ã¿ãããã«è¡šç€ºãããŸãã
ã¯ããåäœããŸãã ãã®å Žåããããã€ã¡ã³ãã¢ãŒãã£ãã¡ã¯ããçŽæ¥æ¶è²»ããããšã¯ã§ããŸãããïŒããšãã°ãHelmãªããžããªããçŽæ¥ã€ã³ã¹ããŒã«ããããšã«ãã£ãŠïŒãã¢ãŒãã£ãã¡ã¯ããå€æŽããè¿œå ã®æé ãå®è¡ããå¿ èŠããããŸãã
Charts.yaml
ã¯äžå€ã§ããå¿
èŠããããšäž»åŒµãããå Žåããããã€ã¡ã³ãã¢ãŒãã£ãã¡ã¯ãã¯äžå€ã§ããå¿
èŠããããšç§ã¯äž»åŒµããŸãã
_https ïŒ //github.com/helm/helm/pull/5492#issuecomment-520029902_ããã®ç§ã®èãã®èŠçŽ
ã³ãã¥ããã£ãããã±ãŒãžããã£ãŒããããŒãžã§ã³ãã©ã®ããã«è§£éãããã«åé¡ããããŸãã @BenjaminSchiborr ããããããªã
ãã£ãŒã-ãªãªãŒã¹ã®ãœãŒã¹ã³ãŒãã§ãã ã¢ããªã®ãœãŒã¹ã³ãŒãã®ããã«ã ãã³ãã¬ãŒããã³ãŒããã¡ã€ã«ã§æ§æãããŠããŸãã
ããã±ãŒãž-ãªãªãŒã¹ãã¢ãŒãã£ãã¡ã¯ãã®ãã«ãã§ãã ãã€ããªã®ããã«ããœãŒã¹ã³ãŒãããæ§ç¯ãããŸãã åºå®ã®æ¬çªããŒãžã§ã³ã§æ§æãããŠããŸãïŒãã£ãŒãããŒãžã§ã³ãšã¢ããªããŒãžã§ã³ã®äž¡æ¹ã
ãªãªãŒã¹-æå®ãããæ§æã§ãããã€ããããã«ãã§ãã
ãã£ãŒããããªãªãŒã¹ãäœæããæ¹æ³ã¯ãããŸããã ãã®ããã«ã¯æ©èœããŸããïŒ
ã¢ããªãã¹ããŒãžã«ãããã€ããåã«ãã°ã©ããçšæããå¿
èŠããããŸãã 次ã«ã helm package
ã䜿çšããŠãäž¡æ¹ã®ããŒãžã§ã³ãä¿®æ£ããã°ã©ãã䜿çšããŠã¢ããªãããã±ãŒãžåããå¿
èŠããããŸãã ãã®çµæãã©ã®æ®µéã§ãå±éå¯èœãªããã±ãŒãžã«ãªããŸãã 次ã«ããã®ããã±ãŒãžãããšãã°QAã¹ããŒãžã«ã€ã³ã¹ããŒã«ãã helm install
ã䜿çšããŠãUAã§ããã¢ãŒããã次ã«æ¬çªç°å¢ã§ããã¢ãŒãããŸãã
ããã¯ãããã±ãŒãžæåã®ãœãããŠã§ã¢ãæ©èœããæ¹æ³ã§ãã
helm install
ã¯ãã€ã³ã¹ããŒã«ããå¿
èŠã®ãããœãŒã¹ãå¿
èŠã§ãã ãœãŒã¹ã¯æ¬¡ã®ãšããã§ãã
4çªç®ã®ã¢ãããŒãã¯ããã§ã¯é»ãçŸã®ããã«æããŸããã ããããpplãããã±ãŒãžãšãã£ãŒããæ··åããçç±ã§ãã ãããŠããããåé¡ã®æ ¹æºã§ãã
éçã®ã¢ããªã«ã¯2çš®é¡ãããŸãã
倧/äž-ããã¯ãããè¯ãå
çãšå質ä¿èšŒã®ããã«è©³çŽ°ã§è©³çŽ°ãªãããŒãèšå®ããããã®æéãè³éãããã³ãªãœãŒã¹ãããå Žæã§ãã
å°èŠæš¡-ãã€ã¯ããµãŒãã¹ãããããããžã§ã¯ããPoCãäœã³ã¹ããããžã§ã¯ããDevOpsã®ç¥èããªããããžã§ã¯ããããã«ã¯ãã«ã éçºããã»ã¹ã®ãã¹ãã
å°ããªãããžã§ã¯ãã§ã¯ãããã±ãŒãžãäœæãããåŠçãããããæéãå¿ èŠã¯ãããŸããã ããã€ãã®ãã³ãã¬ãŒããã¡ã€ã«ãäœæãã1ã€ã®ã³ãã³ãã§ãããã€ããããšããŸãã
ãããã helm install
ãhelm package & helm install
ãªã©ã®äœ¿çšãèš±å¯ããçç±ã§ãã ãã ãã --app-version
ãªã©ã®å®å
šãªhelm package
æ©èœã¯æäŸãããŸããã
helm install
ã¯helm package & helm install
ã«ãªãå¯èœæ§ããããŸããã helm install
ã¯æ··ä¹±ãããµããŒãããã¹ããããã³ã°ãããã©ã¯ãã£ã¹ã®äœæã«å°çã«ãªããŸãã
helm install
ç°¡ç¥åããŸãã ã³ãŒãããŒã¹ãç°¡çŽ åãããã¹ãããŠæèŠãè¿°ã¹ã helm
ç解ãç°¡çŽ åããããã«ãããã±ãŒãžã®ã¿ãæäŸã§ããããã«ããå¿
èŠããããŸãã
helm run
æ°ããã³ãã³ããå°å
¥ããŸãïŒ helm run
ã ãã åäœããã¯ãã®ã³ãã³ããã å°ããªã¢ããªã«æé©ã§ãã ãããã¯ãäžèŠæš¡ãã倧èŠæš¡ã®å ŽåããããŸãã
helm package
ãšhelm install
çµã¿åãããŠããã®ãããªãŠãŒã¹ã±ãŒã¹ã§æå³ããªããªãã³ãã³ããé€ããŠãäž¡æ¹ã®ã³ãã³ãããæ©èœãæäŸããå¿
èŠããããŸãã
helm package
ã¯ã go build
ãšåæ§ã«ããã«ããäœæããŸãã go run
䜿çšãããšããã«ãããã»ã¹ãªãã§ã¢ããªãèµ·åã§ããããã helm run
ã¯ããã§ã¯å
å®ãªååã®ããã«èŠããŸãã
èæ ®ãã¹ãè¿œå äºé ïŒ
upgrade --install
䜿çšããå¿
èŠããããŸããïŒ--atomic
æå¹ã«ããå¿
èŠããããŸããïŒ@iorlas ã
ããªãã®ã³ã¡ã³ãã¯çã«ããªã£ãŠããŸãã ãã ããã€ã³ãã©ã¹ãã©ã¯ãã£ããŒãžã§ã³ãšãœãããŠã§ã¢ããŒãžã§ã³ã®äž¡æ¹ãç¶æ¿ããŠçµã³ä»ããæçµããã±ãŒãžã¯1ã€ã ãã§ãããšæ³å®ããŠããŸããããœãããŠã§ã¢ããŒãžã§ã³çšã®ããã±ãŒãžãšã€ã³ãã©ã¹ãã©ã¯ãã£çšã®ããã±ãŒãžããããããããçµã³ä»ããããšæ³å®ããŠããŸãããªãªãŒã¹å
ïŒããšãã°ããœãããŠã§ã¢ããŒãžã§ã³ãšã€ã³ãã©ã¹ãã©ã¯ãã£ããŒãžã§ã³ãåç
§ããç®çã®ç¶æ
æ§æãä»ããŠïŒã
ãªãéçºããã»ã¹ããã®ãã¿ãŒã³ã«åŒ·å¶ããå¿ èŠãããã®ãââããããŸããã責任ããéçºã°ã«ãŒãããã€ã³ãã©ã¹ãã©ã¯ãã£ãšãœãããŠã§ã¢ã®ããŒãžã§ã³ããã«ã ããã±ãŒãžã¬ãã«ä»¥éã§çµã³ä»ãããã©ããã決å®ããããšãã§ããŸãã çŸåšãå±éããã»ã¹ã§ã¯åžžã«æ°ããhelmããã±ãŒãžã䜿çšããå¿ èŠããããŸãããå€æŽãããã®ã¯ãœãããŠã§ã¢ããŒãžã§ã³ã®ã¿ã§ãã ããã«ããããªããžããªã«äœåãã®åœ¹ã«ç«ããªãããã±ãŒãžãäœæãããŸãã
ããã«é·æçãªå©ç¹ãããã°å€§äžå€«ã§ãã èŠããªãã ãã§ãã
@BenjaminSchiborrããããŸãããå°ãå解ãããŠãã ããã
ããŒãžã§ã³X
ChartïŒ==ã€ã³ãã©ã¹ãã©ã¯ãã£ïŒãäœæã§ããŸãã
ã¢ããªã±ãŒã·ã§ã³ãããŒãžã§ã³Y
ãæã€ããšãã§ããŸãã
helm
çŸåšã©ã®ããã«æ©èœããããããã¯helm package
ã¹ãããã§ã€ã³ãã©ã¹ãã©ã¯ãã£ãšã¢ããªã±ãŒã·ã§ã³ã®ããŒãžã§ã³ãçµã³ä»ããŸãã 次ã«ããããk8såå空éãšçµã³ä»ããŠãReleaseãçæããå¿
èŠããããŸãã
ãããã£ãŠãåŒã¯æ¬¡ã®ããã«ãªããŸãã package(infra + app) + k8s = Release
æ¬åœã«å¿
èŠãªã®ã¯ããã®äžéã¹ããããã¹ãããããŠã3ã€ã®ã³ã³ããŒãã³ããã¹ãŠã1ã€ã®ã¹ãããïŒãªãªãŒã¹ïŒã§çµã³ä»ããããšã§ãã ãã®ããã«ïŒ infra + app + k8s = Release
ã ç§ã¯æ£ããã§ããïŒ
ããã¯ãè¡šé¢äžã helm run
ãè¡ãããšã§ãã ãã³ãããã®äžã§ã¯ãããã¯åãã«ãªããŸãã
ããã...ç§ã¯ããªãããã«ã ã®ãã€ã³ããéããŠãããããããªããšæããŸãã ã©ã®ããŒã«ããŠãŒã¶ãŒã®å¥œã¿ã«åãããŠäœ¿çšââã§ããŸãããã³ãã¥ããã£ã«åœ±é¿ãäžãããéããäœããšããã¢ã€ãã¢ã¯åžžã«ååšãããããæé é¡ãããŒã«ãéžé ããèœåãåãããããŒã«ãªãããšã¯ãããŸããã
ãããã©ã®ããã«äœ¿ãããã¹ããã説æããããšæããŸãããããŠããªãã®èŠç¹ãããããèŠãã®ã¯çŽ æŽãããã§ãããã
Helmèªäœã¯ãk8sã®ãã³ãã¬ãŒããšãããã€ãæœè±¡åããã¢ããªã±ãŒã·ã§ã³ãšã€ã³ãã©ã¹ãã©ã¯ãã£ããã®äŸåé¢ä¿ã§çµã³ä»ããããã«äœæãããŠããŸãããã³ãã¬ãŒããæåã§æžãçŽããŠK8sã«é©çšããæ°ããã€ã¡ãŒãžã¿ã°ãæäŸãã代ããã«ãå¿
èŠãªã³ãã³ãã¯1ã€ã ãã§ã- helm upgrade
ã MSIãŸãã¯debããã±ãŒãžã®ããã«ã
æ°ããã¢ããªã®ããŒãžã§ã³ãã€ã³ã¹ããŒã«ããããããŠã³ã°ã¬ãŒããããããå¿ èŠãããå Žåã¯ãhelmã䜿çšããããšã«ãªã£ãŠããŸãã ã¢ããªã管çãã代ããã«ãããã±ãŒãžå šäœã管çããŸãã äœããããŸããããªããšãã«ã¢ããªã®ããŒãžã§ã³ãšã€ã³ãã©ã¹ãã©ã¯ãã£ãå¥ã ã«ããŒã«ããã¯ããã®ã¯äœé³ã®èŠçã§ããã-ç§ã¯ããã«è¡ã£ãããšããããŸããã誰ã«ãææ¡ããŸããã
ãããã£ãŠãã¬ãžã¹ããªã«å€ãã®ããã±ãŒãžãå«ããããšã¯æ£ããããšã§ããããã±ãŒãžã¯ã€ã³ãã©ã¹ãã©ã¯ãã£ã§ã¯ãªããããã±ãŒãžã¯ã¢ããªã§ããã¢ããªã¯ãã€ã³ãã©ã¹ãã©ã¯ãã£ã®ãªãK8sã§ã¯æå³ããªãããã§ãã
ãªããžããªã«ããã±ãŒãžãå€ããããšããåé¡ãããå Žåã¯ããªããžããªã®ä»£ããã«ã¢ãŒãã£ãã¡ã¯ãã䜿çšããããšããå§ãããŸãã ç§ã¯CIã§ãã®ããã«ããŠããŸãïŒã¢ããªããã«ãããDockerã¬ãžã¹ããªã«éä¿¡ããããã±ãŒãžãäœæãããªãªãŒã¹çšã®ã¢ãŒãã£ãã¡ã¯ããšããŠä¿åããŸãã CircleCIãTravisãAzure Pipelinesã¯ãã¢ãŒãã£ãã¡ã¯ããšããŠãã«ãã«æ·»ä»ããããã¡ã€ã«ã®äœæããµããŒãããŠããŸãã ããªãã¯åãããšãããããšãã§ããŸããïŒ
å€åç§ã¯ãã«ã ã®ãã€ã³ããéããŠããŸãã ãã¶ãããã«ã ã¯ããã§ãã€ã³ããéããŸããã ãã®ãã±ããã¯ãŸãã«ãããè©äŸ¡ããããã®ãã®ã ãšæããŸãã ãããŠå人çã«-ç§ã®èŠéãåºããããšã«ã€ããŠã:)
ãããããããæœè±¡çãªæ¹æ³ã§ããªããèšã£ãŠããããšã¯æ£ããã§ãã ãœãããŠã§ã¢ããŒãžã§ã³ãhelmããã±ãŒãž/ãªãªãŒã¹ã«çµåããããªãã®ã§ãåºæ¬çã«ã¯infra + app + k8s = Release
ã§ãã ãœãããŠã§ã¢ããŒãžã§ã³ã®ããããã£ãhelmããã±ãŒãž/ãªãªãŒã¹ã«é¢é£ä»ããããªãã®ãšåãã§ãïŒãªãŒããŒã©ã€ãã§ããæ£åžžãªããã©ã«ãã¯å¥ãšããŠïŒã
äŸã«é¢ããŠã¯ãããã«äžã«æäŸããŸãã ããããã®ã¢ãããŒããã©ã®ããã«åé¡ãããããã©ã®ããã«ç€ºããŠããã®ãããããŸããã åŒãç¶ãhelmã䜿çšããŠããŒã«ããã¯ãŸãã¯ããŒã«ãã©ã¯ãŒãããŸãã ã€ã³ãã©ã¹ãã©ã¯ãã£ãå€æŽãããå Žåã¯ãå€æŽããããã«ã ãã£ãŒãããŒãžã§ã³ã䜿çšããŸãã ãœãããŠã§ã¢ããŒãžã§ã³ãå€æŽãããå Žåã¯ãå¥ã®appversionã䜿çšããŸãã ãã©ã¡ãŒã¿ãå€æŽãããå Žåã¯ãå¥ã®ãã©ã¡ãŒã¿ã䜿çšããŸãã ããã¯ããµãŒãã¹ããšã«åžžã«ïŒåäžã®ïŒãã«ã ã³ãŒã«ã«ãªããŸãã
詳现ãæããŠããã ããŸããïŒ
ãªããžããªã«ããã±ãŒãžãå€ããããšããåé¡ãããå Žåã¯ããªããžããªã®ä»£ããã«ã¢ãŒãã£ãã¡ã¯ãã䜿çšããããšããå§ãããŸãã
ç§ãèšåããŠããã®ã¯ãããã±ãŒãžåããããã«ã ãã£ãŒããå€ãããããšã§ããïŒãã§ã«appVersionãå«ãŸããŠããŸãïŒã å®å®ãã1ã€ã®ãã«ã ãã£ãŒãããŒãžã§ã³ãšã1æ¥ã«æ°çŸåå€æŽãããappVersionãšèããŠãã ããã ãããã£ãŠããªããžããªå ã®ãµãŒãã¹ããšã«æ¯æ¥æ°çŸã®ããã±ãŒãžåããããã«ã ãã£ãŒãããããåŸã§èªååã«ãã£ãŠæ¶è²»ãããŸãã
ïŒç§ã®ãã€ãã©ã€ã³ã¯äžè¬çã«ããªãã®ãã®ãšåãããã«èŠããŸãïŒãã«ãã¢ããª-> Dockerã€ã¡ãŒãžïŒçµæã¯appVersionïŒ->ããã±ãŒãžãã£ãŒãïŒæŽæ°ãããappVersionã䜿çšïŒ->ãªããžããªã«ããã·ã¥ããŸããïŒ
ãã®ãã±ããã¯ãŸãã«ãããè©äŸ¡ããããã®ãã®ã ãšæããŸãã
確ãã«ïŒ ç§ã®æèŠã§ã¯ããã§ã«æœè±¡åã®ã¬ãã«ãå€ããããããããã«ãã«ã ããããšå°ãå§åãããŸãðãŸãããã«ã ã解決ããåé¡ã®ããã€ãïŒããããã»ãšãã©ïŒïŒã®ããã«äœæãããk8sæŒç®åãããã«ãããŸãã ããããããã¯ãŸãå¥ã®è©±é¡ã§ãããžãžã
å®å®ãã1ã€ã®ãã«ã ãã£ãŒãããŒãžã§ã³ãšã1æ¥ã«æ°çŸåå€æŽãããappVersionãšèããŠãã ããã ãããã£ãŠããªããžããªå ã®ãµãŒãã¹ããšã«æ¯æ¥æ°çŸã®ããã±ãŒãžåããããã«ã ãã£ãŒãããããåŸã§èªååã«ãã£ãŠæ¶è²»ãããŸãã
ãããããã¯ééããªãå€ãããããã«æããŸãããããã¯æå³ãããŠããŸãã åæ§ã«ããã«ããå®è¡ãããšãããã€ãã®ã¢ãŒãã£ãã¡ã¯ããçæããããããä¿åããŠã¹ããŒãžã«ãããã€ããããã«äœ¿çšããå¿ èŠããããŸãã ã®ããã«...ãã«ãçµæããªããã«ããå®è¡ããã«ã¯ã©ãããã°ããã§ããïŒ ãããã€ãããšãã«ãã«ããçæããå¿ èŠããããŸããïŒ ããã¯æ¬åœã«ééã£ãŠããã§ãããã äžéšã®CIãã€ãã©ã€ã³ã¯ãJSãã«ãã«å¯ŸããŠãããè¡ããŸãã
dockerã§çºçããã®ãšåãåé¡ïŒãã«ãããšã«æ°ããdockerã€ã¡ãŒãžãçæãããdockerã¬ãžã¹ããªã«å ¥ããŸãã ä¿åããå¿ èŠããããŸããä¿åããªãå Žåã¯ãã©ã®ããã«å±éããã®ã§ããããã
ãã¡ããã docker save
ã䜿çšããŠã¬ãžã¹ããªã®ã¹ããŒã¹ãç¯çŽããåŸã§ãã«ãarifactsä¿æããªã·ãŒãã¹ã€ãŒãããããšãã§ããŸãã ãããã helm package
ããŠããã¡ã€ã«ãšããŠä¿æããããšãã§ããŸãã
ããããç§ã¯ééããªãããªãã®äž»åŒµãç解ããŠããŸããã¢ããªã®ããŒãžã§ã³ãåãå ¥ããããšãã§ãããã€ã³ã¹ããŒã©ãŒãã1ã€æã€ããšãã§ããŸãã ãã®ãããªã€ã³ã¹ããŒã©ãŒã«ã¯ã€ã³ãã©ã¹ãã©ã¯ãã£ããããããã¢ããªã®ããŒãžã§ã³ãå€æŽããã ãã§ãåãç¶æ ãç¶æã§ããŸãã ãã¡ããšã·ã³ãã«ã«èŠããŸãããåé¡ããããŸãã
ã¢ããªèªäœã¯ãã€ã³ãã©ã¹ãã©ã¯ãã£ã®ãªãk8sç°å¢ã§ã¯æå³ããããŸããã
ã¢ããªãäœããã®ã€ã³ãã©ã¹ãã©ã¯ãã£ã«äŸåããŠããå Žåã¯ã©ããªããŸããïŒ åºæ¬çãªäŸ-configmapã
ãã®åŸãã¢ããªãããŒã«ããã¯ããå¿
èŠãããå Žåã¯ã©ããªããŸããïŒ
ã¢ããªãããŠã³ã°ã¬ãŒãããå¿
èŠããããŸãããã€ã³ãã©ã¹ãã©ã¯ãã£ãããŠã³ã°ã¬ãŒãããå¿
èŠããããŸãã
ã€ã³ãã©ã¹ãã©ã¯ãã£ãããŒã«ããã¯ããå¿
èŠãããå Žåã¯ã©ããªããŸããïŒ
以åã®ã€ã³ãã©ã¹ãã©ã¯ãã£ã¯ãããã«é¢é£ä»ããããŠããªããããã€ã³ã¹ããŒã«ããå¿
èŠã®ããã¢ããªã®ããŒãžã§ã³ã®æãããããããŸããã ãã®ãããã©ã®ã¢ããªãã©ã®ã€ã³ãã©ã¹ãã©ã¯ãã£ããµããŒãããŠããããèŠããŠãæåã§èšå®ããå¿
èŠããããŸãã
æ¬åœã«ãããã¯å°çã§ãããã ãããŠãããªããèµããšã£ãŠããªããšããããã¯ä»å°çã§ãã ãããŠããã¯ééãã§ã¯ãããŸããã ãããããã®å Žåããã«ã ã䜿çšããçç±ã¯ã»ãšãã©ãããŸããã
ãã§ã«æœè±¡åã®ã¬ãã«ãå€ãããŸã
ãã¹ãŠã®çŽ æŽããããŠã·ã³ãã«ãªãŠã£ã³ã¯
ããªãã®æåŸã®ãã€ã³ãã¯éåžžã«èª¬åŸåããããšæããŸãïŒ
以åã®ã€ã³ãã©ã¹ãã©ã¯ãã£ã¯ãããã«é¢é£ä»ããããŠããªããããã€ã³ã¹ããŒã«ããå¿ èŠã®ããã¢ããªã®ããŒãžã§ã³ã®æãããããããŸãã
ããããåãé¢ããHelmããã±ãŒãž/ãªãªãŒã¹ãä¿¡é Œã§ããæ å ±æºãšããŠäœ¿çšããå Žåãããã¯ééããªãåé¡ã«ãªããŸãã
ããããå€ãã®äººã«ãšã£ãŠãããã¯ããããããã§ã¯ãããŸããã ãã«ã ïŒãããæœè±¡åã®å¥ã®ã¬ã€ã€ãŒïŒã®äžã«ãè€æ°ã®ãã«ã ãã£ãŒãïŒããã³appVersionsïŒãçµã³ä»ãããªãŒã±ã¹ãã¬ãŒã·ã§ã³ããããŸãïŒãã«ã ã¹ãã³ãããŒãã¹ãªã©ãèããŠãã ããïŒã ãããŠããã®ã¬ã€ã€ãŒèªäœãããŒãžã§ã³ç®¡çãããŠããŸãã ãã®å Žåããã«ã ãã£ãŒãã®å€ãããŒãžã§ã³ã«æ»ãã®ã§ã¯ãªãããªãŒã±ã¹ãã¬ãŒã·ã§ã³ã¬ã€ã€ãŒã®å€ãããŒãžã§ã³ïŒã¢ããªãšã€ã³ãã©ã¹ãã©ã¯ãã£ã®æå³ãç解ããïŒã«æ»ãããã説æããå 容ã¯åé¡ã§ã¯ãªããªããŸãã
ããããèµã ãã§ãã¯ãã100ïŒ åé¡ã§ãð£ã ããããappVersionã®ãªãŒããŒã©ã€ããæ瀺çã«èš±å¯ããããã©ã«ãã§ã¯èš±å¯ããªããšããã¢ã€ãã¢ã®çç±ã ãšæããŸãã
ãã£ãŒãããŒãžã§ã³ãšã¢ããªã±ãŒã·ã§ã³ããŒãžã§ã³ãçµåããããšã«ã€ããŠç§ãæ°ã«å ¥ã£ãŠããããšã®1ã€ã¯ãã©ã®ã¢ããªã±ãŒã·ã§ã³ããŒãžã§ã³ãã©ã®ãã£ãŒãã«å±ããŠããããæ確ã«ãªãããšã§ãã 1ã€ã®ç¹å®ã®ããŒãžã§ã³ãåãããã€ããå¿ èŠãããå Žåãã©ã®ã¢ããªã±ãŒã·ã§ã³ããŒãžã§ã³ãã©ã®ãã£ãŒãããŒãžã§ã³ãšäºææ§ãããããèŠããŠããå¿ èŠã¯ãããŸããã ãããã¯çžäºã«ãªã³ã¯ãããŠãããããé©åãªãã£ãŒãããŒãžã§ã³ãåç §ããã ãã§ãã¢ããªã±ãŒã·ã§ã³ãšãã£ãŒããäžèŽããããšã確å®ã«ãªããŸãã ããã¯åºæ¬çã«@iorlasã説æããããšã ãšæããŸãããïŒ
æåŸã«ããã£ãŒãããŒãžã§ã³ã¯ãã¹ãŒããŒãããŒãžã§ã³ãšããŠæ©èœããŸãã
ææžåã®ç®çã§ïŒãããŠããããä»ã®çŽ æŽãããã¢ã€ãã¢ïŒããã£ãŒãå®çŸ©èªäœã®ã¿ãåç §ããå¥ã®ããã£ãŒãã®ã¿ãããŒãžã§ã³ãèªåã§å°å ¥ããããšãã§ããŸãã
@filipre
ãããããïŒ ããããçŸåšã®ã¢ãŒããã¯ãã£èšèšã®æ±ºå®ã«åºã¥ããŠãHelmãæ©èœããããšã«ãªã£ãŠããæ¹æ³ã§ãã ç§ã®èãã§ã¯ã
åé¡ã¯ããããæã å¥åŠã«æããããšã§ã-ã»ããã¢ãããšãã¢ããªãšã€ã³ãã©ãäžç·ã«çµã³ä»ãããšããçãããã¢ã€ãã¢ã«ã¯å€ãããŸãã ããã§ãããã¯æ£ããã¢ãããŒãã§ããïŒããã¯åé¡ã§ãã
@BenjaminSchiborr
ããããå€ãã®äººã«ãšã£ãŠãããã¯ããããããã§ã¯ãããŸãã
確ãã«ïŒ k8å šäœã§ãããã³ã³ããåã¯å€ãããå¯èœæ§ããããŸãã
ãã«ã ãäœæãããåé¡ãèŠã€ããããã«ãããå°ãå¥ã®èŠ³ç¹ãããããå解ããŠã¿ãŸãããã
ã ãããããã¯çŽ æŽãããããã¹ãŠãããã±ãŒãžãªãã§æããŸãã ãããã£ãŠããã®ãã£ãŒããé©çšããŠãããã¢ããªã±ãŒã·ã§ã³ã®ããŒãžã§ã³ãæäŸããå¿ èŠããããŸãã ãããŠããã¯ããã§ããã¯ãã§ãã
ããããåé¡ãçºçããŸããã©ã®ã¢ããªããŒãžã§ã³ã«ã©ã®ãã£ãŒããå¿ èŠãã誰ãèŠããããªãã®ã§ãã ã©ã®ãã£ãŒããæŽæ°ãããŠãã©ã®ã¢ããªããŒãžã§ã³ã®æ°ããæ§æå€ãæäŸããããã
çµå±ã®ãšãããå¿
èŠãªã®ã¯ãmyAppããŒãžã§ã³1.4.2ãK8sã¢ããªãšããŠã»ããã¢ãããããããšã§ããããã«ããããã¹ãŠã®ãªã¹ã¯ãäŸåé¢ä¿ãå€æŽã1ã€ã®ã¢ãŒãã£ãã¡ã¯ãïŒã¢ããªã±ãŒã·ã§ã³ã€ã³ã¹ããŒã©ãŒãã€ãŸãapps versions + hooks + setup logic + infrastructure to connect it all
ã«ãã»ã«åãããŸãã ããããMSIãDebãRPMãããã«ã¯NPMãGo modãPipãGemãªã©ãããçç±ã§ãã
ããã§Packageãç»å ŽããŸãã ãŸããããã±ãŒãžã¯ãå®çŸ©äžãCI / CDãããŒå ã§ã€ã³ã¹ããŒã«å¯èœãªãªãªãŒã¹ãšããŠäœæããå¿ èŠããããŸãã ãã®ãããã·ã¹ãã ïŒk8sã¯ã©ã¹ã¿ãŒïŒã®ã¬ãžã¹ããªãã»ããã¢ããã«éä¿¡ã§ããŸãã
ãããŠãä»ã®ãããžã§ã¯ããéãã¯ãããŸããã ããã±ãŒãžãªãã§çŽæ¥helm install
ãã£ãŒããäœæããå Žåããåãããšãè¡ããŸãã ãã ããããã±ãŒãžãäœæãã代ããã«ãå¥ã®æé ã§äœæããŸãã ã¢ããªæ§ç¯ããã»ã¹ã§æ§ç¯ããã®ã§ã¯ãªãããªãªãŒã¹ã¹ãããã§æ§ç¯ããŸãã ã€ã³ãã©ã¹ãã©ã¯ãã£ãšã¢ããªã®ããŒãžã§ã³ã¯åŒãç¶ãé£æºããŠããŸãã æé»çã«ã
é¢çœãããšã¯ïŒ
ããã§ããk8sãªãã¬ãŒã¿ãŒã¯çŸåšã®åé¡ãäºæž¬ããå¿ èŠãããããããªãã¬ãŒã¿ãŒã®ããã«æ©èœãããããã«ã ã®ããã«ç°¡åãªãªãªãŒã¹ããã»ã¹ãæäŸããæ©åšã¯1ã€ã ãã«ããå¿ èŠããããŸãã
äœããæèŠã¯ïŒ ããã§äœãæ°ãããã®ãäœæããŠããå¯èœæ§ããããŸãããããè¯ã
ããªãã説æããŠããããšã¯ãããªããå¶åŸ¡ã§ããªãã€ã³ãã©ã§ä»ã®äººã ã«ãã£ãŠäœ¿çšãããããšãæå³ãããŠããã¢ããªã±ãŒã·ã§ã³ã«ãšã£ãŠéåžžã«çã«ããªã£ãŠããŸãã ãã ãããšã³ã¿ãŒãã©ã€ãºã·ããªãªã§ã¯ãããã±ãŒãžã®äœæãå¿ãããªããŸããå ±æç°å¢ãŸãã¯Cookieã«ãã¿ãŒç°å¢ã«ãããã€ããããªããžããªèªäœã«ååšããCI / CDãã€ãã©ã€ã³å®çŸ©ã«ãããæ°åã®Cookieã«ãã¿ãŒãã€ã¯ããµãŒãã¹ãååšããå¯èœæ§ããããŸãïŒèããŠã¿ãŠãã ããïŒã azure-pipelines.yamlïŒããããã±ãŒãžããŒãžã§ã³ãã¯ããã¹ã¿ãŒãã©ã³ãã®ç¹å®ã®ããŒãžã§ã³ããçæããããã«ãã§ãã ã€ãŸãããããã±ãŒãžããã©ãã«ã§ãä¿åããå¿ èŠã¯ãããŸããããã«ãã§ã¯ãæ§æããããªã©ã§äœ¿çšãããåãããããšåãå€æ°ã䜿çšããŠåãããã±ãŒãžãçæãããŸãããã®ãããªã·ããªãªã§ã¯ããã«ã ãã£ãŒããå転ãããã®ã¯æ¬¡ã®å Žåã®ã¿ã§ãããµãŒãã¹ã€ã³ãã©ã¹ãã©ã¯ãã£ã®å€æŽãããã¯ãã£ãã«çºçããŸããã ãã«ã ããã®åçã«ããã®ã¯ã1ïŒã€ã³ãã©ã¹ãã©ã¯ãã£ã®äžéšïŒnginxãªã©ïŒããããã€ããããã«ãã§ã«ããã䜿çšããå¿ èŠãããããã§ãã2ïŒãã³ãã¬ãŒãk8syamlã§ãã€ãŒã«ãåçºæããå¿ èŠããªãããã§ãã
@wasker
ããšãã°ãdockerã«æ圱ããŠã¿ãŸãããã Dockerã€ã¡ãŒãžãããã±ãŒãžã§ãã ãã€ããªãOSã€ã¡ãŒãž=ã€ã³ãã©ã¹ãã©ã¯ãã£ãšçµã³ä»ããŸãã ãã«ããäœæãããã³ã«Dockerã€ã¡ãŒãžãäœæããçç±ã¯ããã«ã ããã±ãŒãžãäœæããçç±ãšåãã ãšæããŸãã
ãã¹ãŠãDockerã€ã¡ãŒãžã«æœè±¡åããå¿ èŠããªãå Žåã¯ãDockerãå¿ èŠãšããããã¬ãŒã³VMã§åäœã§ããŸãã
ãããã£ãŠãDockerã®äœ¿çšç¶æ³ãhelmã«æ圱ããããšãããšãhelmãã€ã³ãã©ã¹ãã©ã¯ãã£æ©åšãšããŠã®ã¿äœ¿çšããããšã¯ãdockerã®ã¿ã䜿çšããŠåæã€ã¡ãŒãžãäœæããæ°ãããã€ããªãéä¿¡ããŠk8sãã¹ãèªäœã§ãã®ãããªã€ã¡ãŒãžãæŽæ°ããããšãšåãã§ãã ããã¯æªãããšã§ãããã«ã ã䜿çšããæ¯ååããã±ãŒãžããªãã®ãšåãçš®é¡ã®æªãããšã§ãã
ãšã«ãããç§ãã¡ã¯ééã£ãæ¹åã«é²ãã ãšæããŸãã ãã«ã ã䜿çšããŠããæåã§ç»åãæŽæ°ãã人ã¯ããŸããïŒ ç§ã¯ã3ã€ã®äžè¬çãªãŠãŒã¹ã±ãŒã¹ããããšä¿¡ããŠããŸãã
helm package chart
-> helm install package
helm install chart
helm install
-> kubectl set image
@waskerã©ã¡ããããªãã®ãã®ã§ããïŒ ç§ã¯ã3çªç®ã§ã¯ãªããšä¿¡ããŠããŸãã ã€ã³ãã©ã¹ãã©ã¯ãã£æ§æãšã¢ããªã±ãŒã·ã§ã³ã®ããŒãžã§ã³ç®¡çãå®éã«åé¢ãããšããŠããäœæ¥ããã®ã¯é¢åã§ãã ã€ãŸããã€ã³ãã©ã¹ãã©ã¯ãã£ãæŽæ°ããå¿
èŠãããå Žåããã¹ãŠã®ããŒãžã§ã³ã倱ãããããšãæå³ããŸãã ãã£ãŒãã§æåã§æŽæ°ããããå±éããšã«kubectl set image
ãæŽæ°ããå¿
èŠããããŸãã
ã€ãŸãã2çªç®ã®helm install chart
ããããã±ãŒãžãªããã«ã€ããŠè©±ããŸãã ã ãããèµã¯åžžã«çµµã®äžã«ãããŸãã åé¡ã¯ãããã±ãŒãžããã«ããããŠããããšã§ãããå®è¡æã«ã¢ããªããããã€ãããšãã§ãã ãããã£ãŠãCIãã«ãã¯ããããã€ããå¿
èŠããããšãã«ãæé»çã«ããã±ãŒãžã®äœæãæ
åœããŸãã
ãããŠããããgolangã«æ圱ããå Žåããã®ãããªãã©ã¯ãã£ã¹ã¯ããœãŒã¹ã³ãŒããéä¿¡ããããããã«ãããŠãã€ããªã䜿çšããã®ã§ã¯ãªããDockerã§go run
ãšããŠå®è¡ããããã«èŠããŸãã
ãããã£ãŠãããã±ãŒãžåã®æé ãã¹ãããåçŽåããããšã§ãã ããã§ããïŒ
ãããã話ãå§ããããšãã§ããŸãã ããã§https://github.com/helm/helm/issues/3555#issuecomment-529022699ãç§ã®ææ¡ã§ãã helm run
ãè¿œå ãã go run
ãšããŠã¢ãã«åããŸãã
ã€ã³ãã©ã¹ãã©ã¯ãã£ãšã¢ããªã®ããŒãžã§ã³ç®¡çãæ¬åœã«åå²ããå¿ èŠãããå Žåãããã¯ã€ã³ãã©ã¹ãã©ã¯ãã£ãžã®æŽæ°/ã·ãŒãã«ã®ã¿helmã䜿çšããããšãæå³ããŸãã ãããè¡ãæ¹æ³ãèŠããã®ã§ãããæŽæ°æã«é çã®çš®ãè¿œå ããªãæ¹æ³ãèŠãããšãã§ããŸãã çŸåšã®ãããã€ã¡ã³ãã®ããŒãžã§ã³ãªã©ã¯ç¡èŠã§ããŸã...ããããããã¯éåžžã«ééã£ãŠãããšæããŠãããäœæããã®ã¯æéã®ç¡é§ã«ãªããŸãã
ããšãã°ãdockerã«æ圱ããŠã¿ãŸãããã Dockerã€ã¡ãŒãžãããã±ãŒãžã§ãã ãã€ããªãOSã€ã¡ãŒãž=ã€ã³ãã©ã¹ãã©ã¯ãã£ãšçµã³ä»ããŸãã ãã«ããäœæãããã³ã«Dockerã€ã¡ãŒãžãäœæããçç±ã¯ããã«ã ããã±ãŒãžãäœæããçç±ãšåãã ãšæããŸãã
åé¡ã¯ãæ°ããDockerã€ã¡ãŒãžãäœæããŠããå Žåããã®ã€ã¡ãŒãžå ã®äœããå€æŽãããŠããããã ãšæããŸãã ããã§èª¬æããã·ããªãªã§ã¯ãããã±ãŒãžåãããHelm Chartã®å 容ã¯ãã¢ããªã®ããŒãžã§ã³ã§ãã1è¡ãé€ããŠå€æŽãããŠããŸããã ããã¯æçµçµæã«åœ±é¿ããŸãããããèªäœã®ãã«ã ãã£ãŒãã®åäœã¯å€ãããŸããã åãããšãåãããã«ãç°ãªãå€ã§å®è¡ããŸããã¢ããªã®ããŒãžã§ã³ãå€æŽãããçµæãšããŠããšã³ãã£ãã£ãšããŠã®ãã«ã ãã£ãŒãã¯å°ããå€æŽãããŠããŸããã ããã®çµããã«ãªãªãŒã¹ããããã®ã ããæã£ãŠããŸãã
Dockerã€ã¡ãŒãžã®æ§æã䜿çšãããªã©ã®æ©èœã䜿çšããŠãããã§é¡äŒŒç¹ãæãããšãã§ããŸãã ç°å¢å€æ°ãDockerã€ã¡ãŒãžã«æž¡ããŸããããã¯ãå®è¡æã®å®è¡æ¹æ³ã«åœ±é¿ããã€ã¡ãŒãžãåæ§ç¯ããŠãããã®å€æ°ãå€æŽããããšã¯ãããŸããã ç»åã®å 容ã¯å€æŽãããŠããŸããããæçµçã«ã¯éåžžã«ãã䌌ãç¶æ³ã«ãªããŸããããã®å Žåã®åäœã¯æãŸãããæ£åžžã§ãã
ãããŠããããgolangã«æ圱ããå Žåããã®ãããªãã©ã¯ãã£ã¹ã¯ããœãŒã¹ã³ãŒããéä¿¡ããããããã«ãããŠãã€ããªã䜿çšããã®ã§ã¯ãªããdockerã§å®è¡ããããã«å®è¡ããããã«èŠããŸãã [...]ãããã£ãŠãããã±ãŒãžåã®æé ãã¹ãããããæ¬åœã®çç±ã¯ããšã³ãžãã¢ã®å šäœåãåçŽåããããšã§ãã ããã¯...ã§ããïŒ
ç§ã®èŠè§£ã§ã¯ãããŸããã çŸå®çã«ã¯ãããã§ã®è°è«ã¯ãã¢ããªã®ããŒãžã§ã³ãããã£ãŒãã®äžéšããšèŠãªããã©ããããŸãããã«ã ãã£ãŒãããã£ãŒãã®çµæãšããŠãããã€ãããDockerã€ã¡ãŒãžãšã¯ç°ãªããšèŠãªããã©ããã§ãã ããã«ã€ããŠã®ç§ã®èŠè§£ã¯ãç§ãäžã§è¿°ã¹ãããšã§ãã ããã¯ãã³ã³ãã€ã«ãããGoãã€ããªãDockerã€ã¡ãŒãžã§ååŸããããã€ãã®ç°ãªãç°å¢å€æ°ã§å®è¡ãããããªãã®ã§ãã
ããã¯èšã£ãŠããHelm Chartãæ°ããã¢ããªã±ãŒã·ã§ã³ããŒãžã§ã³ã§åããã±ãŒãžåããChartããŒãžã§ã³ãããçš®ã®ãã¹ãŒããŒããŒãžã§ã³ããšããŠäœ¿çšããããã«è¡ãããè°è«ã¯èª¬åŸåããããŸãïŒã€ãŸããäºææ§ã®ããã¢ããªããŒãžã§ã³ãåžžã«å±éãããšããå©ç¹ããããŸãã°ã©ã-ã¢ããªã±ãŒã·ã§ã³ã®ããŒãžã§ã³ãå€ã§ã«ã¹ã¿ãã€ãºã§ããªãå ŽåïŒã
ç§ã®è³ªåã¯-_ãªãäž¡æ¹ã®ã¢ãããŒãããµããŒãããªãã®ã§ããïŒ_ããããã®ã¢ãããŒãã«ã¯è³åŠäž¡è«ããããŸãã åºæ¬çã«ãããããµããŒãããªãããšã¯ãããã€ãã®å®å
šã«æå¹ãªã¯ãŒã¯ãããŒãããå°é£ã«ããã ãã§ãã ããšãã°ãFluxCDãšãã®HelmOperatorã䜿çšããŸãã å
±æãã«ã ãã£ãŒããããå ŽåïŒã€ãŸããå€ãããããã€ããç¹å®ã®ã¿ã€ãã®ãµãŒãã¹ããããããããåãç¹æ§ã®å€ããå
±æããŠããããïŒãæçšãªhelm list
åºåãååŸããã«ã¯ãæ°ãããã«ã ãå¿
èŠã§ããåã¢ããªã®ãã£ãŒããããã³åãªãªãŒã¹ã«ã¯ç¬èªã®ãã«ã ãã£ãŒããå¿
èŠã§ãã ããã ãã§ãã€ãã©ã€ã³ãè€éã«ãªããŸãããã£ãŒããå
±æã§ããã°ããã£ãŒããæŽæ°ããããšãã«ã®ã¿å®è¡ãããç¬èªã®ãã€ãã©ã€ã³ãæã€ããšãã§ããã¢ããªã±ãŒã·ã§ã³ãã€ãã©ã€ã³ã¯åäžã®Helmã³ãã³ããå®è¡ããå¿
èŠãããããŸããïŒFlux CDããµããŒããè¿œå ããå ŽåïŒã€ã³ã¹ããŒã«/ã¢ããã°ã¬ãŒãæã®æ°ããã¢ããªããŒãžã§ã³ãã©ã°ïŒã
ç§ã®è³ªåã¯ãäž¡æ¹ã®ã¢ãããŒãããµããŒãããªãã®ã¯ãªãã§ããïŒ
ããããŸãã«ç§ãèããŠããããšã§ãã
ç§ã®å Žåããã¹ãŒããŒããŒãžã§ã³ãã¯ãã«ã ãã£ãŒãã§ã¯ãªããå€æ°ã®ãã«ã ãã£ãŒãã䜿çšããå¥ã®ã¬ã€ã€ãŒã§ãã ç§ã«ãšã£ãŠãåäžã®ãã«ã ãã£ãŒãã¯ãä»ã®å€ãã®ãµãŒãã¹ã®äžã§å°ããªãµãŒãã¹ãã説æããŠããªããããæå³ããããŸããã äžç·ã«ãªã£ãŠåããŠãæå³ã®ãããªãªãŒã¹ã圢æããŸãã
ãããã£ãŠãç§ã®å Žåããã¹ãŒããŒããŒãžã§ã³ãã¯ãããããã¹ãŠã®ãªãªãŒã¹ããŸãšãããã®ã§ãïŒå®éã«ããŒãžã§ã³ç®¡çãããæ¹æ³ã§ãïŒã
ããã§ãããã«ã ãã£ãŒãèªäœãèšè¿°çãªãã¹ãŒããŒããŒãžã§ã³ããšããŠæã€ããšã«åããè°è«ããããŸãã
@seerukã®ãã€ã³ãã«æ»ãïŒäž¡æ¹ããµããŒãããªãã®ã¯ãªãã§ããïŒ
çŸåšã®è°è«ã§ã¯ãå€éšã®æèŠãèãããšã圹ç«ã€ãããããŸããã å°ãã³ã³ããã¹ããšããŠãç§ã¯åèš_ 11æ¥éhelm
ã䜿çšããŠããŸãã_ããã¯ãé«åºŠãªåŠç¿ã«é¢äžããããšããªããããè¿œå ããç¬èªã®èŠç¹ãäžããŠããããšæããŸãã ç§ãåéãããã®ã¯ãã¹ãŠãããã¥ã¡ã³ããšå®éšããåŸããããã®ã§ãã
ãã£ãŒãã§ã¯ãªãhelmã®ã€ã³ã¹ããŒã«ããã±ãŒãžã«é¢ãããã®çŸåšã®è°è«ãèªããŸã§ãHelmã¯äž»ã«é¢é£ããKubernetesãªãœãŒã¹ãèšè¿°ããããã®ã€ã³ã¿ãŒãã§ã€ã¹ã§ãããšä¿¡ããŠããŸããã ãã®ä¿¡å¿µã¯ãäž»ã«ãããè¿°ã¹ãŠãããã«ã ã®ããã¥ã¡ã³ãããæ¥ãŠããŸãïŒ
Helmã¯ãã£ãŒããKubernetesã«ã€ã³ã¹ããŒã«ããã€ã³ã¹ããŒã«ããšã«æ°ãããªãªãŒã¹ãäœæããŸãã ãŸããæ°ãããã£ãŒããèŠã€ããã«ã¯ãHelmãã£ãŒããªããžããªãæ€çŽ¢ã§ããŸãã
ã³ã³ããã¹ããšããŠãçŸåšã®å®å®ãããã«ã ã®ããã¥ã¡ã³ãã«ã¯æ¬¡ã®ããã«ãèšèŒãããŠããŸãã
ãã£ãŒãã¯Helmããã±ãŒãžã§ãã ããã«ã¯ãKubernetesã¯ã©ã¹ã¿ãŒå ã§ã¢ããªã±ãŒã·ã§ã³ãããŒã«ããŸãã¯ãµãŒãã¹ãå®è¡ããããã«å¿ èŠãªãã¹ãŠã®ãªãœãŒã¹å®çŸ©ãå«ãŸããŠããŸãã ããã¯ãHomebrewåŒãApt dpkgããŸãã¯YumRPMãã¡ã€ã«ã«çžåœããKubernetesã®ããã«èããŠãã ããã
ã ããä»ãããã€ãã®æ··ä¹±ããããŸãïŒ Helmã®ããã¥ã¡ã³ãã«ã¯ãããã£ãŒãã¯ãã«ã ããã±ãŒãžã§ããããšæ確ã«èšèŒãããŠããŸããããã®å Žåããªãhelm install
ã¯ããã±ãŒãžåãããŠããªããã£ãŒããªããžããªãåãå
¥ããã®ã§ããããã
ãã«ã ãšã¯äœãããããŠãããã©ã®ããã«æ©èœãããã«ã€ããŠã®ç§ã®çŸåšã®èŠæ¹ã«åœ±é¿ãäžããã®ã¯ããã®æ¯ãèãã§ãã
Helmã¯ãã¯ã©ã¹ã¿ãŒã«å ¥ã_what_ã®æ§é ãšããããæã€_whatããããã£_ã®éã®ããããŒãšããŠæ©èœããŸãã
ããŠãåé¡ã¯ãHelmã¯äœãå±éããŠããã®ãããšããããšã§ãã
helm install release-name ./local_chart
ãå®è¡ãããšãhelmããã¹ãŠã®ã°ã©ããã³ãã¬ãŒããæå®ãããå€ïŒããã©ã«ããŸãã¯ãªãŒããŒã©ã€ãã®ããããïŒã§ããŒã«ã«ã«ã¬ã³ããªã³ã°ããã¬ã³ããªã³ã°ãããããŒãžã§ã³ãKubernetesã«ããã·ã¥ããããšãæåŸ
ããŠããŸãã ãŸããããŒã«ããã¯ããå Žåã«åããŠãHelmã以åã«ãããã€ãããKubernetesãªããžã§ã¯ããä¿æããããšãæåŸ
ããŠããŸãã ïŒããã€ãã®ã¡ã¿ããŒã¿ãå«ãïŒãã¬ã³ããªã³ã°ãã³ãã¬ãŒãéãã®ãã®æŠå¿µã¯ããªãªãŒã¹ã§ãããã±ãŒãžã§ãã ãããã®ãªãœãŒã¹å®çŸ©ã¯ãã¹ãŠïŒå€æŽãããŠããªãå Žåã§ãïŒããªãªãŒã¹ãååšããïŒãŸãã¯ããŒã«ããã¯ãããïŒã«ã¯ã_ãã³ãã«ã«èšè¿°ãããŠããç¶æ
_ã§ããå¿
èŠããããŸãã
ãã®ããšãããhelmã¯ããã±ãŒãžãæ¬åœã«ãããã€ããã ãã ãšæã
_ç§ã®å人çãªæå³è«_ã«ãã£ãŠããã®è³ªåãžã®çãã¯ã€ãšã¹ã§ãã äœããå€æŽãããªãéãããŒãžã§ã³çªå·ãäžããªããšããè°è«ã«åŸãã°ãããã€ãã®åºç€ãšãªãããããã£ãå€æŽãããå Žåã«ã®ã¿ãã¢ããªã±ãŒã·ã§ã³ã®ããŒãžã§ã³çªå·ã調æŽããå¿ èŠããããŸãã ããã«ã¯ãã¬ãžã¹ããªããå¥ã®Dockerã€ã¡ãŒãžããã«ããããç°å¢å€æ°ãä»ããŠæ©èœãã©ã°ãèšå®ããããã³ãŒãã¢ãŒãã£ãã¡ã¯ãã®åäœãå€æŽããããã«äœ¿çšã§ããããŸããŸãªæ¹æ³ãå«ãŸããå¯èœæ§ããããŸãã
ãã®ãããã¬ãžã¹ããªã®ã¯ãªãŒã³ã¢ãããéå§ããéçºäžãé€ããŠ:latest
ãããããã€ããããšã¯ãã
ããã¯ãã§ã«HelmïŒ packagesã«ãã£ãŠæèŠãè¿°ã¹ãããŠã
ãã®ãã¿ãŒã³ã100ïŒ
æçœã§ãªããŠã--appVersion
ãã©ã°ãæäŸãããããšã¯è«ççã«äžè²«ããŠããããã«èŠããŸãã ãã®ãçç±ãã«çããããšã¯ããããäœãããéèŠãªã®ã§ãç§ã®è²¢ç®ããã®çãã§ç· ãããããŸãããã
ãããã€ã¡ã³ãã®ç¹æ®ãªã±ãŒã¹ãèŠãŠã¿ãŸãããã
ããäŒç€Ÿã«ã¯ã2ã€ã®ã¡ãžã£ãŒããŒãžã§ã³ã®ã¢ããªã±ãŒã·ã§ã³ããããŸãã ãã®äŒç€Ÿã®ã¯ã©ã€ã¢ã³ãã®äžéšã¯ããã®ã¢ããªã±ãŒã·ã§ã³ã®ææ°ã®ã¡ãžã£ãŒããŒãžã§ã³ãžã®ã¢ããã°ã¬ãŒãã確çŽããŠãããã2ã€ã®ãã¡å€ãããŒãžã§ã³ã䜿çšããŠããŸãã ææã®éçºå¥çŽããããããã©ã€ãéçºã¯å€ãã¡ãžã£ãŒããŒãžã§ã³ã§åŒãç¶ãè¡ãããŸã...ãããã補åã¯ãåããã§ãã ãã®ã¢ããªã±ãŒã·ã§ã³ã®äž¡æ¹ã®ããŒãžã§ã³ã«ãããã€ããã€ã³ãã©ã¹ãã©ã¯ãã£ã¯åãã§ãã ãã ããã¢ããªã®ããŒãžã§ã³ã¯ããããã®å±ééã§å€§å¹ ã«ç°ãªããŸãã
ãã®äŒç€Ÿã¯äœãããŸããïŒ
appVersion
ã ããç°ãªã2ã€ã®å¥ã
ã®ã»ãŒåäžã®ãã«ã ãã£ãŒããäœæããŸããïŒappVersion
ãããããåžžã«æŽæ°ããŸããïŒappVersion
ããã©ã°ïŒçŸåšãµããŒããããŠããªãïŒã§ãªãŒããŒã©ã€ããããšãã³ãã³ãã©ã€ã³ã§éçºè
ãšã©ãŒãçºçããå¯èœæ§ããããŸããïŒChart.yaml
ããvalues.yaml
appVersion
åã¹ã³ãŒãããŸããïŒææ¡1ã¯ãä»ã®ææ¡ããããããã«å€ãã®ãªãŒããŒããããå°å ¥ããŸããããããã®ã¢ããªã±ãŒã·ã§ã³ããŒãžã§ã³ã®ãã£ãŒããç°ãªãå Žåã¯å¥ã ã«ä¿ã€ãšããå©ç¹ããããŸãã æ確ãªãŠãŒã¹ã±ãŒã¹ãããããããããã®åé¡ã®å€ãã®å Žåã«æ¡çšãããã§ãããã
ææ¡2ã¯ãææ¡1ããããªãŒããŒããããå°ãªãã§ããããã£ãŒãã«é«ãå€åæ§ããããããŸãã helm install release-name https://remote-repo.com/chart
ãå®è¡ãããã£ãŒãã®ææ°ããŒãžã§ã³ãã¢ããªã±ãŒã·ã§ã³ã®ééã£ãããŒãžã§ã³ã§ããå Žåã¯ã©ããªããŸããïŒ ãã£ãšã ããããæåã®ã¢ãããŒãã§ã¯ãããŸããã
ææ¡3ã¯ç§ãã¡ãçŸåšè°è«ããŠãããã®ã§ãã ç§ã¯å人çã«ãã®ãªãã·ã§ã³ãå«ãã§ãããããã¯åé¡ã®ééã£ã解決çã ãšæããããhelm install release-name https://remote-repo/chart
ãå®è¡ãããšãã«çºçããã®ãšåãåé¡ããããŸããã¡ã¿ããŒã¿ã¯äžæçãªãã®ã§ãããHelmã«ãã£ãŠã®ã¿ç¶æãããŸãã
ææ¡4ãªã©ããŸã æäŸããŠãã人ãããªãããšã«ãç§ã¯å®éã«ããªãã·ã§ãã¯ãåããŠããŸãã appVersionããªãŒããŒã©ã€ãã§ããç¶æ
ã«ãïŒ helm run
ã«äŒŒããã®ãæå¹ã«ããïŒã helm package
ã«ãã£ãŠçæãããããã±ãŒãžã«å«ããããšãã§ããã¢ããªã±ãŒã·ã§ã³ããŒãžã§ã³ã®æŠå¿µãçã«è§£ãã»ãããŸãããã«ã ãããã€ã¡ã³ãã«çµåãããappVersion
ã®æŠå¿µãç¶æããªããããã£ãŒãããŒãžã§ã³ããïŒappVersionã¯ã©ããæ£ããå¿
èŠããããŸããïŒïŒã
ãããã圹ã«ç«ãŠã°å¹žãã§ãã ðãã®PRã
@jrkarnes ïŒããæå³ã§4ïŒã¯ãã§ã«ææ¡ãããŠãããå€ãã®äººãåé¿çãšããŠäœ¿çšããŠããŸãïŒhttps://github.com/helm/helm/pull/5492#issuecomment-517255692ãåç §ïŒã ãã£ãŒããã³ãã¬ãŒãã§ã¯ã次ã®ãããªãã®ã䜿çšã§ããŸãã
{{ default .Values.appVersion .Chart.AppVersion }}
ããã¯ãããªãã䜿çšã§ããããã«ãªãappVersion
ã§Charts.yaml
ã§äœããããã©ã«ããšããŠããããäžæžãValues.yaml
ïŒåŒã³åºããã€ã³ã¹ããŒã«/ã¢ããã°ã¬ãŒãæã«äžæžãããããšãã§ããŸãïŒã æ¬ ç¹ã¯ãããšãã°helm ls
ãããšã appVersion
ã衚瀺ãããªããæ£ãããªãããšã§ãã
@BenjaminSchiborrããã«ã€ããŠæããŠãããŠããããšãã ç§ãèšã£ãããã«ãç§ã¯éåžžã«éãããæéã ãhelm
ã¯ãŒã¯ã¹ããŒã¹å
ã«ããã®ã§ãã©ããªç¥èããã®æç¹ã§ç§ã«ãšã£ãŠ
ç§ã®4çªç®ã®ææ¡ã¯å°ã誀解ãããŠãããšæããŸãã {{ default .Values.appVersion .Chart.AppVersion}}
ãããªãã®ã䜿çšããã®ã§ã¯ãªãã {{ .Values.Helm.AppVersion}}
ã䜿çšãã values.yaml
ã¯appVersion
代ããã«Chart.yaml
@jrkarnes
ãããä»ç§ãèããŠããããšã§ãã ããšãã°ãã¢ããªã®ããŒãžã§ã³ããŠããŒã¯ãªã¹ããŒãã¬ãŒã¯ãšããŠæ±ãå¿
èŠãããã®ã¯ãªãã§ããã ãã£ãŒãã®å€ã§ãã
ãã®èåŸã«ããçç±ã¯ç°¡åã§ãããã¹ãŠãã€ã³ãã©ã¹ãã©ã¯ãã£ã®äžéšã§ãã ã ãããã€ã³ãã©ã«ã¯ããŒãžã§ã³ããããŸãã ãªã2ã€ã®ããŒãžã§ã³ïŒ
ããããå¿ããããŠãµã€ãã±ãŒã¹ããããžã§ã¯ã·ã§ã³ã«é ãæ©ãŸããããšã¯ã§ããŸããã ããããäžè¬çã«ã¯ããããåé¡ã§ããäžèšã§èšãã°ãããããã¹ãŠã®ã€ã³ãã©ã¹ãã©ã¯ãã£ã§ããã®ã«ããªãã¢ããªããŒãžã§ã³ãå¿ èŠãªã®ã§ããïŒ ãŸãã¯ããã£ãŒããã€ã³ãã©ãã³ãã¬ãŒãã®ã¿ã®å Žåã¯ã€ã³ãã©ã¹ãã©ã¯ãã£ããŒãžã§ã³ãšããŠãã€ã³ãã©ã«ã¢ããªããŒãžã§ã³ãå«ãŸããå Žåã¯ã¢ããªããŒãžã§ã³ãšããŠãã£ãŒãããŒãžã§ã³ã䜿çšã§ããŸããïŒ
ããå°ãèããŠã¿ãŸã
@jrkarnes
ãããä»ç§ãèããŠããããšã§ãã ããšãã°ãã¢ããªã®ããŒãžã§ã³ããŠããŒã¯ãªã¹ããŒãã¬ãŒã¯ãšããŠæ±ãå¿ èŠãããã®ã¯ãªãã§ããã ãã£ãŒãã®å€ã§ãããã®èåŸã«ããçç±ã¯ç°¡åã§ãããã¹ãŠãã€ã³ãã©ã¹ãã©ã¯ãã£ã®äžéšã§ãã ã ãããã€ã³ãã©ã«ã¯ããŒãžã§ã³ããããŸãã ãªã2ã€ã®ããŒãžã§ã³ïŒ
åºæ¬çã«ããã£ãŒãããŒãžã§ã³ãã¢ããªã±ãŒã·ã§ã³ããŒãžã§ã³ããåé¢ããŠããããšã¯çã«ããªã£ãŠããŸãã ç°¡åãªäŸã¯ããããäºå®ã§ããããšã蚌æããããã®ããããæè¯ã®æ¹æ³ã§ãã
ver 4.0.0
ããŒãžã§ã³ç®¡çããããã£ãŒãver 1.1.0
å®è¡ãããŠããã¢ããªã±ãŒã·ã§ã³ããããã€ãããŠãããšããŸãã æäœäžã«ããã®ã¢ããªã±ãŒã·ã§ã³ã®cronã¿ã¹ã¯ã®å®è¡ãéå§ããå¿
èŠãããããšã«æ°ä»ããŸãã cronJobãªããžã§ã¯ããäœæããŠã¯ã©ã¹ã¿ãŒã«é©çšããã®ã§ã¯ãªãããã®ã°ã©ããå®è¡ããä»ã®ãŠãŒã¶ãŒãcronã¿ã¹ã¯ãå¿
èŠãšããå¯èœæ§ãããããšã«æ°ä»ããŸã...ãã®ãããã°ã©ãã«è¿œå ããŸãã ã°ã©ãã¯ver 1.2.0
é²ã¿ãŸããããã°ã©ãã管çããã¢ããªã±ãŒã·ã§ã³ã«å€æŽã¯ãªãã ver 4.0.0
ã§ãã
ãã®éãåæ§ã«é©çšå¯èœã§ããããã®PRã§ã¯ãã§ã«è°è«ã®å¯Ÿè±¡ãšãªã£ãŠããŸãã
ããããå¿ããããŠãµã€ãã±ãŒã¹ããããžã§ã¯ã·ã§ã³ã«é ãæ©ãŸããããšã¯ã§ããŸããã ããããäžè¬çã«ã¯ããããåé¡ã§ããäžèšã§èšãã°ãããããã¹ãŠã®ã€ã³ãã©ã¹ãã©ã¯ãã£ã§ããã®ã«ããªãã¢ããªããŒãžã§ã³ãå¿ èŠãªã®ã§ããïŒ ãŸãã¯ããã£ãŒããã€ã³ãã©ãã³ãã¬ãŒãã®ã¿ã®å Žåã¯ã€ã³ãã©ã¹ãã©ã¯ãã£ããŒãžã§ã³ãšããŠãã€ã³ãã©ã«ã¢ããªããŒãžã§ã³ãå«ãŸããå Žåã¯ã¢ããªããŒãžã§ã³ãšããŠãã£ãŒãããŒãžã§ã³ã䜿çšã§ããŸããïŒ
ããå°ãèããŠã¿ãŸã
ãµã€ãã±ãŒã¹ããããžã§ã¯ã·ã§ã³ã«ã€ããŠèããã®ã§ã¯ãªããåºã䜿çšãããµããŒããããŠãã3ã€ã®ãšã³ãžã³ããŒãžã§ã³ãããMySqlã®ãããªãã®ãèããŠãã ããïŒ [5.6, 5.7, 8.0]
ã mysql
ã€ã³ã¹ã¿ã³ã¹ãã¯ã©ã¹ã¿ãŒã«ãããã€ããã«ã¯ãåžžã«æ¬¡ã®ããšãå¿
èŠã§ãã
MySql 5.6ã5.7ããŸãã¯8.0ããããã€ããããã®ãã£ãŒãã¯ããã¹ãŠã®ãšã³ãžã³ïŒã¢ããªã±ãŒã·ã§ã³ïŒããŒãžã§ã³ã§ãŸãã å¯äžã®æ¬åœã®éãã¯ãã¢ããªã±ãŒã·ã§ã³ã®ããŒãžã§ã³ãšDockerã€ã¡ãŒãžïŒãããããšã³ãžã³ã®ããŒãžã§ã³ã«å¿ããŠæå³çã«ã¿ã°ä»ããããŠããïŒã§ãã
ã¢ããªããŒãžã§ã³ã®ãå¿
èŠæ§ãã«ã€ããŠçåã«æãããšã«ã€ããŠãããªããäœãæå³ããŠããã®ãããããŸãã helm ls
ãŸãã¯helm inspect
å®è¡ããå Žåãããã¯éçºè
ãŸãã¯éçšã®å©äŸ¿æ§ã«åž°çãããšæããŸãã
@jrkarnesã®æåŸã®æçš¿ã«+1ã ãã£ãŒãããŒãžã§ã³ã¯ãã€ã³ãã©ã¹ãã©ã¯ãã£ããŒãžã§ã³ãã§ããããããã£ãŒãããŒãžã§ã³ãšã¢ããªããŒãžã§ã³ãå¥ã ã®æŠå¿µãšããŠä¿æããããšã«ã¯å€ãã®äŸ¡å€ããããŸãã
ä»ã®äººã䜿çšã§ããããã«ã°ã©ããå
¬éããŠããå Žåãã°ã©ãã¯ãã°ã©ãã«äŸåãããããžã§ã¯ãã®ã€ã³ãã©ã¹ãã©ã¯ãã£ã®äžéšã«ãªããŸãã ãã ããèªåã®ã¢ããªã±ãŒã·ã§ã³ãä»ã®äººã«äœ¿çšãããã€ããããªãå Žåã¯ããã£ãŒãèªäœãå€æŽããããšãã«èªåã®ãã£ãŒãããŒãžã§ã³ãæã
æ¹èšããã ãã§ããããã以å€ã®å Žåã¯ãã¢ããªã®ããŒãžã§ã³ãCIã«æºæ ããŠããå¿
èŠããããŸãã / CDåºåã ãã®ãã¬ãŒããŒã®äœ¿çšãã£ãŒãã§ã¯ãå転æ°ã¯æ¯èŒçãŸãã§ãããã¢ããªã®ããŒãžã§ã³ã¯CIãçºçãããã³ã«å転ããŸãã ç§ã®ã³ãŒããªããžããªã¯ããã®ããŒãžã§ã³ã®ã³ãŒããå®è¡ããããã«é©çšã§ããã³ãŒããšã€ã³ãã©ããŒãžã§ã³éã®é¢ä¿ãç¶æããŸããã€ãŸãã helm install last-known-good-chart-version
ãŠãããã€ã¡ã³ããããŒã«ããã¯ãã代ããã«ããã€ã³ã¿ãŒã䜿çšããŠCDãã€ãã©ã€ã³ãåå®è¡ããã ãã§ããæåŸã®æ¢ç¥ã®æ£åžžãªã³ãããIDã«ã
@iorlas helm run
ææ¡ãèªã¿ãŸããããåé¡ã¯ãããŸããã ã€ã³ã¹ããŒã«ãšå®è¡ã®äºåæ³ã¯å¿
èŠãªããšæããŸãããã¢ããªã®ããŒãžã§ã³ãå€æŽå¯èœã«ããããšã«ã€ããŠãã«ã ã¡ã³ãããå®å¿ã§ããã®ã§ããã°ãããã§åé¡ãããŸããã :)
@iorlasãã®ææ¡ã§äœããããã®ãèããæ©äŒããããŸãããïŒ
{{ default .Values.appVersion .Chart.AppVersion}}
å«ãåé¿çãã©ã®ããã«æ©èœããããç解ããŠããªããšæããŸãã ãã®ãšã©ãŒãçºçããŸãïŒ
ãšã©ãŒïŒYAMLããJSONãžã®å€æãšã©ãŒïŒyamlïŒç¡å¹ãªãããããŒïŒmap [interface {}] interface {} {"ãValues.appVersion| default \" 0.0.1 \ ""ïŒinterface {}ïŒnilïŒ} [
ãããç§ã®Chart.yamlã§ãïŒ
name: demo-helm
version: 0.0.1
appVersion: {{ .Values.appVersion | default "0.0.1" }}
home: http://example.com
description: Demo Helm
@IRobLãã®ã¹ãããããtemplates/deployment.yaml
ã«å
¥ããå¿
èŠããããŸããããã§ãããŒãžã§ã³ã䜿çšãããŸãã values.yaml
ãããªãã¡ã€ã«ã¯ãã³ãã¬ãŒããšããŠæ±ãããŸããã
@jrkarnesç§ã¯helm
ãšãã®packages
ã管çããããã®çŸåšã®ã¢ãããŒããåè©äŸ¡ããŸãã
ç§ãã¡ã説æããã¢ãããŒãã䜿çšããŸãïŒ
Helm Chart
ã¯ã¢ããªãªããžããªã®äžéšã§ãinstall
ã¯ããã±ãŒãžãèšããŸããçŸåšã®æžå¿µïŒ
helm package
ïŒãçæãããŸãgo build
/ make install
çµæã®ãã¡ã€ã«ä»¥å€ã«äœããå¿
èŠãªäž»ãªçç±ã¯äœã§ããïŒãã®ãããªåè©äŸ¡ã¯ãè¿œå ã®ç°¡çŽ åãšã¢ã€ãã¢ã«ã€ãªããå¯èœæ§ããããŸãã 衚瀺ãããŸã:)
æ¥é±ã®éææ¥ã«ã¢ããããŒããéä¿¡ããŸãã
ãããããªããç§ã®ããã«ãããææããã®ã§ããªããã®ããªãã¯ãããŸããããªãã®ãããããŸããããããšãã ããã¯ãHelm 2.xã䜿çšããŠããå€ãã®äººã«ãšã£ãŠããã«ã ããŒã«ããããã®çš®é¡ã®ãªãŒããŒãããããŒã¹ã§å¿«é©ã«ã©ããã§ãããšä»®å®ããŠãããŸãæ©èœãããšæãããªãã¯ã§ãã
APP_VERSION=0.0.7
sed -i.bak "s/^appVersion:.*\\\$/appVersion: $APP_VERSION/" helm/Chart.yaml
helm install --name helm_demo helm/
@IRobL
äžè¬ã«ããããã€ã¡ã³ããsedã§ã©ããããŠããå Žåãããã¯ãã³ãã¬ãŒããšã³ãžã³ãå¿ èŠãªããšãå®è¡ããŠããªãããšãæå³ããŸãããããããã®è°è«ã®å šäœçãªãã€ã³ãã§ãã
gitlabãåæ段éã«ããããã«ã ããµããŒãããŠããªãã£ããšããç§ãã¡ã¯æåéããæäœãã®ãããã§ã¹ããã¡ã€ã«ã®çœ®æã¿ãŒã²ããã®å€ãsedããŸããã
ãã®ãããªããšã¯æªãç¿æ £ã§ããå¯èœãªéããããããéããããšããå§ãããŸãã
2019幎10æ7æ¥ã«ã¯ã15:33ã§ãIRobL [email protected]æžããŸããïŒ
ãããããªããç§ã®ããã«ãããææããã®ã§ããªããã®ããªãã¯ãããŸããããªãã®ãããããŸããããããšãã ããã¯ãHelm 2.xã䜿çšããŠããå€ãã®äººã«ãšã£ãŠããã«ã ããŒã«ããããã®çš®é¡ã®ãªãŒããŒãããããŒã¹ã§å¿«é©ã«ã©ããã§ãããšä»®å®ããŠãããŸãæ©èœãããšæãããªãã¯ã§ãã
APP_VERSION = 0.0.7
sed -i.bak "s / ^ a ppVersionïŒã * \\ $ / appVersionïŒ$ APP_VERSION /" helm / Chart.yaml
helm install --name helm_demo helm /
â
ããªããèšåãããã®ã§ãããªãã¯ãããåãåã£ãŠããŸãã
ãã®ã¡ãŒã«ã«çŽæ¥è¿ä¿¡ããããGitHubã§è¡šç€ºããããã¹ã¬ããããã¥ãŒãããŠãã ããã
@jrkarnesã¯ãæªãç¿æ
£ãèšããšãã helm
ã³ãã³ããã¹ã¯ãªããã§ã©ããããå¿
èŠãããã®ã¯æãŸãããªããšèšã£ãŠããŸããïŒ ãããããªããç§ã¯å®å
šã«åæããŸãã --app-version
ãã©ã°ãè¿œå ããããšã«å察ããŠããããã§ã¯ãããŸããã ããã©ããããããã¯ãã«ã ãžã®éåžžã«äŸ¿å©ãªè¿œå ã«ãªããšæããŸãã æããã«ãã®PRã«åºã¥ããŠãå±éãããŠããå®éã®ãã«ããšappVersionå€æ°ã®äžè²«æ§ãç¶æãããhelmã䜿çšããŠããã®ã¯ç§ã ãã§ã¯ãããŸããã ç§ã¯ããŸããŸãããŸããŸãªãã«ãããŒã«ãã©ããããŠåçŸå¯èœãªãã«ããçæããåå©çšå¯èœãªãã«ããã€ãã©ã€ã³ã©ã€ãã©ãªãéçºããŠããŸããããã¯ã倧èŠæš¡ãªæè¡çµç¹ã§ã¯äžè¬çãªæ¹æ³ã§ãã ç§ã®ãŠãŒã¹ã±ãŒã¹ã§ã¯ããã€ãã©ã€ã³ã©ã€ãã©ãªãDockerã³ã³ããããã«ãããŠå
¬éããæçµçã«ã¢ããªã±ãŒã·ã§ã³ã®ãã«ããã€ãã©ã€ã³ãããã«ã ãä»ããŠãããã€ããŸãïŒããšãã°ã3çªç®ã®PRã®æåã®ãã«ãã®ã¢ããªããŒãžã§ã³1.0.1-pr-3.1
ãæ€èšããŠãã ããã¢ããªãããŒãžã§ã³1.0.1ã®ãã¬ãªãªãŒã¹ã«ãªãå¯èœæ§ããããŸãïŒã
ãã®åé¡ãç§ã®äŒç€Ÿã®ãã«ããã€ãã©ã€ã³ã©ã€ãã©ãªã§åé¿ãããåŸã§ããHelmã«--app-version
ã¹ã€ãããçµã¿èŸŒãŸããŠããæ¹ãééããªãå¿«é©ã§ãã å±éãåŠçããããã®ããæè»ãªæ¹æ³ã®ããã«æããŸãã ã€ãŸããå€éšã·ã¹ãã ãŸãã¯ãšã³ãžãã¢ãã誀ã£ãŠæ°å€ãå°ç¡ãã«ããããšãã§ããªããã«ããã©ãããã©ãŒã ã«ãã£ãŠèªååã§ããå Žåããã¹ãŠã®ãããã€ã®åã«Chartãã¡ã€ã«ã«ã¢ã¯ã»ã¹ããŠyamlãæŽæ°ããå¿
èŠãããã®ã¯ãªãã§ããïŒ ç§ã®èŠè§£ã§ã¯ãappVersionæ©èœã¯çµç¹ã«ãã£ãŠå®å
šã«æŸæ£ãããå¿
èŠããããŸãããŸãã¯ããããããªã sed
åé¿çããã€ãã©ã€ã³ã©ã€ãã©ãªã³ãŒãã«è¿œå ããå¿
èŠãããããããã®åé¡ã解決ããŠããä»ã®äººã
@IRobL
äžè¬ã«ããŠãŒãã£ãªãã£ã¯ãããèªäœã®æœè±¡åã¬ãã«ã§èªçµŠèªè¶³ã§ããå¿
èŠããããŸããååãªAPIãæäŸããããšã«ããã解決ããåé¡ãæœè±¡åããå¿
èŠããããŸãã ãã«ã ãäŸå€ã§ã¯ãããŸããã ãããã£ãŠãåäœãã«ã¹ã¿ãã€ãºããå¿
èŠãããå Žåã¯ãæåã«è³ªåããå¿
èŠããããŸããããã¯ãã¢ãŒããã¯ãã£ãèšèšååã«æ²¿ã£ãŠããã®ã§ããããããããšãäœãã足ããªãã®ã§ããããã
ãããããã®PRãããã»ã©ç°¡åã«è§£æ±ºãããªãã£ãçç±ã§ãã 以æ¥ãä¿®æ£ã¯æããã§ãããHelmã®èšèšãšäžèŽããŠããŸããã ãã®ãããäžæçãªè§£æ±ºçã¯ã»ãšãã©æäŸãããŠããŸããã
ãããŠãããªãã¯app-version
ãã©ã°ã«ã€ããŠæ£ããã§ãã ããªãã¯ãããæäŸããã¹ãã§ãããããŠãããããã«ã ã¯ããèªèº«ã§ãã¹ãŠãæ±ãã¹ãã§ãã
質åããŠãããã§ããïŒ è£œåã§Helmãã©ã®ããã«å©çšããŠããŸããïŒ helm install
ã䜿çšããå ŽåïŒ ã©ã®ãããæ£ç¢ºã«äœ¿çšããŸããïŒ helm package
䜿çšãæ€èšããŸãããïŒ
æšå€ã helm package
ãããäžåºŠèŠãŠã¿ãŸããã ç§ã¯ããã§æ¬åœã«å£²ãããŠããŸããã§ããã sed
ã¯éåžžã«é·ãéååšããŠãããéåžžã«å®å®ããŠããŸãã ããããã¹ãŠã®tiller
/ package
/ install
ãµãã³ãã³ãã¯æ¯èŒçæ°ãããå®å®æ§ãäœããªã£ãŠããŸãã ç§ã®äž»åŒµãæ確ã«ããããã«ãæ°ãæåããã£ã©ãŒã®å¿
èŠæ§ãåé¿ãã誰ãã®ãã©ã°ã€ã³ãèŠãã«ãããããããããã£ã©ãŒãããŸãããããšã確èªãããããšã«æ±ºããŸããã ç§ã¯ãã©ã°ã€ã³ãããã»ã©äž»æµã§ã¯ãªãã£ãã«éããªããã®ãšèŠãªããŠããŸãããããã以æ¥ãã£ãšèªåèªèº«ã蹎ã£ãŠããŸãã ãã©ã°ã€ã³ãä¿¡é ŒããŠããããä»ãããã¯ããã«è¯ãç«å Žã«ããã§ãããã Helmã®ã¡ã³ããã¯ããããä¿å®äžå¯èœãªèšèšã§ãããå°æ¥ã®ãªãªãŒã¹ã§å»æ¢ãããããšã«åæããŠããããšã確èªããŠããŸãã
ãããã®åçŽãªsedæäœãè¡ãããã«helm package
ã䜿çšããã®ã¯ç§ã®åŽã®ééãã ãšæããŸãã ãšã«ããpackage
ãŠãŒã¹ã±ãŒã¹ã¯äœã§ããïŒ çŸä»£ã®ãã¯ãããžãŒã°ã«ãŒããåãããã»ã¹ãéæããããã«ã¿ã°ä»ãã®åã掻çšããŠãããšãã helm package
æŠå¿µå
šäœãããããããã€ããªzipã«ããã±ãŒãžåããããšã«ãããWeb 2.0 /ããŒãžã§ã³ç®¡çãªãªãŒã¹ã®ãã€ã³ããèŠéããŠããããã«æããŸãããããããã¹ãªã ã§ç£æ»å¯èœãªæ¹æ³ã§ã
ç§ã®ãŠãŒã¹ã±ãŒã¹ã§ã¯ãã¢ããªéçºè ãã³ã³ããåãããã¢ããªã±ãŒã·ã§ã³ãã³ãŒãåããŠä¿å®å¯èœãªæ¹æ³ã§ãããã€ã§ããããã«ããŠããããããªãŒããŒãããïŒops /ãã£ã©ãŒã·ã¹ãã 管çè ãåé·ãªãªãŒã¹ã¢ãŒãã£ãã¡ã¯ã管çãªã©ïŒãæå°éã«æããããšãæãéèŠã§ãã ç§ã®äœ¿çšæ³ã¯ãUnixã®å²åŠã«å³å¯ã«åŸã£ãŠãããããŒã«ãæé©ãªæ¹æ³ã§äœ¿çšããããšã決å®ããå¿ èŠã«å¿ããŠä»ã®ããŒã«ïŒsedãªã©ïŒã«åãæ¿ããŸãã ãã¹ãŠãå®ç§ã«å®è¡ããããã®ããŒã«ã1ã€èŠã€ãããšã¯æããŸããããçŸåšã®ã¯ãŒã¯ãããŒã«æºè¶³ããŠããå Žåã¯ãèªåã®å²åŠã«åŸãããšãæããšã©ãŸãããªãã§ãã ããã
@IRobL
æªãç¿æ £ãèšããšããhelmã³ãã³ããã¹ã¯ãªããã§ã©ããããå¿ èŠãããã®ã¯æãŸãããªããšèšã£ãŠããŸããïŒ
ã¯ãã ããã¯æ£ç¢ºã«ã
ç§ã®ãŠãŒã¹ã±ãŒã¹ã§ã¯ããã€ãã©ã€ã³ã©ã€ãã©ãªãDockerã³ã³ããããã«ãããŠå ¬éããæçµçã«ã¢ããªã±ãŒã·ã§ã³ã®ãã«ããã€ãã©ã€ã³ããhelmãä»ããŠãããã€ããŸãã
ããã¯ãŸãã«ç§ãã¡ãè¡ã£ãŠããããšã§ããããŸãã
ãã®åé¡ãç§ã®äŒç€Ÿã®ãã«ããã€ãã©ã€ã³ã©ã€ãã©ãªã§åé¿ãããåŸã§ããHelmã«--app-versionã¹ã€ãããçµã¿èŸŒãŸããŠããæ¹ãééããªãå¿«é©ã§ãã
ãããããã«äžæ©é²ããŠã appVersion
Chart.yaml
ãã¡ã€ã«ã®ããããã£ã«ããã®ã¯ããããæ£ãããªããšèšããŸãã å€ããã®å Žã§å€æŽã§ããå Žåã¯ããäžå€ã®å€ã»ããããšèŠãªãããå€ã«å«ããã¹ãã§ã¯ãããŸããã 以åã®ã³ã¡ã³ãã§åãããšã䞻匵ãããšæããŸãã
ãããã®tiller / package / installãµãã³ãã³ãã¯ãã¹ãŠæ¯èŒçæ°ãããå®å®æ§ãäœããªã£ãŠããŸãã
FWIWã Tiller
ã¯Helm 3ã§ã¯åé¡ã«ãªããŸãããããã«ã€ããŠã¯ãæçš¿ã®åŸåã§ã»ã®ããããŸããã ãã ãããããç¹°ãè¿ããŸããããã¯ããkubernetesãã€ããªããäœæããŠTiller
åºè·ããhelm package
æ§æãããããæªãç¿æ
£ã§ããããšã瀺ããŠããããã§ãã
ãããã®åçŽãªsedæäœãè¡ãããã«helmããã±ãŒãžã䜿çšããã®ã¯ç§ã®åŽã®ééãã ãšæããŸãã ãšã«ããããã±ãŒãžã®ãŠãŒã¹ã±ãŒã¹ã¯äœã§ããïŒ
ç§ã¯ããããããã«ã€ããŠãã«ã ããŒã ãæè·ããããšãã§ããŸãã ç§ãäž»å°æš©ãæ¡ã£ãŠããã®ã¯ãã¢ããªã±ãŒã·ã§ã³éçºè
ã«Kuberneteså
ããã¢ããªã±ãŒã·ã§ã³ãæ£ããå®è¡ããæ¹æ³ãæå®ãããæ¹æ³ã§ããã ãã®ãããã¢ããªã±ãŒã·ã§ã³ãããã€ããŒã¯ç¬èªã®Helmãªããžããªãå®è¡ããŸãããã®ãªããžããªãè¿œå ããŠãå±éã®ç¹å®ã®ããŒãžã§ã³ãããŠã³ããŒãã§ããŸãã HelmããŒã ã¯ãã¢ããªã±ãŒã·ã§ã³ã³ãŒããšã€ã³ãã©ã¹ãã©ã¯ãã£ã³ãŒãã絡ã¿åã£ãŠãããšèããŠããŸãããããã¯ã察象ãšãªãæ¬çªããŒã ãCI / CDã®ããã«æ¥åžžã®ã¯ãŒã¯ãããŒã§Helmã䜿çšããããšã¯ãªãã£ãããã§ãã äŸïŒ1æ¥ã«å¹³å130åhelm upgrade
ã䜿çšããŸãã ãããæå³ãããçšéã§ã¯ãªãã£ããšæããŸãã
ããããããmysqlãkubernetesã«ã€ã³ã¹ããŒã«ãããããšèšãã®ãã¯ããã«äžè¬çã§ãããhelmã¯ãkubernetesã«ã€ããŠã»ãšãã©ç¥ããããããããã£ãŠããã ãã®äººã ã«ãšã£ãŠãïŒæ¯èŒçïŒç°¡åãªæ¹æ³ã§ããã
ãããã£ãŠã helm package
ã¯ãæçµçã«ã¯_ãã®ãªãŒãã£ãšã³ã¹_ã«ãã£ãŠæ¶è²»ãããããšãç®çãšããŠããŸããã ãã®ããŒã«ã¯ãããŒã ïŒç§ãæãã«ïŒãããŒã«ãæã«å
¥ãããšã¯ä¿¡ããŠããªãã£ããããŸãã¯ããŒã«ããã®ãŸãŸäœ¿çšããããšãæå³ããŠããªãã£ãé åã§ãééããªãå€ãã®äœ¿çšãèŠãããŠããŸãã
ç§ã®äœ¿çšæ³ã¯ãUnixã®å²åŠã«å³å¯ã«åŸã£ãŠãããããŒã«ãæé©ãªæ¹æ³ã§äœ¿çšããããšã決å®ããå¿ èŠã«å¿ããŠä»ã®ããŒã«ïŒsedãªã©ïŒã«åãæ¿ããŸãã
ç§ã¯åºæ¬çã«Helmãawk
ããã«æ±ãããã®åŸã«kubectl apply -f
ã®æãä»ããŠããŸãã èªååãããããŒã«ã§å€ãåŠçããŠäººçãšã©ãŒãåé¿ããæ¹ãã¯ããã«ã¯ãªãŒã³ã§ãã
ããªããšç§ã¯åã䟡å€èŠ³ãããããæã£ãŠããããã«èãããŸããã䌌ããããªããšãããããããŠãããããããŸããã
@IRobL
èããæ©
ç§ã«ãšã£ãŠã tiller
ã¯åãå
¥ããããŸããã é²åºãã€ã³ãã1ã€å¢ãããããã»ãã¥ãªãã£ãªã¹ã¯ãå¢ããæãéèŠãªããšãšããŠãyamlãã¡ã€ã«ãé©çšããæ¹æ³ããã1ã€äœæãããŸãããAPIã¯ç°ãªããŸãã Tillerã¯ãHelmããã±ãŒãžã®é©çšããã»ã¹ãä¿è·ããã³èª¿æŽããããã«èšèšãããŠããŸãããéåžžã«å€ãã®ãªã¹ã¯ããããè¿œå ã®ãœãããŠã§ã¢ïŒããã³ããŒãžã§ã³ç®¡çïŒïŒããããŸãã ãã®ãããHelm the3rdã¯äœ¿çšããŠããŸããã
ãããã®åçŽãªsedæäœãè¡ãããã«helmããã±ãŒãžã䜿çšããã®ã¯ç§ã®åŽã®ééãã ãšæããŸãã
ããªãã¯ç§ã®äž»åŒµãèŠéããŠãããšæããŸãã ããäžåºŠããçŽããŸãã sed
ã¯äœã®ããã«äœãããŠããŸããïŒ ããŒã¿ã®ã¹ããªãŒã ãå€æããŸãã å€æã®åé¡ãæœè±¡åããç¹å®ã®å
¥åã«å¯ŸããAPIãšçµæãæäŸããå¿
èŠããããŸãã
sed
ã³ãã³ããæ©èœããªãïŒã€ãŸããæ£èŠè¡šçŸã«èª€ããããïŒã¹ã¯ãªãããäœæããå Žåã¯ã©ããªããŸããïŒ ã ããããªãã¯çµè«ãåºããŸãããããã¯ããŸããããŸããã sed
ãåç¬ã§æ©èœããªãçç±ãç解ããããšããŸããããããšãperlã¹ã¯ãªããã§ãã€ãã1ã€è¿œå ããŸããïŒ
ãã¹ãŠã®ãœãªã¥ãŒã·ã§ã³ã«åãããšãåœãŠã¯ãŸããŸããAPIãæäŸããå ¥åãåãåããåºåãæäŸããŠã1ã€ã®åé¡ãæœè±¡åããå¿ èŠããããŸãã ãåç¥ã®ãšãããUnixã¹ã¿ã€ã«ã§ãã
Helmã«æ圱ãããšããªãªãŒã¹ãããŒãžã§ã³ç®¡çããŠK8sã«ããã·ã¥ããããã«èšèšãããŠããŸãã ãã³ãã¬ãŒãã䜿çšããŠæ§æãã«ã¹ã¿ãã€ãºã§ããŸãã ãããã£ãŠãåé¡ã芳å¯ããŠããã®ã§ãããŒãžã§ã³ãæäŸããå¿ èŠããããŸãã Helmã¯ãããŒãžã§ã³ã管çããããã®ã·ã³ãã«ãªã¡ã«ããºã ãæäŸãããã«ãã®åäœãã«ã¹ã¿ãã€ãºããç°¡åãªæ¹æ³ãæäŸããŸãã ããã§ã¯ãè¿œå ã®ãœãããŠã§ã¢ã§åé¿çãè¿œå ããã®ã§ã¯ãªãããããã©ã®ããã«æ©èœããããç解ããããšããªãã®ã¯ãªãã§ããïŒ
@jrkarnes
ã¯ããç§ãã¡ã¯äž¡æ¹ãšãåããããªé¢å¿ã念é ã«çœ®ããŠèµåãã«è¿ã¥ããŠããŸãã package
ã³ãã³ãã®ã«ãŒãããèããæ©ã«ãã£ãŠèè£
ãããééããšçµ¡ã¿åã£ãŠããããšã«æ°ã¥ããŠããŸããã§ããããããã®æŽå¯ãç§ãšå
±æããŠããã ãããããšãããããŸãã
ç§ã¯å®éã«ãã®æ©èœãè¿œå ãããªãã£ãçç±ã®æŽå²ãæ€èšãããªããã®æ©èœãè¿œå ã§ããªãã£ãã®ãã«ã€ããŠ2ã€ã®è°è«ãèŠãŸããã1ã€ã¯ããã§ã«package
å®çŸ©ãããŠãããããè¿œå ãã¹ãã§ã¯ãªããšããããšã§ããã install
/ upgrade
ã§ãå®çŸ©ããå¿
èŠããããŸãã ç§ã¯ããã«åæ
ããŠããŸããããã¯æè¡çè² åµã®åé¡ã®ããã«èãããŸãã æè¡çè² åµã®ãªãå
¬çã«äœ¿çšãããŠãããœãããŠã§ã¢ã®ãããªãã®ã¯ãããŸããã ãã1ã€ã®çç±ã¯ãChart.ymlãã¡ã€ã«ãã¡ã¿ããŒã¿ã§ãããæŽæ°ãã¹ãã§ã¯ãªããšããããšã§ããã ããã¯å¥åŠãªããšã«ç§ãé©ãããŸãã...人ã
ããã«ã ãã£ãŒããéçºãããšãã確ãã«åœŒãã¯ç©äºãå€åããã«ã€ããŠãã®ãã¡ã€ã«ãæåã§æŽæ°ããã®ã§ãããèªäœã¯äžå€ã§ã¯ãããŸããã Chart.ymlãã¡ã€ã«ã¯ãã³ã³ãã©ã¹ããå®éã«ã¯äžå€ã§ãããããã€ã¡ã³ããªããžã§ã¯ããæ§ç¯ããããããã©ã¡ãŒã¿ãŒãhelmãã€ããªã«ãã£ãŒãããæ¹æ³ãšããŠè¡šç€ºããæ¹ãç°¡åã§ãã
ãšããã§ãããªãã®ãã«ããã©ãããã©ãŒã ã¯äœã§ããïŒ ç§ãæžããŠãããã€ãã©ã€ã³ã³ãŒãã¯ãã°ããŒãã«ãã€ãã©ã€ã³ã©ã€ãã©ãªãšããŠJenkinsçšã«æžãããŠããŸãã
@IRobLéèŠãªåé¡ã¯æ¬¡ã®ãšããã§ã
ãã«ã ã¯ããã±ãŒãžã£ãŒã§ãã Helmã¯ãå±éã容æã«ããããã«èšèšãããŠããŸãã ã¢ãŒãã£ãã¡ã¯ããããã€ã³ã¹ããŒã©ãŒããäœæãããããOSïŒK8sïŒã«ãã€ã³ã¹ããŒã«ãã§ããŸãã
app-version
ã§install
ãã€ãã¯åµåãšã¯äœã®é¢ä¿ããããŸããã install
ãŸãã¯upgrade
ãããå Žåã¯ããŸã£ããå¿
èŠãããŸããã Chart.yml
åãã§ãã ããã¯ããã©ã«ãã®æ§æãã¡ã€ã«ã§ãããå®éã®ãã£ãŒãã®ããŒãžã§ã³ãå«ãŸããŠããããããŸã£ããå€æŽããªãã§ãã ããããã ãããã£ãŒãã¯ãœãããŠã§ã¢ã§ã¯ãããŸããã ããªãã¯ãããééã£ãŠäœ¿çšããŠããã ãã§ãã
ãã®èŠ³ç¹ããã package
䜿çšãæ€èšããŠã¿ãŸãããïŒ ããã¯ããªãã«ãšã£ãŠè€éãããããã«èŠããŸããïŒ
ãã®åé¡ã«ã€ããŠã¯ãã°ããã®éã«ãŒãããå€ããŠããŸãããããã®çš®ã®ãã€ã³ããæ°åçºçããã®ãèŠãŠããŸããã
ãã«ã ã¯ããã±ãŒãžã£ãŒã§ãã Helmã¯ãå±éã容æã«ããããã«èšèšãããŠããŸãã ã¢ãŒãã£ãã¡ã¯ããããã€ã³ã¹ããŒã©ãŒããäœæãããããOSïŒK8sïŒã«ãã€ã³ã¹ããŒã«ãã§ããŸãã
åºæ¬çã«ãHelmã¯ã€ã³ã¹ããŒã©ãŒãäœæããŸããã ããã€ããªãã¯äœæãããŸããã ã.debããã¡ã€ã«ãªã©ã«é¡äŒŒãããã®ã¯äœæãããŸããã Kubernetesãããã§ã¹ãã®ããã€ãã®ãã³ãã¬ãŒãã®ã¢ãŒã«ã€ãããããã€ãã®ããã©ã«ãå€ãããªã»ããå€ãšãšãã«äœæããŸãã å®éã®ãœãããŠã§ã¢ã¯ããã®ãã«ã ãã£ãŒãã«ã¯ååšããŸããã å梱ãããŠããŸããã äžå€ã§ãããšã¯éããŸããã
ã»ãšãã©ã®å ŽåãHelm Chartã¯ãChartãä»ããŠå±éããŠãããœãããŠã§ã¢ãããå€æŽãå°ãªããªããšèšã£ãŠãéèšã§ã¯ãããŸããã
ãããã --app-version
ãhelm install
ãšhelm upgrade
ã§å©çšå¯èœã«ãªãæ ¹æ¬çãªçç±ã§ãïŒå°ãªããšãIMOïŒã æåéãäœãå€ãã£ãŠããªãã®ã«ããªããã£ãŒããå床ããã±ãŒãžåããå¿
èŠãããã®ã§ããïŒ
ãã«ã ãã£ãŒãã¯ãKubernetesãããã§ã¹ãã®ããŒãžã§ã³ç®¡çããã説æã§ãããã¢ããªã±ãŒã·ã§ã³ãæ£åžžã«å®è¡ããäžé£ã®Kubernetesã³ã³ããŒãã³ãã説æããŠãããšæããŸãããããã ãã§ãã ãããã®æé ãå€æŽããå¿ èŠãããå Žåã¯ããã£ãŒããæŽæ°ããããšãã§ããã¢ããªã±ãŒã·ã§ã³ãå€æŽããããã³ã«æŽæ°ããå¿ èŠã¯ãªããç»åããŒãžã§ã³ãæŽæ°ããã ãã§æžã¿ãŸãïŒãšã«ããå€ã䜿çšããŠèšå®ããããšããããããŸãïŒã
ããšãã°ãFluxãšãHelmOperatorãã©ã®ããã«æ©èœããããèŠãŠã¿ãŸãããã ç»åã¿ã°ã®å€ãèªåçã«æŽæ°ããããã«èšå®ã§ããŸããããã«ãããã°ã©ãã¯æŽæ°ãããããããã€ãããŠããç»åã¿ã°ã®ã¿ãæŽæ°ãããŸãã
Kubernetesãããã§ã¹ãã®ããã€ãã®ãã³ãã¬ãŒãã®ã¢ãŒã«ã€ãããããã€ãã®ããã©ã«ãå€ãããªã»ããå€ãšãšãã«äœæããŸãã
ãã ããdebãã¡ã€ã«ã¯ãæ§æãã¡ã€ã«ãã³ãã³ãããããã§ã¹ããããã³/ãŸãã¯ããªã»ããå€ã®åãã»ããã§ãã MSIã€ã³ã¹ããŒã©ãŒãšåãããããè¿ããã®ã§ãããgentoemergeããã±ãŒãžã·ã¹ãã ã§ebuildããŸãã ãŸããBrewããã±ãŒãžãšåãã§ãã
ã§ã¯ãK8sã®ããã±ãŒãžãããŒãžã£ãŒã§ã¯ãªãå ŽåãHelmãšã¯äœã§ããïŒ ããªããèŠãéãã¯äœã§ããïŒ
äžå€ã§ãããšã¯éããŸããã
ãªãã ãã§ããïŒ ããã±ãŒãžã®çæåŸã«ããã±ãŒãžãå€æŽãããšãããã¯ééã£ãŠããŸãã install/upgrade
ããã»ã¹äžã«è¿œå ã®ãªãã·ã§ã³ãæäŸããå Žåã¯ããã¹ãŠã®ããã±ãŒãžã³ã°ã·ã¹ãã ãšåæ§ã«æå³ãããŠããŸãã
ãã«ã ãã£ãŒãã¯ãKubernetesãããã§ã¹ãã®ããŒãžã§ã³åããã説æãšããŠè¡šç€ºãããŸã
ãã§ã«1ã€ãããŸã-GITã ã§ã¯ããªããã«ã ãå¿ èŠãªã®ã§ããïŒ
ã»ãšãã©ã®å ŽåãHelm Chartã¯ãChartãä»ããŠå±éããŠãããœãããŠã§ã¢ãããå€§å¹ ã«å€æŽãå°ãªããšèšã£ãŠãéèšã§ã¯ãããŸããã
ããããhelmã®ã€ã³ã¹ããŒã«ãšhelmã®ã¢ããã°ã¬ãŒãã§--app-versionã䜿çšã§ããåºæ¬çãªçç±ïŒå°ãªããšãIMOïŒã§ãã æåéãäœãå€ãã£ãŠããªãã®ã«ããªããã£ãŒããå床ããã±ãŒãžåããå¿ èŠãããã®ã§ããïŒ
ãã®èšèšã§ã¯ãappVersionã¯HelmPackageãã«ãã®å±æ§ãšããŠæ±ãããã¹ãã§ã¯ãããŸããã å€ã§ã¯ãæ§æãã©ã¡ãŒã¿ãŒãšããŠæ±ãå¿ èŠããããŸãã
ããšãã°ãFluxãšãHelmOperatorãã©ã®ããã«æ©èœããããèŠãŠã¿ãŸãããã ç»åã¿ã°ã®å€ãèªåçã«æŽæ°ããããã«èšå®ã§ããŸããããã«ãããã°ã©ãã¯æŽæ°ãããããããã€ãããŠããç»åã¿ã°ã®ã¿ãæŽæ°ãããŸãã
ãã®å Žåãã¢ããªã€ã³ãã©ã¹ãã©ã¯ãã£ãããã§ã¹ããšã¢ããªããŒãžã§ã³ã®çµåãç·©ããªããŸãã 以æ¥ãç»åã¿ã°ãå€æŽããŠããæ°ãããã«ã ã®ã¢ããã°ã¬ãŒãã¯ããªã¬ãŒãããŸããïŒFluxã®äººãä»ã®æ¹æ³ã§è¡ã£ãŠããå Žåã¯ä¿®æ£ããŠãã ããïŒã ãã®å Žåãæ§æãã³ãã¬ãŒããšããŠHelmã䜿çšããŸãã ãã®å Žåã --app-version
ã¯ãŸã£ããå¿
èŠãããŸããã
ãã ããdebãã¡ã€ã«ã¯ãæ§æãã¡ã€ã«ãã³ãã³ãããããã§ã¹ããããã³/ãŸãã¯ããªã»ããå€ã®åãã»ããã§ãã MSIã€ã³ã¹ããŒã©ãŒãšåãããããè¿ããã®ã§ãããgentoemergeããã±ãŒãžã·ã¹ãã ã§ebuildããŸãã ãŸããBrewããã±ãŒãžãšåãã§ãã
ããã§ã®.deb
ããã³.msi
ããã±ãŒãžã®èª¬æã«ã¯ãã€ã³ã¹ããŒã«ãããŠããå®éã®ãã®ãšãã1ã€ã®éèŠãªã³ã³ããŒãã³ãããããŸããã .deb
ãã¡ã€ã«ã®å
容ãèŠããšããã«ãããããœãããŠã§ã¢ãã€ãŸãã€ã³ã¹ããŒã«ããã_THE_ãœãããŠã§ã¢ãèŠã€ãããŸãã äžè¬çã«èšãã°ïŒåžžã«.deb
ïŒã®å ŽåïŒããããã€ãããã¢ããªã±ãŒã·ã§ã³ã¯æ¬è³ªçã«ãªã³ã¯ãããŠããããã®ããã±ãŒãžã®äžéšã§ãïŒbrewã®å Žåã¯ããã§ã¯ãããŸããïŒã
éžé ããã±ãŒãžã¯ç°ãªããåãããã«å®éã«ã¯æ¯èŒã§ããŸããã Brewã¯ãå®éã«ã¯Helmã«éåžžã«ãã䌌ãŠããŸããããã¯ãBrewãã€ã³ã¹ããŒã«ããæ¹æ³ãšããœãŒã¹/ããã±ãŒãžãã©ãããããŠã³ããŒããããã«ã€ããŠã®æ瀺ã«ãããªãããã§ãã
ããã§çµ¶å¯Ÿã«æ確ã«ããããã«; Helm Chartã¯ã_ç¹å®ã®ã¢ããªã±ãŒã·ã§ã³ããŒãžã§ã³ã«æ¬è³ªçã«é¢é£ä»ããããŠããã_ããããã€ãããŠããã¢ãŒãã£ãã¡ã¯ãïŒã€ãŸããDockerã€ã¡ãŒãžïŒãå«ãã§ããŸããã ãããžã®åç §ã®ã¿ãå«ãŸãããã®åç §ã®èåŸã«ããå€ãå€æŽã§ããŸãïŒã€ãŸããå¿ èŠã«å¿ããŠãåãDockerã¿ã°ã«ããã·ã¥ã§ããŸãïŒã ãããã£ãŠãäœããã£ãŠããHelm Chartã¯ã¢ããªã±ãŒã·ã§ã³ã®ããã±ãŒãžåãããããŒãžã§ã³ã§ã¯ãªããç¹å®ã®ããŒãžã§ã³ã®ã¢ããªã±ãŒã·ã§ã³ã«ãå³å¯ã«ãªã³ã¯ãããŠããŸããã
äŸãšããŠãå®å®ãããã£ãŒããªããžããªã確èªããã ãã§ãã å€ãä»ããŠäœ¿çšãããŠããç»åããªãŒããŒã©ã€ãã§ããã¢ããªã±ãŒã·ã§ã³ã¯ããã€ãããŸããïŒ ïŒãããã_ïŒ
ã§ã¯ãK8sã®ããã±ãŒãžãããŒãžã£ãŒã§ã¯ãªãå ŽåãHelmãšã¯äœã§ããïŒ ããªããèŠãéãã¯äœã§ããïŒ
ããã¯ãKubernetesãããã§ã¹ãããã³ãã¬ãŒãåããããããç°¡åã«é åžããã³ã€ã³ã¹ããŒã«ããæ©èœãåããããŒã«ã§ãã ããã§éèŠãªã®ã¯ãHelmãæ±ãã®ã¯ããã ãã§ã-Kubernetesãããã§ã¹ãã
ããã¯ãã¹ãŠç§ã®èŠç¹ã«æ»ããŸãããããã®ãããã§ã¹ããå€æŽãããå ŽåããŸãã¯äœããã®çç±ã§ãããã®ãããã§ã¹ãã®ãã³ãã¬ãŒããå€æŽããå¿ èŠãããå Žåã¯ããã«ã ãã£ãŒããå®éã«å€æŽããå¿ èŠããããŸãã
ç§ãç®ã«ããäž»ãªåé¡ã¯ã2ã€ã®ãŠãŒã¹ã±ãŒã¹ãããããšã§ãã
ãµãŒãããŒãã£ã®ã¢ããªã±ãŒã·ã§ã³ã®å ŽåãHelmã³ã³ã·ã¥ãŒããŒãšããŠãHelmChartãæ°ããã¢ããªã±ãŒã·ã§ã³ããŒãžã§ã³ããšã«ãªãªãŒã¹ãããããšãæãŸããã§ãã ããã§ã®éèŠãªéãã®1ã€ã¯ããªãªãŒã¹ã®é »åºŠã§ãã MySQLãªã©ã®ãµãŒãããŒãã£ã®HelmChartã¯ã1æ¥ã«æ°åå€æŽãããªãå¯èœæ§ããããŸãã ãã®å Žåãå€ãããŒãžã§ã³ã®ã°ã©ããæ°ããããŒãžã§ã³ã®ãœãããŠã§ã¢ã§èª€ã£ãŠäœ¿çšããããšãæãŸãããããŸãããèªåã§äœæããŠããªããœãããŠã§ã¢ãã°ã©ãã䜿çšãããšãééããç¯ãããããªããŸãã
ãã¡ãŒã¹ãããŒãã£ã¢ããªã±ãŒã·ã§ã³ã®å Žåãã¢ããªã±ãŒã·ã§ã³ã®ã¯ã©ã¹ãå±éããæšæºçãªæ¹æ³ãããå ŽåããããŸãã ããšãã°ãIcelollyã§ã¯ãGoãµãŒãã¹ããã¹ãŠã»ãŒåãæ¹æ³ã§äœæããã³ãããã€ããŠããŸãã ãã®ããã«ãKubernetesã«ãããã€ãããŠãããã¹ãŠã®GoãµãŒãã¹ã«å¯ŸããŠãçŸåš1ã€ã®ãã£ãŒããå®éã«äœ¿çšã§ããŸãïŒçŸåšã helm package
åé¿çã䜿çšããŠããŸãïŒã ç¬èªã®ã¢ããªã±ãŒã·ã§ã³ããããã€ããããã®ã¢ãããŒããå€æŽãããå Žåã¯ãã°ã©ããæŽæ°ããŸãã ãã£ãŒãã¯SemVerã§ããŒãžã§ã³ç®¡çãããŠãããããæŽæ°ãããªãã¢ããªã±ãŒã·ã§ã³ã¯ãæŽæ°ãããŸã§åœ±é¿ãåããŸããã
ãã®ã¡ã¢ã ãã§ãã go-service
ãã£ãŒãã¯ãçŽ1ãæåã«æåŸã«æŽæ°ãããŸããã ãã®éãããããæ°åããæ°çŸã®å±éããããŸãããããã®ãã¹ãŠããã£ãŒããå€æŽããããšã¯ãããŸããã§ããã
ããã±ãŒã¹ã§ã¯ãåçŽããå¿ èŠãªã ãã§ãã ãã以å€ã®å Žåã¯ãå¶åŸ¡ãšç®¡çã®ãããããå¿ èŠã§ãã
ãã®å Žåãã¢ããªã€ã³ãã©ã¹ãã©ã¯ãã£ãããã§ã¹ããšã¢ããªããŒãžã§ã³ã®çµåãç·©ããªããŸãã 以æ¥ãç»åã¿ã°ãå€æŽããŠããæ°ãããã«ã ã®ã¢ããã°ã¬ãŒãã¯ããªã¬ãŒãããŸããïŒFluxã®äººãä»ã®æ¹æ³ã§è¡ã£ãŠããå Žåã¯ä¿®æ£ããŠãã ããïŒã ãã®å Žåãæ§æãã³ãã¬ãŒããšããŠHelmã䜿çšããŸãã ãã®å Žåã-app-versionã¯ãŸã£ããå¿ èŠãããŸããã
Fluxã¯ããã£ãŒãã®ã¢ããã°ã¬ãŒãã«äœ¿çšããå€ãå®éã«å€æŽããŠãããæ°ããã€ã¡ãŒãžå€ã§ã¢ããã°ã¬ãŒããå®è¡ããŸãã ã€ã³ãã©ã¹ãã©ã¯ãã£ãããã§ã¹ããšã¢ããªããŒãžã§ã³ã®çµåã倱ãããšã«ã€ããŠã®ããªãã®ãã€ã³ãã¯ãŸã ç«ã£ãŠããŸãã ç§ã䞻匵ããŠãããã€ã³ãã¯ãããã€ãã®ãŠãŒã¹ã±ãŒã¹ã§ã¯ãããäºå®ã§ããããšãå®éã«æãŸãããšããããšã§ãã 確ãã«ããã®ãŠãŒã¹ã±ãŒã¹ã§ã¯ã --app-version
ã¯å¿
èŠãããŸãããçŸåšååšããªãããã䜿çšãããŸããã ãããããªããå€åãã©ãã¯ã¹ã¯ããã䜿ãããšãã§ããã§ãããã ãã®å Žåãããã¯å®éã«åœ¹ç«ã€ã§ãããã
helm list
ã¯äŸ¿å©ãªã³ãã³ãã§ãã ãããã€ãããŠããã¢ããªã±ãŒã·ã§ã³ã®ããŒãžã§ã³ã確èªã§ããããšã¯ã確ãã«æçšã§ãã helm package
ã¢ãããŒãã§Helmãä»ããŠçŸåšã€ã³ã¹ããŒã«ãããŠããã¢ããªã±ãŒã·ã§ã³ã®å Žåã helm list
åºåã次ã®ããã«ãªãããã«ã¢ããªã±ãŒã·ã§ã³ããŒãžã§ã³ã®ã¿ãèšå®ããŸãïŒ helm package
--app-version
ãä»ããŠïŒã䜿ããã ãã®ããã helm install|upgrade
ã«èšå®ã§ããã°ããã£ãšç°¡åã«ãªããŸãã ããŒãžã§ã³ãå€æŽããããã ãã«ããã£ãŒãããã§ããããŠåããã±ãŒãžåããå¿
èŠã¯ãããŸããã
å®éã helm list
ãšããŒã«ããã¯ã®åŠçãããã¡ãŒã¹ãããŒãã£ãœãããŠã§ã¢ã«Helmã䜿çšããŠããå¯äžã®çç±ã§ããå¯èœæ§ããããŸãã
ããã§ã®.debããã³.msiããã±ãŒãžã®èª¬æã«ã¯ãã€ã³ã¹ããŒã«ãããŠããå®éã®ãã®ãšãã1ã€ã®éèŠãªã³ã³ããŒãã³ãããããŸããã
ãã€ã³ã¹ããŒã«ãã¯ãã¿ãŒã²ãããã©ãããã©ãŒã ã«å¿ èŠãªæ©èœïŒãã©ã«ããæ§æããã€ããªãããŒã¿ããŒã¹ã®ãã§ãããããŒã¿ã®æŽæ°/移è¡ïŒãèšå®ããããã»ã¹ã§ãã
debã¯ãã®ãã¹ãŠãåŠçããŸãã Helmããã±ãŒãžãããã§ãã Helmããã±ãŒãžããå®éã«ã€ã³ã¹ããŒã«ãããŠããªãããšã¯ã©ãããæå³ã§ããïŒ
.debãã¡ã€ã«ã®å 容ãèŠããšããã«ãããããœãããŠã§ã¢ãã€ãŸãã€ã³ã¹ããŒã«ããããœãããŠã§ã¢ãèŠã€ãããŸãã
誀ãã æã ããªãã¯ãœãããŠã§ã¢èªäœãèŠã€ããã§ãããã æã ããªãã¯ããã€ãã®ãœãããŠã§ã¢ã®æçãèŠã€ããã§ãããã ãã®ãããªãœãããŠã§ã¢ããã§ããããããã®äžé£ã®ã¹ã¯ãªããããèŠã€ãããªãå ŽåããããŸãã ãããã£ãŠãããã§ã®éèŠãªãã€ã³ãã¯éèŠã§ã¯ãããŸãããLinuxãšK8ã¯ç¹å®ã®ã¢ããªã±ãŒã·ã§ã³ããã¹ããããã©ãããã©ãŒã ã§ããã1ã€ã®ãŠãããŒãµã«ã¢ããªã±ãŒã·ã§ã³åœ¢åŒãåãå ¥ããããã§ãã ãããŠãã€ã¡ãŒãžåãæ§æãã©ã¡ãŒã¿ãŒ-ã¯ããã±ãŒãžã®äžéšã§ãã
Brewã¯ãå®éã«ã¯Helmã«éåžžã«ãã䌌ãŠããŸããããã¯ãBrewãã€ã³ã¹ããŒã«ããæ¹æ³ãšããœãŒã¹/ããã±ãŒãžãã©ãããããŠã³ããŒããããã«ã€ããŠã®æ瀺ã«ãããªãããã§ãã
ãã®éãã ããªã¥ãŒã¯ããã±ãŒãžãããŒãžã£ãŒã§ã¯ãªãããšãç§ã«çŽåŸãããããšããŠããŸããïŒ
ããã§çµ¶å¯Ÿã«æ確ã«ããããã«; ãã«ã ãã£ãŒãã¯ãæ¬è³ªçã«ç¹å®ã®ã¢ããªã±ãŒã·ã§ã³ããŒãžã§ã³ã«é¢é£ä»ããããŠããŸãã...
å€ãä»ããŠäœ¿çšãããŠããç»åããªãŒããŒã©ã€ãã§ããã¢ããªã±ãŒã·ã§ã³ã¯ããã€ãããŸããïŒ ïŒããããïŒ
ããªãã¯ã絶察ã«æ£ããã Helmã¯ãk8sãã³ãã¬ãŒãçšã®äŸ¿å©ãªãã³ãã¬ãŒããšã³ãžã³ã«ãããŸããã ç§ã¯ãã®ãããªãœãããŠã§ã¢ã®ååšã«åé¡ã¯ãããŸãããããã¯å°ã圹ã«ç«ã¡ãŸãããçŸä»£ã®é ä¿¡æ £è¡ãå€ããããšã¯ãããŸããã
åé¡ã¯ãHelmã¯ãã³ãã¬ãŒããšã³ãžã³ä»¥äžã®ãã®ã§ãããšããããšã§ãã ããã¯ããã±ãŒãžã³ã°ãããŒãžã£ãŒã§ããããã¹ãŠã®é·æãšçæããããŸãã ãŸããããã±ãŒãžãããŒãžã£ãŒãååšãããšã³ã·ã¹ãã ã§ã¯ãä»ã®ããã±ãŒãžãããŒãžã£ãŒãäœãã管çããããšã¯æªãç¿æ £ã§ãã ããã«æªã-ããã±ãŒãžãããŒãžã£ãŒãªãã§åäœããŸãã
ãããã®ããã±ãŒãžã®ããã±ãŒãžåŒæ°ãšããŠã¢ããªããŒãžã§ã³ãäœæããçç±ãããããŸãã ãããŠãç§ã¯ããªããšããªããã¡å šå¡ãããã±ãŒãžãäœãå¿ èŠããªãçç±ãç解ããŠããŸãã åé¡ã¯ããããæ代é ãã§ãè€éã§ãã¢ãããŒãã管çããã®ãé£ãããšããããšã§ãã ããããªããšã«ãã³ã¹ãã¯å°ããã§ããããããçŽ æŽããããã®ã«ããŸãããã
ç§ã䞻匵ããŠãããã€ã³ãã¯ãããã€ãã®ãŠãŒã¹ã±ãŒã¹ã§ã¯ãããäºå®ã§ããããšãå®éã«æãŸãããšããããšã§ãã
ããããããäžå¿ç¹ã§ãïŒããã¯ã©ããªè£œåã«ãšã£ãŠãæãŸããã§ããïŒ
ãã«ã ãã£ãŒãã¯ãã£ãã«å€æŽãããªããšããããªãã®äž»åŒµã¯ããªãªãŒã¹ããšã«ãŸãšããå¿ èŠãããã®ã¯ãªãã§ããã ç§ã¯ããªãã«åæããŸããããã¯åé·ã«æããŸãã ãã ãããšã«ãããå€ããœãŒã¹ãã¡ã€ã«ãå€ããµã€ãã«ãŒïŒHelmãè€æ°ã®ã¢ããªã§æ§æãããŠããå ŽåïŒãå€ãæ§æãå€ãDockerfileãããã±ãŒãžåããŸãã
ãããã£ãŠãåé¡ã¯ããã£ãŒãå šäœãã¢ãŒãã£ãã¡ã¯ããšããŠããã±ãŒãžåããå Žåããã«ãããšã«ãã©ã®ãããªã¡ãªãããããããšããããšã§ãã Dockerfileã®å Žåãããã¯æããã§ãïŒãã ããã³ã³ãããŒåãåžå Žã«ç»å Žãããšãã¯æããã§ã¯ãããŸããã§ããïŒã ãœãŒã¹ãã¡ã€ã«ã®å Žåãã
æã¯ãå¯èœãªéãæ確ãªé ä¿¡ã¡ã«ããºã ããããŸãããå€æŽããããã¡ã€ã«ã®ã¿ãFTPçµç±ã§ã¢ããããŒãããŠããŸããã ä»ãç§ãã¡ã¯ããããã®ãã®ãæã£ãŠããŸãã äœãè¯ãã®ãããªããããè¯ãã®ãã誰ãããã䜿ãã¹ããã決ããå¿ èŠããããŸãã Helmãäž¡æ¹ã®ã¢ãããŒããåæã«åŠçããããšã«æºè¶³ã§ãããã©ããã¯ããããŸãã-è€éãããŸãã
ãµãŒãããŒãã£ã¢ããªã±ãŒã·ã§ã³ã®å±éã
Helmãã£ãŒãã®ã¿ã䜿çšããŠPSQL / MySQLããŒãžã§ã³ãã€ã³ã¹ããŒã«ã§ããã°ããšãŠãããããã§ãã ã¬ã¬ã·ãŒãããžã§ã¯ããç¶æããåå¿è ã«ã€ã³ãã©ã¹ãã©ã¯ãã£ãå°å ¥ããæ¹ãã¯ããã«ç°¡åã§ãã ãã£ãŒãã®æŽæ°ã«ã€ããŠéç¥ãåããã®ã¯ããã«ç°¡åã§ãã ãã€ããªã®ãªãªãŒã¹ããšã«éåžžã«å€ãã®tar.gzãã¡ã€ã«ãããã®ã«ãHelmããã±ãŒãžçšã«åãtar.gzãã¡ã€ã«ã®ã»ããã䜿çšã§ããªãã®ã¯ãªãã§ããïŒ
@iorlasç§ã¯ãããšæåŠãããPRãèªã¿
ãããããã«ã ã«ããã±ãŒãžã³ãã³ããããããšããç¥ããªãã£ãã®ã§ãç§ã¯äžäººã§ã¯ãªããšæããŸãã ããã¯ããããããœãŒã¹ãã£ã¬ã¯ããªãããã£ãŒããã€ã³ã¹ããŒã«ããã®ããšãŠãç°¡åã§ããããã§ãããããã¥ã¡ã³ãã¯å®éã«ã¯æŠå¿µã販売ããŠãããã詳现ã«èª¬æããŠããŸããã
packageã³ãã³ãã¯æããã«ææžåãããŠããŸãããã¯ã€ãã¯ã¹ã¿ãŒãã¬ã€ãã«ã¯ããã±ãŒãžã«é¢ããéåžžã«äžè¬çãªèšåãããã€ããããŸããå®éãããã±ãŒãžãšããèšèã¯ã¯ã€ãã¯ã¹ã¿ãŒãã«å€ã衚瀺ãããŸãããäž»ã«HelmãšããŸããŸãªOSããã±ãŒãžã®ã€ã³ã¹ããŒã«æ¹æ³ã«ã€ããŠèª¬æããŠããŸãã ã ããã±ãŒãžã³ã°ããã¹ããã©ã¯ãã£ã¹ã§èšåãããŠããªãã®ã§ãããã±ãŒãžã³ã°ãšã¯äœãããªãããã圹ç«ã€ã®ããææ¡ããããšãããã«å«ããå¿ èŠããããšæããŸãã ãŸããæ§é ãå°ãç°ãªãv3ããã¥ã¡ã³ãã確èªããŸãããããŠãŒã¶ãŒããã£ãŒããããã±ãŒãžåããããšãææ¡ããããšã«ã€ããŠãã¹ãªã ãªããã§ãã
éåžžãç§ã¯PRãæåºããããšæã£ãŠãããäœãã«ã€ããŠäžå¹³ãèšã£ãŠããããã«èãããã ãã§ãªãã3.0ã®ããã¥ã¡ã³ãã®å€æŽã§äœãèµ·ãã£ãŠããã®ãããããŸããã
@jonstellyããã¥ã¡ã³ãã«ã¯ééããªãã®ã£ããããããŸãã æåã¯--app-versionããããšæã£ãŠããã®ã§ãããçç±ããªãã®ã§èŠéããŸããã§ããã
ããã¥ã¡ã³ãã«ã¯ãããã€ãã®èª¬æãšäžè¬çãªåé¡ã®çŽ¹ä»ãå¿ èŠã§ãã 次ã«ããã«ã éçºãµã€ã¯ã«ã®çŽ¹ä»ã ããããç§ã¯ããŒã ã第3ããŒãžã§ã³ã§å¿ãããšä¿¡ããŠããŸãã ãããŠãç§ãä»å¿ããããŸã:(
ãã€ã³ã¹ããŒã«ãã¯ãã¿ãŒã²ãããã©ãããã©ãŒã ã«å¿ èŠãªæ©èœïŒãã©ã«ããæ§æããã€ããªãããŒã¿ããŒã¹ã®ãã§ãããããŒã¿ã®æŽæ°/移è¡ïŒãèšå®ããããã»ã¹ã§ãã
debã¯ãã®ãã¹ãŠãåŠçããŸãã Helmããã±ãŒãžãããã§ãã Helmããã±ãŒãžããå®éã«ã€ã³ã¹ããŒã«ãããŠããªãããšã¯ã©ãããæå³ã§ããïŒ
Helm Chartèªäœãã€ã³ã¹ããŒã«ãããŠããªããšããæå³ã§ã¯ãããŸãããã€ãŸããHelm Chartã«ã¯ããããã€ããŠããå®éã®ã¢ããªã±ãŒã·ã§ã³ãå«ãŸããŠããŸããã Dockerã€ã¡ãŒãžã¯Helmãã£ãŒãã«ããã±ãŒãžåãããŠããŸããã ããã¯ãKubernetesã«ãã£ãŠå€éšãœãŒã¹ããååŸãããŸãã
誀ãã æã ããªãã¯ãœãããŠã§ã¢èªäœãèŠã€ããã§ãããã æã ããªãã¯ããã€ãã®ãœãããŠã§ã¢ã®æçãèŠã€ããã§ãããã ãã®ãããªãœãããŠã§ã¢ããã§ããããããã®äžé£ã®ã¹ã¯ãªããããèŠã€ãããªãå ŽåããããŸãã ãããã£ãŠãããã§ã®éèŠãªãã€ã³ãã¯éèŠã§ã¯ãããŸãããLinuxãšK8ã¯ç¹å®ã®ã¢ããªã±ãŒã·ã§ã³ããã¹ããããã©ãããã©ãŒã ã§ããã1ã€ã®ãŠãããŒãµã«ã¢ããªã±ãŒã·ã§ã³åœ¢åŒãåãå ¥ããããã§ãã ãããŠãã€ã¡ãŒãžåãæ§æãã©ã¡ãŒã¿ãŒ-ã¯ããã±ãŒãžã®äžéšã§ãã
ç§ã®ç¥ãéããå®éã«ã¯ããªãã¯ããã§ééã£ãŠããŸãã .deb
ãã¡ã€ã«ã¯ARã¢ãŒã«ã€ãã§ãã ããªãã¯ãããæœåºããŠå
容ãèŠãããšãã§ããŸãããããŠæçµçã«ããã¯ããã€ãã®ã¡ã¿ããŒã¿ãšããã€ãã®ãã¡ã€ã«ã§ãã .deb
ãã¡ã€ã«ã«ã¯çè«çã«ã¯ããããå«ãŸããŠããå¯èœæ§ããããŸãããå«ãŸããŠããªãããšããããããŸãã .deb
ãã¡ã€ã«ã«ãœãããŠã§ã¢ããã§ããããããã®ã¹ã¯ãªãããå«ãŸããŠããå Žåãããã¯ãœãããŠã§ã¢èªäœã§ã¯ãªãã .deb
ãã¡ã€ã«ã«ãã£ãŠã€ã³ã¹ããŒã«ãããŠããã¹ã¯ãªããã§ããããšãæå³ããŸãã ããã¯ãã€ã³ã¹ããŒã©ãŒãã€ã³ã¹ããŒã«ãããããªãã®ã§ãã
.deb
ã«ããã±ãŒãžåãããLinuxãœãããŠã§ã¢ã®äŸãããå Žåã .deb
ã¯ã .deb
ãã¡ã€ã«ãã€ã³ã¹ããŒã«ããããã»ã¹ã®äžéšãšããŠã€ã³ã¹ããŒã«ãããœãããŠã§ã¢ãããŠã³ããŒãããŸãã ããããªãç§ã¯æ¬åœã«ãããèŠãããšæã£ãŠããŸã-ããã¯ç§ãLinuxãé·å¹Žäœ¿çšããŠããäžã§æåéããããŸã§åºäŒã£ãããšããªããã®ã ããã§ãã
ãã®éãã ããªã¥ãŒã¯ããã±ãŒãžãããŒãžã£ãŒã§ã¯ãªãããšãç§ã«çŽåŸãããããšããŠããŸããïŒ
ããããç§ãèšã£ãŠããã®ã¯ãHelmã®ããã«ãBrewãä»ããŠãœãããŠã§ã¢ãã€ã³ã¹ããŒã«ããããã«æäŸãããã¹ã¯ãªããã¯ãŸãã«ãã®ã¹ã¯ãªããã§ãã ã¢ããªã±ãŒã·ã§ã³ã¯åå¥ã«æ§ç¯ãããã±ãŒãžåãé
åžããããããã®ã¹ã¯ãªããã«ãã£ãŠåã蟌ãŸããŸãã ç§ãèšã£ãŠããããã«ãBrewãããã±ãŒãžãããŒãžã£ãŒãå°ãªãããããšã¯ãããŸãããHelmãKubernetesããã±ãŒãžãããŒãžã£ãŒãå°ãªãããããšã¯ãããŸããã ããã¯ãã®åé¡ã®ãã€ã³ãã§ã¯ãããŸããããHelmãããã±ãŒãžãããŒãžã£ãŒã§ãããã©ããã«ã€ããŠã¯è°è«ããŠããŸããã --app-version
ãã©ã°ãhelm install|upgrade
è¿œå ããå¿
èŠããããã©ãããå€æããããšããŠããŸããäžè¬çãªãŠãŒã¹ã±ãŒã¹ã容æã«ããããã®
ãããã®ããã±ãŒãžã®ããã±ãŒãžåŒæ°ãšããŠã¢ããªããŒãžã§ã³ãäœæããçç±ãããããŸãã ãããŠãç§ã¯ããªããšããªããã¡å šå¡ãããã±ãŒãžãäœãå¿ èŠããªãçç±ãç解ããŠããŸãã åé¡ã¯ããããæ代é ãã§ãè€éã§ãã¢ãããŒãã管çããã®ãé£ãããšããããšã§ãã ããããªããšã«ãã³ã¹ãã¯å°ããã§ããããããçŽ æŽããããã®ã«ããŸãããã
ç³ãèš³ãããŸãããããããäœãæå³ããã®ãããããŸããã æ代é ã/è€é/管çãé£ãããã®ã¯äœã§ããïŒ
ãããã£ãŠãåé¡ã¯ããã£ãŒãå šäœãã¢ãŒãã£ãã¡ã¯ããšããŠããã±ãŒãžåããå Žåããã«ãããšã«ãã©ã®ãããªã¡ãªãããããããšããããšã§ãã Dockerfileã®å Žåãããã¯æããã§ãïŒãã ããã³ã³ãããŒåãåžå Žã«ç»å Žãããšãã¯æããã§ã¯ãããŸããã§ããïŒã ãœãŒã¹ãã¡ã€ã«ã®å Žåãã
ç¹°ãè¿ãã«ãªããŸãããéãã¯åºæ¬çã«ãããªããèšåãããã®ã¯ãã¹ãŠæ¬è³ªçã«é¢é£ããŠãããšããããšã§ãã ã¢ããªãå®è¡ããã«ã¯ãå€æŽããããã®ã ãã§ãªãããã¹ãŠã®ãœãŒã¹ã³ãŒããå¿ èŠã§ãã Dockerfileãããã±ãŒãžåããŠããªãã®ã§ããã®ãã€ã³ããäœã§ãããã¯ããããŸããããæ°ããããŒãžã§ã³ã®ã€ã¡ãŒãžããã«ãããããã«ãå€æŽããã«åãDockerfileã䜿çšããããšããããããŸãïŒã€ãŸããæ¯åæåã§äœããå€æŽããå¿ èŠãããå Žåã¯ãèªååã«ç ©ããããã®ã¯ãªãã§ããïŒæéã§ãããïŒïŒ ãã®ãããªãã®ãã¹ãŠã䜿çšããŠãå¿ èŠãªãã®ãã¹ãŠãã«ãã»ã«åãããã®ãäœæãããããåé¢ããŠå±éã§ããããã«ããŸãã ãããã£ãŠãæ°ããããŒããèµ·åããŠãæ¢åã®ããŒãã«ãããã€ããã®ãšåãæ¹æ³ã§ãã®ããŒãã«ãããã€ãããªã©ã®ããšãã§ããŸãã
FTPçµç±ã®å€ãã¢ããããŒãã䜿çšããããšã«ã€ããŠã¯ããã§ã«ãåç¥ã®ãšãããå€ãã®ç¹å žããããŸãã
ãšã«ãããããã¯ãã¹ãŠbyã«ãããã®ã§ãã ãã§ã«è¿°ã¹ãããã«ãæçµçã«ã¯ãç§ã®æèŠã§ã¯ãããã¯ãã¹ãŠã§ãã Helmã®ã¡ã³ããã¯ããã®ä»ã®ãŠãŒã¹ã±ãŒã¹ãæå¹ã«ãããã®ã§ããããããããšã人ã ããã®ããã«äœ¿çšããã®ãããå°é£ã«ãããã®ã§ããããã çµå±ã®ãšãããã©ã¡ãã«ããŠã倧ããªéãã§ã¯ãããŸããã ç§ã«ãšã£ãŠã¯ãã¢ããªã±ãŒã·ã§ã³ã®ããŒãžã§ã³ãèšå®ããããã ãã«ãã«ãããšã«å€æŽãããããšã¯ãã£ãã«ãªãå éšãã£ãŒããããã±ãŒãžåããå¿ èŠããªãããªã¹ãã«çŸåšã®ããŒãžã§ã³ã衚瀺ããããã ãã«äœ¿çšããããšäŸ¿å©ã§ãã ãã¡ãŒã¹ãããŒãã£ã®ã¢ããªã«ã€ããŠã¯ãæ£çŽã«èšããšãHelmããšã«ããæ£ããã¢ãããŒãã§ãããã©ããçåã«æã£ãŠããŸãã
Dockerã€ã¡ãŒãžã¯Helmãã£ãŒãã«ããã±ãŒãžåãããŠããŸãã
å®ã¯ãããã颚ã«ãªãããã§ãã ããããä»ã¯ããã§ã¯ãããŸããã ç§ã®ããžã§ã³ã¯ãK8sã¯ãããã±ãŒãžãã€ã³ã¹ããŒã«ããããã®APIãšããŠHelmïŒHelmã¯ååšããªãïŒãçµã¿èŸŒããã©ãããã©ãŒã ã«ãªã/ãã¹ãã§ãããšããããšã§ããã¢ãŒã«ã€ãã«ã³ã³ãã³ããããã¯ããŠã€ã³ã¹ããŒã«ããå¿ èŠããããŸãã debãã¡ã€ã«ã®åçŽãã«æ»ããŸããã第äžçŽåžæ°ãšããŠé©åãªåé¢ãšk8sãªãœãŒã¹ã䜿çšããŸãã
.debãã¡ã€ã«ã¯ARã¢ãŒã«ã€ãã§ã
æœåºããŠäžèº«ãèŠãããšãã§ããŸã
ãããŠæçµçã«ã¯ããã¯ããã€ãã®ã¡ã¿ããŒã¿ã§ã
ãšããã€ãã®ãã¡ã€ã«
ã®ããã«....ãã«ã ããã±ãŒãžïŒ
.debãããã.debãã¡ã€ã«ãã€ã³ã¹ããŒã«ããããã»ã¹ã®äžéšãšããŠã€ã³ã¹ããŒã«ãããœãããŠã§ã¢ãããŠã³ããŒããã.debãããå Žå..ã
ããã¯ãã€ã³ã¹ããŒã©ãŒãã€ã³ã¹ããŒã«ãããããªãã®ã§ãã ..ã
ã¯ããããã¯å éšã«ã€ã³ã¹ããŒã©ãŒãæã£ãŠããã€ã³ã¹ããŒã©ãŒã®ããã«ãªããŸãã ããããã§ãããïŒ ã¢ããªã€ã³ã¹ã¿ã³ã¹ãã»ããã¢ããããã®ã«ååã§ããã°ãå¯èœã§ããã°1ã€ã®ã¢ãŒãã£ãã¡ã¯ãã
Debianã¯ãã¹ãŠãå éšã«ããã±ãŒãžåããããšããŸãã ãããŠãå¯èœã§ããã°ãããã¯æ£ããããšã§ãã ããããç§ã®äž»åŒµã蚌æããããã«ã
ããããèŠç¹ããèŠéããªãïŒããã¯åé¡ã§ã¯ãããŸããïŒ åç §ã®ã¿ãå«ãŸãã空ã®ããã±ãŒãžã§ãããããã±ãŒãžã§ãã å€åããªãã¯å¥ã®çšèªãã€ã³ã¹ããŒã©ãŒãåãå ¥ããã ãããïŒ
ç§ãèšã£ãŠããã®ã¯ãHelmã®ããã«ãBrewãä»ããŠãœãããŠã§ã¢ãã€ã³ã¹ããŒã«ããããã«æäŸãããã¹ã¯ãªããã¯ãŸãã«ããã§ã-ã¹ã¯ãªãã
ã¢ããªã±ãŒã·ã§ã³ã¯åå¥ã«æ§ç¯ãããã±ãŒãžåãé åžããããããã®ã¹ã¯ãªããã«ãã£ãŠåã蟌ãŸããŸã
ãããŠãDockerã€ã¡ãŒãžãæ§ç¯ããããã®åããã€ãã©ã€ã³ããããŸãã
äžè¬çãªãŠãŒã¹ã±ãŒã¹ã容æã«ããããã«ãhelm install | upgradeã«--app-versionãã©ã°ãè¿œå ããå¿ èŠããããã©ãããå€æããããšããŠããŸãã
ãããéµã§ãã ããããã©ãããã°æ±ºå®ã§ããŸããïŒ 2ã€ã®è³ªåãããå¿ èŠããããŸãã
äœããããŠããpplãããå Žåãããã¯ãããè¯ãããšã§ããããšãæå³ããŸããïŒ é²æ©ãéããããã«ã¯ããã¹ãŠã«çåãæããããå¿ èŠããããŸãã
ç³ãèš³ãããŸãããããããäœãæå³ããã®ãããããŸããã æ代é ã/è€é/管çãé£ãããã®ã¯äœã§ããïŒ
ããªã¥ãŒã¯ãã«ã ã«éåžžã«è¿ãããã§ã«åºã䜿çšãããŠããã®ã§ãããªã¥ãŒã«æ圱ããŠã¿ãŸãããã Gentroo EbuildsãŸãã¯debã«æ圱ã§ããŸãããç»åã¯å€æŽãããŸããã
ç³ãèš³ãããŸããããã¯ãªãŒã³ãªããŒã«ããã¯ãåªé ãªã¢ããã°ã¬ãŒããªã©ããã¹ãŠã®ãŠãŒã¹ã±ãŒã¹ã説æããã®ã¯ä»ã®ãšããæ æ°ã§ããããšã«ããããããäž»ãªããŒãã¹ã§ãã
ç¹°ãè¿ãã«ãªããŸãããéãã¯åºæ¬çã«ãããªããèšåãããã®ã¯ãã¹ãŠæ¬è³ªçã«é¢é£ããŠãããšããããšã§ãã
åžžã«ã§ã¯ãªãã ããšãã°ãDockerã€ã¡ãŒãžã«SSRBEãšCDNãžã®åç §ãå«ããããšãã§ããŸãã
Dockerfileãªã®ã§ããã®ãã€ã³ããäœã§ãããã¯ããããŸããããæ°ããããŒãžã§ã³ã®ã€ã¡ãŒãžãæ§ç¯ããããã«å€æŽããã«åãDockerfileã䜿çšããããšããããããŸãïŒã€ãŸããæ¯åæåã§äœããå€æŽããå¿ èŠãããå Žåã¯ããªãèªååã«ç ©ããããã®ã§ããïŒïŒã
ããããã€ã³ãã§ãã Dockerfileãå€æŽããªãå Žåã§ããæ°ããã€ã¡ãŒãžããã«ãããŸãã ãœãŒã¹ã³ãŒããå€æŽãããŠããªãããDockerfileãå€æŽãããŠããå Žåã¯ãæ°ããã€ã¡ãŒãžããã«ãããŸãã ã€ãŸããäžèšã§èšãã°ãDockerfileãããã±ãŒãžã§ãã ãã«ã ã«ã€ããŠãåãããšãèšããŸãã ããæããŸãããïŒ
ãã®ãããªãã®ãã¹ãŠã䜿çšããŠãå¿ èŠãªãã®ãã¹ãŠãã«ãã»ã«åãããã®ãäœæãããããåé¢ããŠå±éã§ããããã«ããŸãã ãããã£ãŠãæ°ããããŒããèµ·åããŠãæ¢åã®ããŒãã«ãããã€ããã®ãšåãæ¹æ³ã§ãã®ããŒãã«ãããã€ãããªã©ã®ããšãã§ããŸãã
ããããDockerã€ã¡ãŒãžã¯ã¢ããªãå®è¡ããã®ã«ååã§ã¯ãªãããšãããããŸããã æ§æã€ã³ã¹ã¿ã³ã¹ãå¿ èŠã§ããããµãŒãã¹å®çŸ©ãå¿ èŠã§ãã ãã¹ãŠãããã±ãŒãžåããŠã¿ãŸãããïŒ
çµå±ã®ãšãããã©ã¡ãã«ããŠãããã»ã©å€§ããªéãã§ã¯ãããŸããã
ããã ãšæããŸãã ãã¶ãããã¯ã³ãŒãããŒã¹ã§ã®ååŒã®å€ãã§ã¯ãããŸããããããã¯ã³ã³ããåã®é²åãåæ»ãããã§ãããã
Dockerã€ã¡ãŒãžã¯Helmãã£ãŒãã«ããã±ãŒãžåãããŠããŸãã
ã€ã¡ãŒãžèªäœã¯ããã±ãŒãžåãããŠããŸããããåç
§ïŒãã³ãšããŠèªã¿åãããŸãïŒã¯ããã±ãŒãžåãããŠããŸãã 確ãã«ãç§ãã¡ã¯è¡åŠè
ã§ãããããŸããŸãªãµã€ãºïŒMBããGBãŸã§ïŒã®æåéãã®ç»åãhelm package
ã®ã¢ãŒãã£ãã¡ã¯ãã«å«ãŸããŠãããã©ããã«å·»ã蟌ãŸããå¯èœæ§ããããŸãïŒãã¿ãã¬ïŒããã§ã¯ãããŸããïŒããæ¬è³ªãã¢ããªã±ãŒã·ã§ã³ã®ã³ãŒãã®ç¹å®ã®ããŒãžã§ã³ãhelmããã±ãŒãžã«å«ãŸããŠããããšããã¹ããŒãã¡ã³ãã¯ãåºæ¬çã«æ£ãããã®ã§ãã ã©ã®ããã«å·»ã蟌ãŸããããã©ã
äŸã®äžçã«æ»ã£ãŠã 1.2.5
ããŒãžã§ã³ç®¡çããããã£ãŒãäžã§å®è¡ãããŠãã1.9.9
ãšããŠå
éšçã«ããŒãžã§ã³ç®¡çãããã¢ããªã±ãŒã·ã§ã³ããããšããŸãã æ··ä¹±ããªãããã«ãã¢ããªã±ãŒã·ã§ã³ã³ã³ããã®Dockerã€ã¡ãŒãžshaã¯fakeshaA
ã§ãã
ããŒã ã¯ãã¢ããªã±ãŒã·ã§ã³ã®ããŒãžã§ã³2.0.0
ã«ãHTTPçµç±ã§åç
§ããå¿
èŠããã£ããã¡ã€ã«ã®ããŒã«ã«ãã¡ã€ã«ã·ã¹ãã ããŒãžã§ã³ããããšå€æããŸããã ãã®çç±ã¯éèŠã§ã¯ãããŸããããããªããžã®åœ±é¿ã¯ããªãæ·±å»ã§ãã ããã§ããããã®ããŒã«ã«ãã¡ã€ã«ãã¢ããã°ã¬ãŒãéã§å€±ãããªãããã«ããããã€ã¡ã³ãã«pv
ãšpvc
å¿
èŠã§ãã å¿
èŠã«å¿ããŠãHelmãã£ãŒããæŽæ°ããŠããã®pv
ãšpvc
䜿çšãã 2.0.0
ãžã®ç§»åãããã»ã©æ··ä¹±ããªãããã«ããŸãã
ã°ã©ããå€æŽããåã«ãã¢ããªã±ãŒã·ã§ã³ããŒãžã§ã³1.9.9
ãã€ã³ãã©ã¹ãã©ã¯ãã£ããŒãžã§ã³1.2.5
ãªã³ã¯ããArtifact A
ããããŸãã ããã§ãã£ãŒããå€æŽããŸã..._ãã«ã ãã£ãŒãã¯vã 1.3.0
_ã«ãªãã 1.9.9
ãã€ã³ãã©ã¹ãã©ã¯ãã£ããŒãžã§ã³1.3.0
ãªã³ã¯ããã¢ãŒãã£ãã¡ã¯ããçæããŸãã ãããArtifact B
ãšåŒã³ãŸã
2.0.0
ã®ã³ãŒããããã€ã¡ã³ããDockerã€ã¡ãŒãžsha fakeShaB
ã§ã©ã€ãã«ãªããšã 2.0.0
ãã€ã³ãã©ããŒãžã§ã³1.3.0
ãªã³ã¯ããå¥ã®ã¢ãŒãã£ãã¡ã¯ããäœæããŸãã ããã¯Artifact C
ããã§ã2.0.0ãªãªãŒã¹ã§ã¯å®å
šã«ç解ããŠããããããŒã«ããã¯ããå¿
èŠããããšããåé¡ãããããšãå€æãããšããŸãã Artifact B
ã䜿çšããŠããŒã«ããã¯ããŸã...ããããããã§ã¯åé¡ã解決ããªããããããäžåºŠArtifact A
ããŒã«ããã¯ãããšãåé¡ã¯è§£æ±ºããŸãã
çºçããå¯äžã®åé¡ã¯ãã¢ãŒãã£ãã¡ã¯ããåç §ããDockerã¬ãžã¹ããªã«ããããã®ã¢ãŒãã£ãã¡ã¯ãã§åç §ãããŠããã€ã¡ãŒãžããŸã ãããã©ããã§ãã
ãããã«ãããã¢ããªã±ãŒã·ã§ã³ã®ããŒãžã§ã³ãšã€ã³ãã©ã¹ãã©ã¯ãã£ã®ããŒãžã§ã³ã®éã«ãããŸãã ããããã«ã ã®ç®çã§ãã ããã§ãªããã°è°è«ããã®ã¯æãã§ãã
@iorlas ïŒ
.deb
æ¯èŒã¯åã£ãŠãããŸãããã ããã¯ç§ãã¡ãèéã«è¿œãããããŠããã ãã ãšæããŸãã
åžžã«ã§ã¯ãªãã ããšãã°ãDockerã€ã¡ãŒãžã«SSRBEãšCDNãžã®åç §ãå«ããããšãã§ããŸãã
ããã¯éåžžã«çå®ã§ãã ããã«ã€ããŠã¯åŸã§è©³ãã説æããŸãã
ããããã€ã³ãã§ãã Dockerfileãå€æŽããªãå Žåã§ããæ°ããã€ã¡ãŒãžããã«ãããŸãã ãœãŒã¹ã³ãŒããå€æŽãããŠããªãããDockerfileãå€æŽãããŠããå Žåã¯ãæ°ããã€ã¡ãŒãžããã«ãããŸãã ã€ãŸããäžèšã§èšãã°ãDockerfileãããã±ãŒãžã§ãã ãã«ã ã«ã€ããŠãåãããšãèšããŸãã ããæããŸãããïŒ
ããªãã¯ããããŸãããããã¯ãã®ãã«ãããã»ã¹ã®æåŸã®è£œåïŒã€ãŸãDockerã€ã¡ãŒãžïŒãDockerfileãšããã«å ¥ããŠãããã®ã®äž¡æ¹ã«äŸåããŠããããã§ãã ãããã®2ã€ã®èŠçŽ ããªããã°ç»åã¯ååšã§ããŸããã
äžæ¹ãHelmãã£ãŒãã¯ãã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ãããåãã€ãŸãæåéã1è¡ã®ã³ãŒããèšè¿°ãããåã«ååšããå¯èœæ§ããããŸãã ã€ã³ã¹ããŒã«ã«å€±æããæ¶ç©ºã®ãã®ãäœæããããšãã§ããŸãããããã§ãããã«ã ãã£ãŒãã¯ä»ã«äœããªãã§å®å šã«ååšããå¯èœæ§ããããŸãã ç§ãèšã£ãããã«ãããã¯åœ¹ã«ç«ããªãã§ãããããããç§ã¯ããããå šããªã³ã¯ãããŠããªããšããç§ã®ãã€ã³ãã説æããããšããŠããã ãã§ãã
ããã§ã®ç§ã®ãã€ã³ããããã³ããããã®ç¹å®ã®åé¡ã«ã©ã®ããã«é¢é£ããŠãããã¯ããã«ã ãã£ãŒãããã£ãŒãã«ãã£ãŠå±éãããŠããã¢ããªã±ãŒã·ã§ã³ã«æ¬è³ªçã«ãªã³ã¯ãããŠãããšã¯éããªããšããããšã§ãã ç§ã¯ããã倧èãªäž»åŒµã ãšã¯æããŸãããããã¯èµ·ãããŸã-ããã¯ãã§ã«äºå®ã§ãã ç§ã¯çŸåšæ¬çªã¢ããªã±ãŒã·ã§ã³ã§ãããè¡ã£ãŠããã®ã§ããã®åé¡ã«ã€ããŠã³ã¡ã³ãããŠããä»ã®äººãããŸãã ã ããç§ãåã«èšã£ãããã«ãããã¯ãã¹ãŠã«åž°çããŸãã Helmã®ã¡ã³ããã¯ããã®ãŠãŒã¹ã±ãŒã¹ãæå¹ã«ãããã®ããããã§ãªãã®ããä»ã«äœããããŸããã
ããããDockerã€ã¡ãŒãžã¯ã¢ããªãå®è¡ããã®ã«ååã§ã¯ãªãããšãããããŸããã æ§æã€ã³ã¹ã¿ã³ã¹ãå¿ èŠã§ããããµãŒãã¹å®çŸ©ãå¿ èŠã§ãã ãã¹ãŠãããã±ãŒãžåããŠã¿ãŸãããïŒ
å®ã¯ãããã颚ã«ãªãããã§ãã ããããä»ã¯ããã§ã¯ãããŸããã
ãããäºå®ã§ãããHelm Chartãå®éã«ãããã€ããããã¹ãŠã®ãã®ãããã±ãŒãžåããå ŽåïŒåè¿°ã®CDNã«ã€ããŠèšåããŸãããããããKubernetesã«ãããã€ããŠããªãããããã£ãŒãã«ã¯ãŸã å«ãŸããŠããŸããïŒããã®äŒè©±ã¯èµ·ãããªãã§ãããã Helmãã£ãŒãã¯ãDockerã€ã¡ãŒãžãæ§ç¯ããã®ãšåãããã«ããããã€ãããã¢ããªã±ãŒã·ã§ã³ããŒãžã§ã³ã«æ¬è³ªçã«ãªã³ã¯ãããŸãã ãã®ã·ããªãªã§ãã«ã ãã£ãŒããäœæããã«ã¯ãã¢ããªã±ãŒã·ã§ã³ãå€æŽããããšãã«ãããåæ§ç¯ããå¿ èŠã
ããããããã¯çŸå®ã§ã¯ãããŸããã ããã¯ãã«ã ãã©ã®ããã«æ©èœãããã§ã¯ãããŸããããããŠç§ã¯ãããå®éã«ã©ã¡ããã«ãªãããšã«ãªããã©ããããããŸããã ãããã決ããŠæ±ºããŠèšããªãã§ãã ãããïŒ
@jrkarnes ïŒ
ã€ã¡ãŒãžèªäœã¯ããã±ãŒãžåãããŠããŸããããåç §ïŒãã³ãšããŠèªã¿åãããŸãïŒã¯ããã±ãŒãžåãããŠããŸãã
ãã¡ããã§ãããäžè¬çãªãŠãŒã¹ã±ãŒã¹ã¯ãå€ã䜿çšããŠãã®å€ããªãŒããŒã©ã€ãããããšã§ãã ãµãŒãããŒãã£ã®ãã£ãŒããšãã¡ãŒã¹ãããŒãã£ã®ãã£ãŒãã®äž¡æ¹ã§äœ¿çšããŸããã ããã人ã ã䜿çšãããã®ã§ãªããã°ãããã¯éžæè¢ã§ã¯ãªãã§ãããã
確ãã«ãç§ãã¡ã¯è¡åŠè ã§ãããããŸããŸãªãµã€ãºïŒMBããGBãŸã§ïŒã®æåéãã®ç»åããã«ã ããã±ãŒãžã®ã¢ãŒãã£ãã¡ã¯ãã«å«ãŸããŠãããã©ããã«å·»ã蟌ãŸããå¯èœæ§ããããŸãïŒãã¿ãã¬ïŒããã§ã¯ãããŸããïŒã
ãã§ã«ææããããã«ãDockerã€ã¡ãŒãžããæ§ç¯ãããããã«ã ãã£ãŒãå ã«ããã±ãŒãžåãããŠãããšèšãã®ã¯äºå®äžæ£ãããããŸããã
ãã¢ããªã±ãŒã·ã§ã³ã®ã³ãŒãã®ç¹å®ã®ããŒãžã§ã³ãhelmããã±ãŒãžã«å«ãŸããŠããããšããã®ã¯åºæ¬çã«æ£ããããšã§ãã
ããããå®éã«ã¯ããã§ã¯ãããŸãããç§ã®æåã®ãã€ã³ããšããŠãå察ããã§ãããã å±éãããã®ãå€æŽã§ããŸãã å¿
èŠã«å¿ããŠãã»ãšãã©ã®ã°ã©ããå€æŽããŠhello-world
ç»åãå®è¡ã§ããŸãã ããã¯åœ¹ã«ç«ããªãã§ãããããããã¯ç§ã®äž»åŒµãããŸã蚌æããŠããŸã-ãã«ã ãã£ãŒãã¯ããªãã®ã¢ããªã±ãŒã·ã§ã³ã«ãªã³ã¯ãããŠããŸããã æ£ããç»åã§äœ¿çšãããšãã_æåŸ
_ããããããããããã©ã«ãã§äœ¿çšã§ããŸããã確ãã«ããããå¿
èŠã¯ãããŸãã-ãããŠãä»ã®æ¹æ³ã§ããã±ãŒãžåããããã«ã ãã£ãŒãã«å«ãŸããã¢ããªã±ãŒã·ã§ã³ã®ã³ãŒãã§ãã
äŸã®åœã«æ»ã£ãŠã[...]ãããŠåé¡ã¯è§£æ±ºãããŸããã
æããã«çŸåšæå³ãããŠããæ¹æ³ã§Helmã䜿çšããªããšãããã¯äžå¯èœã§ããããã«èãããããã«ããŸããã ãã ããå®éã«ã¯ããã£ãŒãã®2ã€ã®ããŒãžã§ã³ïŒã€ãŸãã2ã€ã®ã€ã³ãã©ã¹ãã©ã¯ãã£ããŒãžã§ã³ïŒãš3ã€ã®ããŒãžã§ã³ã®ã¢ããªã±ãŒã·ã§ã³ã䜿çšã§ããŸãã ããŒã«ããã¯ãããå Žåã¯ããããå®è¡ããŸãããããã€ãããã£ãŒããšã€ã¡ãŒãžãéåžžã«ç°¡åã«éžæã§ããŸãã ãã£ãŒãã§Helmãå®è¡ããç»åã«å¿ããŠå€ãèšå®ãããšããã¹ãŠèšå®ãããŸãã
ãããã«ãããã¢ããªã±ãŒã·ã§ã³ã®ããŒãžã§ã³ãšã€ã³ãã©ã¹ãã©ã¯ãã£ã®ããŒãžã§ã³ã®éã«ã¯ãªã³ã¯ããããŸãã ããããã«ã ã®ç®çã§ãã ããã§ãªããã°è°è«ããã®ã¯æãã§ãã
ç©äºãã©ã®ããã«å€åããããè°è«ããïŒçæ³çã«ã¯è°è«ããïŒããšã¯ãç©äºãæ¹åããããšã«ã€ãªããããšãå€ããšæããŸãã Helmã®ãç®çãã¯ããã£ãŒããšã¢ããªã±ãŒã·ã§ã³ããŒãžã§ã³ããªã³ã¯ããããšã§ã¯ãªããšæããŸãã Kubernetesãããã§ã¹ããDRYã§åå©çšå¯èœã«ä¿ã¡ãªãããã¢ããªã±ãŒã·ã§ã³ãKubernetesã¯ã©ã¹ã¿ãŒã«ç°¡åãã€å®å šã«ãããã€ã§ããããã«ããããšãç®çã ãšæããŸãã ãã£ãŒããšã¢ããªã±ãŒã·ã§ã³ã®ããŒãžã§ã³ãå³å¯ã«ãªã³ã¯ããå¿ èŠã¯ãããŸããïŒçŸåšã®å®éã®ããã«ããªã³ã¯ããå¿ èŠã¯ãããŸããïŒã
ç¹°ãè¿ãã«ãªããŸããã ããã«ãåé¡ã¯ãHelmãé©å¿ããå¿ èŠããããã©ããã§ãã ãã®ãŠãŒã¹ã±ãŒã¹ãæå¹ã«ããªãçç±ã¯äœã§ããïŒ çç±ããçŸåšã¯ãªããããã§ããå Žåãç§ã«èšãããã°ãããã¯ããªãæªãçç±ã§ãã ãããŸã§ã®ãšããããã®è°è«ã®ã©ãããã®è³ªåã«çããŠããªãããã§ãã
...ãã®ãã«ãããã»ã¹ã®æåŸã®è£œåïŒã€ãŸããDockerã€ã¡ãŒãžïŒã¯ãDockerfileãšããã«å ¥ãããã®ã®äž¡æ¹ã«äŸåããŸãã ...ãããã®2ã€ã®ã³ã³ããŒãã³ãããªããšç»åã¯ååšã§ããŸããã
ã€ãŸã... Helmããã±ãŒãžã«ã¯ãã£ãŒããšã¢ããªããŒãžã§ã³ïŒ= Dockerã€ã¡ãŒãžïŒãå¿ èŠã§ããããããªãã§ã¯ååšã§ããŸããã
ãã«ã ãã£ãŒãã¯ãã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ãããåãã€ãŸãæåéã1è¡ã®ã³ãŒããèšè¿°ãããåã«ååšããå¯èœæ§ããããŸãã ...ãã«ã ãã£ãŒãã¯ä»ã«äœããªãã§å®å šã«ååšããå¯èœæ§ããããŸãã ç§ãèšã£ãããã«ãããã¯åœ¹ã«ç«ããªãã§ããã
é¢çœãããšã«ããããããžã§ã¯ãã§ã¯ãã¹ã¿ãDockerã€ã¡ãŒãžã䜿çšããŠãããã¿ã€ãã¢ãŒããã¯ãã£ãäœæããŠããŸããã ç§ãã¡ã¯æåéãã1è¡ã®ã³ãŒããèšè¿°ããã«ãã£ãŒãã䜿çšããŸããã ãŸãããµããã£ãŒãã®ã¿ã§æ§æããããã£ãŒããäœæããããšã¯åžžã«å®è¡å¯èœãªã±ãŒã¹ã§ãã
ãããã£ãŠãç§ã®ä»®èª¬ã¯æ¬¡ã®ãšããã§ããHelmããã±ãŒãžã¯Dockerã€ã¡ãŒãžã§ã¯ã»ãšãã©åœ¹ã«ç«ããªãã Dockerã€ã¡ãŒãžã¯ããœãŒã¹ã³ãŒãã§ã¯ã»ãšãã©åœ¹ã«ç«ã¡ã©ã¡ããããã±ãŒãžã®ãããªãªããžã§ã¯ãã§ãã
ããããç§ã¯ãããããŸã£ãããªã³ã¯ãããŠããªããšããç§ã®äž»åŒµã説æããããšããŠããã ãã§ãã
ãããããïŒ ããã¯æ¬åœã«çŽ æŽãããããšã§ããç§ãã¡ã¯pplããã¹ãŠã詳现ã«è°è«ããæºåãã§ããŠããŸãã ããªããããªããŠããäºæž¬ã䞻匵ããªããŠããç§ãã¡ã¯å°æ¥ã®éºŠæ±ãçããããšã¯ã§ããŸããð
ç§ã¯ããã倧èãªäž»åŒµã ãšã¯æããŸãããããã¯èµ·ãããŸã-ããã¯ãã§ã«äºå®ã§ãã ...åã«èšã£ãããã«ãããã¯ãã¹ãŠã§ãã Helmã®ã¡ã³ããã¯ããã®ãŠãŒã¹ã±ãŒã¹ãæå¹ã«ãããã®ããããã§ãªãã®ããä»ã«äœããããŸããã
å®éã ãã®ãããªå€æŽãè¡ããåãå ¥ããããã«ã¯ããããè©äŸ¡ããå¿ èŠããããŸãã
話ããããŠãã ããã ããã£ãŒãã¯çŽ æŽããããåºã䜿ãããŠãããŠã§ããã¬ãŒã ã¯ãŒã¯ã§ããã ãã®çç±ã¯ãæè³ããæéã®äžè¶³ã§ã¯ãªããã©ã€ã»ã³ã¹ãæã£ãŠããäžéšã®ã·ã§ããã¬ã³ã§ã¯ãããŸããã§ããã ãããã£ãŠãæªæ¥ãæããããå¯äžã®æ¹æ³ã¯ããã¬ãŒã ã¯ãŒã¯å šäœãéæšå¥šã«ããäžéšã®äººãæãããäžéšã®ãããžã§ã¯ããå€ç«ãããäžéšã®äººã«èªåã®ããŠããããšãåè©äŸ¡ãããããšã§ããã
ã ãããç§ã¯ãã®ã¢ãããŒãã«å察ããŠããããã§ã¯ãããŸããã ç§ã¯ãããã©ã®ããã«çããããšãã§ããããç解ããŠããŸãïŒ helm run
ç§ã®ææ¡ãåç
§ããŠãã ããïŒã ããããç§ãã¡ã«ã¯ä»å
¥ãè¡ãæ©äŒããããããããæé
ãã§ã¯ãªãéã«æ¥çå
šäœãä¿®æ£ããæ©äŒããããŸãããç§ã¯ããããã®äœ¿çšæ³ãè©äŸ¡ããäžå©ãªç¹ãåé¡ã«ã€ããŠè©±ãåããŸãã
ãã®ã·ããªãªã§ãã«ã ãã£ãŒããäœæããã«ã¯ãã¢ããªã±ãŒã·ã§ã³ãå€æŽããããšãã«ãã«ã ãã£ãŒããåæ§ç¯ããå¿ èŠããããŸã
ããã ä»ã§ããããããããŸããã push
代ããã«Dockerã€ã¡ãŒãžã®save
/ load
ãå®è¡ãããã€ãã©ã€ã³ã1ã€ãããŸãã ãããŠãããã¯éåžžã«ããŸãæ©èœããŸãã ä»ã¯æ°ãé²ãŸãªãã®ã§ãããåºæ¬çã«ã¯ãã£ãšããããªæ¹æ³ã§ãã åé¡ã¯ãK8sããã¹ã¿ãŒã¿ãŒãïŒDockerã€ã¡ãŒãžïŒã転éããããã®ãã¹ãšããŠãªã¢ãŒãDockerã¬ãžã¹ããªãå¿
èŠãšããããšã§ãã
Helmãã£ãŒãã¯ãDockerã€ã¡ãŒãžãæ§ç¯ããã®ãšåãããã«ããããã€ãããŠããã¢ããªã±ãŒã·ã§ã³ããŒãžã§ã³ã«æ¬è³ªçã«ãªã³ã¯ãããŸãã
ãããããã§ã®éèŠãªéãã§ãã ãããŠ@seerukã¯ãããéä»ãã«ããŸããã ãããŠãããã«éäžããããšãã§ããŸãã ãããäºå®ã«èšãæããããŠãã ããïŒ
éèŠãªè³ªåïŒ
@seeruk ïŒ
ç¹°ãè¿ãã«ãªããŸããã ããã«ãåé¡ã¯ãHelmãé©å¿ããå¿ èŠããããã©ããã§ãã ãã®ãŠãŒã¹ã±ãŒã¹ãæå¹ã«ããªãçç±ã¯äœã§ããïŒ çç±ããçŸåšã¯ãªããããã§ããå Žåãç§ã«èšãããã°ãããã¯ããªãæªãçç±ã§ãã ãããŸã§ã®ãšããããã®è°è«ã®ã©ãããã®è³ªåã«çããŠããªãããã§ãã
ããªãã¯å€ãã®çŽ æŽããã説æãšãã€ã³ããäœããŸãã å人çã«ã¯ããã«ã ã¯é©å¿ãã¹ãã ãšæããŸãã CI / CDã¯ããœãããŠã§ã¢ã®æ§ç¯æ¹æ³ã®æªæ¥ã§ãããæ£çŽãªãšããã --atomic
ãããªæ±ãã§ããã«ã ã¯ä¿¡é Œæ§ã®é«ãå±éããŒã«ãšããŠãã§ã«ããæè»ã«ãªã£ãŠããŸãã ãããããã®åé¡ã¯ããªãå€ããã®ãªã®ã§ãPRãããŒãžããããšã¯ããã»ã¹ã®ã次ã®ã¹ããããã§ã¯ãªããšæããŸãã
ãã®ç¹å®ã®--app-version
æ©èœã«å¯ŸããŠhelm-ci-cd
ãå®è¡å¯èœã§ãããšèšããã©ã°ã€ã³ãäœæããŸããïŒ @jrkarnesã¯ããããPRå¯çš¿è
ãšããŠããã«helm-ci-cd
ä»ã®é©åãªåè£ã§ãããCI / CDpplãã©ããã³ã°ã«ãã£ãŠãã§ã«çµ±åããŠããinstall/ upgrade
äºéæ§ã«èŠããŸãã
--app-version
ã¹ã€ãããçŽæ¥çãªä»å 䟡å€ã§ã¯ãªãå Žåã§ãããã³ãã¬ãŒããã¡ã€ã«ã確èªããã«k8sã¢ããªãã€ã³ã¹ããŒã«ããããšããŠãããšã³ããŠãŒã¶ãŒã«ãšã£ãŠã¯ãããã¯å®éã«ã¯ããŸããããŸããã§ãããä»äºã®k8sã€ã³ãã©ã¹ãã©ã¯ãã£ã«æºæ ããããã«ãããã¯ãŒã¯ããªã·ãŒãè¿œå ããå¿
èŠãããããïŒãšã³ããŠãŒã¶ãŒã¯ãæ§ç¯ãå®å®ããããã«ã ci / cdæ©èœã«ããããã£ãŒããäœæãã人ãç°¡åã«äœæã§ãããããããå€ãã®äŸ¡å€ãåŸãããšãã§ããŸãä¿¡é Œæ§ã®é«ããœãããŠã§ã¢ãç°¡åã«ãªããŸãã
Chart.yamlãgroovyã§èªã¿èŸŒãã§ãããã¢ããªã®ããŒãžã§ã³ãèšå®ãããããã€æã«ãã¡ã€ã«ãäžæžãããŸãã 次ã«ããã«ã ã®ã¢ããã°ã¬ãŒããè¡ããŸãã ãããèµã®äžéšã§ãããªãã°ããã¯çŽ æŽãããã§ãããããããç§ã¯ãããåœãŠã«ããŸããã
Googleã§ãããèŠã€ããŸããã å®ã¯åãè¹ã
verison:
ããã£ãŒãããŒãžã§ã³ã§ããå Žåããã£ãŒãã®YAMLãå€æŽããããšãã®ããŒãžã§ã³ãå€æŽãããããšãæå³ããŸãã ã°ã©ãã¯æ§æå¯èœãªå€ãæã€ãã³ãã¬ãŒãã§ãããããã°ã©ãã®YAMLãã¡ã€ã«ãå€æŽããããšãªããã°ã©ã1.3ã䜿çšããŠè€æ°ã®ããŒãžã§ã³ïŒ1.2ã1.3ã1.6ã1.8ãªã©ïŒã®ã¢ããªããããã€ã§ãããšèããŠééããããŸããã
Chart.yamlå
ã«ããŒãã³ãŒãã£ã³ã°ãããappVersion:
ã§æäŸãããããã«ãªããŸããããããã€ãããã¢ããªã±ãŒã·ã§ã³ã®ããŒãžã§ã³ãæŽæ°ïŒããã³åæ ïŒããããã«ããã£ãŒããã¡ã€ã«ãç·šéããå¿
èŠããããŸãã
ãã£ãŒããã³ãã¬ãŒãå
ã§äœ¿çšã§ãã--app-version
CLIãªãã·ã§ã³ã確å®ã«å¿
èŠã§ããã_application_ã®ããŒãžã§ã³ãåç
§ããŠãåãversion: 1.3.0
ãã£ãŒãã§ç°ãªãããŒãžã§ã³ããããã€ããŸãã
@seeruk
Helmã®ãç®çãã¯ããã£ãŒããšã¢ããªã±ãŒã·ã§ã³ããŒãžã§ã³ããªã³ã¯ããããšã§ã¯ãªããšæããŸãã Kubernetesãããã§ã¹ããDRYã§åå©çšå¯èœã«ä¿ã¡ãªãããã¢ããªã±ãŒã·ã§ã³ãKubernetesã¯ã©ã¹ã¿ãŒã«ç°¡åãã€å®å šã«ãããã€ã§ããããã«ããããšãç®çã ãšæããŸãã
ãããç§ãã¡ã®è«ç¹ã§ãããç§ãã¡ã®ã©ã¡ãããããäžæ¹ãçŽåŸãããããšã¯ãªããšæããŸãã å°é家ã®èšå®ã§ã¯ãæèŠã®åé¡ã«ãªããšãå解ã§ããªãéããããã®ã¯ã倧äžå€«ããªå ŽåããããŸãã ç§ã¯ç¢ºãã«ã¹ããŒã«ãã³ãèšããã¹ãŠã«åæããŸããããããŠç§ãã¡ã圌ãšç§ãåæããªããã¹ãŠã«ã€ããŠå¡¹å£ã«å ¥ããªãã°ãç§ãã¡ã¯åæã«éããåã«æ»ã¬ã§ãããã
ç§ã¯ãããè°è«ã®äžã§ããã«äžã«è¿°ã¹ãŸããããããŠç§ã¯ãããç¹°ãè¿ãããããšã«èãããšæããŸãïŒ
[...] helmã¯æ¬åœã«ããã±ãŒãžããããã€ããã ãã ãšæããŸãã ããã¯ããªããèšãããšãã§ããå¯äžã®æå³çã«æ£ããããšã®ããã§ãã ãã ãããããã®ããã±ãŒãžãã©ã®ããã«é åžããããã«ã€ããŠã®è°è«ã¯ãå®éã®ãã®è°è«ã®æ ¹æ¬çãªåå ã®ããã§ãã å ·äœçã«ã¯ããã¢ããªã®ããŒãžã§ã³ãã¢ããã°ã¬ãŒããŸãã¯å€æŽããããšã¯ãæ°ããããã±ãŒãžãæ§æããŸããïŒã
æ§æãªãã®ãã¡ãŒã¹ãããŒãã£ãã«ã ãã£ãŒãïŒMySQLã䜿çšããã®ã奜ããªã®ã§ãããããã䜿çšãç¶ããŸãïŒã¯ããã£ãŒãäœæè ã説æããæå³ãããšããã«ãªãœãŒã¹ãã¯ã©ã¹ã¿ãŒã«ã€ã³ã¹ããŒã«ããå¿ èŠããããŸãã mysqlã®å®éã®ãã£ãŒããèŠããšãå®éã®mysqlãšã³ãžã³ã«é¢é£ããŠæ§æå¯èœãª2ã€ã®ããããã£ããããŸãã
image
ïŒããã©ã«ãmysql
ïŒimageTag
ïŒããã©ã«ãã¯5.7.14
ïŒæ¬¡ã«ã Chart.yaml
ãã¡ã€ã«ã§ïŒ
apiVersion: v1
name: mysql
version: 1.4.0
appVersion: 5.7.27
appVersion
ãšããã©ã«ãã®imageTag
ã¯äžèŽããªãããšã«æ³šæããŠãã ããã helm list
ãå®è¡ãããšããã¢ããªã®ããŒãžã§ã³ãïŒèªã¿åã;ãšã³ãžã³ã®ããŒãžã§ã³ïŒã_ã¯ã©ã¹ã¿ãŒã«ã€ã³ã¹ããŒã«ãããŠããå®éã®ã¢ããªã®ããŒãžã§ã³ãåæ ããŠããªã_ç¶æ
ã§ãããšããã¬ããŒãã衚瀺ãããŸãã
ãã£ãŒããšã¢ããªã±ãŒã·ã§ã³ã®ããŒãžã§ã³ãå³å¯ã«ãªã³ã¯ããå¿ èŠã¯ãããŸããïŒçŸåšã®å®éã®ããã«ããªã³ã¯ããå¿ èŠã¯ãããŸããïŒã
ããã¯æ£ããã§ã; ç§ã®æèŠã§ã¯ãèšèšäžã®æ¬ é¥ããããŸãã
ç¹°ãè¿ãã«ãªããŸããã ããã«ãåé¡ã¯ãHelmãé©å¿ããå¿ èŠããããã©ããã§ãã
ã¯ãã ããã€ãã®ææ¡ã«ã€ããŠã¯ãããã«èª¬æããŸãã
@IRobL
ãã©ã°ã€ã³ãäœæããŸããïŒããšãã°ãhelm-ci-cdã¯ãã®ç¹å®ã®--app-versionæ©èœã§å®è¡å¯èœã§ããïŒ @jrkarnesã¯ããããPRã³ã³ããªãã¥ãŒã¿ãŒãšããŠããã«
ããªãã¯ããªãèªèº«ã®è³ªåã«æ¬¡ã®ããã«çããŸãïŒ
--app-versionã¹ã€ãããããã³ãã¬ãŒããã¡ã€ã«ã確èªããã«k8sã¢ããªãã€ã³ã¹ããŒã«ããããšããŠãããšã³ããŠãŒã¶ãŒã«ãšã£ãŠçŽæ¥çãªä»å 䟡å€ã§ã¯ãªãå Žåã§ãããšã³ããŠãŒã¶ãŒã¯ãå®å®ããä¿¡é Œæ§ã®é«ããœãããŠã§ã¢ã®æ§ç¯ã容æã«ããhelmci / cdæ©èœã«ããããã£ãŒãã®æ§ç¯ã¯ããç°¡åã«è¡ããŸããã
é¢æ°ãæ£ããããããã«ãã©ã°ã€ã³ãšããŠãããè¡ãå¿
èŠãããå Žåãç§ã¯ãã®ã¢ãããŒããæå±ããŸãã ããããããã¯ééã£ãåé¡ã«å¯ŸåŠããŠãããšæããŸãã @seerukã«å
ã«è¿°ã¹ãããã«ã appVersion
äžå€ã®Chart.yaml
ãã¡ã€ã«ã®åºæã®ããããã£ã«ããããšã¯ãèšèšäžã®æ¬ é¥ã ãšæããŸãã appVersion
ã®ç¹æ§ã§ããimage
ãã£ãŒããä»ããŠã¯ã©ã¹ã¿ã«ã€ã³ã¹ããŒã«ãããããã¯ãã®ã§åç
§ç»åããäœããã®æ¹æ³ã§å°åºãããtag
ã
helm-ci
ãã©ã°ã€ã³ã«ã€ããŠèãããšããä»ã«ã©ã®ãããªæ©èœãã¢ãã€ã³ãå¿
èŠã ãšæããŸããïŒ äžå€ã®Chart.yaml
ããããã£ããappVersion
åãæ¿ããã ãã§ã¯ããã©ã°ã€ã³ã§ããããšãä¿èšŒããã®ã«ååãªä»å 䟡å€ããããšã¯æããŸããã
@IRobLãš@seerukãäžç·ã«ïŒ
ç§ãã¡ã®ç°ãªãæèŠã¯ããã«ã ã®ããäžè¬çãªãšã³ããŠãŒã¶ãŒã§ãããšç§ãã¡ãèŠãŠãã人ããæ¥ãŠãããšæããŸãã ãšã³ããŠãŒã¶ãŒããå€ãã®æ§æãè¡ã£ããããã³ãã¬ãŒããæãäžãããããããšã®ãªã人ã§ãããšæ³å®ãããå Žåã helm ls
ã¯ç¹ã«æçšã§ã¯ãªãå¯èœæ§ããããèŠç¹ã¯éèŠã§ã¯ãããŸããã
ãã ãããã«ã ã管çããŒã«ããã³ã¯ã©ã¹ã¿ãŒã管çããããã®ã¢ã·ã¹ã¿ã³ããšããŠäœ¿çšããŠããå ŽåããŸãã¯ããå€ãã®CI / CDã³ã³ããã¹ãã§ãã«ã ã䜿çšããŠããå Žåã --appVersion
ã¹ã€ããã¯éåžžã«å€ããªããŸããããæçšã§ããããããã£ãŠæžå¿µäºé
ïŒããã³æ§æïŒã
å®ç§ãªäžçã§ã¯ã appVersion
ã¯æŽŸçããããã£ã§ãããDockerã€ã¡ãŒãžã¡ã¿ããŒã¿ããååŸããå¿
èŠããããšç§ã¯äž»åŒµããŸãã ããã¯ããã«ã ãè¡ãããšã¯äžå¯èœã§ãããšã«ãŽã競åã®æ¬ åŠã
ç§ãèšã£ãããšã«
ã¯ãã ããã«ããã€ãã®ææ¡ã«å¯ŸåŠããŸã...
...helm-ci
ãã©ã°ã€ã³ã«ã€ããŠèãããšããä»ã«ã©ã®ãããªæ©èœãã¢ãã€ã³ãæåŸ ã§ããŸããïŒ
ç§ã¯è¯ãåºçºç¹ã«ãªããããããªãå人çãªãªã¹ããæã£ãŠããŸãïŒ
helm
ãCICD
ã¢ãŒãã§å®è¡ããŠãã以åã«ãªãªãŒã¹ãããããã±ãŒãžã®ç¶æ
ãçŸåšé©çšãããŠãããã®ãš_only_æ¯èŒãããŸããã ã 代ããã«ããªãªãŒã¹ã®ãã¹ãŠã®ãããã€ã¡ã³ãã¯ã upgrade
ãå®è¡ããããšãã«ãã³ãã¬ãŒãåããããã¹ãŠã®ãããã§ã¹ããå®å
šã«é©çšããŸããhelm-cicd
ã¯ãåºæ¬ã®kubernetesã³ãã³ããã©ããããå¿
èŠããããŸãã helm describe
ãŸãã¯helm logs
ãå®è¡ããããšããåæ°ãæ°ããããŸãããhelm-cicd
ã䜿çšãããšãå¥ã®ãŠãŒã¶ãŒãã³ãã³ããå®è¡ãããšãã®ã³ãã³ãã®çµæã確èªã§ããŸãã RBACã䜿çšããŠããå ŽåãèªèšŒãããŠããªããŠãŒã¶ãŒãäœããè¡ãããšãããšã©ããªããã確èªããããšæããŸããhelm-cicd
ã¯ãåå空éããããã§ã¹ãã®ã³ã¬ã¯ã·ã§ã³ã«å解ããŠãåŸã§ç·šéã§ããããã«ããå¿
èŠããããŸããhelm-cicd
ã¯ããªãªãŒã¹ãåå空éã«_移æ€_ã§ããå¿
èŠããããŸãããããã¯å€§ããªãã®ã§ã...ããããæ¬æ Œçãªhelm-ci
ãã©ã°ã€ã³ã«ã€ããŠè°è«ããããšã¯ããã®PR / Issueã®ç¯å²å€ã§ãïŒçŸåšïŒã
ç§ã¯ããªããã¡ãã¿ã€ããããã¹ãŠãèªã¿ãŸãããããŠç§ã¯è«è©±ã«æè¬ããŸãã ãè¿ä¿¡ããåŸ ã¡ããŠãããŸãã
ä»ã®ç§ã®æéã¯ããªãå¿ããã§ãããããã€ãã®ç¹ã§ããªããèšæ£ããããšæããŸãã @jrkarnes
appVersionãäžå€ã®Chart.yamlãã¡ã€ã«ã®åºæã®ããããã£ã«ããããšã¯èšèšäžã®æ¬ é¥ã ãšæããŸã
ããã§ã¯ãªãã äœãããã®ããã«äœãããå¥ã®ãã®ã§ã¯ãªãå Žåããããéçã®ãã®ã§ãã£ãŠããåžžã«çç±ããããŸãã ãã®å Žåãããã¯ç§ãç«ã£ãŠããã€ããªãã®ãŒã§ãïŒ1ã€ã®ããã±ãŒãž= 1ã€ã®ãã«ãããã£ãŒã=ãã«ãã®ãã³ãã¬ãŒããããã±ãŒãž=ã¢ããª+ã€ã³ãã©ã
Helmã¯ãã®ã€ããªãã®ãŒã«åºã¥ããŠèšèšãããŠãããK8ãOSãšããŠæ±ããããã±ãŒãžãã¢ããªã®ã€ã³ã¹ããŒã©ãŒ/ã¢ããããŒã¿ãŒãšããŠæ±ããŸãã ããã€ãåé¡ããããå€ãããããã«æããããšããããŸãããããã¯ç¢ºãã«æªæ¥ã§ãã
_ãªããã®ããã«èšèšãããŠãããšæããŸããïŒ åãhelm list
ããã€ã³ã¹ããŒã«ãããŠããçŸåšã®ããã±ãŒãžããŒãžã§ã³ã衚瀺ããããã«èšå®ãããŠã
ããŠãæ°ãããªãªãŒã¹ã衚瀺ããããã³ã«ããã±ãŒãžãäœæããããã«ãã«ããããŠããªãå€ãã®ãã£ãŒãïŒmysqlã®ããã«ãããªãã¯ãšããŒã«ã«ã®ããã«ïŒããããŸãã é«ã¬ãã«ã®ãœãªã¥ãŒã·ã§ã³ãžã®ç§»è¡ã«ã¯æéãããããããç§ã¯ãã®ããŒãºã«æå¿ããŠããŸãã ãŸãã誰ããããã±ãŒãžããã«ãããå¿ èŠãããããã«ãããšã«Helmããã±ãŒãžãäœæããããã«mysqlã¡ã³ããã説åŸããã®ã¯é£ããã§ãããã
MySQLãã£ãŒãã«ã¯ãè¿œå ã®åé¡ããããŸãã ããã§ããMySQLããŒãžã§ã³ãhelm list
ã«ã€ã³ã¹ããŒã«ãããŠããã®ãèŠãæ¹ãè¯ãã§ãããããããããããã®ããŒãžã§ã³ã®äžéšã§ããImageã¿ã°ãããã®ã§ãããã¯ããŒãžã§ã³ã®äžéšã«ãããŸããã
ç¹°ãè¿ãã«ãªããŸããã ããã«ãåé¡ã¯ãHelmãé©å¿ããå¿ èŠããããã©ããã§ãã
ã¯ãã ããã€ãã®ææ¡ã«ã€ããŠã¯ãããã«èª¬æããŸãã
ç¹°ãè¿ãã«ãªããŸããã helm run
ãè¿œå ãããšããææ¡ããããŸãããããã¯ãçãããæ¢ããŠãããã®ã§ãã ãã£ãŒããããã±ãŒãžãšããŠå³åº§ã«äœ¿çšããã¢ããªã®ããŒãžã§ã³ãªã©ãæäŸã§ããããã«ããããšãç®çãšããŠããŸãã
å®ç§ãªäžçã§ã¯ãappVersionã¯æŽŸçããããã£ã§ãããDockerã€ã¡ãŒãžã¡ã¿ããŒã¿ããååŸããå¿ èŠããããšç§ã¯äž»åŒµããŸãã ããã¯ããã«ã ãè¡ãããšã¯äžå¯èœã§ãããšã«ãŽã競åã®æ¬ åŠã
Dockerã€ã¡ãŒãžã¯ãä¿¡é Œã§ããå¯äžã®æ å ±æºã§ããæåŸã®ããã±ãŒãžãšããŠãæçµè£œåãšããŠè¡šç€ºãããŠããŸãã ããã§ã¯ãªãã Dockerã€ã¡ãŒãžããæã£ãŠããªãå Žåããããèªåã®ãœãããŠã§ã¢ã§ãããšä¿¡ã蟌ãŸããããšãã§ããŸãã ããªããããªãã®ã³ãŒãã§ã¢ãžã¥ãŒã«ãæžããŠãããšããããªãã¯ãã®ã¢ãžã¥ãŒã«ãããªãã®ãœãããŠã§ã¢ã§ãããšä¿¡ããããã«ã ãŸãããŸãã
åé¡ã¯ãããã§ã¯ãªããšããããšã§ãã ããã¯ã»ãã®äžéšãã¢ãŒãã£ãã¡ã¯ãã§ãã å°ããªè£œåãã倧ããªè£œåãŸã§ãå€ãã®ã¢ãŒãã£ãã¡ã¯ããçµã³ä»ããããŸãã ãã«ãããã»ã¹å ã§dockerãã¡ã€ã«ã®ããŒãžã§ã³ãæž¡ãå Žåãããã°ãè€æ°ã®ã¢ãŒãã£ãã¡ã¯ããçµã³ä»ããConfigMapã䜿çšããå ŽåããããŸãã ãããŠããã¹ãŠãå«ã1ã€ã®Dockerãã¡ã€ã«ã¯ãããŸããã
ç§ã¯è¯ãåºçºç¹ã«ãªããããããªãå人çãªãªã¹ããæã£ãŠããŸã
å€ãã®ææ¡ããããšæããŸãããã¯ã€ã«ããªãã©ã°ã€ã³ã§ã¯ãªãã Helmãã©ãŒã¯ã®æ¹ãã©ã€ãæããããŸãã CDã®CIã ããšã¯é¢ä¿ãªããšæããŸãã ç§ã¯ãã®ãããªãã©ãŒã¯/ãã©ã°ã€ã³ãæ§ç¯ããªãããšã䞻匵ããŸãããé©åãªè§£æ±ºçã«ã€ããŠè©±ãåããèãåºããŸãã çŸåšã®ã³ãã¥ããã£ã¯ä»ã®ãšããããã»ã©å€§ãããªãããšãèãããšã3ã€ã®ãã«ã ãã©ãŒã¯ã¯å¿ èŠãããŸããã
ããŠãç§ãã¡ã¯ãã¡ãã¡ã§å€ãã®èããæã£ãŠããŸãã æè¯ã®ã·ããªãªã¯æ¬¡ã®ããã«ãªããšæããŸãã
helm ls
ã§é©åãªã¢ããªã®ããŒãžã§ã³ã確èªããæ©èœ2ã€ã®ã¢ãããŒããæäŸãããŠããŸãã
helm install
ã¯ãããã±ãŒãžãã€ã³ã¹ããŒã«ããããã«äœæãããŸãã ãã£ãŒãã®ã€ã³ã¹ããŒã«ããµããŒãããŠããŸãããå¶éããããŸãã helm install
ãåçŽåããŠããã®ç®çãæããããã«æ®ããŠãããŸããã-ããã±ãŒãžãã€ã³ã¹ããŒã«ããŸãã 次ã«ã helm run
è¿œå ããŸããããããã¯ãåçŽåããããããŒãæäŸããããšãç®çãšããŠããŸãã helm package
ãšhelm run
çµã¿åãããŠãäž¡æ¹ã®ã³ãã³ãåŒæ°ãæäŸããŸããããã®ãããªå Žåã«æå³ã®ãªããã®ãé€å€ããŸãã ãapp-version
ãhelm install
cmdã«è¿œå ããŸãã ããã¯ããã®APIãè¥å€§åãããããã±ãŒãžã䜿çšãããšããèããé ããŸããããã±ãŒãžãã€ã³ã¹ããŒã©ãŒãšããŠäœ¿çšãããšããã€ããªãã®ãŒãé ããŸããããã¯ãã»ãšãã©ã§ã¯ãªãã«ããŠããå°ãªããšãäžéšã®ãããžã§ã¯ãã«ãšã£ãŠã¯å®å
šã«çã«ããªã£ãŠããŸãããããã®äž¡æ¹ã®ã¢ãããŒããç§ãã¡ãä»æã£ãŠãããã¹ãŠã®éäºã解決ããããšã«åæã§ããŸããïŒ
ãã©ã°ã€ã³ã¯ãã³ã¢éçºè ããµããŒãããããªãããŸãã¯ãµããŒãããæéããªããäžè¶³ããŠããæ©èœã®åé¿çã§ããããããã©ã°ã€ã³ã§ãããã©ããã¯æ°ã«ããŸããã
Helmã¯ãã®ã€ããªãã®ãŒã«åºã¥ããŠèšèšãããŠãããK8ãOSãšããŠæ±ããããã±ãŒãžãã¢ããªã®ã€ã³ã¹ããŒã©ãŒ/ã¢ããããŒã¿ãŒãšããŠæ±ããŸãã
ããã ããã£ãã ãã«ã ãã£ãŒã[ããã±ãŒãž]ã¯ãKubernetesã®ãrpmã[èšããŸã§ããªã]ãæå³ããŸãã ç§ãåŸãå°è±¡ã¯ãŸã£ãããããŸãããhelmã¯ãã£ãŒãã䜿çšããŠã¢ããªããããã€ããŸãã ãã£ãŒã/ããã±ãŒãžã¯ãk8sçšã«ãã©ãŒãããããããã¢ããªã§ãã
ç§ã¯ããã§å€§äžå€«ã§ãã ããã¯çã«ããªã£ãŠããŸã-æ°ããã³ã³ããããã«ããããšãã«ããã«ããµãŒããŒãæŽæ°ããŠappVersionãã¢ããããå¿ èŠããããŸãã
helm package --app-version
ã³ãã³ãããã§ã«ããããã§ããhelm package --app-version v1.2
=> package [chart] -v1.2.tgzïŒã€ãŸãããpackage [chart] -v1.2.rpmãïŒããŠãç§ã¯ããã®ããããã®ç解ã«èª€ãããããŸããïŒ package-v1.2ãv1.2appVersionã§ãªãå Žåã¯ãã©ãããŠã§ããïŒ ãããæå³ã§ã¯ãªãã§ããããïŒ ããšãã°ãrpmã¯ã¢ããªã®ããŒãžã§ã³ã§ãããããã±ãŒãžã§ã¯ãããŸããïŒã°ã©ãïŒã
ç·šéïŒ
package-v1.2ãv1.2appVersionã§ãªãå Žåã¯ãã©ãããŠã§ããïŒ ãããæå³ã§ã¯ãªãã§ããããïŒ
ããã§ãChart.versionãšChart.appVersionãäžèŽããŠãããšäººã ãã³ã¡ã³ãããŠããçç±ãããããŸãã ããã§ã¯ãåŒæ°ã¯åæ¹åã«ãªããŸã...å®å®ããããã£ãŒãããã«ããåããã¢ããªãpackage-v1.2ã§ããŒãžã§ã³çªå·ãå€æŽãããããšãæåŸ ãããŸãã ããããyamlãã¡ã€ã«ãå€æŽããããšãã«package-v1.2ãChartã®ããŒãžã§ã³çªå·ã«ãªããšäž»åŒµããããšãã§ããŸãã
å¢å ããã¢ããªããŒãžã§ã³ïŒ1.6ïŒãšã¯ç°ãªããå®å®ãããã£ãŒãããŒãžã§ã³ïŒ1.2ïŒãã©ã®ããã«ç®¡çããŸããïŒ package-[version]
ã¯1.2ã«ãªããŸããïŒ ãŸãã¯1.6ïŒ ChartããŒãžã§ã³1.2ããããã€ããããappVersionãããã±ãŒãžåã§å€æŽããããšããŸãïŒ helm package --app-version 1.6
ïŒ
â chart git:(master) â helm package --app-version 1.5 nginx
Successfully packaged chart and saved it to: /Users/Documents/source/docker/nginx/chart/nginx-0.1.0.tgz
:(
....ãšãŠãæ··ä¹±ããŸãã
ãã«ã ãã£ãŒã[ããã±ãŒãž]ã¯ãKubernetesã®ãrpmã[per-say]ãæå³ããŸã
ãã®éãïŒ ããããæã«ã¯ãããå³ããããããé¢åã ãšæãããããããšããããŸããããã¯ã·ã§ãŒãã«ãããå¿ èŠãªå Žæã§ãã
ããŠãç§ã¯ããã®ããããã®ç解ã«èª€ãããããŸããïŒ package-v1.2ãv1.2appVersionã§ãªãå Žåã¯ãã©ãããŠã§ããïŒ ãããæå³ã§ã¯ãªãã§ããããïŒ ããšãã°ãrpmã¯ã¢ããªã®ããŒãžã§ã³ã§ãããããã±ãŒãžã§ã¯ãããŸããïŒã°ã©ãïŒã
ããã¯å¥ã®è°è«ã®åé¡ã§ãããçŸåšãããã±ãŒãžã¯ã¢ããªããŒãžã§ã³ã§ã¯ãªããã£ãŒãããŒãžã§ã³ã«ã¡ãªãã§åä»ããããŸãã çç±ã¯ããããŸããããéã®ã¯ãã ãšæããŸãã ããã¯æŽå²çãªåé¡ã ãšæããŸãããç§ã®èãã§ã¯ãããªããšåãããã«ã package-{app-version}.tgz
ã§ããå¿
èŠããããŸãã
以åã®ã¡ãã»ãŒãžã«ãããšãããŒãžã§ã³ã«ã¯4ã€ã®ã³ã³ããŒãã³ãããããŸãã
ããããã¹ãŠãåå¥ã«ããŒãžã§ã³ç®¡çããã®ã¯é çã®çš®ã§ããããããçŸåšã®ä»çµã¿ã§ãã 1ã€ã®äŸå€ãé€ããŠãããã±ãŒãžã¯ãã£ãŒãããŒãžã§ã³ã®åŸã«ããŒãžã§ã³ç®¡çãããŸãã
ã¢ããªãããã±ãŒãžåãããšããã€ããªãã®ãŒãéžæããå Žåãåãããã»ã¹ã§ã¢ããªãã€ã¡ãŒãžãããã±ãŒãžã®äž¡æ¹ãçæããããããã¢ããªã®ããŒãžã§ã³ã¯å®å šã«çã«ããªã£ãŠããŸãã ãããã£ãŠãé ä¿¡ã¹ãããã«å ¥ããšããã¡ã€ã«ãã©ã®ããã«åŒã³åºãããã©ã®ãã¡ã€ã«ãã€ã³ã¹ããŒã«ããããæããã«ãªããŸãã ä»ã®ãšããããã€ãã©ã€ã³ã§ããã±ãŒãžåãããŒãã³ãŒãã£ã³ã°ããå¿ èŠããããŸã> _ <
@iorlas
Dockerã€ã¡ãŒãžã¯ãä¿¡é Œã§ããå¯äžã®æ å ±æºã§ããæåŸã®ããã±ãŒãžãšããŠãæçµè£œåãšããŠè¡šç€ºãããŠããŸãã ããã§ã¯ãªãã Dockerã€ã¡ãŒãžããæã£ãŠããªãå Žåããããèªåã®ãœãããŠã§ã¢ã§ãããšä¿¡ã蟌ãŸããããšãã§ããŸãã ããªããããªãã®ã³ãŒãã§ã¢ãžã¥ãŒã«ãæžããŠãããšããããªãã¯ãã®ã¢ãžã¥ãŒã«ãããªãã®ãœãããŠã§ã¢ã§ãããšä¿¡ããããã«ã ãŸãããŸãã
ç§ã¯ãã®å£°æã«ã€ããŠèããã®ã«æ°é±éããããŸããããããŠç§ã¯ããªãã«100ïŒ åæããŸãã ããã«ãç§ãã¡ã®æèŠã®éããã©ãããæ¥ãŠããã®ããããããŸãã...
ç§ã¯ãäžé£ã®ããšãä¿¡ããããªãã»ã©ããŸãå®è¡ããå°ããªã³ã³ããŒãã³ãããã·ã¹ãã ãæ§ç¯ããå¿ èŠããããšããéçºãšå±éã®å²åŠã«åŸããŸãïŒUNIXãèããŠãã ããïŒã ãã ããæè¿ã®ã·ã¹ãã ã§ã¯ããã¢ããªã±ãŒã·ã§ã³ãããããã®å°ããªããŒã«ã®ã°ã«ãŒããšããŠæ±ãå ŽåããããŸãã Dockerã¢ãŒãã£ãã¡ã¯ãã ãã§ãªããä»ã®ãµãã³ã³ããŒãã³ãïŒDockerã¢ãŒãã£ãã¡ã¯ãã®å ŽåãããïŒã«äŸåããŠããå Žåãã¢ããªã±ãŒã·ã§ã³ã®ãããŒãžã§ã³ããã©ã®ããã«ããŒã¯ããå¿ èŠããããŸããïŒ ãã®ã¿ã€ãã®ã«ãããªã³ã°ãæãå§ãããšããããã¯ããã»ã©ç°¡åãªçãã§ã¯ãããŸããã
ãã®è³ªåã«çããããšã¯ããã®åé¡/èŠæ±ã®ç¯å²ãã¯ããã«è¶
ããŠããŸãã åé¡ã®æ ¹æ¬ã«ç«ã¡è¿ãããã«ã install
ãšrun
åºå¥ããããšæããŸãã ã»ãã³ãã£ã¯ã¹ã®çç±ããã install
ã¯ããã±ãŒãžã«å¯ŸããŠã®ã¿åäœããå¿
èŠãããã run
ã¯ããã³ãã¬ãŒããçæããŠ_ç¶æ
ãç¶æããã«_é©çšããããã»ã¹ãéããŠãã«ã ããå®è¡ãããå¿
èŠããããŸãã
å€ãã®å Žåãå°æ¥ã®ãã£ãŒããã©ã®ããã«å±éããããã確èªããããã«helm template
ã䜿çšããå¿
èŠããããŸãããvi-ca-vi run
ãçºçããã®ãç£èŠããããšã«ã¯å€ãã®çšéããããŸããéçºãã€ãã©ã€ã³ã®ã¹ã¿ãŒã«ãªããšããäºéã®ç®çïŒé床ãéåžžã«éãå Žåã¯ããã±ãŒãžã«äŸ¡å€ããªããããå¿
ãããããã±ãŒãžãä¿æããå¿
èŠã¯ãããŸããïŒã
MySQLãã£ãŒãã«ã¯ãè¿œå ã®åé¡ããããŸãã ããã§ãããã«ã ãªã¹ãã«MySQLããŒãžã§ã³ãã€ã³ã¹ããŒã«ãããŠããã®ãèŠãæ¹ãè¯ãã§ãããããããããããã®ããŒãžã§ã³ã®äžéšã§ããImageã¿ã°ãããã®ã§ãããã¯ããŒãžã§ã³ã®äžéšã«ãããŸããã
ç§ãèšã£ãããã«ãå®ç§ãªå®å®ã§ã¯ãã€ã³ã¹ããŒã«ããããªããžã§ã¯ãã®ããŒãžã§ã³ãã€ã³ããã¹ãã¯ããããŸãã ããããããã¯ç§ã«ã¢ã€ãã¢ãäžããŸãã
ãã£ãŒããã©ã®ããã«å±éããããã«ã€ããŠç§ãæ©ã段éã§èšã£ãããšã念é ã«çœ®ããŠãããšã helm describe
ãã©ã°ãä»ããŠãã¹ãŠã®ãµãã³ã³ããŒãã³ããåºããããšãã§ãããã©ããªãã§ããããã ïŒãã©ã°ä»ãã®ã¢ããªããŒãžã§ã³ã調æŽãããã®åååã®äžéšã§ããïŒããã¯ã¢ããªããŒãžã§ã³ãæå®ããå¿
èŠã解決ããªããããããã€ã³ã¹ããŒã«ãããŠããããŸãã«ãããããæ確ãããŸããã
ç§ã¯ãã¹ãŠã®ã³ã¡ã³ããèªã¿ãŸãããããã®åé¡ã«ã€ããŠå®å šã«é©æ ŒãªæèŠãæã£ãŠããŸããã
ç§ã®äŒç€Ÿããã©ã€ããŒãHelmãªããžããªãç¶æããŠããŠããã£ãŒãã®90ïŒ
ãäž»ã«1ã€ã®ã³ã³ããä»æ§ãæã€1ã€ã®ãããã€ã¡ã³ãã§ãããããããã«å°çããŸããã ãã®ãããªå Žåã appVersion
ã䜿çšããŠç»åã®ã¿ã°ãäžèŠ§è¡šç€ºã§ããã°ãå€æ°ã®éè€ãé¿ãããã®ããŒãžã§ã³ãhelm version
å®è¡ããŠããããšã確èªã§ããŸãã
ãã®ã¹ã¬ãããèªãã åŸãããã¯äŸ¿å©ã ãšæããŸãããããŒãžãããå Žåã«äœ¿çšããã®ã¯æ¬åœã«çŽ æŽãããã¹ã¬ããã§ãã
ãªã¯ãšã¹ãã«å¿ããŠãåã®ã¹ã¬ããããã®æåŸã®è¿ä¿¡ãä»ã®äººãé²èŠ§ã§ããããã«å«ããŸã
ããŒãã ããã¯ã appVersion
ãDockerã¿ã°ïŒè«ççãªé¢é£ä»ãïŒã«çµã³ä»ãå§ãããšãç©äºãäºãã«å¯Ÿç«ãå§ãããšããã§ãã ããã¯ç§ãã¡ãåé¡ãæ±ããŠãããšããã§ããããªãã¡ç§ãäžã§è¿°ã¹ãéçºã·ããªãªã version
ã¯SemVerã§ããå¿
èŠããããããDockerã¿ã°ãã°ã©ãversion
ãšããŠäœ¿çšããããšã¯ã§ããŸããã
appVersion
ããã£ãŒãã«è¡šç€ºãããŠããªãå Žåãéçºè
ã«èŠèŠçãªããŒãžã§ã³ã®éããã©ã®ããã«äœæããŸããïŒ
k8sãã¢ããªã±ãŒã·ã§ã³ãšã©ã®ããã«é£æºãããã«ãããéçºè ã®äžçã§ã¯ãã¿ã°ããŒãžã§ã³ãå šé¢çã«èš±å¯ããæ¹æ³ãããã€ããããŸãã
ããŒãžã§ã³ã¯ã»ãã³ãã£ã¯ã¹ãªãã§çŽç²ã«é åºä»ããããŠãããããããŸãã¯^æŒç®åã«é¢ããŠSemVerã®ãããªããšã¯ã§ããŸããã§ããã
ãªãã ãã§ããïŒ ããã¯ãphp composer
ã䜿çšããŠåžžã«è¡ããŸãã SemVerã䜿çšããããšããããŒãžã§ã³ç®¡çã¹ããŒãã§åçŽã«è§£æãŸãã¯ç¡èŠãããæååããŒãžã§ã³ã䜿çšããããšãã§ããŸããã€ãŸãã version
ãSemVerçªå·ã§ãªãå Žåã¯ã ~
ããã³^
å«ããªãã§ãã ããã
ïŒ7299ã«ã€ããŠã®ç§ã®ã³ã¡ã³ããåŒçšã
.debããã³.rpmããã±ãŒãžã®å ŽåãããŒãžã§ã³æååã¯ç¹å®ã®æ¹æ³ã§ïŒãã€ãã³ã«ãã£ãŠïŒåå²ãããŸããããããã¯APIäºæã§ãããªã©ã®æå³çãªæå³ããªãããããGiveãã®ãããªåŒãçæããããšã¯ã§ããŸããã SemVerã®å Žåãšåæ§ã«ããææ°ã®APIäºæããŒãžã§ã³ãæããŠãã ããããŸãã¯ãAPIãå€æŽãããŠããªãææ°ããŒãžã§ã³ãæããŠãã ãããã
DebianãšRedHatã®äž¡æ¹ãããã±ãŒãžãšã€ãªã¢ã¹ã䜿çšããŠãäžè¬çã«ããŒãžã§ã³çªå·ã«åºã¥ããŠãããã®ãŠãŒã¹ã±ãŒã¹ïŒããã³ABIäºææ§ïŒãå®çŸããããšãæãåºããŸãã ããã«ãããããã±ãŒãžåãšé åºä»ãã®ã¿ã®æ¯èŒã®ã¿ã䜿çšããŠãåççã«äžè²«ããåäœãå¯èœã«ãªããŸããã
äžè¬çãªãããã¯ãšããŠã補åã«Helmãã£ãŒãã䜿çšããæ¹æ³ã¯ãããŸããŸãªãµãŒãã¹ãããã±ãŒãžåããããšã§ãã ãã ããDockerã€ã¡ãŒãžã¯åãªãã¢ãŒãã£ãã¡ã¯ãã§ããããã®ååã¯ãµãŒãã¹ããŒãžã§ã³ã«ãã£ãŠæ±ºãŸããŸãããµãŒãã¹ããŒãžã§ã³ã§ã¯ãAPIãæäŸããããSemVerãæ¡çšããŠããŸãã
ç§ãã¡ã®CIãã€ãã©ã€ã³ã¯ãã³ãŒããšé¢é£ã¹ã¯ãªããã®gitãªããžããªãå€æããã€ã³ã¹ããŒã«å¯èœãªHelmãã£ãŒããçæããDockerã€ã¡ãŒãžãåç §ããŸãã Dockerã€ã¡ãŒãžã®ã¿ã°ã¯ããŠãŒã¶ãŒã«ãšã£ãŠèå³æ·±ããã®ã§ã¯ãããŸããã 次ã«ãããããç±æ¥ããgit SHAã§ã¿ã°ä»ããããªãªãŒã¹ã§äœ¿çšãããã€ã¡ãŒãžã«ã¿ã°ãä»ãçŽããŸãã åã¿ã°ä»ãã®äž»ãªå©ç¹ã¯ããããã®ã¿ã°ã解é€ããªãããšãç¥ã£ãŠããäžæ¹ã§ãçæéã§git-SHAããŒãžã§ã³ã®ã¿ã°ã解é€ã§ããããšã§ãã
version
ã«ã¯ãœãããŠã§ã¢ã®æ£ç¢ºãªããŒãžã§ã³ãå«ãŸããŠããã appVersion
ã«ã¯åããã®ãæååãšããŠå«ãŸããŠãããããHelmã®åäœã«éåžžã«æºè¶³ããŠããŸãã Dockerãªããžããªã§ã
https://github.com/helm/charts/ã§ãã£ãŒããããŒãžã§ã³ç®¡çãããæ¹æ³ã«ã¯å°ãäžæºããããã£ãŒãããœãããŠã§ã¢ã§ã¯ãªãããŒãžã§ã³ç®¡çãããŠããããããã€ããŒãªïŒå®å®ããïŒãã£ãŒãããšãã©ãçºçããããã§ãversion
ãããã£ãŒãã«å«ãŸããŠãããã®ã®ããŒãžã§ã³ããåé¢ãããšãããã¯èµ·ããããããåé¿ããã®ãé£ããçµæã ãšæããŸãã
å éšã®ãå€éšã§æ¶è²»ãããã©ã€ãã©ãªãšã¢ãŒãã£ãã¡ã¯ããããŒãžã§ã stable / prometheus-operatorãã£ãŒãã«ãåæ§ã®åé¡ããããŸãã ããã«ã¯ããŸããŸãªãœãããŠã§ã¢ãå«ãŸããŠããããããã©ã®ããŒãžã§ã³ã䜿çšããŠããŸããïŒããšãã質åããããŸãã ç¹ã«ãã¢ããã°ã¬ãŒãããŠãå®å šã§ããïŒã ç§ãã¡ãšåãããŒãžã§ã³ã®Agonesãããçããã®ãã¯ããã«é£ããã§ãã
@jrkarnes
ãã£ãŒããã©ã®ããã«å±éããããã«ã€ããŠç§ãæ©ã段éã§èšã£ãããšã念é ã«çœ®ããŠãããšããã«ã ã«ãã©ã°ãä»ãããã¹ãŠã®ãµãã³ã³ããŒãã³ããå±éã§ãããšãããã©ãã§ããããã ããã§ã¢ããªã®ããŒãžã§ã³ãæå®ããå¿ èŠã¯ãªããªããŸãããã€ã³ã¹ããŒã«ãããŠãããã®ãããæ確ã«ãªããŸãïŒããã¯ããã©ã°ã䜿çšããŠã¢ããªã®ããŒãžã§ã³ã調æŽããããšã®èåŸã«ããåååã®äžéšã§ãïŒã
絶察ã«èŠããã§ãã ããšãã°ãïŒ6932ã«é¢é£ããæ©èœãªã¯ãšã¹ãããããŸãã
ãã£ã¹ã«ãã·ã§ã³ãæ¯ãè¿ã£ããšããã appVersion
ãDockerã€ã¡ãŒãžã®ã¡ã¿ããŒã¿ã«é¢é£ããŠãããšããèãã¯ãå°ãªããšãäžéšã®ã°ã©ãïŒãŠãŒã¶ãŒãäž»ã«æ±ã£ãŠããã°ã©ãïŒã®ããã«ãç§ãã¡ã®ãŠãŒã¹ã±ãŒã¹ã«å®å
šã«ã¯é©åããŸããã Dockerã€ã¡ãŒãžã¯å«ãŸããŠããŸãããã»ãšãã©ã®å Žåãå
±æãªãœãŒã¹ïŒJWTå
¬ééµã values.yaml
ïŒã®ãã¹ãã«å ããŠãä»ã®ã°ã©ããååŸããããã®requirements.yaml
ããŸãã
appVersionãDockerã€ã¡ãŒãžã®ã¡ã¿ããŒã¿ã«é¢é£ããŠãããšããèãã¯ãå°ãªããšãäžéšã®ã°ã©ãã®ããã«ãç§ãã¡ã®ãŠãŒã¹ã±ãŒã¹ã«ã¯çµ¶å¯Ÿã«é©åããŸããã
ç§ã¯ãããæå³ããã䜿çšã§ãã£ããšèšã£ãŠããã®ã§ã¯ãããŸããã ç§ã¯ãããè«ççãªé¢é£ã§ãããšè¿°ã¹ãã ãã§ãã ããªãã¯ãŸã appVersion
ãå
éšyamlã®ãè«çã³ã³ããããšããŠäœ¿çšããŠããŸãã
version
ãSemVerã«ããã¯ããããšã§ã©ã®ãããªã¡ãªãããããã®ãââãŸã ããããŸããã ãã«ã ã¯version
ïŒããã³appVersion
ïŒã解æãã¹ãããŠãããããå
ã«é²ãããšãã§ããŸããïŒ
ç§ã®ãã€ã³ãã¯ã appVersion
ããŸã£ãã䜿çšããŠããªãããšã ãšæããŸããéåžžãChart.yamlã«ã¯ååšãããååšããå Žåã¯version
ãšåãã§ãã
version
ãSemVerã«ããã¯ããå©ç¹ã¯ãããŸããŸãªSemVeræŒç®åã䜿çšã§ããã€ã³ã¹ããŒã«ã«ãã£ãŠé åºä»ããšäžèŽãçæããããã«ç¢ºå®ã«è§£æã§ããããšã§ãã
RPMãšDEBã®ããã±ãŒãžã³ã°ã·ã¹ãã ã¯ãããŒãžã§ã³ç®¡çã·ã¹ãã ãç°ãªãæ§æã䜿çšããããšãé€ããŠåããã®ã§ãããã»ãã³ãã£ãã¯è§£æã®çç±ããå¶éãããæ§æã§ãã ãŸããæ°ã«ãªãã»ãã³ãã£ã¯ã¹ãç°ãªããŸãã
helm / chartsãªããžããªãã©ã®ããã«å®è¡ãããããèãããšãDEBãŸãã¯RPMã¹ã¿ã€ã«ã®ããŒãžã§ã³ãæã€åäžã®version
ãã£ãŒã«ãã¯ãSemVerãšappVersion
æååãããè¯ãéžæã ã£ããšæããŸãã ããããããã¯å®å
šã«ç°ãªãããã§ã«èªæµ·ãããè¹ã§ãã ãããŠãç§ã®è¥ãé ã¯ã¢ããã¹ããªãŒã ãã³ããŒãšDebianããã±ãŒãžã£ãŒã®äž¡æ¹ãåããŠããã®ã§ããããã§ãã³ãããå¿
èŠãããããŒãžã§ã³çªå·ã¯ã©ãã§ããïŒã ç§ãã¡ã®ã version
ã¯1ã€ã®çå®ã§ããããã±ãŒãžã§ã
ãSemVerã®å Žåããããã®åé¡ã¯ãSemVerããææžãã§æžãããã®ãããšããã¯ã®ãªãDebianããã±ãŒãžããŒãžã§ã³ãªã©ãä»ã®å Žæã§ééãããã®ãšããŒãµãŒã§åºå¥ã§ããªã
ããã«ã¡ã¯ã ãã®æ©èœã«é¢ãããã¥ãŒã¹ã¯ãããŸããã
ãã¹ãŠã®ã³ã¡ã³ããèªãã åŸãç§ã¯ãããæ¬åœã«åœ¹ç«ã€ã ããããšãããããŸãã
å®éãç§ãã¡ã®äŒç€Ÿã§ã¯ãåããã¯ãããžãŒã䜿çšããåãæ¹æ³ã§å±éãããè€æ°ã®ã¢ããªã±ãŒã·ã§ã³ãå
¥æãããããéè€ãé¿ããããã«ãç°ãªãã¢ããªã±ãŒã·ã§ã³ã«å¯ŸããŠ1ã€ã®ãã£ãŒãããããŸãã
æ°ãããã£ãŒãã¯ãã€ã³ãã©ã¹ãã©ã¯ãã£ã«å€æŽããã£ãå Žåã«ã®ã¿ããã±ãŒãžåãããŸãã
ãããŠãç¹å®ã®å€ãã¿ã°ãç°å¢å€æ°ãšããŠé©çšããã®ã¯ããªãªãŒã¹ãã¢ããã°ã¬ãŒããŸãã¯ã€ã³ã¹ããŒã«ãããšãã ãã§ã...
ããã±ãŒãžåããããã«ã ãã£ãŒãã¯ãããçš®é¡ã®ã¢ããªã±ãŒã·ã§ã³ã«æåŸ ãããkubernetesãªãœãŒã¹ãšæ§é ãè¡šãæœè±¡åã¬ã€ã€ãŒã§ãããšèããŠãããããã®çš®ã®ã¢ããªã±ãŒã·ã§ã³ããããã®ç¹å®ã®å€ã§ãã®ç°å¢ã«ãããã€ãããããšèšãã®ã¯ããããã€äžã®ã¿ã§ãã
ãã«ã ãªã¹ãã«ã¯ãªãªãŒã¹æ å ±ã衚瀺ãããã¯ããªã®ã§ããã®ãªãªãŒã¹å ã§ãããã€ãããã¢ããªã®ããŒãžã§ã³ã確èªã§ããã¯ãã§ãã
åæ§ã®åé¡ã«ã³ã¡ã³ããæ®ããŸããhttps://github.com/helm/helm/issues/7517
ãããvalues.yamlã§ãªãŒããŒã©ã€ãããæ©èœãè¿œå ã§ããŸããïŒ
次ã«ãç¡æã®ã³ãã³ãã©ã€ã³ãªãã·ã§ã³ãååŸããŸã--set
ç§ãã¡ãã©ããªã¢ããªã±ãŒã·ã§ã³ã«ããã«ã ã䜿ãããšãããšãããã¯çµ¶å¯Ÿã«ã²ã©ãããšã§ãã æ¬çªã¢ããªã±ãŒã·ã§ã³ã«ã»ãã³ãã£ãã¯ããŒãžã§ãã³ã°ã䜿çšãã人ã¯èª°ãããŸããã
åæããŸãã çŸåšãäžå€ã®_application_ããŒã¹ã®ãã£ãŒãã«ChartMuseumã䜿çšããããšã¯ãããã¯ãããŠããŸãã ãã£ãŒãããŒãžã§ã³ïŒ=ã¢ããªããŒãžã§ã³ããã£ãŒããã¥ãŒãžã¢ã ããã®ãªãªãŒã¹ã¯äžå¯èœã§ãã
ç§ã¯äžèšã®è°è«ã®å€ãïŒãã¹ãŠã§ã¯ãªãïŒãèªãã ã®ã§ãããã€ãã®ãã€ã³ã/ãã¥ãŒãç¹°ãè¿ããŠããå Žåã¯ç³ãèš³ãããŸããã ãã£ãšèãæããã察å¿ãææ¡ããããšããŠããŸãã
helm ls
ãå®è¡ãããšãã«appVersionãèŠãã®ã奜ãã§ãæŠå¿µçã«.Values.image.tag
ãã移åããã®ã¯è¯ãããš
ïŒãã£ãŒãïŒ version
ã¯ãã£ãŒãã®ããŒãžã§ã³ã§ããã appVersion
ã¯dockerã¿ã°ã§ãããšç¢ºä¿¡ããŠããŸãã CIããã»ã¹ã§ã¯ãdockerã¿ã°ã¯gitã¿ã°ã§ããããŸãã
ãŸããè€æ°ã®ãã€ã¯ããµãŒãã¹ããããå¯èœãªéããã©ã€ãªç¶æ
ãç¶æããããšèããŠããŸãã java-springbootã¢ããªã®å€§éšåã¯åãã§ãããããããŒã«ã«ãã£ãŒããªããžããªã«æ±çšãã£ãŒãããããŸãã Tomcatã¢ããªã®å€§éšåã¯åãã§ãïŒãã ããspringbootã¢ããªãšã¯ç°ãªããŸãïŒã ä»ã®ãã¯ãããžãŒã«ã€ããŠã¯ãããããç¹°ãè¿ããŸãã 次ã«ãå±éãããŸããŸãªç°å¢ãééãããšãã«ãç°å¢äŸ¡å€ããããŸãã
ãããã®åãã€ã¯ããµãŒãã¹ã¯ãCI / CDãä»ããŠäžè¬çãªãã£ãŒããå©çšããŸã
äŸãã°helm upgrade release-name private-repo/generic-chart --values <environment>.yaml --set image.tag=<docker tag from build step> --namespace <environment> --install
ç§ã䜿çšããããšã奜ãã ãã.Chart.AppVersion
ã§ã¯ãªã.Values.image.tag
ããç§ã¯ç§ãã¡ã®çµç¹ã®ããã®å¹ççãªæ¹æ³ã§å±éããããšãã§ããªããã°ãªããŸããã
helm ls
ãå®è¡ãããšã CHART
ãšAPP VERSION
äž¡æ¹ããããããã°ã©ãã®ããŒãžã§ã³å
šäœãã¢ããªã®ããŒãžã§ã³ãšäžèŽããå¿
èŠããããŸãã ãã®ã«ãŒããç¶ãããšã人ã
ã¯çå€ãããããæç¹ã§ãããžã§ã¯ãã¯åå²ããŸãããªããªãããã®èãæ¹ã¯å³ããããŠãå€ãã®äººã
ãæ±ããŠãããã®ã§ã¯ãªãããã§ãã ãŸããã image.*
ã nameOverride
fullnameOverride
åé€ããŸããããimageã*ã¯deployment.yamlãªã©ã«ããŒãã³ãŒãã£ã³ã°ã§ããŸãããšããã«ãŒãããã©ãå§ããŠããŸãã éåžžã«äŒŒãçç±ã§ã
æåŸã®ãã€ã³ãã¯ãå€ãã®ãããªãã¯ãã£ãŒãã¯ã䜿çšããDockerã³ã³ããã®ããŒãžã§ã³ãšæ£ç¢ºã«äžèŽããªããšããããšã§ãã ã¡ãžã£ãŒããŒãžã§ã³ãšãã€ããŒããŒãžã§ã³ãããŒãªã³ã°ã¿ã°ã§ããããããããŒãžã§ã³ã®ã¿ãããŒãªã³ã°ãããŠããªãalpineãnginxãªã©ã®æãããç¥ãããŠããDockerã³ã³ãããèŠãŠãã ããã ãã¹ãŠã®ãããããŒãžã§ã³ã«1ïŒ1ã®ãããã³ã°ããããšãã»ãšãã©ãŸãã¯ãŸã£ããã¡ãªããããªããããããªãã®ãªãŒããŒããããçºçããŸãã
ããŸããŸãªçç±ã§æ¬çªç°å¢ãææ°ããŒãžã§ã³ã«ã¢ããã°ã¬ãŒãã§ããªãããšã¯çãããããŸããã æ¬çªç°å¢ã§ã®ããŒãªã³ã°ããŒãžã§ã³ã«ã€ããŠã¯ãã»ãšãã©ã®å Žæã«è©±ããªãã§ãã ããã
äžèšã®ãã¹ãŠã®çµæã¯ãããªããã«ã ã¯ãã£ãŒããªããžããªã䜿çšã§ããã®ãããšããçåãæããããŸãã
ã€ã³ã¹ããŒã«/ã¢ããã°ã¬ãŒãæã«appVersion
ãäžæžãã§ããªããšããããšã¯ããã£ãŒããããŠã³ããŒãããŠè§£åããããã€ã³ã¹ããŒã«/ã¢ããã°ã¬ãŒãããšã«appVersion
ç·šéããå¿
èŠãããããšãæå³ããŸãããŸãã¯ãå¿
èŠãªDockerã³ã³ãããã«ããã±ãŒãžåããããšãã§ããŸãããã£ãŒãã
äŸå€ã¯ãå®å
šã«æšæºçãªã€ã³ã¹ããŒã«ãè¡ãããŠããå Žåã§ããããã¹ã¯ãŒãã®èªåçæãªã©ãããã£ãŠãã§ã«å€ãã®è°è«ããããŸãã
æåŸã®æ®µèœã¯ããããã®ç©ŽãäžããŠèªåèªèº«ãé
ã«æããŠããããã«èŠããŸãããããappVersionã¯dockerã¿ã°ã§ãããã³ãã³ãã©ã€ã³ãŸãã¯å€ãä»ããŠappVersionãèšå®ããããšã¯ã§ããŸããããšãããšããã§ãã
@timothyclarke ïŒããã§èª¬æããhelm upgrade
ãŠãŒã¹ã±ãŒã¹ã§ã¯ãæåã«helm package
ã䜿çšãããšã --version
ãš--app-version
ãèšå®ã§ããŸãã helm install
ã«ããŠãCIã¢ãŒãã£ãã¡ã¯ããšããŠä¿æã§ããŸããããã«ããã --set
ãã©ã¡ãŒã¿ãŒãè¿œå ããå¿
èŠããªããªããããã€ã³ã¹ããŒã«ã®åçŸæ§ãåäžããŸãã ãã£ãŒãã¯ãžã§ããªãã¯ã§ã¯ãªããããããžã§ããªãã¯ãã£ãŒããã®åŽé¢ã¯ãããŸããããããã«ç§»è¡ããŸããã
+g<shortCommitSHA>
ãããªãã«ãã¡ã¿ããŒã¿ãVersion
ã«è¿œå ããè¯ãæ©äŒã§ããããŸãã
ïŒ7517ã«ãããšãCIãã¹ãã¯ã©ã¹ã¿ãŒã«ã€ã³ã¹ããŒã«ããåã«image.tagãæžãæããŠããäžé£ã®sed
åŒã³åºããåé€ããåŸã§ããã±ãŒãžåãããšãã«åã³åé€ããããšãã§ããŸããã
ãã®ã¢ãããŒãã¯ãç¬èªã®ãã£ãŒããäœæããŠããå Žåãç¹ã«ãã§ãã¯ã¢ãŠãæã«ãã£ãŒããœãŒã¹ããã€ã³ã¹ããŒã«ããŠããå Žåãã»ãšãã©ã®äººãããã§çŽé¢ããŠããåé¡ãå®éã«è§£æ±ºããå¯èœæ§ããããŸãã ãªããžããªããã®ãã£ãŒãã«ãã®æ©èœãå¿ èŠãªå Žåã¯å®éã«ã¯åœ¹ã«ç«ã¡ãŸããããããã¯ããã«ããã»ãšãã©ã®äººãçŽé¢ããŠããåé¡ãšã¯ç°ãªãåé¡ã ãšæããŸããïŒ
ç§ã«ãšã£ãŠãã€ã³ã¹ããŒã«æã«ã¢ããªã®ããŒãžã§ã³ïŒãŸãã¯ããŒãžã§ã³ïŒããªãŒããŒã©ã€ãããããšã«ãããªã¹ã¯ã¯ããã£ãŒããåäœæããããšããŠããä»ã®èª°ãã«ã¯ããããè¡ãããã»ã©ã¯ã£ãããšèŠããªãããšã§ãã å€ã®ãµããŒãã«äœããã®åœ¢ã§ãããã³ã°ãããŠããªãéãã helm get values -o yaml
ã䜿çšããŠã°ã©ãã®çŸåšã®æ§æãæœåºããŠãååšããªããããã©ã€ãã°ã©ãã®ãããã€ãåŸããããã®ãšã¯ç°ãªããã®ã«ãªããŸãã helm install <some way to specify a particular package> --values <values from helm get values>
ãããšãã°ããã¹ãã»ããã¢ããã§æ¬çªç°å¢ã§èŠãããåé¡ãåçŸããããšããå Žåã
ç§ã«ãšã£ãŠãã€ã³ã¹ããŒã«æã«ã¢ããªã®ããŒãžã§ã³ïŒãŸãã¯ããŒãžã§ã³ïŒããªãŒããŒã©ã€ãããããšã«ãããªã¹ã¯ã¯ããã£ãŒããåäœæããããšããŠããä»ã®èª°ãã«ã¯ããããè¡ãããã»ã©ã¯ã£ãããšèŠããªãããšã§ãã å€ã®ãµããŒãã«äœããã®åœ¢ã§ãããã³ã°ãããŠããªãéãã
helm get values -o yaml
ã䜿çšããŠã°ã©ãã®çŸåšã®æ§æãæœåºãããšãããã«ã¯ååšããŸããã
ããªãã¯é ã«éãæã¡ãŸããã ããã¯ãåæ¥ããvalues.yml
èãããã¯ãã§ãã
ç§ã¯ãã®æ©èœã«å¯Ÿããå²åŠçãªè°è«ãç解ããŠããŸããããã£ãŒã«ããã©ã¯ãã£ã¹ã¯ããããç§ãã¡ãå«ã人ã ã«å€§ãã«åœ¹ç«ã€ããšã瀺ããŠããŸãã
ç¹ã«ããã§ã¯èšå®ã§ããªãããã values.yml
ãä»ããŠã¢ããªã®ããŒãžã§ã³ãèšå®ã§ãããã£ãŒããæ°å€ããããŸãã
ãããè°è«ãããŠãããã©ããã¯ããããŸãããïŒCtrl + Fããã°ããæŒããŠããã¬ãŒã¹ãèŠã€ãããŸããã§ããïŒã代æ¿ãœãªã¥ãŒã·ã§ã³ãšããŠappVersion
ãŸãšããŠåé€ããã®
çŸåšã appVersion
ã¯äžçš®ã®ãç¹å¥ãªãå€ãšããŠæ±ãããŠããŸãã å¯èŠæ§ãæäŸããããã«ãããšæããŸããããšãã°ãPrometheusã®ãã£ãŒãããŒãžã§ã³123.5.6ã䜿çšã§ããŸãããappVersionïŒ2.17.1ã䜿çšããã®ã§ãã©ã®ã»ãã¥ãªãã£ãããããŒãžã§ã³ããããã©ã®Prometheusæ©èœãæåŸ
ã§ããããããããŸãã helm ls
ã䜿çšããŠæ€çŽ¢ã§ããŸãã
ç§ã¯ãããããã€ãã®ç°ãªãæ¹æ³ã§æäŸãããå¯èœæ§ããããšæããŸãã ãã¶ããªãªãŒã¹ã©ãã«çµç±ïŒ ãŸãã¯ã kubectl
å¯èœãªããšãšåæ§ã«ããã¹ãŠã®ãªãªãŒã¹ã§jsonPath
ã¯ãšãªãå®è¡ããããšãã§ããŸããäŸïŒ
kubectl get nodes -o jsonpath='{.items[*].status.addresses[?(@.type=="ExternalIP")].address}'
次ã«ããã®ãµããŒãã¯ã helm
èªäœã«ãã£ãŠåŒ·å¶ãããã®ã§ã¯ãªãããã¹ããã©ã¯ãã£ã¹ã«ã·ãããããŸãã ããããªã³ãããããšãã§ããŸãã
äžæ¹ãå€ãã®äººãappVersion
æ¢åã®å®è£
ã«äŸåããŠããå¯èœæ§ãããããããèæ
®ããå¿
èŠããããŸãã
ãã¶ãäžæ©äžãã£ãŠããªãæ£ç¢ºã«appVersion
ãè¿œå ãããã®ããç解ããããšãããã®åé¡ã®è§£æ±ºã«åœ¹ç«ã€ã§ããããïŒ
@bokysan以åã¯values.yaml
ã«ãããŸãããã Chart.yaml
ã«ç§»åãããŸããã helm ls
å
šäœã§ã次ã®ãããªã³ãã³ããå®è¡ããã®ã§ã¯ãªãããã£ãŒããšDockerã¿ã°ã®äž¡æ¹ã衚瀺ãããŠãããšæããŸãããªã®ã§kubectl get deployment <release name> -o jsonpath='{.spec.template.spec.containers[0].image}'
@TBBleç§ã¯ããªãã®ããããã®ãã€ã³ãã«å¯ŸåŠããŸãããããã¯åã®æçš¿ãšåãããããã®æçš¿ã«ãªããŸãã ãã®åé¡å šäœã¯ãå ¬éãªããžããªã®ãã£ãŒããèŠãã ãã§ã¯ãäžè¬çãªãã£ãŒãã¯æå¹ãªãŠãŒã¹ã±ãŒã¹ã§ã¯ãªããšå€æãã人ã«åž°çãããšæããŸãã
initContainersãšãµã€ãã«ãŒã®äœ¿çšãéå§ããå¿
èŠããããšããã«ãappVersionã®åæå
šäœããã©ããã«ãªããŸãã å®éã®äŸãæãããšãçŸåšç®¡çããå¿
èŠã®ãããããžã§ã¯ãã®1ã€ã«ãphpãµã€ãã«ãŒãåããnginxããããŸãã nginxã¿ã°ãšphpã¿ã°ã¯é »ç¹ã«ã¯å€æŽãããŸããã phpã³ã³ãã/ããŒãžã§ã³ã¯ãã³ãŒããäœæããéçºè
ã«ãšã£ãŠéåžžã«éèŠã§ãã æãé »ç¹ã«å€æŽãããã³ã³ããã¯ãã³ã³ãã³ããæäŸããinitContainer
ã§ãã
appVersion
ãinitContainer
ã php
ã³ã³ããã«èšå®ããŸããããããšãnginx
ã«èšå®ããŸããïŒãããã®ãããããéžæããããšã§ã倱ãããæ
å ±ã¯äœã§ããïŒ
ããããŠãŒã¶ãŒã«ãšã£ãŠéèŠã§ãããªããããã¯ç¢ºãã«PHPããŒãžã§ã³ã§ãªããã°ãªããŸãããïŒ ããã¯ããªãã宣äŒããŠãããã®ã§ãã appVersionã«3ã€ãã¹ãŠã貌ãä»ããããšãã§ããŸããããã¯ãçµå±ã®ãšããããªãŒããã¹ããã£ãŒã«ãã§ãã
appVersion
==ã³ã³ããç»åã¿ã°ã匷å¶ãããå Žåã¯ãéèŠãªãã£ãŒããã€ãŸãè€æ°ã®ã³ã³ããããããã£ãŒãããŸãã¯ã³ã³ããããªããã£ãŒãã§ã¯é£ããããšãããããŸãã ããã¯å®éã«ã¯ããã®ãã€ã³ãã§ã¯ãããŸããããããªããã°ããã¯imageVersion
ã§ãããã åäžã®ã¢ããã¹ããªãŒã ã¢ããªãããã±ãŒãžåããå Žåã¯ããã®ããŒãžã§ã³ã䜿çšããŸãã è€æ°ã®ã¢ããã¹ããªãŒã ã¢ããªã®ããã±ãŒãžãäœæããå Žåã¯ãprometheus-operator's chartãªã©ã®1ã€ãéžæããããappVersionãç¡èŠããŸããããã¯ãªãã·ã§ã³ã®ãã£ãŒã«ãã§ãã
ãã£ãŒããœãŒã¹ãã¢ããªã±ãŒã·ã§ã³ã®_äžéš_ã§ããå ŽåïŒAgonesãªã©ïŒã appVersion
空çœã®ãŸãŸã«ããããããã«äŸåããããŒã«ãããå Žåã¯version
ããã³ããŒããŸãã
ãããã®ããšã¯ã©ããhelm install
æéã®æ±ºå®ã§ããå¿
èŠã¯ãããŸããã åã«è¿°ã¹ãããã«ã helm package
ã¯ãããµãŒãããŒãã£ã®ã°ã©ãã®ã€ã³ã¹ããŒã«æã«å¥ã®ã¢ããã¹ããªãŒã ããŒãžã§ã³ãåãæ¿ããã以å€ã®ãã¹ãŠã®ã¯ãŒã¯ãããŒã«ååé
ããŠããã --values
ãŸãã¯--set
ããå¿
èŠããããŸãã
æ£çŽãªãšãããå®éã«æ¬ èœããŠããæ©èœã¯ããããã appVersion
ãtpl
æž¡ããããšãªã®ã§ã .Values.image.tag
ãŸãã¯èªåã«åã£ããã®ããèªã¿åãããšãã§ããŸãã
appVersion
==ã³ã³ããç»åã¿ã°ã匷å¶ããå Žå
次ã«ãããããhttps://github.com/helm/helm/issues/7517ã«ããŸããããããããããã¹ãŠã®åå ã§ãã
ç§ã¯ãã®è°è«ããŸã£ããç解ããŠããŸããã èªåã«æé©ã ãšæãæ¹æ³ã§ã¢ããªã®ããŒãžã§ã³ã䜿çšãããªãã·ã§ã³ã人ã ã«æäŸããªãã®ã¯ãéåžžã«å€§ããªåé¡ã§ãã
ç§ã«ãšã£ãŠçŸåšã®åœ¢ã§ã¯ããã®APP VERSION
ããŸã£ããæããªãã®ãæåã§ãããã ããã¯ç§ãã¡ã®ãããžã§ã¯ãã®äººã
ã«æ··ä¹±ãããããã ãã§ãã åããã«ã ãã£ãŒãã䜿çšããŠãã80ãè¶
ãããµãŒãã¹ãããã helm upgrade -i ...
ãã®APP VERSION
ãç°¡åã«å€æŽããããšã¯ã§ããªãããããã¹ãŠã®ã¢ããªã±ãŒã·ã§ã³ã1.0
ãŸãŸã§ããããšãããããŸããããã«
ãŸãã helm list
ã¯åœ¹ã«ç«ããªãã®ã§ã䜿çšããªãããã«ã¿ããªã«èšãå¿
èŠãããããšãããããŸããã ã¢ããªã±ãŒã·ã§ã³ã®ããŒãžã§ã³ã確èªããã«ã¯ãä»ã®ããŒãžã§ã³ã䜿çšããå¿
èŠããããŸãã
ç§ã¯ãã®äŒè©±ãèªã¿å§ãããšãã¯æ¥œèŠ³çã§ããããæåŸãŸã§ããã«ã€ããŠè©±ãåãæ¹æ³ãšããŠãŒã¶ãŒã«èªåã®èãæ¹ã匷å¶ããããã«æŠãæ¹æ³ãèŠãŠãä»ã¯åžæã倱ããŸãã:(ã
helm list
ã helm history
ãªã©ã«2ã€ã®ç°ãªãåºåãCHARTïŒversionïŒããšãAPPVERSIONãããããšéåžžã«äŸ¿å©ã§ãã³ãã³ãã©ã€ã³ãªãã·ã§ã³ãšåºå解æãæ·±ãæãäžããå¿
èŠããããŸãããæãéèŠãªäºå®ã
ãCHARTïŒversionïŒããšãAPPVERSIONãããã«ãæã«é¢é£ä»ããããŠããå ŽåïŒãhelmpackageãïŒã2ã€ã®ç°ãªãå€ãæã€ããšã®å©ç¹å šäœããããã倱ãããŸãã ãã£ãŒããäœæãããã£ãŒãããŒãžã§ã³ãã€ã³ã¯ãªã¡ã³ã/æŽæ°ããã«ã¢ããªããŒãžã§ã³ãæŽæ°ãããšãåããã£ãŒãããŒãžã§ã³ã§ã¯éåžžã«ç°ãªãçµæãåŸãããããã倧ããªåé¡ãçºçããŸãã ïŒ-<
ãã®ãããä»ã®ãšããããªãªãŒã¹ããšã«ããã±ãŒãžããã«ããããCHARTïŒversionïŒããšãAPPVERSIONããåæããŠã€ã³ã¯ãªã¡ã³ãããŠãç°åžžãª/äžæ確ãªç¶æ³ã«é¥ããªãããã«ããå¿ èŠããããŸãã
å
ã»ã©åŠç¿ããããã«ããAPP VERSIONãã¯ãªãã·ã§ã³ã§ãããã«ã¹ã¿ã å€ã䜿çšããŠãç»åã«{{Chart.appVersion}}ã®ä»£ããã«äœ¿çšããããšãã§ããŸãããã ãã helm list
ã¯ããŸãæçã§ã¯ãããŸããã ïŒ-<
ãŠãŒã¶ãŒïŒéçºè ïŒã®èŠç¹ããïŒ
ç§ãã¡ããããæãéããããšãã§ãããã£ã³ã¹ã¯ãããŸããïŒ
ãCHARTïŒversionïŒããšãAPPVERSIONãããã«ãæã«é¢é£ä»ããããŠããå ŽåïŒãhelmpackageãïŒã2ã€ã®ç°ãªãå€ãæã€ããšã®å©ç¹å šäœããããã倱ãããŸãã
ãããæ··ä¹±ã®æ žå¿ã ãšæããŸãã ç§ã䜿çšããŠããã¢ããªããŒãžã§ã³ã®å©ç¹ã¯ãçŸåšã®èšå®ã§æå³ãããŠããããã«èŠããŸããããã£ãŒãããŒãžã§ã³ã¯ãã£ãŒãå šäœã®ããŒãžã§ã³ã§ããããã£ãŒãããŒãžã§ã³ã§ã¯ãªããããã©ãããããã¢ããªã±ãŒã·ã§ã³ã®ããŒãžã§ã³ãç¥ã£ãŠããããšã§ãããã£ãŒãå ã®ãã³ãã¬ãŒãã®ããŒãžã§ã³ã ãHelmãã£ãŒãã®ããŒãžã§ã³ãXYãå¿ èŠã§ããã®ãããªãã¹ãŠã®ã¹ããŒãã¡ã³ãã«ãããããAppVersionãå°ç¡ãã«ããªãã§ãã ããããæåŸã«è¿œå ããå¿ èŠããããŸãã
ãã®å©ç¹ã¯ãã¢ããªã®ããŒãžã§ã³ïŒããã³ã¢ããªã®å®éã®ããŒãžã§ã³ïŒãã€ã³ã¹ããŒã«æã«å€æŽãããããšã§å€±ãããŸããããã¯ããã£ãŒãããŒãžã§ã³ã§ã¯äœ¿çšããŠããã¢ããªã衚瀺ãããªããªããSemVerã䜿çšããŠæ¬¡ã®ããšã確èªã§ããªããªãããã§ããããšãã°ãææ°ã§ãããAPIäºæã®ãªãªãŒã¹ããããŸãã
ãŠãŒã¹ã±ãŒã¹@pniederlagã®ããã«æã£ãŠããããšãã§ããããšãèšè¿°ãããappVersion
å¯èœå€ã®ãšã³ããªã§ãã€ã³ããäœãã ãããšãã³ãã¬ãŒããhelm list
æ±ããããŠãããã®ããéãããã£ãŒãã®æ¯æäœãæã€ãã®ããã«ãã®ã¢ããªã±ãŒã·ã§ã³ã®ããŒãžã§ã³ïŒããããã³ã³ããã¿ã°ïŒã¯ãä»ã®ãã¹ãŠã®ãã€ã³ã¹ããŒã«æã«å€æŽãæ§æãªãã·ã§ã³ãšåæ§ã«ã --set
ãŸãã¯--values
ãä»ããŠã€ã³ã¹ããŒã«æã«å€æŽãããŸãã
ããã§ã AppVersion
åé¡ãçºçããŸããã
ãªãªãŒã¹ããŒãžã§ã³ãšAppVersionã®äž¡æ¹ã䜿çšããŠããŸãã
ä»ããèšå®ããã«ã¯-äž¡æ¹ã®ããŒãžã§ã³ãèšå®ãããããŒã«ã«tarã¢ãŒã«ã€ããäœæããã«ã¯ãäºåã«helm upgrade --install
ã®helm package
æ瀺çã«åŒã³åºãå¿
èŠããããŸãã
ä»ãç§ã¯helm-secrets
ãµããŒããè¿œå ããŠããŸãããããŠ...
ãããŠããã®ã©ãããŒã¯helm package
ã§ã¯æ©èœããŸããïŒ
ãªãã©ããããïŒ
ãã¹ãŠã®ããŒãžã§ã³ã®ãµããŒããšãããŒãåé€ããŸããïŒ
ã·ãŒã¯ã¬ããã䜿çšããŠããããããŸããïŒ
äœãæ¡ã¯ïŒ
å®éã«ã¯ã helm-secrets
ã®æ¹ãåé¡ã§ãããããã§èª¬æãã--set app-version
èœåã«ãé¢é£ããŠããŸããããã¯ããã®ããã«äœ¿çšã§ããã°ã helm package
ãåŒã³åºãå¿
èŠããªãããã§ãã
UPDãããåŸ
ã£ãŠ...ç§ã¯ãŸã helm secrets upgrade chart.tgz -f secrets.yaml
ã䜿ãããšãã§ããŸã...
ããã£ãã
ããã§ãã+ 1ã§--set app-version
ãè¿œå ããŸãã
ãªãã©ããããïŒ
ãã¹ãŠã®ããŒãžã§ã³ã®ãµããŒããšãããŒãåé€ããŸããïŒ
ã·ãŒã¯ã¬ããã䜿çšããŠããããããŸããïŒ
äœãæ¡ã¯ïŒ
2ã€ã®ããã±ãŒãžãäœæããŸãããã£ãŒãã®ã¿ãå«ãhelmããã±ãŒãžã§ãããenvå€ãšsecretsãã¡ã€ã«ã¯ãããŸããã chart-versionã¯ç§ãã¡ã«ãšã£ãŠäœã®æå³ãæãããchart-versionã¯app-versionæ§æããµããŒãããŠããªãããããã®ããã±ãŒãžã®ååãchart-{app-version}.tgz
å€æŽããŸãã ã¢ããªã®æŽæ°ã«ã¯ãæœåšçãªã°ã©ãã®æŽæ°ãå«ãŸããŸãïŒgitã¿ã°ä»ãã䜿çšããåããªããžããªïŒã
次ã«ãç°å¢åºæã®2çªç®ã®tgzããã£ãŒãtgzãå€yamlãããã³æå·åãããã·ãŒã¯ã¬ãããã¡ã€ã«ãå«ãchart-{app-version}-{env}.tgz
ããããŸãã ãã®ãã¡ã€ã«ã«ã¯ã helm-secrets
ã䜿çšããŠãããã€ããèªåã¹ã¯ãªããã®ã¿ã°ãã¢ããªãç°å¢åãªã©ã®å€ãå«ããpackage.yamlããå«ãŸããŠããŸãã
ç§ãã¡ã¯ãã¢ããªã±ãŒã·ã§ã³ã®ããŒãžã§ã³ãŸãã¯ãã®ã»ãšãã©ãã»ãã³ãã£ãã¯ããŒãžã§ã³çªå·ã§èå¥ããããã«äœ¿çšãããŸãã 次ã«ãAPPããŒãžã§ã³ã§ãã®çªå·ã䜿çšããŠãããŒã«ããã¯ãŸãã¯ãã®ä»ã®æäœã®helm history
ãªã¹ãã§ç°¡åã«èå¥ããŸãã
ã·ã¹ãã ã¯ãããã€æã«èªåçã«æ³šå
¥ããããšãèš±å¯ããªãããããããã€ã³ãã³ãã®åã«CI / CDãã€ãã©ã€ã³ã§ãã®åçŽãªã³ãã³ããèªåçã«å®è¡ããŸãã
sed -i -E "s/^appVersion: (.*)/appVersion: ${deploy.project.version}/" ${chartPath}/Chart.yaml
ããªãããŒã§ãããæåŸ ã©ããã«æ©èœããŸãã
@bvis
åé¿çã®åé¡ã¯ãCI / CDãã€ãã©ã€ã³ã§ãã£ãŒããç·šéããå¿
èŠãããããšã§ãã
äžå
åããããã£ãŒããªããžããªã䜿çšããå Žåã¯ã helm pull repo/chart --untar
匷å¶ãããŸã
Chart.yaml / appVersionãããã°ã©ã ã§æ³šå ¥ããããšã§ããã«é²æ©ã¯ãããŸããïŒ åé¿çã¯ãããŸããïŒ ããã¯CI / CDãã«ã ã«éæ¹ããªãåŸæŒããäžããã§ãããã
@jakovistukç§ãç¥ãéããappVersionã䜿çšããŠã³ã³ããã®ããŒãžã§ã³ã衚瀺ãããã£ãŒãã¯ãããšãã°nginx-ingress / Chart.yamlã«èŠãããããã«ãChart.yamlãä»ããŠãããçŽæ¥
ç§ã¯ãã®åé¡ã«ã€ããŠããªãé·ãéèããŠããªãã£ãã®ã§ãããã¯æ¬åœã«ã°ããã質åãããããŸããããHelm CLIã䜿çšããŠappVersionããªãŒããŒã©ã€ãããæ¹æ³ã¯ãããŸããïŒ
ããã®å€ãã®äººã ããappVersionããã£ãŒã«ãããªãŒããŒã©ã€ãããæ¹æ³ãæ±ããŠããããã§ãã ãã®åé¡ã®å ã®æå³/èŠæ±ã¯ã-versionã®ä»£ããã«-app-versionãèš±å¯ããããšã§ããããã«ããããŠãŒã¶ãŒã¯ 'helm fetch âapp-version = v0.15.0'ãå®è¡ã§ããHelmã¯ææ°ã®ã°ã©ãããŒãžã§ã³ãæåŸã«äœã§ããããå€æããŸãã appVersionãšããŠv0.15.0ãæå®ããããããã§ããããŸãã
ç§ãã¡ã®ãããžã§ã¯ã/ãã£ãŒãïŒcert-managerïŒã§ã¯ããšã³ããŠãŒã¶ãŒãã€ã³ã¹ããŒã«ããŠããããŒãžã§ã³ãã§ããã ãæ確ã«ãããã®ã§ããã£ãŒãããŒãžã§ã³ã§ã¯ãªãã¢ããªããŒãžã§ã³ããšã«ã€ã³ã¹ããŒã«ã§ããããã«ããæ¹ãã¯ããã«èªç¶ãªã€ã³ã¹ããŒã«ãšã¯ã¹ããªãšã³ã¹ã«ãªããŸãã
ãšã¯èšããã®ã®ããã®åé¡ã¯2幎åã«çºçãããã以æ¥ããããã®ããŒãžã§ã³çªå·ã®äž¡æ¹ãåæ/ããã¯ã¹ãããã§ç¶æããããšãéžæããŸããã ãããæ°å¹Žè¡ã£ãåŸãé©ãã»ã©ç°¡åã§çã¿ããªããªããŸããããã ãããããã€ã¡ã³ããããã§ã¹ãã«å€æŽãå ããããå ŽåããŠãŒã¶ãŒã¯æ°ããå ¬åŒãªãªãŒã¹ãæ°é±éåŸ ããªããã°ãªããªãããšããããŸãã
ãã®åé¡ã®æ代ãé·ãããããã«ç°ãªãæ©èœã²ãŒãã®å€çš®å€æ§æ§ãããã³ãã以éã®Helmãããžã§ã¯ãã®å€æŽïŒHelm 3ãOCIãã£ãŒããªã©ïŒãèãããšããã®åé¡ã¯è¯å¥œãªç¶æ ã§ã¯ãªããšæããŸããçŸåšã®åœ¢åŒã®æ©èœèŠæ±ãšããŠåé²ããŸãã ç§ã¯ãã®åé¡ãéããã€ããã§ãããåæ§ã®æ©èœèŠæ±ãæã£ãŠããä»ã®äººã¯ãæ°ããåé¡ã
ãŸãããã®çš®ã®æ©èœã¯ãå€éšããŒã«ãŸãã¯ã©ãããŒãšããŠå®è£
ã§ããå¯èœæ§ããããããããæé©ã§ãããšæããŸãã
ãã«ã ãç¹ã«OCIã®å€æŽãèæ
®ãããšããããå®è£
ããã®ãé£ãããªããšæããŸãã
ããã解決ããããŸã§ïŒãŸãã¯è§£æ±ºãããªããŸã§ïŒãããç§ã®CI / CDïŒGitLabïŒã§ããã解決ããæ¹æ³ã§ãïŒ
ãã£ãŒããapp-versionã§ããã±ãŒãžåããŠããããããã€ããŸãã
ãã£ãŒãããŒãžã§ã³ãappVersionãšåãã§ããããšãæå³ããŠããªãããšã¯ç¥ã£ãŠããŸããããã®å Žåãåé¿çãšããŠã¯åé¡ãããŸããã
deploy:
image: alpine/helm:3.2.4
stage: deploy
environment:
name: ${ENV}
script:
- helm package --app-version=${CI_COMMIT_TAG} --version=${CI_COMMIT_TAG} ${NAMESPACE}
- |
helm upgrade -i --wait ${CI_PROJECT_NAME} ./${NAMESPACE}-${CI_COMMIT_TAG}.tgz \
--set image.repository="${CI_REGISTRY_IMAGE}" \
--set image.tag="${CI_COMMIT_TAG}" \
--set-string ingress.enabled="${INGRESS}" \
--set service.port="${CONTAINER_PORT}" \
--set service.targetPort="${CONTAINER_PORT}" \
--set dc="${CI_ENVIRONMENT_NAME}" \
--set project="${CI_PROJECT_NAME}" \
--namespace ${NAMESPACE}
- helm history ${CI_PROJECT_NAME} -n ${NAMESPACE}
tags:
- kubernetes
only:
- tags
image.tag
ãããã©ã«ãã§{{ .Chart.AppVersion }}
ã«èšå®ããå Žåãã€ã³ã¹ããŒã«äžã«--set
ãå®è¡ããå¿
èŠã¯ãªãããã§ã«æ£ãããªã£ãŠããŸãã ããã¯ãDockerã€ã¡ãŒãžãSHA1ã§ã¿ã°ä»ããããŠãããããAppVersionãDockerã€ã¡ãŒãžã¿ã°ãšäžèŽããããŒãžã§ã³ãèªåãã«ãSemVerã§ããå Žåãèªåãã«ãã§ãããŸãæ©èœããŸãã
AppVersionãSemVerã§ããå ŽåãVersionãAppVersionãšåãã§ããããšã«åé¡ã¯ãããŸããã
ç§ã®ããŒã ãäœæããããã±ãŒãžã§ã¯ãAppVersionãæ€çŽ¢ãããã®ãããšãã°image.tagã«ç§»è¡ããŠãããAppVersionãèšå®ãããŠããªãå Žåã¯ããã©ã«ãã§Versionã«ãªããŸãã ããã¯å€§ããªéãã§ã¯ãªããã¿ã°ä»ããªãªãŒã¹ã®helm package
ã«å¯ŸããåŒæ°ã1ã€å°ãªãã ãã§ããããã£ãŒããããã±ãŒãžåãããã®ãšåãSCMããäœæãããŠããå Žåã«ã®ã¿æå³ããããŸãã
ãµããã£ãŒãã䜿çšããŠç»åã¿ã°ãèšå®ããŠããå Žåã¯æ©èœããªã@TBBle
image.tagããµããã£ãŒãã«ãããã芪ãã£ãŒãã®ããŒãžã§ã³ã䜿çšããããšããŠãããšããããšã§ããïŒ ãããããªããã¯ããããã¯éåžžã«åä»ã§ããã管çããã®ã¯ç°¡åã§ã¯ãããŸããã https://github.com/googleforgames/open-match/ã®ãã«ã ãã£ãŒãã§ãã®ã¬ã€ã¢ãŠããæ£ç¢ºã«ããŠã³ã¹ããŸããã ãã®å Žåãåé¡ã®ãµããã£ãŒããã¡ã€ã³ãã£ãŒãã«ããŒã«ããã¯ããããšããå§ãããŸãã
ãã£ãŒãã¯ãæ©èœããããã«èŠªãã£ãŒãã®åäœã«äŸåããã®ã§ã¯ãªããç¬ç«ããŠåé¢ããã/䜿çšå¯èœãªåäœã§ããå¿ èŠããããŸãã ãµããã£ãŒãã«ã¯ç¬èªã®ããŒãžã§ã³ããããŸããããã¯ããã®ç»åã䜿çšããå¿ èŠãããããŒãžã§ã³ã§ããããã§ãªãå Žåããªããµããã£ãŒããªã®ã§ããïŒ
Open Matchã®å Žåããµããã£ãŒãã¯XXX.enable
ãvalues.yamlã®ã·ã§ãŒãã«ãããšããŠäœ¿çšããŠãäžåºŠã«ããããã®ãã®ãç¡å¹ã«ã§ããããã«äœ¿çšãããŠããããã«èŠããŸããããã®åŸããã®ãããªæ§é äžã®åé¡ãããããçºçããŸãã Open Matchã®ãµããã£ãŒãã¯ãã¹ãŠãtemplatesãšããååã®èŠªãã£ãŒããå€çšããããŒã«ã«ããŒãžã§ã³ã®0.0.0-dev
ããããããäœããããŸãæ§é åãããŠããªããšããã³ãŒãã®èãããã§ã«2ã€ãããŸãã
ãããã¯ãããªããè¡ã£ãŠãã芳å¯ã誀解ããã®ãããããŸããã
@haimariæ®å¿µãªãããæ©èœããŠããŸããïŒhttps://github.com/helm/helm/issues/6921ã«é¢é£ããŠããŸããïŒïŒïŒ
> helm package $DIR/deployment/chart --app-version="1111e8" --version="3454e5" --namespace stage
Error: Invalid Semantic Version
ããããããã¯æ©èœããŸãïŒ
> helm package $DIR/deployment/chart --app-version="0.0.0-1111e8" --version="0.0.0-3454e5" --namespace stage
Successfully packaged chart and saved it to: /Users/aws/service-0.0.0-3454e5.tgz
ãããŠããã§ããïŒãããæ±ãããã§ãïŒïŒ
> helm package $DIR/deployment/chart --app-version="0-1111e8" --version="0-3454e5" --namespace stage
Successfully packaged chart and saved it to: /Users/aws/service-0-3454e5.tgz
helm version version.BuildInfo {VersionïŒ "v3.4.0"ãGitCommitïŒ "7090a89efc8a18f3d8178bf47d2462450349a004"ãGitTreeStateïŒ "dirty"ãGoVersionïŒ "go1.15.3"}
@haimariã®ãœãªã¥ãŒã·ã§ã³ã¯ããã¯ãCIãã€ãã©ã€ã³ã§semveräºæã®ã¿ã°ã䜿çšããŠããããã§ãïŒã€ãŸããããã¯ã¿ã°ä»ããªãªãŒã¹ã®ãžã§ãå®è¡ã®äŸã§ãããevery-commitã§ã¯å®è¡ãããŸããïŒ
@ a0s ïŒç§ã¯äžè¬çã«ææ¡ããŸãïŒ
helm package $DIR/deployment/chart --app-version="<container image tag>" --version="<semver version>"
次ã«ãã³ã³ããã€ã¡ãŒãžã¿ã°ã®å€ã{{ Values.image.tag | default .Chart.AppVersion | default .Chart.Version
ããã«ããŸããããã«ããã @ haimariã®ããã«ãªã³ã¶ãã©ã€ã§å€æŽããå¿
èŠããªããªããŸãã
ããªãã®äŸã§ã¯ã2ã€ã®ç°ãªãgitããŒãžã§ã³ã®ããã«èŠãããã®ããããŸãããïŒ 1ã€ã¯ã³ã³ããç»åçšã§ããã1ã€ã¯ãã£ãŒãçšã§ããïŒ
SemVerã§ã¯ãgit commit SHAãsemverã®æå³ã®ããéšåã«å®éã«é 眮ããããšã¯ã§ããŸãããããã¯ãsemverãé åºä»ããæå³ããgit commitSHAã䞊ã¹æ¿ããããšãã§ããªãããã§ãã
ãããã£ãŠã 0.0.1-alpha.<build-id>+g<gitcommitsha>
ãããªããŒãžã§ã³ã䜿çšããå¿
èŠããããŸããããã§ã <build-id>
ã¯CIã·ã¹ãã ã®ãã€ãã©ã€ã³ããžã§ãIDã®ãããªãã®ã§ããããããããžã§ã¯ãã«ã³ãããããããšã¯åžžã«å¿
èŠã§ãã ããããã°ãèŠæ±ãããšãã«åžžã«ææ°ã®ãã«ããååŸã§ããŸãã
SemVerã§ã¯ã -
ãããšããã®ããŒãžã§ã³ã®ãã¬ãªãªãŒã¹ã§ããããã 0.0.1-<anything>
ã¯0.0.0ãš0.0.1ã®ãªãªãŒã¹ã®éã«ãªããŸãã +
åŸã®éšåã¯ãã«ãæ
å ±ã§ããã䞊ã¹æ¿ãã§ã¯ç¡èŠããããããgit SHAããã©ã³ãåããŸãã¯ãã®ä»ã®äžŠã¹æ¿ãäžå¯èœãªè¿œè·¡æ
å ±ãé
眮ããã®ã«é©ããå Žæã§ãã
ãããã£ãŠãããã§äœ¿çšãããã®ã§ã¯ãSHAã2
ã§å§ãŸãå Žåãããšãã°0-2764e1
å Žåã 0-3454e5
ã¯æ¬¡ã®ã³ããããããæ°ããããã«èŠããŸãã
ããªãã®äŸã§ã¯ã2ã€ã®ç°ãªãgitããŒãžã§ã³ã®ããã«èŠãããã®ããããŸãããïŒ 1ã€ã¯ã³ã³ããç»åçšã§ããã1ã€ã¯ãã£ãŒãçšã§ããïŒ
ã¯ããã¢ããªãšãã£ãŒã-2ã€ã®ç¬ç«ãããœãããŠã§ã¢ããããŸãã
ããããã°ãèŠæ±ãããšãã«åžžã«ææ°ã®ãã«ããååŸã§ããŸãã
ææ°ã®ãã®ãæ±ããããªãïŒãããŠæ³åããã§ããªãïŒå Žåã¯ã©ããªããŸããïŒ
0.0.1-alpha.<build-id>+g<gitcommitsha>
ãã®æååïŒè£éåŸïŒã¯é·ãããŠãæšæºã®helm list
åºåã®
ã€ã³ã¹ããŒã«ããã¢ããªã®ããŒãžã§ã³ïŒshaããã·ã¥ïŒã¯åžžã«ããã£ãŠããŸãïŒ --set
åŒæ°ã§æž¡ããŸãïŒã ãããŠãç§ã¯åžžã«èªåã䜿çšããŠãããã£ãŒãã®ããŒãžã§ã³ãç¥ã£ãŠããŸãïŒ @haimariã説æããããã«ãç§ã¯åžžã«git checkout chart && helm pack && helm upgrade .tar.gz
ãç§ã®ci / cdã§ããŒã«ã«ã«äœ¿çšããŸãïŒ
äœãããŸããããªãå¯èœæ§ããããŸããïŒ
1ïŒéåžžã®helm upgrade
äžã®ãšã©ãŒã OKããšã©ãŒãä¿®æ£ããŠåè©Šè¡ããŸãïŒã¢ããªã®å¥ã®shaã³ãããã§-99ïŒ
ïŒïŒãŸãã¯ä»£ããã«--atomic
䜿çšããŸãïŒ
2ïŒæåããŒã«ããã¯ïŒ helm rollback <RELEASE_NAME>
ãŸãã¯CI / CDãä»ãã以åã®shacommitã®å±éã
ç§ã¯äœãæããã§ããïŒ
PSæ£çŽãªãšãããããŒãžã§ã³ãšã¢ããªããŒãžã§ã³ã§ã¯æ
å ±æäŸã®ã¿ãç®çãšããŠçãshaéšåã䜿çšããããšæããŸãïŒ helm list
ïŒ
ããã¯æ
å ±ç®çã®ããã ããªããããã¯åŸã«è¡ã+
ãSemVerã§ã¯ãªã-
ã ãªãªãŒã¹ã®é åºãHelmãã£ãŒãã®é
åžãæ°ã«ããããã£ãŒããŸãã¯ã¢ããªããŸã SemVerãããŠããªãå Žåã 0+g<commitsha>
ã¯æå¹ãªSemVerïŒ0.0.0ã«çžåœïŒã§ãã
ããã¯ãããšãã°ãOpenMatchã®Helmèªåäœæãã£ãŒããè¡ãããšã§ãã ãããã¯ãã¹ãŠçŸåš0.0.0-dev
ã§ãããç§ãã¡ã¯ãã®0.0.0-dev+g<commitsha>
äœæãæ€èšã
æãåèã«ãªãã³ã¡ã³ã
ç§ã¯ãã®è°è«ããŸã£ããç解ããŠããŸããã èªåã«æé©ã ãšæãæ¹æ³ã§ã¢ããªã®ããŒãžã§ã³ã䜿çšãããªãã·ã§ã³ã人ã ã«æäŸããªãã®ã¯ãéåžžã«å€§ããªåé¡ã§ãã
ç§ã«ãšã£ãŠçŸåšã®åœ¢ã§ã¯ããã®
APP VERSION
ããŸã£ããæããªãã®ãæåã§ãããã ããã¯ç§ãã¡ã®ãããžã§ã¯ãã®äººã ã«æ··ä¹±ãããããã ãã§ãã åããã«ã ãã£ãŒãã䜿çšããŠãã80ãè¶ ãããµãŒãã¹ããããhelm upgrade -i ...
ãã®APP VERSION
ãç°¡åã«å€æŽããããšã¯ã§ããªãããããã¹ãŠã®ã¢ããªã±ãŒã·ã§ã³ã1.0
ãŸãŸã§ããããšãããããŸããããã«ãŸãã
helm list
ã¯åœ¹ã«ç«ããªãã®ã§ã䜿çšããªãããã«ã¿ããªã«èšãå¿ èŠãããããšãããããŸããã ã¢ããªã±ãŒã·ã§ã³ã®ããŒãžã§ã³ã確èªããã«ã¯ãä»ã®ããŒãžã§ã³ã䜿çšããå¿ èŠããããŸããç§ã¯ãã®äŒè©±ãèªã¿å§ãããšãã¯æ¥œèŠ³çã§ããããæåŸãŸã§ããã«ã€ããŠè©±ãåãæ¹æ³ãšããŠãŒã¶ãŒã«èªåã®èãæ¹ã匷å¶ããããã«æŠãæ¹æ³ãèŠãŠãä»ã¯åžæã倱ããŸãã:(ã