ãã®ãªãªãŒã¹ã®åºç€ã¯ãã¹ããŒãž ã¹ãã¬ãŒãžã®æ°ããã¢ãŒããã¯ãã£ãšãäž¡æ¹ã®ã³ã¬ã¯ã¿ãŒ (Stapel ãš Dockerfile) ã®äœæ¥ã®æé©åã§ãã æ°ããã¹ãã¬ãŒãž ã¢ãŒããã¯ãã£ã«ãããè€æ°ã®ãã¹ãããåæ£ã¢ã»ã³ããªãå®è£
ããããåããã¹ãäžã§äžŠåã¢ã»ã³ããªãå®è£
ãããã§ããå¯èœæ§ãåºãããŸãã
äœæ¥ã®æé©åã«ã¯ãã¹ããŒãžçœ²åãèšç®ãã段éã§äžèŠãªèšç®ãåé€ãããããã¡ã€ã«ã®ãã§ãã¯ãµã ãèšç®ããã¡ã«ããºã ãããå¹ççãªãã®ã«å€æŽãããããããšãå«ãŸããŸãã ãã®æé©åã«ãããwerf ã䜿çšãããããžã§ã¯ãã®ãã«ãã®å¹³åæéãççž®ãããŸãã ãã¹ãŠã®ã¹ããŒãžããã£ãã·ã¥å
ã«ååšããå Žåã®ã¢ã€ãã« ãã«ã ã¹ããŒãž-ã¹ãã¬ãŒãžãæ¬åœã«éããªããŸããã ã»ãšãã©ã®å Žåããã«ãã®åéã«ã¯ 1 ç§ãããããŸããã ããã¯ãããŒã ã®äœæ¥ããã»ã¹ã®æ®µéãæ€èšŒããæé ã«ãåœãŠã¯ãŸããŸãã werf deploy
О werf run
.
ãŸãããã®ãªãªãŒã¹ã§ã¯ãã³ã³ãã³ãããšã«ç»åãã¿ã°ä»ãããæŠç¥ãç»å ŽããŸãã - ã³ã³ãã³ãããŒã¹ã®ã¿ã°ä»ããçŸåšããã©ã«ãã§æå¹ã«ãªã£ãŠãããå¯äžæšå¥šããããã®ã§ãã
werf v1.1 ã®äž»ãªé©æ°ã詳ããèŠãŠãããåæã«å°æ¥ã®èšç»ã«ã€ããŠãã話ããŸãããã
werf v1.1 ã§ã¯äœãå€ãããŸããã?
ãã£ãã·ã¥ããã¹ããŒãžãéžæããããã®æ°ããã¹ããŒãžåœå圢åŒãšã¢ã«ãŽãªãºã
æ°ããèžåã®çæã«ãŒã«ã åã¹ããŒãž ãã«ãã¯ã眲å (v2 ã®å Žåãšåæ§) ãšäžæã®äžæèå¥åã® 1.0 ã€ã®éšåã§æ§æãããäžæã®ã¹ããŒãžåãçæããããã«ãªããŸããã
ããšãã°ãå®å šãªã¹ããŒãž ã€ã¡ãŒãžåã¯æ¬¡ã®ããã«ãªããŸãã
werf-stages-storage/myproject:d2c5ad3d2c9fcd9e57b50edd9cb26c32d156165eb355318cebc3412b-1582656767835
...ãŸãã¯äžè¬çã«:
werf-stages-storage/PROJECT:SIGNATURE-TIMESTAMP_MILLISEC
ããã«ïŒ
-
SIGNATURE
ã¹ããŒãžçœ²åã§ããã¹ããŒãž ã³ã³ãã³ãã®èå¥åãè¡šãããã®ã³ã³ãã³ããäœæãã Git ã§ã®ç·šéå±¥æŽã«äŸåããŸãã -
TIMESTAMP_MILLISEC
æ°ããã€ã¡ãŒãžã®æ§ç¯æã«çæããããä¿èšŒãããäžæã®ã€ã¡ãŒãžèå¥åã§ãã
ãã£ãã·ã¥ããã¹ããŒãžãéžæããã¢ã«ãŽãªãºã ã¯ãGit ã³ãããã®é¢ä¿ã®ãã§ãã¯ã«åºã¥ããŠããŸãã
- Werf ã¯ç¹å®ã®ã¹ããŒãžã®ã·ã°ããã£ãèšç®ããŸãã
- Ð ã¹ããŒãž-ã¹ãã¬ãŒãž ç¹å®ã®çœ²åã«ã¯è€æ°ã®æ®µéãããå ŽåããããŸãã Werf ã¯ã眲åã«äžèŽãããã¹ãŠã®ã¹ããŒãžãéžæããŸãã
- çŸåšã®ã¹ããŒãžã Git (git-archiveãGit ããããå«ãã«ã¹ã¿ã ã¹ããŒãž) ã«ãªã³ã¯ãããŠããå Žå:
install
,beforeSetup
,setup
; ãŸã㯠git-latest-patch)ããã®åŸãwerf ã¯ãçŸåšã®ã³ããã (ãã«ããåŒã³åºããã) ã®ç¥å ã§ããã³ãããã«é¢é£ä»ããããã¹ããŒãžã®ã¿ãéžæããŸãã - æ®ãã®é©åãªã¹ããŒãžãããäœææ¥ãæãå€ãã¹ããŒãžã XNUMX ã€éžæãããŸãã
ç°ãªã Git ãã©ã³ãã®ã¹ããŒãžã«åã眲åãä»ããããšãã§ããŸãã ãã ããwerf ã¯ãããšã眲åãäžèŽãããšããŠããç°ãªããã©ã³ãã«é¢é£ä»ãããããã£ãã·ã¥ããããã®ãã©ã³ãéã§äœ¿çšãããããšãé²ããŸãã
ã¹ããŒãžã¹ãã¬ãŒãžã«ã¹ããŒãžãäœæããã³ä¿åããããã®æ°ããã¢ã«ãŽãªãºã
ãã£ãã·ã¥ããã¹ããŒãžãéžæãããšãã«ãwerf ãé©åãªã¹ããŒãžãèŠã€ããããªãå Žåãæ°ããã¹ããŒãžãçµã¿ç«ãŠãããã»ã¹ãéå§ãããŸãã
è€æ°ã®ããã»ã¹ (XNUMX ã€ä»¥äžã®ãã¹ãäž) ãã»ãŒåæã«åãã¹ããŒãžã®æ§ç¯ãéå§ã§ããããšã«æ³šæããŠãã ããã Werf ã¯æ¥œèŠ³çãªããã㯠ã¢ã«ãŽãªãºã ã䜿çšããŸã ã¹ããŒãž-ã¹ãã¬ãŒãž æ°ããåéããç»åãä¿åããç¬é ã¹ããŒãž-ã¹ãã¬ãŒãžã ãã®ããã«ããŠãæ°ããã¹ããŒãžã®ãã«ãã®æºåãã§ããããwerf ãããã¯ã ã¹ããŒãž-ã¹ãã¬ãŒãž é©åãªç»åãååšããªãå Žåã«ã®ã¿ãæ°ãã«åéããç»åãããã«ä¿åããŸãã (眲åããã³ãã®ä»ã®ãã©ã¡ãŒã¿ã«ãã - ãã£ãã·ã¥ããã¹ããŒãžãéžæããããã®æ°ããã¢ã«ãŽãªãºã ãåç §ããŠãã ãã).
æ°ããçµã¿ç«ãŠãããã€ã¡ãŒãžã¯ã次ã®æ¹æ³ã«ãã£ãŠäžæã®èå¥åãæã€ããšãä¿èšŒãããŸãã TIMESTAMP_MILLISEC
(æ°ããã¹ããŒãžã®åœå圢åŒãåç
§)ã å Žåã«å¿ã㊠ã¹ããŒãž-ã¹ãã¬ãŒãž é©åãªã€ã¡ãŒãžãèŠã€ãããšãwerf ã¯æ°ããã³ã³ãã€ã«ãããã€ã¡ãŒãžãç Žæ£ãããã£ãã·ã¥ããã®ã€ã¡ãŒãžã䜿çšããŸãã
èšãæããã°ãã€ã¡ãŒãžã®æ§ç¯ãå®äºããæåã®ããã»ã¹ (æéã®ããã»ã¹) ãããããã¹ããŒãž ã¹ãã¬ãŒãžã«ä¿åããæš©å©ãååŸããŸã (ãããŠããã®åäžã®ã€ã¡ãŒãžããã¹ãŠã®ãã«ãã«äœ¿çšãããŸã)ã é ããã«ã ããã»ã¹ã«ãã£ãŠãããé«éãªããã»ã¹ãçŸåšã®ã¹ããŒãžã®ãã«ãçµæãä¿åããŠæ¬¡ã®ãã«ãã«é²ãããšã劚ããããããšã¯ãããŸããã
Dockerfile ãã«ããŒã®ããã©ãŒãã³ã¹ã®åäž
çŸæç¹ã§ã¯ãDockerfile ããæ§ç¯ãããã€ã¡ãŒãžã®ã¹ããŒãžã®ãã€ãã©ã€ã³ã¯ XNUMX ã€ã®ã¹ããŒãžã§æ§æãããŠããŸãã dockerfile
ã 眲åãèšç®ãããšãã«ããã¡ã€ã«ã®ãã§ãã¯ãµã ãèšç®ãããŸã context
ãçµã¿ç«ãŠæã«äœ¿çšããŸãã ãã®æ¹åãè¡ãããåã¯ãwerf ã¯ãã¹ãŠã®ãã¡ã€ã«ãååž°çã«èª¿ã¹ãåãã¡ã€ã«ã®ã³ã³ããã¹ããšã¢ãŒããåèšããããšã§ãã§ãã¯ãµã ãååŸããŠããŸããã v1.1 以éãwerf 㯠Git ãªããžããªã«ä¿åãããŠããèšç®ããããã§ãã¯ãµã ã䜿çšã§ããããã«ãªããŸããã
ã¢ã«ãŽãªãºã ã¯ä»¥äžã«åºã¥ããŠããŸã .dockerignore
å¿
èŠãªå Žåã«ã®ã¿ãã¡ã€ã« ããªãŒãååž°çã«èµ°æ»ããŸãã ãããã£ãŠããã¡ã€ã« ã·ã¹ãã ã®èªã¿åããšãã¢ã«ãŽãªãºã ã®ãµã€ãºãžã®äŸåãåãé¢ããŸããã context
éèŠã§ã¯ãããŸããã
ãã®ã¢ã«ãŽãªãºã ã¯è¿œè·¡ãããŠããªããã¡ã€ã«ããã§ãã¯ããå¿ èŠã«å¿ããŠãã§ãã¯ãµã ã«ãããã®ãã¡ã€ã«ãèæ ®ããŸãã
ãã¡ã€ã«ã€ã³ããŒãæã®ããã©ãŒãã³ã¹ã®åäž
werf v1.1 ã®ããŒãžã§ã³ã¯ã次ã®å Žåã« rsync ãµãŒããŒã䜿çšããŸãã
macOS ã§ã®ã€ã³ããŒãã®ããã©ãŒãã³ã¹ã¯ Docker ããªã¥ãŒã ã«ãã£ãŠå¶éãããªããªããã€ã³ããŒã㯠Linux ã Windows ãšåãæéã§å®äºããŸãã
ã³ã³ãã³ãããŒã¹ã®ã¿ã°ä»ã
Werf v1.1 ã¯ãç»åã³ã³ãã³ãã«ããããããã¿ã°ä»ãããµããŒãããŠããŸã - ã³ã³ãã³ãããŒã¹ã®ã¿ã°ä»ãã çµæãšããŠåŸããã Docker ã€ã¡ãŒãžã®ã¿ã°ã¯ããããã®ã€ã¡ãŒãžã®å 容ã«ãã£ãŠç°ãªããŸãã
ã³ãã³ããå®è¡ãããšã werf publish --tags-by-stages-signature
ãŸã㯠werf ci-env --tagging-strategy=stages-signature
ãããããå
¬éãããç»å ã¹ããŒãžãµã€ã³ ç»åã åç»åã«ã¯ããã®ç»åã®ã¹ããŒãžã®ç¬èªã®çœ²åãã¿ã°ä»ããããŠããŸãã眲åã¯ãåã¹ããŒãžã®éåžžã®çœ²åãšåãã«ãŒã«ã«åŸã£ãŠåå¥ã«èšç®ãããŸãããç»åã®äžè¬çãªèå¥åã§ãã
ç»åã¹ããŒãžã®çœ²åã¯æ¬¡ã®èŠçŽ ã«ãã£ãŠæ±ºãŸããŸãã
- ãã®ç»åã®å 容ã
- ãã®ã³ã³ãã³ãã«ã€ãªãã Git ã®å€æŽå±¥æŽã
Git ãªããžããªã«ã¯ãã€ã¡ãŒãž ãã¡ã€ã«ã®å 容ãå€æŽããªããã㌠ã³ããããåžžã«ååšããŸãã ããšãã°ãã³ã¡ã³ãã®ã¿ãå«ãã³ããããããŒãž ã³ãããããŸãã¯ã€ã¡ãŒãžã«ã€ã³ããŒããããªã Git å ã®ãã¡ã€ã«ãå€æŽããã³ããããªã©ã§ãã
ã³ã³ãã³ãããŒã¹ã®ã¿ã°ä»ãã䜿çšãããšãã€ã¡ãŒãžã®å 容ãå€æŽãããŠããªããŠããã€ã¡ãŒãžåã®å€æŽã«ãã Kubernetes ã®ã¢ããªã±ãŒã·ã§ã³ ãããã®äžå¿ èŠãªåèµ·åã®åé¡ã解決ãããŸãã ã¡ãªã¿ã«ãããããXNUMX ã€ã®ã¢ããªã±ãŒã·ã§ã³ã®å€æ°ã®ãã€ã¯ããµãŒãã¹ã XNUMX ã€ã® Git ãªããžããªã«ä¿åã§ããªãçç±ã® XNUMX ã€ã§ãã
ãŸããã³ã³ãã³ãããŒã¹ã®ã¿ã°ä»ãã¯ãGit ãã©ã³ãã§ã®ã¿ã°ä»ããããä¿¡é Œæ§ã®é«ãã¿ã°ä»ãæ¹æ³ã§ããããã¯ãçµæãšããŠåŸãããã€ã¡ãŒãžã®ã³ã³ãã³ãããåããã©ã³ãã®è€æ°ã®ã³ããããã¢ã»ã³ãã«ããããã« CI ã·ã¹ãã ã§ãã€ãã©ã€ã³ãå®è¡ãããé åºã«äŸåããªãããã§ãã
ãããéèŠã ïŒããããå§ãã ã¹ããŒãžçœ²å - ã§ã å¯äžæšå¥šãããã¿ã°ä»ãæŠç¥ã ã³ãã³ãã§ããã©ã«ãã§äœ¿çšãããŸãã werf ci-env
(å¥ã®ã¿ã°ä»ãã¹ããŒã ãæ瀺çã«æå®ããªãéã)ã
ãã®ã³ã°ã¬ãã«
ãŠãŒã¶ãŒã¯åºåãå¶åŸ¡ãããã°ã¬ãã«ãèšå®ãããããã°æ
å ±ãæäœã§ããããã«ãªããŸããã ãªãã·ã§ã³ãè¿œå ããŸãã --log-quiet
, --log-verbose
, --log-debug
.
ããã©ã«ãã§ã¯ãåºåã«ã¯æå°éã®æ å ±ãå«ãŸããŸãã
詳现ãªåºåã䜿çšããå Žå (--log-verbose
) werf ãã©ã®ããã«æ©èœãããã確èªã§ããŸãã
詳现ãªåºå (--log-debug
) ã«ã¯ãwerf ãããã°æ
å ±ã«å ããŠã䜿çšãããã©ã€ãã©ãªã®ãã°ãå«ãŸããŠããŸãã ããšãã°ãDocker ã¬ãžã¹ããªãšã®å¯Ÿè©±ãã©ã®ããã«è¡ããããã確èªããããªãã®æéãè²»ããããå Žæãèšé²ããããšãã§ããŸãã
ãããªãèšç»
èŠåïŒ ä»¥äžã§èª¬æãããªãã·ã§ã³ã«ã¯ããŒã¯ãä»ããŠããŸã v1.1 ãã®ããŒãžã§ã³ã§ã¯ããã®å€ããè¿ãå°æ¥ã«å©çšå¯èœã«ãªãäºå®ã§ãã ã¢ããããŒãã¯èªåã¢ããããŒãã«ãã£ãŠè¡ãããŸã
ããŸããŸãª Docker ã¬ãžã¹ããªå®è£ ã®å®å šãªãµããŒã (æ°èŠ)
- ããŒãžã§ã³: v1.1
- æ¥çš: XNUMXæ
-
åé¡
ç®æšã¯ããŠãŒã¶ãŒã werf ã䜿çšãããšãã«å¶éãªãã«ã¹ã¿ã å®è£ ã䜿çšã§ããããã«ããããšã§ãã
çŸåšãå®å šãªãµããŒããä¿èšŒãã次ã®äžé£ã®ãœãªã¥ãŒã·ã§ã³ãç¹å®ããŠããŸãã
- ããã©ã«ã (ã©ã€ãã©ãª/ã¬ãžã¹ããª)*ã
- AWS ECR
- ã¢ãºãŒã«*ã
- ããã«ãŒãã
- GCR*ã
- GitHub ããã±ãŒãž
- GitLab ã¬ãžã¹ããª*ã
- 枯*ã
- 岞å£ã
çŸåš werf ã«ãã£ãŠå®å šã«ãµããŒããããŠãããœãªã¥ãŒã·ã§ã³ã«ã¯ã¢ã¹ã¿ãªã¹ã¯ãä»ããŠããŸãã ä»ã®äººã«ã¯ãµããŒãããããŸãããå¶éããããŸãã
XNUMX ã€ã®äž»ãªåé¡ãç¹å®ã§ããŸãã
- äžéšã®ãœãªã¥ãŒã·ã§ã³ã¯ Docker Registry API ã䜿çšããã¿ã°ã®åé€ããµããŒãããŠããªãããããŠãŒã¶ãŒã¯ werf ã®èªåã¯ãªãŒã³ã¢ããã䜿çšã§ããŸããã ããã¯ãAWS ECRãDocker Hubãããã³ GitHub ããã±ãŒãžã«åœãŠã¯ãŸããŸãã
- äžéšã®ãœãªã¥ãŒã·ã§ã³ã¯ããããããã¹ãããããªããžã㪠(Docker HubãGitHub ããã±ãŒãžãQuay) ããµããŒãããŠããªããããµããŒãããŠããŸããããŠãŒã¶ãŒã¯ UI ãŸã㯠API (AWS ECR) ã䜿çšããŠæåã§äœæããå¿ èŠããããŸãã
ãããã®åé¡ããã®ä»ã®åé¡ãããœãªã¥ãŒã·ã§ã³ã®ãã€ãã£ã API ã䜿çšããŠè§£æ±ºããŠãããŸãã ãã®ã¿ã¹ã¯ã«ã¯ãã¯ãŒãæäœã®å šãµã€ã¯ã«ãããããã®ãã¹ãã§ã«ããŒããããšãå«ãŸããŸãã
é åžã€ã¡ãŒãžãã«ã(â)
- ããŒãžã§ã³: v1.2 v1.1 (ãã®æ©èœã®å®è£ ã®åªå é äœãäžãããŸãã)
- æ¥çšïŒXNUMXæïœXNUMXæ
-
åé¡
çŸæç¹ã§ã¯ãwerf v1.0 ãš v1.1 ã¯ãã€ã¡ãŒãžã®æ§ç¯ãšå ¬éãããã³ã¢ããªã±ãŒã·ã§ã³ã® Kubernetes ãžã®ãããã€ã®æäœã« XNUMX ã€ã®å°çšãã¹ãã§ã®ã¿äœ¿çšã§ããŸãã
werf ã®åæ£äœæ¥ã®å¯èœæ§ãåºããã«ã¯ãKubernetes ã§ã®ã¢ããªã±ãŒã·ã§ã³ã®ãã«ããšãããã€ã¡ã³ããè€æ°ã®ä»»æã®ãã¹ãã§èµ·åããããããã®ãã¹ãããã«ã (äžæã©ã³ããŒ) éã§ç¶æ ãä¿åããªãå Žåãwerf ã¯æ¬¡ã®æ©èœãå®è£ ããå¿ èŠããããŸããã¹ããŒãž ã¹ãã¢ãšããŠã® Docker ã¬ãžã¹ããªã
以åãwerf ãããžã§ã¯ãããŸã dapp ãšåŒã°ããŠãããšãããã®ãããªæ©äŒããããŸããã ãã ãããã®æ©èœã werf ã«å®è£ ãããšãã«èæ ®ããå¿ èŠãããå€ãã®åé¡ã«ééããŸããã
泚æã ãã®æ©èœã§ã¯ãã³ã¬ã¯ã¿ãŒã Kubernetes ãããå ã§åäœããå¿ èŠã¯ãããŸããã ãããè¡ãã«ã¯ãããŒã«ã« Docker ãµãŒããŒãžã®äŸåãåãé€ãå¿ èŠããããŸã (Kubernetes ãããã§ã¯ãããã»ã¹èªäœãã³ã³ãããŒå ã§å®è¡ãããŠãããwerf ã¯ãµããŒãããŠããªããããããŒã«ã« Docker ãµãŒããŒã«ã¢ã¯ã»ã¹ã§ããŸãã)ããããã¯ãŒã¯çµç±ã§ Docker ãµãŒããŒãšé£æºããŸã)ã Kubernetes ã®å®è¡ã®ãµããŒãã¯å¥éå®è£ ãããŸãã
GitHub Actions ã®æ£åŒãµããŒã (æ°èŠ)
- ããŒãžã§ã³: v1.1
- æ¥çš: XNUMXæ
-
åé¡
werf ããã¥ã¡ã³ããå«ãŸããŠããŸã (ã»ã¯ã·ã§ã³ åç § О ã¬ã€ã)ãããã³ werf ãæäœããããã®å ¬åŒ GitHub ã¢ã¯ã·ã§ã³ã
ããã«ãwerf ãäžæçãªã©ã³ããŒã«å¯ŸããŠåäœã§ããããã«ãªããŸãã
CI ã·ã¹ãã ãšã®ãŠãŒã¶ãŒå¯Ÿè©±ã®ä»çµã¿ã¯ããã« ãªã¯ãšã¹ãã«ã©ãã«ãé 眮ããŠãã¢ããªã±ãŒã·ã§ã³ãæ§ç¯/ããŒã«ã¢ãŠãããããã®ç¹å®ã®ã¢ã¯ã·ã§ã³ãéå§ããããšã«åºã¥ããŠããŸãã
wef ã䜿çšããã¢ããªã±ãŒã·ã§ã³ã®ããŒã«ã«éçºãšãããã€ã¡ã³ã (â)
- ããŒãžã§ã³: v1.1
- æ¥çšïŒXNUMXæïœXNUMXæ
-
åé¡
äž»ãªç®æšã¯ãè€éãªã¢ã¯ã·ã§ã³ãå¿ èŠãšããã«ãã¢ããªã±ãŒã·ã§ã³ãããŒã«ã«ãšéçšç°å¢ã®äž¡æ¹ã«ãããã€ããããã®åäžã®çµ±åãããæ§æãããã«å®çŸã§ããããã«ããããšã§ãã
werf ã«ã¯ãã¢ããªã±ãŒã·ã§ã³ ã³ãŒããç·šéãããããã°ã®ããã«å®è¡äžã®ã¢ããªã±ãŒã·ã§ã³ããå³åº§ã«ãã£ãŒãããã¯ãåãåãã®ã«äŸ¿å©ãªåäœã¢ãŒããå¿ èŠã§ãã
æ°ããã¯ãªãŒãã³ã°ã¢ã«ãŽãªãºã (NEW)
- ããŒãžã§ã³: v1.1
- æ¥çš: XNUMXæ
-
åé¡
çŸåšã®ããŒãžã§ã³ã® werf v1.1 ã®æé ã§ã¯ cleanup
ã³ã³ãã³ãããŒã¹ã®ã¿ã°ä»ãã¹ããŒã ã®ã€ã¡ãŒãžãã¯ãªãŒãã³ã°ããæ©èœã¯ãããŸããããããã®ã€ã¡ãŒãžã¯èç©ãããŸãã
ãŸããçŸåšã®ããŒãžã§ã³ã® werf (v1.0 ããã³ v1.1) ã¯ãã¿ã°ä»ãã¹ããŒã (Git ãã©ã³ããGit ã¿ã°ããŸã㯠Git ã³ããã) ã§å ¬éãããã€ã¡ãŒãžã«å¯ŸããŠç°ãªãã¯ãªãŒã³ã¢ãã ããªã·ãŒã䜿çšããŸãã
Git ã§ã®ã³ãããå±¥æŽã«åºã¥ããŠã€ã¡ãŒãžãã¯ãªãŒãã³ã°ããããã®ããã¹ãŠã®ã¿ã°ä»ãã¹ããŒã ã«çµ±äžãããæ°ããã¢ã«ãŽãªãºã ãçºæãããŸããã
- å git HEAD (ãã©ã³ããšã¿ã°) ã«å¯ŸããŠãN1 åã®ææ°ã®ã³ãããã«é¢é£ä»ãããã N2 å以äžã®ã€ã¡ãŒãžãä¿æããªãã§ãã ããã
- å git HEAD (ãã©ã³ããšã¿ã°) ã® N1 åã®ææ°ã³ãããã«é¢é£ä»ãããã N2 åã®ã¹ããŒãž ã€ã¡ãŒãžãä¿åããŠãã ããã
- Kubernetes ã¯ã©ã¹ã¿ãŒ ãªãœãŒã¹ã§äœ¿çšããããã¹ãŠã®ã€ã¡ãŒãžãä¿åããŸã (æ§æãã¡ã€ã«ãšåå空éã®ãã¹ãŠã® kube ã³ã³ããã¹ããã¹ãã£ã³ãããŸããç¹å¥ãªãªãã·ã§ã³ã䜿çšããŠãã®åäœãå¶éã§ããŸã)ã
- Helm ãªãªãŒã¹ã«ä¿åããããªãœãŒã¹æ§æãããã§ã¹ãã§äœ¿çšããããã¹ãŠã®ã€ã¡ãŒãžãä¿åããŸãã
- ã€ã¡ãŒãžã git ã®ã©ã® HEAD ã«ãé¢é£ä»ããããŠããã (ããšãã°ã察å¿ãã HEAD èªäœãåé€ããããã)ãKubernetes ã¯ã©ã¹ã¿ãŒããã³ Helm ãªãªãŒã¹ã®ãããã§ã¹ãã§äœ¿çšãããŠããªãå Žåãã€ã¡ãŒãžãåé€ã§ããŸãã
䞊åã€ã¡ãŒãžæ§ç¯ïŒâïŒ
- ããŒãžã§ã³: v1.1
- æ¥çš: XNUMXæïœXNUMXæ XNUMXæ*
werf ã®çŸåšã®ããŒãžã§ã³ã¯ãã§èª¬æãããŠããã€ã¡ãŒãžãšã¢ãŒãã£ãã¡ã¯ããåéããŸãã werf.yaml
ãé 次ã 䟿å©ã§æçãªåºåãæäŸããã ãã§ãªããç»åãšã¢ãŒãã£ãã¡ã¯ãã®ç¬ç«ãã段éãçµã¿ç«ãŠãããã»ã¹ã䞊ååããå¿
èŠããããŸãã
* 泚: åæ£ã¢ã»ã³ããªã®å®è£ ã®åªå 床ãé«ãŸã£ããããæéã¯å€æŽãããŸãããããã«ãããæ°Žå¹³ã¹ã±ãŒãªã³ã°æ©èœãè¿œå ãããGitHub Actions ã§ã® werf ã®äœ¿çšãå¯èœã«ãªããŸãã 䞊åã¢ã»ã³ããªã¯æ¬¡ã®æé©åã¹ãããã§ãããXNUMX ã€ã®ãããžã§ã¯ããçµã¿ç«ãŠããšãã«åçŽæ¹åã®ã¹ã±ãŒã©ããªãã£ãæäŸããŸãã
Helm 3 ãžã®ç§»è¡ (â)
- ããŒãžã§ã³: v1.2
- æ¥çš: XNUMXæïœXNUMXæ XNUMXæ*
æ°ããã³ãŒãããŒã¹ãžã®ç§»è¡ãå«ã
* 泚: Helm 3 ã®äž»èŠãªæ©èœ (3-way ããŒãžãšãã£ã©ãŒãªã) ã¯ãã¹ãŠ werf ã«ãã§ã«å®è£
ãããŠãããããHelm 3 ã«åãæ¿ããŠãéèŠãªæ©èœã¯ werf ã«è¿œå ãããŸããã ããã«ããŽã§ã«ãã«ã¯ã
Kubernetesã®æ§æãèšè¿°ããããã®JsonnetïŒâïŒ
- ããŒãžã§ã³: v1.2
- æ¥çš: XNUMXæïœXNUMXæ XNUMXæïœXNUMXæ
Werf ã¯ãJsonnet 圢åŒã§ã® Kubernetes ã®æ§æèšè¿°ããµããŒãããŸãã åæã«ãwerf 㯠Helm ãšã®äºææ§ãç¶æããèšè¿°åœ¢åŒãéžæã§ããããã«ãªããŸãã
ãã®çç±ã¯ãå€ãã®äººã«ãããšãGo ãã³ãã¬ãŒãã«ã¯åå ¥éå£ãé«ãããããã®ãã³ãã¬ãŒãã®ã³ãŒãã®ç解æ§ãæãªãããŠããããã§ãã
ä»ã® Kubernetes æ§æèšè¿°ã·ã¹ãã (KusTOMize ãªã©) ãå°å ¥ããå¯èœæ§ãæ€èšãããŠããŸãã
Kubernetes å ã§ã®äœæ¥ (â)
- ããŒãžã§ã³: v1.2
- æ¥çš: XNUMXæïœXNUMXæ XNUMXæïœXNUMXæ
ç®æš: Kubernetes ã®ã©ã³ããŒã䜿çšããŠã€ã¡ãŒãžãæ§ç¯ãããã¢ããªã±ãŒã·ã§ã³ãé ä¿¡ãããããã«ããŸãã ãããã®ã æ°ããã€ã¡ãŒãžã¯ãKubernetes ãããããçŽæ¥æ§ç¯ãå ¬éãã¯ãªãŒã³ã¢ããããããã€ã§ããŸãã
ãã®æ©èœãå®è£ ããã«ã¯ããŸãåæ£ã€ã¡ãŒãžãæ§ç¯ã§ããå¿ èŠããããŸãã (äžèšã®ç¹ãåç §).
ãŸããDocker ãµãŒããŒã䜿çšããªããã«ããŒã®åäœã¢ãŒã (ã€ãŸããKaniko ã®ãããªãã«ããŸãã¯ãŠãŒã¶ãŒç©ºéã§ã®ãã«ã) ã®ãµããŒããå¿ èŠã§ãã
Werf ã¯ãDockerfile ã ãã§ãªããå¢åãªãã«ããåãã Stapel ãã«ããŒã Ansible ã䜿çšãã Kubernetes ã§ã®æ§ç¯ããµããŒãããŸãã
ãªãŒãã³éçºãžã®äžæ©
ç§ãã¡ã¯ã³ãã¥ããã£ãæããŠããŸã (
ããæè¿ã«åãæ¿ããããšã決ãŸããŸãã
以äžã®åé¡ã«å¯ŸããŠå€ãã®äœæ¥ãè¡ãããŠããŸããã
- é¢ä¿ã®ãªããã®ã¯åé€ããŸããã
- æ¢åã®ãã®ã¯ãååãªæ°ã®è©³çŽ°ãšè©³çŽ°ãåããåäžã®åœ¢åŒã«ãŸãšããããŠããŸãã
- ã¢ã€ãã¢ãææ¡ãå«ãæ°ããåé¡ãè¿œå ãããŸããã
ããŒãžã§ã³v1.1ãæå¹ã«ããæ¹æ³
çŸåšãã®ããŒãžã§ã³ã¯æ¬¡ã®å Žæã§å©çšå¯èœã§ã
source $(multiwerf use 1.1 ea)
werf COMMAND ...
ãŸãšã
æ°ããã¹ããŒãž ã¹ãã¬ãŒãž ã¢ãŒããã¯ãã£ãšãStapel ããã³ Dockerfile ãã«ããŒã®ãã«ããŒæé©åã«ãããwerf ã§åæ£ãã«ããšäžŠåãã«ããå®è£
ã§ããå¯èœæ§ãåºãããŸãã ãããã®æ©èœã¯éããªãåã v1.1 ãªãªãŒã¹ã«è¿œå ãããèªåæŽæ°ã¡ã«ããºã (ãŠãŒã¶ãŒåã) ãéããŠèªåçã«å©çšå¯èœã«ãªããŸãã
ãã®ãªãªãŒã¹ã§ã¯ãç»åã³ã³ãã³ãã«åºã¥ããã¿ã°ä»ãæŠç¥ãè¿œå ãããŸããã ã³ã³ãã³ãããŒã¹ã®ã¿ã°ä»ãããããããã©ã«ãã®æŠç¥ãšãªã£ãŠããŸãã ã¡ã€ã³ã®ã³ãã³ã ãã°ãæžãçŽãããŸããã werf build
, werf publish
, werf deploy
, werf dismiss
, werf cleanup
.
次ã®éèŠãªã¹ãããã¯ãåæ£ã¢ã»ã³ããªãè¿œå ããããšã§ãã åæ£ãã«ãã¯ãv1.0 以éã䞊åãã«ããããåªå 床ãé«ããªããŸãããããã¯ããã«ããŒã®åçŽã¹ã±ãŒãªã³ã°ãšãããŸããŸãª CI/CD ã·ã¹ãã ã§ã®äžæçãªãã«ããŒã®ãµããŒããããã³ GitHub Actions ã®å ¬åŒãµããŒããè¡ãæ©èœãªã©ãwerf ã«ããå€ãã®äŸ¡å€ãè¿œå ããããã§ãã ã ãããã£ãŠã䞊è¡ã¢ã»ã³ããªã®å®è£ æéãå€æŽãããŸããã ãã ããç§ãã¡ã¯äž¡æ¹ã®å¯èœæ§ãã§ããã ãæ©ãå®è£ ã§ããããåãçµãã§ããŸãã
ãã¥ãŒã¹ããã©ããŒããŠãã ããïŒ ãã²ãè¶ããã ããã
PS
ç§ãã¡ã®ããã°ããèªã¿ãã ãã:
- «
werf 1.0 å®å®çã®çŽ¹ä»: GitOps ãšãããšã®é¢ä¿ãã¹ããŒã¿ã¹ãèšç» » - «
werf - Kubernetes ã® CI / CD çšããŒã« (æŠèŠãšãããªã¬ããŒã) "; - werf ã®ã€ãããŒã·ã§ã³ã«é¢ããäžé£ã®ã¡ã¢:
- «
werf ãžã® 3 æ¹åããŒãž: Helm ãã匷åã«ã䜿çšãã Kubernetes ãžã®ãããã€ã¡ã³ã "; - «
wef ã䜿çšããŠè€é㪠Helm ãã£ãŒããå±éãã "; - «
werf ã§ã®ã¢ããªããžããªãšãã«ããªããžããªã®ãµããŒããšãDocker ã¬ãžã¹ããªã¯ãããšäœã®é¢ä¿ããããŸãã "; - «
éåžžã® Dockerfile ã䜿çšããŠãwerf 㧠Docker ã€ã¡ãŒãžãæ§ç¯ã§ããããã«ãªããŸãã 'ã
- «
åºæïŒ habr.com