เบเบฒเบ™เบ›เปˆเบญเบ werf 1.1: เบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เบœเบนเป‰เบเปเปˆเบชเป‰เบฒเบ‡เปƒเบ™เบกเบทเป‰เบ™เบตเป‰เปเบฅเบฐเปเบœเบ™เบเบฒเบ™เบชเปเบฒเบฅเบฑเบšเบญเบฐเบ™เบฒเบ„เบปเบ”

เบเบฒเบ™เบ›เปˆเบญเบ werf 1.1: เบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เบœเบนเป‰เบเปเปˆเบชเป‰เบฒเบ‡เปƒเบ™เบกเบทเป‰เบ™เบตเป‰เปเบฅเบฐเปเบœเบ™เบเบฒเบ™เบชเปเบฒเบฅเบฑเบšเบญเบฐเบ™เบฒเบ„เบปเบ”

werf เป€เบ›เบฑเบ™เปเบซเบผเปˆเบ‡เป€เบ›เบตเบ”เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ GitOps CLI utility เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡เปเบฅเบฐเบชเบปเปˆเบ‡เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบเบฑเบš Kubernetes. เบ•เบฒเบกเบชเบฑเบ™เบเบฒ, เบเบฒเบ™เบ›เปˆเบญเบเป€เบงเบตเบŠเบฑเบ™ v1.0 เบซเบกเบฒเบเบˆเบธเบ”เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ‚เบญเบ‡เบเบฒเบ™เป€เบžเบตเปˆเบกเบฅเบฑเบเบชเบฐเบ™เบฐเปƒเบซเบกเปˆเปƒเบซเป‰เบเบฑเบš werf เปเบฅเบฐเบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เบงเบดเบ—เบตเบเบฒเบ™เปเบšเบšเบ”เบฑเป‰เบ‡เป€เบ”เบตเบก. เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบžเบงเบเป€เบฎเบปเบฒเบกเบตเบ„เบงเบฒเบกเบเบดเบ™เบ”เบตเบ—เบตเปˆเบˆเบฐเบ™เปเบฒเบชเบฐเป€เบซเบ™เบตเบเบฒเบ™เบ›เปˆเบญเบ v1.1, เป€เบŠเบดเปˆเบ‡เป€เบ›เบฑเบ™เบšเบฒเบ”เบเป‰เบฒเบงเบญเบฑเบ™เปƒเบซเบเปˆเบซเบผเบงเบ‡เปƒเบ™เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเปเบฅเบฐเบžเบทเป‰เบ™เบ–เบฒเบ™เบชเปเบฒเบฅเบฑเบšเบญเบฐเบ™เบฒเบ„เบปเบ” เบœเบนเป‰เป€เบเบฑเบš werf. เบชเบฐเบšเบฑเบšเบ›เบฐเบˆเบธเบšเบฑเบ™เปเบกเปˆเบ™เบกเบตเบขเบนเปˆเปƒเบ™ เบŠเปˆเบญเบ‡ 1.1 ea.

เบžเบทเป‰เบ™เบ–เบฒเบ™เบ‚เบญเบ‡เบเบฒเบ™เบ›เปˆเบญเบเปเบกเปˆเบ™เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบ‚เบฑเป‰เบ™เบ•เบญเบ™เปƒเบซเบกเปˆเปเบฅเบฐเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ‚เบญเบ‡เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบ‚เบญเบ‡เบ—เบฑเบ‡เบชเบญเบ‡เบ™เบฑเบเบฅเบงเบšเบฅเบงเบก (เบชเปเบฒเบฅเบฑเบš Stapel เปเบฅเบฐ Dockerfile). เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเปƒเบซเบกเปˆเป€เบ›เบตเบ”เบ„เบงเบฒเบกเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ‚เบญเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบ›เบฐเบเบญเบšเบเบฒเบ™เปเบˆเบเบขเบฒเบเบˆเบฒเบเบซเบผเบฒเบเป‚เบฎเบ”เปเบฅเบฐเบเบฒเบ™เบ›เบฐเบเบญเบšเบ‚เบฐเบซเบ™เบฒเบ™เบขเบนเปˆเปƒเบ™เป‚เบฎเบ”เบ”เบฝเบงเบเบฑเบ™.

เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ‚เบญเบ‡เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบ›เบฐเบเบญเบšเบกเบตเบเบฒเบ™เบเปเบฒเบˆเบฑเบ”เบเบฒเบ™เบ„เบดเบ”เป„เบฅเปˆเบ—เบตเปˆเบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เปƒเบ™เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบ‚เบญเบ‡เบเบฒเบ™เบ„เบดเบ”เป„เบฅเปˆเบฅเบฒเบเป€เบŠเบฑเบ™เบ‚เบญเบ‡เบ‚เบฑเป‰เบ™เบ•เบญเบ™เปเบฅเบฐเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบเบปเบ™เป„เบเบเบฒเบ™เบ„เบดเบ”เป„เบฅเปˆเป„เบŸเบฅเปŒ checksums เบ—เบตเปˆเบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบซเบผเบฒเบเบ‚เบถเป‰เบ™. เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ™เบตเป‰เบˆเบฐเบซเบผเบธเบ”เบœเปˆเบญเบ™เป€เบงเบฅเบฒเบชเบฐเป€เบฅเปˆเบเบ‚เบญเบ‡เบเบฒเบ™เบชเป‰เบฒเบ‡เป‚เบ„เบ‡เบเบฒเบ™เป‚เบ”เบเปƒเบŠเป‰ werf. เปเบฅเบฐ idle builds, เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบ‚เบฑเป‰เบ™เบ•เบญเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”เบกเบตเบขเบนเปˆเปƒเบ™ cache เบ‚เบฑเป‰เบ™โ€‹เบ•เบญเบ™โ€‹เบเบฒเบ™โ€‹เป€เบเบฑเบšโ€‹เบฎเบฑเบโ€‹เบชเบฒโ€‹, เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เปเบกเปˆเบ™เป„เบงเปเบ—เป‰เป†. เปƒเบ™เบเปเบฅเบฐเบ™เบตเบซเบผเบฒเบเบ—เบตเปˆเบชเบธเบ”, เบเบฒเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡เบ„เบทเบ™เปƒเบซเบกเปˆเบˆเบฐเปƒเบŠเป‰เป€เบงเบฅเบฒเบซเบ™เป‰เบญเบเบเบงเปˆเบฒ 1 เบงเบดเบ™เบฒเบ—เบต! เบ™เบตเป‰เบเบฑเบ‡เปƒเบŠเป‰เบเบฑเบšเบ‚เบฑเป‰เบ™เบ•เบญเบ™เบเบฒเบ™เบเบงเบ”เบชเบญเบšเบ‚เบฑเป‰เบ™เบ•เบญเบ™เปƒเบ™เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบ‚เบญเบ‡เบ—เบตเบกเบ‡เบฒเบ™. werf deploy ะธ werf run.

เบ™เบญเบเบˆเบฒเบเบ™เบตเป‰เปƒเบ™เบเบฒเบ™เบ›เปˆเบญเบเบ™เบตเป‰, เบเบธเบ”เบ—เบฐเบชเบฒเบ”เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™ tag เบฎเบนเบšเบžเบฒเบšเป‚เบ”เบเป€เบ™เบทเป‰เบญเบซเบฒเบ›เบฒเบเบปเบ” - tagging เบญเบตเบ‡เปƒเบชเปˆเป€เบ™เบทเป‰เบญเปƒเบ™, เป€เบŠเบดเปˆเบ‡เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบฅเบฐเบญเบฑเบ™เบ”เบฝเบงเบ—เบตเปˆเปเบ™เบฐเบ™เปเบฒ.

เบ‚เปเปƒเบซเป‰เบžเบดเบˆเบฒเบฅเบฐเบ™เบฒเป€เบšเบดเปˆเบ‡เบเบฒเบ™เบ›เบฐเบ”เบดเบ”เบชเป‰เบฒเบ‡เบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™เปƒเบ™ werf v1.1, เปเบฅเบฐเปƒเบ™เป€เบงเบฅเบฒเบ”เบฝเบงเบเบฑเบ™เบšเบญเบเบ—เปˆเบฒเบ™เบเปˆเบฝเบงเบเบฑเบšเปเบœเบ™เบเบฒเบ™เบชเปเบฒเบฅเบฑเบšเบญเบฐเบ™เบฒเบ„เบปเบ”.

เบกเบตเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบซเบเบฑเบ‡เปƒเบ™ werf v1.1?

เบฎเบนเบšเปเบšเบšเบเบฒเบ™เบ•เบฑเป‰เบ‡เบŠเบทเปˆเบ‚เบฑเป‰เบ™เบ•เบญเบ™ เปเบฅเบฐเบชเบนเบ”เบเบฒเบ™เบ„เบดเบ”เป„เบฅเปˆเปƒเปเปˆเบชเบณเบฅเบฑเบšเบเบฒเบ™เป€เบฅเบทเบญเบเบ‚เบฑเป‰เบ™เบ•เบญเบ™เบˆเบฒเบเปเบ„เบ”

เบเบปเบ”เบฅเบฐเบšเบฝเบšเบเบฒเบ™เบชเป‰เบฒเบ‡เบŠเบทเปˆเป€เบงเบ—เบตเปƒเบซเบกเปˆ. เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เปเบ•เปˆเบฅเบฐเบ‚เบฑเป‰เบ™เบ•เบญเบ™เบเบฒเบ™เบชเป‰เบฒเบ‡เบชเป‰เบฒเบ‡เบŠเบทเปˆเป€เบงเบ—เบตเบ—เบตเปˆเป€เบ›เบฑเบ™เป€เบญเบเบฐเบฅเบฑเบ, เป€เบŠเบดเปˆเบ‡เบ›เบฐเบเบญเบšเบ”เป‰เบงเบ 2 เบชเปˆเบงเบ™: เบฅเบฒเบเป€เบŠเบฑเบ™ (เบ•เบฒเบกเบ—เบตเปˆเบกเบฑเบ™เบขเบนเปˆเปƒเบ™ v1.0) เบšเบงเบเบเบฑเบšเบ•เบปเบงเบฅเบฐเบšเบธเบŠเบปเปˆเบงเบ„เบฒเบงเบ—เบตเปˆเบšเปเปˆเบŠเป‰เปเบฒเบเบฑเบ™.

เบ•เบปเบงเบขเปˆเบฒเบ‡, เบŠเบทเปˆเบฎเบนเบšเบžเบฒเบšเป€เบ•เบฑเบกเบฎเบนเบšเปเบšเบšเบญเบฒเบ”เป€เบšเบดเปˆเบ‡เบ„เบทเบงเปˆเบฒเบ™เบตเป‰:

werf-stages-storage/myproject:d2c5ad3d2c9fcd9e57b50edd9cb26c32d156165eb355318cebc3412b-1582656767835

... เบซเบผเบทเป‚เบ”เบเบ—เบปเปˆเบงเป„เบ›:

werf-stages-storage/PROJECT:SIGNATURE-TIMESTAMP_MILLISEC

เบ—เบตเปˆเบ™เบตเป‰:

  • SIGNATURE เปเบกเปˆเบ™เบฅเบฒเบเป€เบŠเบฑเบ™เบ‚เบญเบ‡เป€เบงเบ—เบต, เป€เบŠเบดเปˆเบ‡เป€เบ›เบฑเบ™เบ•เบปเบงเปเบ—เบ™เบ‚เบญเบ‡เบ•เบปเบงเบฅเบฐเบšเบธเบ‚เบญเบ‡เป€เบ™เบทเป‰เบญเบซเบฒเป€เบงเบ—เบตเปเบฅเบฐเบ‚เบถเป‰เบ™เบเบฑเบšเบ›เบฐเบซเบงเบฑเบ”เบ‚เบญเบ‡เบเบฒเบ™เปเบเป‰เป„เบ‚เปƒเบ™ Git เบ—เบตเปˆเบ™เปเบฒเป„เบ›เบชเบนเปˆเป€เบ™เบทเป‰เบญเบซเบฒเบ™เบตเป‰;
  • TIMESTAMP_MILLISEC เปเบกเปˆเบ™เบ•เบปเบงเบฅเบฐเบšเบธเบฎเบนเบšเบžเบฒเบšเบ—เบตเปˆเป€เบ›เบฑเบ™เป€เบญเบเบฐเบฅเบฑเบเบ—เบตเปˆเบฎเบฑเบšเบ›เบฐเบเบฑเบ™เบ—เบตเปˆเบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบฎเบนเบšเบžเบฒเบšเปƒเบซเบกเปˆเบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™.

เบชเบนเบ”เบเบฒเบ™เบ„เบดเบ”เป„เบฅเปˆเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบฅเบทเบญเบเบ‚เบฑเป‰เบ™เบ•เบญเบ™เบˆเบฒเบ cache เปเบกเปˆเบ™เบญเบตเบ‡เปƒเบชเปˆเบเบฒเบ™เบเบงเบ”เบชเบญเบšเบ„เบงเบฒเบกเบชเปเบฒเบžเบฑเบ™เบ‚เบญเบ‡ Git commits:

  1. Werf เบ„เบดเบ”เป„เบฅเปˆเบฅเบฒเบเป€เบŠเบฑเบ™เบ‚เบญเบ‡เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบ—เบตเปˆเปเบ™เปˆเบ™เบญเบ™.
  2. ะ’ เบ‚เบฑเป‰เบ™โ€‹เบ•เบญเบ™โ€‹เบเบฒเบ™โ€‹เป€เบเบฑเบšโ€‹เบฎเบฑเบโ€‹เบชเบฒโ€‹ เบญเบฒเบ”เบˆเบฐเบกเบตเบซเบผเบฒเบเบ‚เบฑเป‰เบ™เบ•เบญเบ™เบชเปเบฒเบฅเบฑเบšเบฅเบฒเบเป€เบŠเบฑเบ™เบ—เบตเปˆเปƒเบซเป‰. Werf เป€เบฅเบทเบญเบเบ—เบธเบเบ‚เบฑเป‰เบ™เบ•เบญเบ™เบ—เบตเปˆเบเบปเบ‡เบเบฑเบšเบฅเบฒเบเป€เบŠเบฑเบ™.
  3. เบ–เป‰เบฒเบ‚เบฑเป‰เบ™เบ•เบญเบ™เบ›เบฐเบˆเบธเบšเบฑเบ™เป€เบŠเบทเปˆเบญเบกเป‚เบเบ‡เบเบฑเบš Git (git-archive, เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบ—เบตเปˆเบเปเบฒเบซเบ™เบปเบ”เป€เบญเบ‡เบเบฑเบš Git patches: install, beforeSetup, setup; เบซเบผเบท git-latest-patch), เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™ werf เป€เบฅเบทเบญเบเบžเบฝเบ‡เปเบ•เปˆเบ‚เบฑเป‰เบ™เบ•เบญเบ™เป€เบซเบผเบปเปˆเบฒเบ™เบฑเป‰เบ™เบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบšเบ„เปเบฒเบซเบกเบฑเป‰เบ™เบชเบฑเบ™เบเบฒเบ—เบตเปˆเป€เบ›เบฑเบ™เบšเบฑเบ™เบžเบฐเบšเบธเบฅเบธเบ”เบ‚เบญเบ‡เบ„เปเบฒเบซเบกเบฑเป‰เบ™เบชเบฑเบ™เบเบฒเปƒเบ™เบ›เบฐเบˆเบธเบšเบฑเบ™ (เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡เปเบกเปˆเบ™เป€เบญเบตเป‰เบ™เบงเปˆเบฒ).
  4. เบˆเบฒเบเบ‚เบฑเป‰เบ™เบ•เบญเบ™เบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบกเบ—เบตเปˆเบเบฑเบ‡เป€เบซเบผเบทเบญ, เบซเบ™เบถเปˆเบ‡เปเบกเปˆเบ™เป€เบฅเบทเบญเบ - เป€เบเบปเปˆเบฒเปเบเปˆเบ—เบตเปˆเบชเบธเบ”เป‚เบ”เบเบงเบฑเบ™เบ—เบตเบชเป‰เบฒเบ‡.

เป€เบงเบ—เบตเบชเปเบฒเบฅเบฑเบšเบชเบฒเบ‚เบฒ Git เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เบชเบฒเบกเบฒเบ”เบกเบตเบฅเบฒเบเป€เบŠเบฑเบ™เบ”เบฝเบงเบเบฑเบ™. เปเบ•เปˆ werf เบˆเบฐเบ›เป‰เบญเบ‡เบเบฑเบ™เบšเปเปˆเปƒเบซเป‰ cache เบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบšเบชเบฒเบ‚เบฒเบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เบˆเบฒเบเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบฅเบฐเบซเบงเปˆเบฒเบ‡เบชเบฒเบ‚เบฒเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰, เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบฅเบฒเบเป€เบŠเบฑเบ™เบˆเบฐเบเบปเบ‡เบเบฑเบ™.

โ†’ เป€เบญเบเบฐเบชเบฒเบ™.

เบชเบนเบ”เบเบฒเบ™เบ„เบดเบ”เป„เบฅเปˆเปƒเบซเบกเปˆเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบชเป‰เบฒเบ‡เปเบฅเบฐเบ›เบฐเบซเบเบฑเบ”เบ‚เบฑเป‰เบ™เบ•เบญเบ™เปƒเบ™เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเป€เบงเบ—เบต

เบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒ, เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเป€เบฅเบทเบญเบเบ‚เบฑเป‰เบ™เบ•เบญเบ™เบˆเบฒเบเบ–เบฒเบ™เบ„เบงเบฒเบกเบˆเปเบฒ, werf เบšเปเปˆเบžเบปเบšเบ‚เบฑเป‰เบ™เบ•เบญเบ™เบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบก, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบ›เบฐเบเบญเบšเบ‚เบฑเป‰เบ™เบ•เบญเบ™เปƒเบซเบกเปˆเปเบกเปˆเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

เปƒเบซเป‰เบชเบฑเบ‡เป€เบเบ”เบงเปˆเบฒเบซเบผเบฒเบเบ‚เบฐเบšเบงเบ™เบเบฒเบ™ (เบขเบนเปˆเปƒเบ™เบซเบ™เบถเปˆเบ‡เบซเบผเบทเบซเบผเบฒเบเป‚เบฎเบ”) เบชเบฒเบกเบฒเบ”เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบชเป‰เบฒเบ‡เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบ”เบฝเบงเบเบฑเบ™เปƒเบ™เป€เบงเบฅเบฒเบ›เบฐเบกเบฒเบ™. Werf เปƒเบŠเป‰เบงเบดเบ—เบตเบเบฒเบ™เบšเบฅเบฑเบญเบเปƒเบ™เปเบ‡เปˆเบ”เบต เบ‚เบฑเป‰เบ™โ€‹เบ•เบญเบ™โ€‹เบเบฒเบ™โ€‹เป€เบเบฑเบšโ€‹เบฎเบฑเบโ€‹เบชเบฒโ€‹ เปƒเบ™โ€‹เบ›เบฑเบ”โ€‹เบˆเบธโ€‹เบšเบฑเบ™โ€‹เบ‚เบญเบ‡โ€‹เบเบฒเบ™โ€‹เบ›เบฐโ€‹เบขเบฑเบ”โ€‹เบฎเบนเบšโ€‹เบžเบฒเบšโ€‹เบเบฒเบ™โ€‹เป€เบเบฑเบšโ€‹เบเปเบฒโ€‹เปƒเบซเบกเปˆโ€‹เปƒเบ™โ€‹ เบ‚เบฑเป‰เบ™โ€‹เบ•เบญเบ™โ€‹เบเบฒเบ™โ€‹เป€เบเบฑเบšโ€‹เบฎเบฑเบโ€‹เบชเบฒโ€‹. เบงเบดเบ—เบตเบ™เบตเป‰, เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบ‚เบญเบ‡เบเบฒเบ™เปƒเบซเบกเปˆเปเบกเปˆเบ™เบเบฝเบกเบžเป‰เบญเบก, werf blocks เบ‚เบฑเป‰เบ™โ€‹เบ•เบญเบ™โ€‹เบเบฒเบ™โ€‹เป€เบเบฑเบšโ€‹เบฎเบฑเบโ€‹เบชเบฒโ€‹ เปเบฅเบฐเบšเบฑเบ™เบ—เบถเบเบฎเบนเบšเบžเบฒเบšเบ—เบตเปˆเป€เบเบฑเบšเบกเบฒเบชเบปเบ”เป†เบขเบนเปˆเบ—เบตเปˆเบ™เบฑเป‰เบ™ เบžเบฝเบ‡เปเบ•เปˆเบ–เป‰เบฒเบฎเบนเบšเบžเบฒเบšเบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบกเบšเปเปˆเบกเบตเบขเบนเปˆเปเบฅเป‰เบง (เป‚เบ”เบเบฅเบฒเบเป€เบŠเบฑเบ™เปเบฅเบฐเบ•เบปเบงเบเปเบฒเบ™เบปเบ”เบเบฒเบ™เบญเบทเปˆเบ™เป† - เป€เบšเบดเปˆเบ‡ algorithm เปƒเบซเบกเปˆเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบฅเบทเบญเบเบ‚เบฑเป‰เบ™เบ•เบญเบ™เบˆเบฒเบ cache).

เบฎเบนเบšเบžเบฒเบšเบ—เบตเปˆเบ›เบฐเบเบญเบšเปƒเบซเบกเปˆเปเบกเปˆเบ™เบฎเบฑเบšเบ›เบฐเบเบฑเบ™เบงเปˆเบฒเบกเบตเบ•เบปเบงเบเปเบฒเบ™เบปเบ”เบ—เบตเปˆเป€เบ›เบฑเบ™เป€เบญเบเบฐเบฅเบฑเบเป‚เบ”เบ TIMESTAMP_MILLISEC (เป€เบšเบดเปˆเบ‡โ€‹เบฎเบนเบšโ€‹เปเบšเบšโ€‹เบเบฒเบ™โ€‹เบ•เบฑเป‰เบ‡โ€‹เบŠเบทเปˆโ€‹เบ‚เบฑเป‰เบ™โ€‹เบ•เบญเบ™โ€‹เปƒเบซเบกเปˆโ€‹). เปƒเบ™เบเปเบฅเบฐเบ™เบต เบ‚เบฑเป‰เบ™โ€‹เบ•เบญเบ™โ€‹เบเบฒเบ™โ€‹เป€เบเบฑเบšโ€‹เบฎเบฑเบโ€‹เบชเบฒโ€‹ เบฎเบนเบšเบžเบฒเบšเบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบกเบˆเบฐเบ–เบทเบเบžเบปเบšเป€เบซเบฑเบ™, werf เบˆเบฐเบเบปเบเป€เบฅเบตเบเบฎเบนเบšเบžเบฒเบšเบ—เบตเปˆเบฅเบงเบšเบฅเบงเบกเปƒเบซเบกเปˆเปเบฅเบฐเบˆเบฐเปƒเบŠเป‰เบฎเบนเบšเบžเบฒเบšเบˆเบฒเบ cache.

เปƒเบ™เบ„เปเบฒเบชเบฑเบšเบ•เปˆเบฒเบ‡เป†เบญเบทเปˆเบ™เป†: เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบ—เปเบฒเบญเบดเบ”เบ—เบตเปˆเบชเปเบฒเป€เบฅเบฑเบ”เบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡เบฎเบนเบšเบžเบฒเบš (เบญเบฑเบ™เบ—เบตเปˆเป„เบงเบ—เบตเปˆเบชเบธเบ”) เบˆเบฐเป„เบ”เป‰เบฎเบฑเบšเบชเบดเบ”เบ—เบดเปƒเบ™เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบกเบฑเบ™เบขเบนเปˆเปƒเบ™เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบ‚เบญเบ‡เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒ (เปเบฅเบฐเบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบกเบฑเบ™เป€เบ›เบฑเบ™เบฎเบนเบšเบ”เบฝเบงเบ™เบตเป‰เบ—เบตเปˆเบˆเบฐเบ™เปเบฒเปƒเบŠเป‰เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡เบ—เบฑเบ‡เบซเบกเบปเบ”). เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบชเป‰เบฒเบ‡เบ—เบตเปˆเบŠเป‰เบฒเบˆเบฐเบšเปเปˆเบ‚เบฑเบ”เบ‚เบงเบฒเบ‡เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบ—เบตเปˆเป„เบงเบเบงเปˆเบฒเบˆเบฒเบเบเบฒเบ™เบ›เบฐเบซเบเบฑเบ”เบœเบปเบ™เบ‚เบญเบ‡เบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡เบ‚เบญเบ‡เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบ›เบฐเบˆเบธเบšเบฑเบ™เปเบฅเบฐเบเป‰เบฒเบงเป„เบ›เบชเบนเปˆเบเบฒเบ™เบชเป‰เบฒเบ‡เบ•เปเปˆเป„เบ›.

โ†’ เป€เบญเบเบฐเบชเบฒเบ™.

เบ›เบฑเบšเบ›เบธเบ‡เบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ•เบปเบงเบชเป‰เบฒเบ‡ Dockerfile

เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™, เบ—เปเปˆเบ‚เบญเบ‡เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบชเปเบฒเบฅเบฑเบšเบฎเบนเบšเบžเบฒเบšเบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เบˆเบฒเบ Dockerfile เบ›เบฐเบเบญเบšเบ”เป‰เบงเบเบ‚เบฑเป‰เบ™เบ•เบญเบ™เบซเบ™เบถเปˆเบ‡ - dockerfile. เป€เบกเบทเปˆเบญเบ„เบดเบ”เป„เบฅเปˆเบฅเบฒเบเป€เบŠเบฑเบ™, checksum เบ‚เบญเบ‡เป„เบŸเบฅเปŒเบ–เบทเบเบ„เบดเบ”เป„เบฅเปˆ context, เป€เบŠเบดเปˆเบ‡เบˆเบฐเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบ›เบฐเบเบญเบš. เบเปˆเบญเบ™เบ—เบตเปˆเบˆเบฐเบ›เบฑเบšเบ›เบธเบ‡เบ™เบตเป‰, werf เป„เบ”เป‰ recursively เบเปˆเบฒเบ‡เบœเปˆเบฒเบ™เป„เบŸเบฅเปŒเบ—เบฑเบ‡เบซเบกเบปเบ”เปเบฅเบฐเป„เบ”เป‰เบฎเบฑเบš checksum เป‚เบ”เบเบเบฒเบ™เบชเบฐเบซเบผเบธเบšเบชเบฐเบžเบฒเบšเบเบฒเบ™เปเบฅเบฐเบฎเบนเบšเปเบšเบšเบ‚เบญเบ‡เปเบ•เปˆเบฅเบฐเป„เบŸเบฅเปŒ. เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ”เป‰เบงเบ v1.1, werf เบชเบฒเบกเบฒเบ”เปƒเบŠเป‰ checksums เบ—เบตเปˆเบ–เบทเบเบ„เบดเบ”เป„เบฅเปˆเบ—เบตเปˆเป€เบเบฑเบšเป„เบงเป‰เปƒเบ™ Git repository.

เบชเบนเบ”เบเบฒเบ™เบ„เบดเบ”เป„เบฅเปˆเปเบกเปˆเบ™เบญเบตเบ‡เปƒเบชเปˆ git ls-tree. เบชเบนเบ”เบเบฒเบ™เบ„เบดเบ”เป„เบฅเปˆเปƒเบŠเป‰เป€เบงเบฅเบฒเป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบšเบฑเบ™เบ—เบถเบเบšเบฑเบ™เบŠเบตเปƒเบ™ .dockerignore เปเบฅเบฐเบ‚เป‰เบฒเบกเบ•เบปเป‰เบ™เป„เบกเป‰เป„เบŸเบฅเปŒ recursively เป€เบกเบทเปˆเบญเบกเบตเบ„เบงเบฒเบกเบˆเปเบฒเป€เบ›เบฑเบ™. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰ decoupled เบˆเบฒเบเบเบฒเบ™เบญเปˆเบฒเบ™เบฅเบฐเบšเบปเบšเป„เบŸเบฅเปŒ, เปเบฅเบฐเบเบฒเบ™เป€เบญเบทเปˆเบญเบเบญเบตเบ‡เบ‚เบญเบ‡ algorithm เบเปˆเบฝเบงเบเบฑเบšเบ‚เบฐเบซเบ™เบฒเบ”. context เปเบกเปˆเบ™เบšเปเปˆเบชเปเบฒเบ„เบฑเบ™.

เบชเบนเบ”เบเบฒเบ™เบ„เบดเบ”เป„เบฅเปˆเบเบฑเบ‡เบเบงเบ”เบชเบญเบšเป„เบŸเบฅเปŒเบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เบ•เบดเบ”เบ•เบฒเบกเปเบฅเบฐ, เบ–เป‰เบฒเบˆเปเบฒเป€เบ›เบฑเบ™, เป€เบญเบปเบฒเบžเบงเบเบกเบฑเบ™เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบšเบฑเบ™เบŠเบต checksum.

เบ›เบฑเบšเบ›เบธเบ‡เบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเปƒเบ™เป€เบงเบฅเบฒเบ™เปเบฒเป€เบ‚เบปเป‰เบฒเป„เบŸเบฅเปŒ

เป€เบงเบตเบŠเบฑเบ™เบ‚เบญเบ‡ werf v1.1 เปƒเบŠเป‰เป€เบŠเบตเบšเป€เบงเบต rsync เป€เบกเบทเปˆเบญ เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เป€เบ‚เบปเป‰เบฒโ€‹เป„เบŸเบฅโ€‹เปŒโ€‹เบˆเบฒเบโ€‹เบ›เบญเบกโ€‹เปเบฅเบฐโ€‹เบฎเบนเบšโ€‹เบžเบฒเบšโ€‹. เบเปˆเบญเบ™เบซเบ™เป‰เบฒเบ™เบตเป‰, เบเบฒเบ™เบ™เปเบฒเป€เบ‚เบปเป‰เบฒเปเบกเปˆเบ™เป€เบฎเบฑเบ”เปƒเบ™เบชเบญเบ‡เบ‚เบฑเป‰เบ™เบ•เบญเบ™เป‚เบ”เบเปƒเบŠเป‰ directory mount เบˆเบฒเบเบฅเบฐเบšเบปเบšเป‚เบฎเบ”.

เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบ™เปเบฒเป€เบ‚เบปเป‰เบฒเปƒเบ™ macOS เบšเปเปˆเป„เบ”เป‰เบ–เบทเบเบˆเปเบฒเบเบฑเบ”เป‚เบ”เบเบ›เบฐเบฅเบดเบกเบฒเบ™ Docker เบญเบตเบเบ•เปเปˆเป„เบ›, เปเบฅเบฐเบเบฒเบ™เบ™เปเบฒเป€เบ‚เบปเป‰เบฒเบชเปเบฒเป€เบฅเบฑเบ”เปƒเบ™เบˆเปเบฒเบ™เบงเบ™เป€เบงเบฅเบฒเบ”เบฝเบงเบเบฑเบ™เบเบฑเบš Linux เปเบฅเบฐ Windows.

เบเบฒเบ™เปเบ—เบฑเบเบ•เบฒเบกเป€เบ™เบทเป‰เบญเบซเบฒ

Werf v1.1 เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบญเบฑเบ™เบ—เบตเปˆเป€เบญเบตเป‰เบ™เบงเปˆเบฒ tagging เป‚เบ”เบเป€เบ™เบทเป‰เบญเบซเบฒเบฎเบนเบšเบžเบฒเบš - tagging เบญเบตเบ‡เปƒเบชเปˆเป€เบ™เบทเป‰เบญเปƒเบ™. tags เบ‚เบญเบ‡เบฎเบนเบšเบžเบฒเบš Docker เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเปเบกเปˆเบ™เบ‚เบถเป‰เบ™เบเบฑเบšเป€เบ™เบทเป‰เบญเปƒเบ™เบ‚เบญเบ‡เบฎเบนเบšเบžเบฒเบšเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰.

เป€เบกเบทเปˆเบญเปเบฅเปˆเบ™เบ„เปเบฒเบชเบฑเปˆเบ‡ werf publish --tags-by-stages-signature เบซเบผเบท werf ci-env --tagging-strategy=stages-signature เบˆเบฑเบ”เบžเบตเบกเบกเบฒเบฎเบนเบšเบžเบฒเบšเบ‚เบญเบ‡เบญเบฑเบ™เบ—เบตเปˆเป€เบญเบตเป‰เบ™เบงเปˆเบฒ เบฅเบฒเบเป€เบŠเบฑเบ™เป€เบงเบ—เบต เบฎเบนเบš. เปเบ•เปˆเบฅเบฐเบฎเบนเบšเบ–เบทเบเปเบ—เบฑเบเบ”เป‰เบงเบเบฅเบฒเบเป€เบŠเบฑเบ™เบ‚เบญเบ‡เบ•เบปเบ™เป€เบญเบ‡เบ‚เบญเบ‡เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบ‚เบญเบ‡เบฎเบนเบšเบ™เบตเป‰, เป€เบŠเบดเปˆเบ‡เบ„เบดเบ”เป„เบฅเปˆเบ•เบฒเบกเบเบปเบ”เบฅเบฐเบšเบฝเบšเบ”เบฝเบงเบเบฑเบ™เบเบฑเบšเบฅเบฒเบเป€เบŠเบฑเบ™เบ›เบปเบเบเบฐเบ•เบดเบ‚เบญเบ‡เปเบ•เปˆเบฅเบฐเบ‚เบฑเป‰เบ™เบ•เบญเบ™เปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบ, เปเบ•เปˆเป€เบ›เบฑเบ™เบ•เบปเบงเบฅเบฐเบšเบธเบ—เบปเปˆเบงเป„เบ›เบ‚เบญเบ‡เบฎเบนเบšเบžเบฒเบš.

เบฅเบฒเบเป€เบŠเบฑเบ™เบ‚เบญเบ‡เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบฎเบนเบšเบžเบฒเบšเปเบกเปˆเบ™เบ‚เบถเป‰เบ™เบเบฑเบš:

  1. เป€เบ™เบทเป‰เบญเปƒเบ™เบ‚เบญเบ‡เบฎเบนเบšเบžเบฒเบšเบ™เบตเป‰;
  2. เบ›เบฐเบซเบงเบฑเบ”เบชเบฒเบ”เบ‚เบญเบ‡เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡ Git เบ—เบตเปˆเบ™เปเบฒเป„เบ›เบชเบนเปˆเป€เบ™เบทเป‰เบญเบซเบฒเบ™เบตเป‰.

เบ„เบฑเบ‡เป€เบเบฑเบš Git เบชเบฐเป€เบซเบกเบตเบกเบต dummy commits เบ—เบตเปˆเบšเปเปˆเบ›เปˆเบฝเบ™เปเบ›เบ‡เป€เบ™เบทเป‰เบญเปƒเบ™เบ‚เบญเบ‡เป„เบŸเบฅเปŒเบฎเบนเบšเบžเบฒเบš. เบ•เบปเบงเบขเปˆเบฒเบ‡, commits เบกเบตเบžเบฝเบ‡เปเบ•เปˆเบ„เปเบฒเป€เบซเบฑเบ™เบซเบผเบท merge commits, เบซเบผเบท commits เบ—เบตเปˆเบ›เปˆเบฝเบ™เป„เบŸเบฅเปŒเป€เบซเบผเบปเปˆเบฒเบ™เบฑเป‰เบ™เปƒเบ™ Git เบ—เบตเปˆเบˆเบฐเบšเปเปˆเบ–เบทเบเบ™เปเบฒเป€เบ‚เบปเป‰เบฒเป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบฎเบนเบšเบžเบฒเบš.

เป€เบกเบทเปˆเบญเบ™เปเบฒเปƒเบŠเป‰เบเบฒเบ™เบ•เบดเบ”เปเบ—เปเบเป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆเป€เบ™เบทเป‰เบญเบซเบฒ, เบšเบฑเบ™เบซเบฒเบ‚เบญเบ‡เบเบฒเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปƒเบซเบกเปˆเบ—เบตเปˆเบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ‚เบญเบ‡ pods เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเปƒเบ™ Kubernetes เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เปƒเบ™เบŠเบทเปˆเบฎเบนเบšเบžเบฒเบšเป„เบ”เป‰เบ–เบทเบเปเบเป‰เป„เบ‚, เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเป€เบ™เบทเป‰เบญเปƒเบ™เบ‚เบญเบ‡เบฎเบนเบšเบžเบฒเบšเบšเปเปˆเป„เบ”เป‰เบกเบตเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡. เป‚เบ”เบเบงเบดเบ—เบตเบ—เบฒเบ‡เบเบฒเบ™, เบ™เบตเป‰เปเบกเปˆเบ™เป€เบซเบ”เบœเบปเบ™เบซเบ™เบถเปˆเบ‡เบ—เบตเปˆเบ›เป‰เบญเบ‡เบเบฑเบ™เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒ microservices เบˆเปเบฒเบ™เบงเบ™เบซเบผเบฒเบเบ‚เบญเบ‡เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบ”เบฝเบงเปƒเบ™เบšเปˆเบญเบ™เป€เบเบฑเบšเบกเป‰เบฝเบ™ Git เบ”เบฝเบง.

เบ™เบญเบเบˆเบฒเบเบ™เบตเป‰, เบเบฒเบ™เบ•เบดเบ”เปเบ—เปเบเบ—เบตเปˆเบญเบตเบ‡เปƒเบชเปˆเป€เบ™เบทเป‰เบญเบซเบฒเปเบกเปˆเบ™เบงเบดเบ—เบตเบเบฒเบ™เบ•เบดเบ”เปเบ—เปเบเบ—เบตเปˆเป€เบŠเบทเปˆเบญเบ–เบทเป„เบ”เป‰เบซเบผเบฒเบเบเปˆเบงเบฒเบเบฒเบ™เบ•เบดเบ”เปเบ—เปเบเปƒเบ™เบชเบฒเบ‚เบฒ Git, เป€เบžเบฒเบฐเบงเปˆเบฒเป€เบ™เบทเป‰เบญเปƒเบ™เบ‚เบญเบ‡เบฎเบนเบšเบžเบฒเบšเบ—เบตเปˆเป„เบ”เป‰เบฎเบฑเบšเบœเบปเบ™เบšเปเปˆเป„เบ”เป‰เบ‚เบถเป‰เบ™เบเบฑเบšเบ„เปเบฒเบชเบฑเปˆเบ‡เบ—เบตเปˆเบ—เปเปˆเบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เปƒเบ™เบฅเบฐเบšเบปเบš CI เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ›เบฐเบเบญเบšเบซเบผเบฒเบเบ„เปเบฒเบซเบกเบฑเป‰เบ™เบชเบฑเบ™เบเบฒเบ‚เบญเบ‡เบชเบฒเบ‚เบฒเบ”เบฝเบงเบเบฑเบ™.

เบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™: เป€เบฅเบตเปˆเบกโ€‹เปเบ•เปˆโ€‹เบ™เบตเป‰โ€‹ เบ‚เบฑเป‰เบ™โ€‹เบ•เบญเบ™โ€‹เบเบฒเบ™โ€‹เบฅเบฒเบโ€‹เป€เบŠเบฑเบ™โ€‹ - เบ™เบตเป‰โ€‹เปเบกเปˆเบ™ เบเบธเบ”เบ—เบฐเบชเบฒเบ”เบเบฒเบ™เปเบ—เบฑเบเบ—เบตเปˆเปเบ™เบฐเบ™เปเบฒเป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™. เบกเบฑเบ™เบˆเบฐเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปƒเบ™เบ„เปเบฒเบชเบฑเปˆเบ‡ werf ci-env (เป€เบงเบฑเป‰เบ™เป€เบชเบเปเบ•เปˆเบงเปˆเบฒเบ—เปˆเบฒเบ™เบฅเบฐเบšเบธเบขเปˆเบฒเบ‡เบˆเบฐเปเบˆเป‰เบ‡เบเปˆเบฝเบงเบเบฑเบšเป‚เบ„เบ‡เบเบฒเบ™ tagging เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™).

โ†’ เป€เบญเบเบฐเบชเบฒเบ™. เบเบฒเบ™เบžเบดเบกเป€เบœเบตเบเปเบœเปˆเปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบเบˆเบฐเบ–เบทเบเบญเบธเบ—เบดเบ”เปƒเบซเป‰เบเบฑเบšเบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบ™เบตเป‰เป€เบŠเบฑเปˆเบ™เบเบฑเบ™. เบญเบฑเบšเป€เบ”เบ”เปเบฅเป‰เบง (3 เป€เบกเบชเบฒ): เบšเบปเบ”เบ„เบงเบฒเบกเบ—เบตเปˆเบกเบตเบฅเบฒเบเบฅเบฐเบญเบฝเบ” เบˆเบฑเบ”เบžเบตเบกเบกเบฒ.

เบฅเบฐเบ”เบฑเบšเบเบฒเบ™เบšเบฑเบ™เบ—เบถเบ

เบœเบนเป‰เปƒเบŠเป‰เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบกเบตเป‚เบญเบเบฒเบ”เบ—เบตเปˆเบˆเบฐเบ„เบงเบšเบ„เบธเบกเบœเบปเบ™เบœเบฐเบฅเบดเบ”, เบเปเบฒเบ™เบปเบ”เบฅเบฐเบ”เบฑเบšเบเบฒเบ™เบšเบฑเบ™เบ—เบถเบเปเบฅเบฐเป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบ‚เปเป‰เบกเบนเบ™ debugging. เป€เบžเบตเปˆเบกเบ—เบฒเบ‡เป€เบฅเบทเบญเบ --log-quiet, --log-verbose, --log-debug.

เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™, เบœเบปเบ™เบœเบฐเบฅเบดเบ”เบ›เบฐเบเบญเบšเบกเบตเบ‚เปเป‰เบกเบนเบ™เบ•เปเบฒเปˆเบชเบธเบ”เบ—เบตเปˆ:

เบเบฒเบ™เบ›เปˆเบญเบ werf 1.1: เบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เบœเบนเป‰เบเปเปˆเบชเป‰เบฒเบ‡เปƒเบ™เบกเบทเป‰เบ™เบตเป‰เปเบฅเบฐเปเบœเบ™เบเบฒเบ™เบชเปเบฒเบฅเบฑเบšเบญเบฐเบ™เบฒเบ„เบปเบ”

เปƒเบ™โ€‹เป€เบงโ€‹เบฅเบฒโ€‹เบ—เบตเปˆโ€‹เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เบœเบปเบ™โ€‹เบœเบฐโ€‹เบฅเบดเบ” verbose (--log-verbose) เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบšเบดเปˆเบ‡เบงเบดเบ—เบตเบเบฒเบ™ werf เป€เบฎเบฑเบ”เบงเบฝเบ:

เบเบฒเบ™เบ›เปˆเบญเบ werf 1.1: เบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เบœเบนเป‰เบเปเปˆเบชเป‰เบฒเบ‡เปƒเบ™เบกเบทเป‰เบ™เบตเป‰เปเบฅเบฐเปเบœเบ™เบเบฒเบ™เบชเปเบฒเบฅเบฑเบšเบญเบฐเบ™เบฒเบ„เบปเบ”

เบœเบปเบ™โ€‹เบœเบฐโ€‹เบฅเบดเบ”โ€‹เบฅเบฐโ€‹เบญเบฝเบ” (--log-debug), เบ™เบญเบเป€เบซเบ™เบทเบญเป„เบ›เบˆเบฒเบเบ‚เปเป‰เบกเบนเบ™เบเบฒเบ™เบ”เบตเบšเบฑเบ werf, เบเบฑเบ‡เบกเบตเบšเบฑเบ™เบ—เบถเบเบ‚เบญเบ‡เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบ—เบตเปˆเปƒเบŠเป‰. เบ•เบปเบงเบขเปˆเบฒเบ‡, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบšเบดเปˆเบ‡เบงเปˆเบฒเบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบšเบเบฑเบš Docker Registry เป€เบเบตเบ”เบ‚เบถเป‰เบ™เปเบ™เบงเปƒเบ”, เปเบฅเบฐเบเบฑเบ‡เบšเบฑเบ™เบ—เบถเบเบชเบฐเบ–เบฒเบ™เบ—เบตเปˆเบ—เบตเปˆเปƒเบŠเป‰เป€เบงเบฅเบฒเบขเปˆเบฒเบ‡เบซเบผเบงเบ‡เบซเบผเบฒเบ:

เบเบฒเบ™เบ›เปˆเบญเบ werf 1.1: เบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เบœเบนเป‰เบเปเปˆเบชเป‰เบฒเบ‡เปƒเบ™เบกเบทเป‰เบ™เบตเป‰เปเบฅเบฐเปเบœเบ™เบเบฒเบ™เบชเปเบฒเบฅเบฑเบšเบญเบฐเบ™เบฒเบ„เบปเบ”

เปเบœเบ™เบเบฒเบ™เปƒเบ™เบญเบฐเบ™เบฒเบ„เบปเบ”

เบฅเบฐโ€‹เบกเบฑเบ”โ€‹เบฅเบฐโ€‹เบงเบฑเบ‡ เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบตเปˆเบญเบฐเบ—เบดเบšเบฒเบเบ‚เป‰เบฒเบ‡เบฅเบธเปˆเบกเบ™เบตเป‰เปเบกเปˆเบ™เบซเบกเบฒเบ v1.1 เบˆเบฐเบกเบตเบขเบนเปˆเปƒเบ™เบชเบฐเบšเบฑเบšเบ™เบตเป‰, เบˆเปเบฒเบ™เบงเบ™เบซเบผเบฒเบเบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒเปƒเบ™เบญเบฐเบ™เบฒเบ„เบปเบ”เบญเบฑเบ™เปƒเบเป‰เบ™เบตเป‰. เบเบฒเบ™เบญเบฑเบšเป€เบ”เบ”เบˆเบฐเบกเบฒเป‚เบ”เบเบเบฒเบ™เบญเบฑเบšเป€เบ”เบ”เบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ” เป€เบกเบทเปˆเบญเปƒเบŠเป‰ multiwerf. เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบšเปเปˆเบกเบตเบœเบปเบ™เบ•เปเปˆเบชเปˆเบงเบ™เบ—เบตเปˆเปเบฑเป‰เบ™เบ„เบปเบ‡เบ‚เบญเบ‡เบŸเบฑเบ‡เบŠเบฑเบ™ v1.1; เบฎเบนเบšเบฅเบฑเบเบชเบฐเบ™เบฐเบ‚เบญเบ‡เบžเบงเบเบกเบฑเบ™เบˆเบฐเบšเปเปˆเบฎเบฝเบเบฎเป‰เบญเบ‡เปƒเบซเป‰เบกเบตเบเบฒเบ™เปเบŠเบเปเบŠเบ‡เบ‚เบญเบ‡เบœเบนเป‰เปƒเบŠเป‰เบ”เป‰เบงเบเบ•เบปเบ™เป€เบญเบ‡เปƒเบ™เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ—เบตเปˆเบกเบตเบขเบนเปˆ.

เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบขเปˆเบฒเบ‡เป€เบ•เบฑเบกเบ—เบตเปˆเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ” Docker Registry เบ•เปˆเบฒเบ‡เป† (เปƒเบซเบกเปˆ)

เป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเปเบกเปˆเบ™เป€เบžเบทเปˆเบญเปƒเบซเป‰เบœเบนเป‰เปƒเบŠเป‰เปƒเบŠเป‰เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เปเบšเบšเบเปเบฒเบซเบ™เบปเบ”เป€เบญเบ‡เป‚เบ”เบเบšเปเปˆเบกเบตเบ‚เปเป‰เบˆเปเบฒเบเบฑเบ”เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเปƒเบŠเป‰ werf.

เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™, เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบเปเบฒเบ™เบปเบ”เบŠเบธเบ”เบเบฒเบ™เปเบเป‰เป„เบ‚เบ•เปเปˆเป„เบ›เบ™เบตเป‰เบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบฎเบฑเบšเบ›เบฐเบเบฑเบ™เบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบขเปˆเบฒเบ‡เป€เบ•เบฑเบกเบ—เบตเปˆ:

  • เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™ (เบซเป‰เบญเบ‡เบชเบฐเปเบธเบ”/เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™)*,
  • AWS ECR
  • Azure *,
  • Docker Hub
  • GCR*,
  • เปเบžเบฑเบเป€เบเบ” GitHub
  • GitLab Registry*,
  • เบ—เปˆเบฒเป€เบฎเบทเบญ*,
  • เบฎเปˆเบญเบก.

เบเบฒเบ™เปเบเป‰เป„เบ‚เบ—เบตเปˆเบ›เบฐเบˆเบธเบšเบฑเบ™เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบขเปˆเบฒเบ‡เป€เบ•เบฑเบกเบชเปˆเบงเบ™เป‚เบ”เบ werf เปเบกเปˆเบ™เบซเบกเบฒเบเบ”เป‰เบงเบเป€เบ„เบทเปˆเบญเบ‡เปเบฒเบเบ”เบฒเบง. เบชเปเบฒเบฅเบฑเบšเบ„เบปเบ™เบญเบทเปˆเบ™เบกเบตเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™, เปเบ•เปˆเบกเบตเบ‚เปเป‰เบˆเปเบฒเบเบฑเบ”.

เบชเบญเบ‡เบšเบฑเบ™เบซเบฒเบ•เบปเป‰เบ™เบ•เปเบชเบฒเบกเบฒเบ”เบ–เบทเบเบเปเบฒเบ™เบปเบ”:

  • เบงเบดเบ—เบตเปเบเป‰เป„เบ‚เบšเบฒเบ‡เบขเปˆเบฒเบ‡เบšเปเปˆเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบเบฒเบ™เบ–เบญเบ™เปเบ—เบฑเบเป‚เบ”เบเปƒเบŠเป‰ Docker Registry API, เบ›เป‰เบญเบ‡เบเบฑเบ™เบšเปเปˆเปƒเบซเป‰เบœเบนเป‰เปƒเบŠเป‰เปƒเบŠเป‰เบเบฒเบ™เป€เบฎเบฑเบ”เบ„เบงเบฒเบกเบชเบฐเบญเบฒเบ”เบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เบ‚เบญเบ‡ werf. เบ™เบตเป‰เปเบกเปˆเบ™เบ„เบงเบฒเบกเบˆเบดเบ‡เบชเปเบฒเบฅเบฑเบš AWS ECR, Docker Hub, เปเบฅเบฐเปเบžเบฑเบเป€เบเบ” GitHub.
  • เบšเบฒเบ‡เบงเบดเบ—เบตเปเบเป‰เป„เบ‚เบšเปเปˆเบฎเบญเบ‡เบฎเบฑเบšเบญเบฑเบ™เบ—เบตเปˆเป€เบญเบตเป‰เบ™เบงเปˆเบฒ nested repositories (Docker Hub, GitHub Packages เปเบฅเบฐ Quay) เบซเบผเบทเป€เบฎเบฑเบ”, เปเบ•เปˆเบœเบนเป‰เปƒเบŠเป‰เบ•เป‰เบญเบ‡เบชเป‰เบฒเบ‡เบžเบงเบเบกเบฑเบ™เบ”เป‰เบงเบเบ•เบปเบ™เป€เบญเบ‡เป‚เบ”เบเปƒเบŠเป‰ UI เบซเบผเบท API (AWS ECR).

เบžเบงเบเป€เบฎเบปเบฒเบเปเบฒเบฅเบฑเบ‡เบˆเบฐเปเบเป‰เป„เบ‚เบšเบฑเบ™เบซเบฒเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เปเบฅเบฐเบšเบฑเบ™เบซเบฒเบญเบทเปˆเบ™เป†เป‚เบ”เบเปƒเบŠเป‰ APIs เบžเบทเป‰เบ™เป€เบกเบทเบญเบ‡เบ‚เบญเบ‡เบงเบดเบ—เบตเปเบเป‰เป„เบ‚. เบงเบฝเบเบ‡เบฒเบ™เบ™เบตเป‰เบเบฑเบ‡เบ›เบฐเบเบญเบšเบกเบตเบเบฒเบ™เบเบงเบกเป€เบญเบปเบฒเบงเบปเบ‡เบˆเบญเบ™เป€เบ•เบฑเบกเบ‚เบญเบ‡เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™ werf เบเบฑเบšเบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเบชเปเบฒเบฅเบฑเบšเปเบ•เปˆเบฅเบฐเบ„เบปเบ™เบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒ.

เบเบฒเบ™เบชเป‰เบฒเบ‡เบฎเบนเบšเบžเบฒเบšเบ—เบตเปˆเปเบˆเบเบขเบฒเบ (โ†‘)

  • เบฅเบธเป‰เบ™: v1.2 v1.1 (เบšเบนเบฅเบดเบกเบฐเบชเบดเบ”เปƒเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบ™เบตเป‰เป€เบžเบตเปˆเบกเบ‚เบถเป‰เบ™)
  • เบงเบฑเบ™เบ—เบต: เป€เบ”เบทเบญเบ™เบกเบตเบ™เบฒ - เป€เบ”เบทเบญเบ™เป€เบกเบชเบฒเป€เบ”เบทเบญเบ™เบกเบตเบ™เบฒ
  • เบšเบฑเบ™เบซเบฒ

เปƒเบ™เป€เบงเบฅเบฒเบ™เบตเป‰, werf v1.0 เปเบฅเบฐ v1.1 เบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เบเบฑเบšเป€เบˆเบปเป‰เบฒเบžเบฒเบšเบ—เบตเปˆเบญเบธเบ—เบดเบ”เบ•เบปเบ™เบ”เบฝเบงเป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‡เบฒเบ™เบ‚เบญเบ‡เบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡เปเบฅเบฐเป€เบœเบตเบเปเบœเปˆเบฎเบนเบšเบžเบฒเบšเปเบฅเบฐเบ™เปเบฒเปƒเบŠเป‰เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบเบฑเบš Kubernetes.

เป€เบžเบทเปˆเบญเป€เบ›เบตเบ”เบ„เบงเบฒเบกเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ‚เบญเบ‡เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบ—เบตเปˆเปเบˆเบเบขเบฒเบเบ‚เบญเบ‡ werf, เป€เบกเบทเปˆเบญเบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡เปเบฅเบฐเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเปƒเบ™ Kubernetes เบ–เบทเบเป€เบ›เบตเบ”เบ•เบปเบงเปƒเบ™เบซเบฅเบฒเบ host arbitrary เปเบฅเบฐเป€เบˆเบปเป‰เบฒเบžเบฒเบšเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบšเปเปˆเป„เบ”เป‰เบŠเปˆเบงเบเบ›เบฐเบขเบฑเบ”เบฅเบฑเบ”เบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒเบฅเบฐเบซเบงเปˆเบฒเบ‡ builds (เบ™เบฑเบเปเบฅเปˆเบ™เบŠเบปเปˆเบงเบ„เบฒเบง), werf เปเบกเปˆเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เป€เบžเบทเปˆเบญเบ›เบฐเบ•เบดเบšเบฑเบ”เบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เปƒเบ™เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰. Docker Registry เป€เบ›เบฑเบ™เบฎเป‰เบฒเบ™เบ„เป‰เบฒเป€เบงเบ—เบต.

เบเปˆเบญเบ™เบซเบ™เป‰เบฒเบ™เบตเป‰, เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเป‚เบ„เบ‡เบเบฒเบ™ werf เบเบฑเบ‡เป€เบญเบตเป‰เบ™เบงเปˆเบฒ dapp, เบกเบฑเบ™เบกเบตเป‚เบญเบเบฒเบ”เบ”เบฑเปˆเบ‡เบเปˆเบฒเบง. เบขเปˆเบฒเบ‡เปƒเบ”เบเปเปˆเบ•เบฒเบก, เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบžเบปเบšเบเบฑเบšเบšเบฑเบ™เบซเบฒเบˆเปเบฒเบ™เบงเบ™เบซเบ™เบถเปˆเบ‡เบ—เบตเปˆเบ•เป‰เบญเบ‡เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบžเบดเบˆเบฒเบฅเบฐเบ™เบฒเปƒเบ™เป€เบงเบฅเบฒเบ›เบฐเบ•เบดเบšเบฑเบ”เบซเบ™เป‰เบฒเบ—เบตเปˆเบ™เบตเป‰เปƒเบ™ werf.

ะŸั€ะธะผะตั‡ะฐะฝะธะต. เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบ™เบตเป‰เบšเปเปˆเบฎเบฝเบเบฎเป‰เบญเบ‡เปƒเบซเป‰เบ•เบปเบงเป€เบเบฑเบšเบฅเบงเบšเบฅเบงเบกเป€เบฎเบฑเบ”เบงเบฝเบเบžเบฒเบเปƒเบ™เบเบฑเบ Kubernetes, เป€เบžเบฒเบฐเบงเปˆเบฒ เป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เบชเบดเปˆเบ‡เบ™เบตเป‰, เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เป„เบ”เป‰เบเปเบฒเบˆเบฑเบ”เบเบฒเบ™เป€เบญเบทเปˆเบญเบเบญเบตเบ‡เบˆเบฒเบเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบ‚เบญเบ‡ Docker เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™ (เปƒเบ™ pod Kubernetes เบšเปเปˆเบกเบตเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบ‚เบญเบ‡ Docker เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™, เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒเบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบ•เบปเบงเบกเบฑเบ™เป€เบญเบ‡เปเบกเปˆเบ™เปเบฅเปˆเบ™เบขเบนเปˆเปƒเบ™ container, เปเบฅเบฐ werf เบšเปเปˆเปเบฅเบฐเบˆเบฐเบšเปเปˆเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™. เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเป€เบŠเบตเบšเป€เบงเบต Docker เบœเปˆเบฒเบ™เป€เบ„เบทเบญเบ‚เปˆเบฒเบ). เบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบเบฒเบ™เปเบฅเปˆเบ™ Kubernetes เบˆเบฐเบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบ.

เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบขเปˆเบฒเบ‡เป€เบ›เบฑเบ™เบ—เบฒเบ‡เบเบฒเบ™เบชเปเบฒเบฅเบฑเบš GitHub Actions (เปƒเบซเบกเปˆ)

เบฅเบงเบกเบกเบตเป€เบญเบเบฐเบชเบฒเบ™ werf (เบžเบฒเบเบชเปˆเบงเบ™ เบญเป‰เบฒเบ‡เบญเบดเบ‡ ะธ เปเบ™เบฐโ€‹เบ™เปเบฒ), เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™เบเบฑเบš GitHub Action เบขเปˆเบฒเบ‡เป€เบ›เบฑเบ™เบ—เบฒเบ‡เบเบฒเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบš werf.

เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, เบกเบฑเบ™เบˆเบฐเบŠเปˆเบงเบเปƒเบซเป‰ werf เป€เบฎเบฑเบ”เบงเบฝเบเบเปˆเบฝเบงเบเบฑเบšเบ™เบฑเบเปเบฅเปˆเบ™ ephemeral.

เบเบปเบ™เป„เบเบ‚เบญเบ‡เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบšเบ‚เบญเบ‡เบœเบนเป‰เปƒเบŠเป‰เบเบฑเบšเบฅเบฐเบšเบปเบš CI เบˆเบฐเบญเบตเบ‡เปƒเบชเปˆเบเบฒเบ™เบงเบฒเบ‡เบ›เป‰เบฒเบเปƒเบชเปˆเบ„เปเบฒเบฎเป‰เบญเบ‡เบ‚เปเบ”เบถเบ‡เป€เบžเบทเปˆเบญเบฅเบดเป€เบฅเบตเปˆเบกเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบšเบฒเบ‡เบขเปˆเบฒเบ‡เป€เบžเบทเปˆเบญเบชเป‰เบฒเบ‡ / เป€เบ›เบตเบ”เบ•เบปเบงเปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™.

เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™เปเบฅเบฐเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบ—เบตเปˆเบกเบต werf (โ†“)

  • เบฅเบธเป‰เบ™: v1.1
  • เบงเบฑเบ™เบ—เบต: เบกเบฑเบ‡เบเบญเบ™เบซเบฒเป€เบ”เบทเบญเบ™เบเบธเบกเบžเบฒเป€เบ”เบทเบญเบ™เป€เบกเบชเบฒ
  • เบšเบฑเบ™เบซเบฒ

เป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเบ•เบปเป‰เบ™เบ•เปเปเบกเปˆเบ™เป€เบžเบทเปˆเบญเบšเบฑเบ™เบฅเบธ config unified เบ”เบฝเบงเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™ deploy เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบ—เบฑเบ‡เบžเบฒเบเปƒเบ™เปเบฅเบฐเปƒเบ™เบเบฒเบ™เบœเบฐเบฅเบดเบ”, เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบชเบฐเบฅเบฑเบšเบชเบฑเบšเบŠเป‰เบญเบ™, เบญเบญเบเบˆเบฒเบเบเปˆเบญเบ‡.

werf เบเบฑเบ‡เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบกเบตเป‚เบซเบกเบ”เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบ—เบตเปˆเบกเบฑเบ™เบˆเบฐเบชเบฐเบ”เบงเบเปƒเบ™เบเบฒเบ™เปเบเป‰เป„เบ‚เบฅเบฐเบซเบฑเบ”เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเปเบฅเบฐเบ—เบฑเบ™เบ—เบตเป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบ•เบดเบŠเบปเบกเบˆเบฒเบเปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เบ—เบตเปˆเป€เบฎเบฑเบ”เบงเบฝเบเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ”เบตเบšเบฑเบ.

เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบเบฒเบ™เบ—เบณเบ„เบงเบฒเบกเบชเบฐเบญเบฒเบ”เปƒเปเปˆ (เปƒเปเปˆ)

เปƒเบ™เบชเบฐเบšเบฑเบšเบ›เบฐเบˆเบธเบšเบฑเบ™เบ‚เบญเบ‡ werf v1.1 เปƒเบ™เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบเบฒเบ™ cleanup เบšเปเปˆเบกเบตเบเบฒเบ™เบชเบฐเบซเบ™เบญเบ‡เบเบฒเบ™เบ—เปเบฒเบ„เบงเบฒเบกเบชเบฐเบญเบฒเบ”เบฎเบนเบšเบžเบฒเบšเบชเปเบฒเบฅเบฑเบšเป‚เบ„เบ‡เบเบฒเบ™ tagging เป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆเป€เบ™เบทเป‰เบญเบซเบฒ - เบฎเบนเบšเบžเบฒเบšเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบˆเบฐเบชเบฐเบชเบปเบก.

เบ™เบญเบเบˆเบฒเบเบ™เบตเป‰, เบชเบฐเบšเบฑเบšเบ›เบฐเบˆเบธเบšเบฑเบ™เบ‚เบญเบ‡ werf (v1.0 เปเบฅเบฐ v1.1) เปƒเบŠเป‰เบ™เบฐเป‚เบเบšเบฒเบเบเบฒเบ™เบ—เปเบฒเบ„เบงเบฒเบกเบชเบฐเบญเบฒเบ”เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เบชเปเบฒเบฅเบฑเบšเบฎเบนเบšเบžเบฒเบšเบ—เบตเปˆเบˆเบฑเบ”เบžเบตเบกเบกเบฒเบžเบฒเบเปƒเบ•เป‰เป‚เบ„เบ‡เบเบฒเบ™ tagging: เบชเบฒเบ‚เบฒ Git, Git tag เบซเบผเบท Git commit.

เบชเบนเบ”เบเบฒเบ™เบ„เบดเบ”เป„เบฅเปˆเปƒเบซเบกเปˆเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ—เปเบฒเบ„เบงเบฒเบกเบชเบฐเบญเบฒเบ”เบฎเบนเบšเบžเบฒเบšเป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆเบ›เบฐเบซเบงเบฑเบ”เบชเบฒเบ”เบ‚เบญเบ‡เบ„เปเบฒเบซเบกเบฑเป‰เบ™เบชเบฑเบ™เบเบฒเปƒเบ™ Git, unified เบชเปเบฒเบฅเบฑเบšเป‚เบ„เบ‡เบเบฒเบ™ tagging เบ—เบฑเบ‡เบซเบกเบปเบ”, เป„เบ”เป‰เบ–เบทเบ invented:

  • เบฎเบฑเบเบชเบฒเบฎเบนเบšเบžเบฒเบš N1 เบ—เบตเปˆเบšเปเปˆเบกเบตเบซเบผเบฒเบเบเปˆเบงเบฒเบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบšเบ„เปเบฒเบซเบกเบฑเป‰เบ™เบชเบฑเบ™เบเบฒ N2 เบซเบผเป‰เบฒเบชเบธเบ”เบชเปเบฒเบฅเบฑเบšเปเบ•เปˆเบฅเบฐ git HEAD (เบชเบฒเบ‚เบฒเปเบฅเบฐ tags).
  • เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบฎเบนเบšเบžเบฒเบšเบšเปเปˆเป€เบเบตเบ™ N1 เบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบš N2 เบชเบฑเบ™เบเบฒเบซเบผเป‰เบฒเบชเบธเบ”เบชเปเบฒเบฅเบฑเบšเปเบ•เปˆเบฅเบฐ git HEAD (เบชเบฒเบ‚เบฒเปเบฅเบฐ tags).
  • เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบฎเบนเบšเบžเบฒเบšเบ—เบฑเบ‡เบซเบกเบปเบ”เบ—เบตเปˆเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เปƒเบ™เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เบ‚เบญเบ‡เบเบธเปˆเบก Kubernetes เปƒเบ”เป† (เบชเบฐเบžเบฒเบšเบเบฒเบ™ kube เบ—เบฑเบ‡เบซเบกเบปเบ”เบ‚เบญเบ‡เป„เบŸเบฅเปŒเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเปเบฅเบฐ namespaces เป„เบ”เป‰เบ–เบทเบเบชเบฐเปเบเบ™; เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบˆเปเบฒเบเบฑเบ”เบžเบถเบ”เบ•เบดเบเปเบฒเบ™เบตเป‰เบ”เป‰เบงเบเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบžเบดเป€เบชเบ”).
  • เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบฎเบนเบšเบžเบฒเบšเบ—เบฑเบ‡เบซเบกเบปเบ”เบ—เบตเปˆเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เปƒเบ™ manifests เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เบ—เบตเปˆเบšเบฑเบ™เบ—เบถเบเป„เบงเป‰เปƒเบ™เบเบฒเบ™เบ›เปˆเบญเบ Helm.
  • เบฎเบนเบšเบžเบฒเบšเบชเบฒเบกเบฒเบ”เบ–เบทเบเบฅเบถเบšเป„เบ”เป‰เบ–เป‰เบฒเบกเบฑเบ™เบšเปเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบš HEAD เปƒเบ”เป†เบˆเบฒเบ git (เบ•เบปเบงเบขเปˆเบฒเบ‡, เป€เบžเบฒเบฐเบงเปˆเบฒ HEAD เบ—เบตเปˆเบชเบญเบ”เบ„เป‰เบญเบ‡เบเบฑเบ™เบ‚เบญเบ‡เบกเบฑเบ™เป€เบญเบ‡เบ–เบทเบเบฅเบถเบšเปเบฅเป‰เบง) เปเบฅเบฐเบšเปเปˆเป„เบ”เป‰เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เปƒเบ™ manifests เปƒเบ”เป†เปƒเบ™เบเบธเปˆเบก Kubernetes เปเบฅเบฐเปƒเบ™เบเบฒเบ™เบ›เปˆเบญเบ Helm.

เบเบฒเบ™เบชเป‰เบฒเบ‡เบฎเบนเบšเบ‚เบฐเปœเบฒเบ™ (โ†“)

  • เบฅเบธเป‰เบ™: v1.1
  • เบงเบฑเบ™เบ—เบต: เบกเบฑเบ‡เบเบญเบ™-เบเบธเบกเบžเบฒ เป€เบกเบชเบฒ*

เบชเบฐเบšเบฑเบšเบ›เบฐเบˆเบธเบšเบฑเบ™เบ‚เบญเบ‡ werf เป€เบเบฑเบšเบเปเบฒเบฎเบนเบšเบžเบฒเบšเปเบฅเบฐ artifacts เบญเบฐเบ—เบดเบšเบฒเบเปƒเบ™ werf.yaml, เบ•เบฒเบกเบฅเปเบฒเบ”เบฑเบš. เบกเบฑเบ™เป€เบ›เบฑเบ™เบชเบดเปˆเบ‡เบˆเปเบฒเป€เบ›เบฑเบ™เป€เบžเบทเปˆเบญเบ‚เบฐเบซเบ™เบฒเบ™เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบ›เบฐเบเบญเบšเบ‚เบฑเป‰เบ™เบ•เบญเบ™เบ—เบตเปˆเป€เบ›เบฑเบ™เป€เบญเบเบฐเบฅเบฒเบ”เบ‚เบญเบ‡เบฎเบนเบšเบžเบฒเบšเปเบฅเบฐเบชเบดเปˆเบ‡เบ›เบฐเบ”เบดเบ”, เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™เบเบฑเบšเบเบฒเบ™เบชเบฐเบซเบ™เบญเบ‡เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบ—เบตเปˆเบชเบฐเบ”เบงเบเปเบฅเบฐเบกเบตเบ‚เปเป‰เบกเบนเบ™.

* เบซเบกเบฒเบเป€เบซเบ”: เป€เบชเบฑเป‰เบ™เบ•เบฒเบเป„เบ”เป‰เบ–เบทเบเป€เบฅเบทเปˆเบญเบ™เบญเบญเบเป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบเบฒเบ™เบšเบนเบฅเบดเบกเบฐเบชเบดเบ”เบ—เบตเปˆเป€เบžเบตเปˆเบกเบ‚เบถเป‰เบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบ›เบฐเบเบญเบšเบเบฒเบ™เปเบˆเบเบขเบฒเบ, เป€เบŠเบดเปˆเบ‡เบˆเบฐเป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เปƒเบ™เบเบฒเบ™เบ›เบฑเบšเบ‚เบฐเบซเบ™เบฒเบ”เบ•เบฒเบกเปเบ™เบงเบ™เบญเบ™, เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™เบเบฑเบšเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ werf เบเบฑเบš GitHub Actions. เบเบฒเบ™เบ›เบฐเบเบญเบšเบ‚เบฐเบซเบ™เบฒเบ™เปเบกเปˆเบ™เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ•เปเปˆเป„เบ›, เบชเบฐเบซเบ™เบญเบ‡เบเบฒเบ™เบ›เบฑเบšเบ‚เบฐเบซเบ™เบฒเบ”เบ•เบฒเบกเปเบ™เบงเบ•เบฑเป‰เบ‡เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบ›เบฐเบเบญเบšเป‚เบ„เบ‡เบเบฒเบ™เบซเบ™เบถเปˆเบ‡.

เบเบฒเบ™เบ›เปˆเบฝเบ™เป„เบ›เบชเบนเปˆ Helm 3 (โ†“)

  • เบฅเบธเป‰เบ™: v1.2
  • เบงเบฑเบ™เบ—เบต: เบเบธเบกเบžเบฒ-เบกเบตเบ™เบฒ เบžเบถเบ”เบชเบฐเบžเบฒ*

เบฎเบงเบกเบเบฒเบ™เบเป‰เบฒเบเป„เบ›เบซเบฒเบ–เบฒเบ™เบฅเบฐเบซเบฑเบ”เปƒเปเปˆ เปเบงเบ3 เปเบฅเบฐเป€เบ›เบฑเบ™เบงเบดเบ—เบตเบ—เบตเปˆเบชเบฐเบ”เบงเบเปƒเบ™เบเบฒเบ™เป€เบ„เบทเปˆเบญเบ™เบเป‰เบฒเบเบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡เบ—เบตเปˆเบกเบตเบขเบนเปˆเปเบฅเป‰เบง.

* เบซเบกเบฒเบเป€เบซเบ”: เบเบฒเบ™เบ›เปˆเบฝเบ™เป„เบ›เปƒเบŠเป‰ Helm 3 เบˆเบฐเบšเปเปˆเป€เบžเบตเปˆเบกเบฅเบฑเบเบชเบฐเบ™เบฐเบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™เบเบฑเบš werf, เป€เบžเบฒเบฐเบงเปˆเบฒเบฅเบฑเบเบชเบฐเบ™เบฐเบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”เบ‚เบญเบ‡ Helm 3 (3-way-merge เปเบฅเบฐเบšเปเปˆเบกเบต tiller) เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เปเบฅเป‰เบงเปƒเบ™ werf. เบเบดเปˆเบ‡เป„เบ›เบเบงเปˆเบฒเบ™เบฑเป‰เบ™, werf เบกเบต เบฅเบฑเบเบชเบฐเบ™เบฐเป€เบžเบตเปˆเบกเป€เบ•เบตเบก เบ™เบญเบโ€‹เป€เบซเบ™เบทเบญโ€‹เป„เบ›โ€‹เบˆเบฒเบโ€‹เบ—เบตเปˆโ€‹เป„เบ”เป‰โ€‹เบฅเบฐโ€‹เบšเบธโ€‹เป„เบงเป‰โ€‹. เบขเปˆเบฒเบ‡เปƒเบ”เบเปเปˆเบ•เบฒเบก, เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ™เบตเป‰เบเบฑเบ‡เบ„เบปเบ‡เบขเบนเปˆเปƒเบ™เปเบœเบ™เบเบฒเบ™เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเปเบฅเบฐเบˆเบฐเบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”.

Jsonnet เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹เบญเบฐโ€‹เบ—เบดโ€‹เบšเบฒเบโ€‹เบเบฒเบ™โ€‹เบ•เบฑเป‰เบ‡โ€‹เบ„เปˆเบฒ Kubernetes (โ†“โ€‹)

  • เบฅเบธเป‰เบ™: v1.2
  • เบงเบฑเบ™เบ—เบต: เบกเบฑเบ‡เบเบญเบ™-เบเบธเบกเบžเบฒ เป€เบกเบชเบฒ-เป€เบ”เบทเบญเบ™เบžเบถเบ”เบชเบฐเบžเบฒ

Werf เบˆเบฐเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบ„เปเบฒเบญเบฐเบ—เบดเบšเบฒเบเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบชเปเบฒเบฅเบฑเบš Kubernetes เปƒเบ™เบฎเบนเบšเปเบšเบš Jsonnet. เปƒเบ™เป€เบงเบฅเบฒเบ”เบฝเบงเบเบฑเบ™, werf เบˆเบฐเบเบฑเบ‡เบ„เบปเบ‡เป€เบซเบกเบฒเบฐเบชเบปเบกเบเบฑเบš Helm เปเบฅเบฐเบˆเบฐเบกเบตเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ‚เบญเบ‡เบฎเบนเบšเปเบšเบšเบ„เปเบฒเบญเบฐเบ—เบดเบšเบฒเบ.

เป€เบซเบ”เบœเบปเบ™เปเบกเปˆเบ™เบงเปˆเบฒ Go templates, เบญเบตเบ‡เบ•เบฒเบกเบ›เบฐเบŠเบฒเบŠเบปเบ™เบˆเปเบฒเบ™เบงเบ™เบซเบผเบฒเบ, เบกเบตเบญเบธเบ›เบฐเบชเบฑเบเป€เบ‚เบปเป‰เบฒเบชเบนเบ‡, เปเบฅเบฐเบ„เบงเบฒเบกเป€เบ‚เบปเป‰เบฒเปƒเบˆเบ‚เบญเบ‡เบฅเบฐเบซเบฑเบ”เบ‚เบญเบ‡เปเบกเปˆเปเบšเบšเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบเบฑเบ‡เบ—เบปเบ™เบ—เบธเบ.

เบ„เบงเบฒเบกเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ‚เบญเบ‡เบเบฒเบ™เบ™เปเบฒเบชเบฐเป€เบซเบ™เบตเบฅเบฐเบšเบปเบšเบ„เปเบฒเบญเบฐเบ—เบดเบšเบฒเบเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ Kubernetes เบญเบทเปˆเบ™เป† (เบ•เบปเบงเบขเปˆเบฒเบ‡, Kustomize) เบเบฑเบ‡เบ–เบทเบเบžเบดเบˆเบฒเบฅเบฐเบ™เบฒ.

เป€เบฎเบฑเบ”เบงเบฝเบเบขเบนเปˆเปƒเบ™ Kubernetes (โ†“)

  • เบฅเบธเป‰เบ™: v1.2
  • เบงเบฑเบ™เบ—เบต: เป€เบ”เบทเบญเบ™เป€เบกเบชเบฒเบซเบฒเป€เบ”เบทเบญเบ™เบžเบถเบ”เบชเบฐเบžเบฒเป€เบ”เบทเบญเบ™เบžเบถเบ”เบชเบฐเบžเบฒเบซเบฒเป€เบ”เบทเบญเบ™เบกเบดเบ–เบธเบ™เบฒ

เป€เบ›เบปเป‰เบฒเปเบฒเบ: เปƒเบซเป‰เปเบ™เปˆเปƒเบˆเบงเปˆเบฒเบชเป‰เบฒเบ‡เบฎเบนเบšเบžเบฒเบš เปเบฅเบฐเปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เบ–เบทเบเบชเบปเปˆเบ‡เป‚เบ”เบเปƒเบŠเป‰เบ•เบปเบงเปเบฅเปˆเบ™เปƒเบ™ Kubernetes. เป€เบซเบผเบปเปˆเบฒเบ™เบฑเป‰เบ™. เบฎเบนเบšเบžเบฒเบšเปƒเปเปˆเบชเบฒเบกเบฒเบ”เบชเป‰เบฒเบ‡, เป€เบœเบตเบเปเบœเปˆ, เบญเบฐเบ™เบฒเป„เบก เปเบฅเบฐเบ™เบณเปƒเบŠเป‰เป„เบ”เป‰เป‚เบ”เบเบเบปเบ‡เบˆเบฒเบเบเบฑเบ Kubernetes.

เป€เบžเบทเปˆเบญเบ›เบฐเบ•เบดเบšเบฑเบ”เบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เบ™เบตเป‰, เบ—เปเบฒเบญเบดเบ”เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบชเบฒเบกเบฒเบ”เบชเป‰เบฒเบ‡เบฎเบนเบšเบžเบฒเบšเบ—เบตเปˆเปเบˆเบเบขเบฒเบ (เป€เบšเบดเปˆเบ‡เบˆเบธเบ”เบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡).

เบกเบฑเบ™เบเบฑเบ‡เบฎเบฝเบเบฎเป‰เบญเบ‡เปƒเบซเป‰เบกเบตเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบชเปเบฒเบฅเบฑเบšเบฎเบนเบšเปเบšเบšเบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบ‚เบญเบ‡เบœเบนเป‰เบชเป‰เบฒเบ‡เป‚เบ”เบเบšเปเปˆเบกเบตเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ Docker (i. e. เบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡เบ„เป‰เบฒเบเบ„เบท Kaniko เบซเบผเบท build in userspace).

Werf เบˆเบฐเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡เปƒเบ™ Kubernetes เบšเปเปˆเบžเบฝเบ‡เปเบ•เปˆเบเบฑเบš Dockerfile, เปเบ•เปˆเบเบฑเบ‡เบเบฑเบšเบ•เบปเบงเบชเป‰เบฒเบ‡ Stapel เบ‚เบญเบ‡เบกเบฑเบ™เบ”เป‰เบงเบเบเบฒเบ™เป€เบžเบตเปˆเบกเบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡เปƒเบซเบกเปˆเปเบฅเบฐ Ansible.

เบเป‰เบฒเบงโ€‹เป„เบ›โ€‹เบชเบนเปˆโ€‹เบเบฒเบ™โ€‹เบžเบฑเบ”โ€‹เบ—เบฐโ€‹เบ™เบฒโ€‹เบ—เบตเปˆโ€‹เป€เบ›เบตเบ”โ€‹

เบžเบงเบเป€เบฎเบปเบฒเบฎเบฑเบเบŠเบธเบกเบŠเบปเบ™เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ (GitHub, เป‚เบ—เบฅเบฐเป€เบฅเบ) เปเบฅเบฐเบžเบงเบเป€เบฎเบปเบฒเบ•เป‰เบญเบ‡เบเบฒเบ™เบ„เบปเบ™เบซเบผเบฒเบเบเบงเปˆเบฒเปเบฅเบฐเบซเบผเบฒเบเป€เบžเบทเปˆเบญเบŠเปˆเบงเบเป€เบฎเบฑเบ”เปƒเบซเป‰ werf เบ”เบตเบ‚เบถเป‰เบ™, เป€เบ‚เบปเป‰เบฒเปƒเบˆเบ—เบดเบ”เบ—เบฒเบ‡เบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเบเปเบฒเบฅเบฑเบ‡เป€เบ„เบทเปˆเบญเบ™เบเป‰เบฒเบ, เปเบฅเบฐเบกเบตเบชเปˆเบงเบ™เบฎเปˆเบงเบกเปƒเบ™เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒ.

เบšเปเปˆเบ”เบปเบ™เบกเบฒเบ™เบตเป‰, เบกเบฑเบ™เป„เบ”เป‰เบ–เบทเบเบ•เบฑเบ”เบชเบดเบ™เปƒเบˆเบ—เบตเปˆเบˆเบฐเบ›เปˆเบฝเบ™เป€เบ›เบฑเบ™ เบเบฐเบ”เบฒเบ™เป‚เบ„เบ‡เบเบฒเบ™ GitHub เป€เบžเบทเปˆเบญเป€เบ›เบตเบ”เป€เบœเบตเบเบ‚เบฐเบšเบงเบ™เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบ‚เบญเบ‡เบ—เบตเบกเบ‡เบฒเบ™เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ. เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบšเบดเปˆเบ‡เปเบœเบ™เบเบฒเบ™เบ—เบฑเบ™เบ—เบตเบ—เบฑเบ™เปƒเบ”, เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™เบเบฑเบšเบงเบฝเบเบ‡เบฒเบ™เปƒเบ™เบ›เบฐเบˆเบธเบšเบฑเบ™เปƒเบ™เบ‚เบปเบ‡เป€เบ‚เบ”เบ”เบฑเปˆเบ‡เบ•เปเปˆเป„เบ›เบ™เบตเป‰:

เบงเบฝเบเบ‡เบฒเบ™เบซเบผเบฒเบเบขเปˆเบฒเบ‡เป„เบ”เป‰เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฑเบšเบšเบฑเบ™เบซเบฒ:

  • เบฅเบปเบšเบชเบดเปˆเบ‡เบ—เบตเปˆเบšเปเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบญเบญเบ.
  • เบ—เบตเปˆเบกเบตเบขเบนเปˆเปเบฅเป‰เบงเป„เบ”เป‰เบ–เบทเบเบ™เปเบฒเบกเบฒเป€เบ›เบฑเบ™เบฎเบนเบšเปเบšเบšเบ”เบฝเบง, เบกเบตเบˆเปเบฒเบ™เบงเบ™เบ—เบตเปˆเบžเบฝเบ‡เบžเปเปเบฅเบฐเบฅเบฒเบเบฅเบฐเบญเบฝเบ”.
  • เบšเบฑเบ™เบซเบฒเปƒเบซเบกเปˆเบ—เบตเปˆเบกเบตเปเบ™เบงเบ„เบงเบฒเบกเบ„เบดเบ”เปเบฅเบฐเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเป„เบ”เป‰เบ–เบทเบเป€เบžเบตเปˆเบก.

เบงเบดเบ—เบตเบเบฒเบ™เป€เบ›เบตเบ”เปƒเบŠเป‰เป€เบงเบตเบŠเบฑเบ™ v1.1

เบชเบฐเบšเบฑเบšเบ›เบฐเบˆเบธเบšเบฑเบ™เปเบกเปˆเบ™เบกเบตเบขเบนเปˆเปƒเบ™ เบŠเปˆเบญเบ‡ 1.1 ea (เปƒเบ™เบŠเปˆเบญเบ‡ เบซเบกเบฑเป‰เบ™เบ„เบปเบ‡ ะธ เบซเบตเบ™เปเบ‚เบ‡ เบเบฒเบ™เบ›เปˆเบญเบเบญเบญเบเบกเบฒเบˆเบฐเบ›เบฒเบเบปเบ”เปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆเบชเบฐเบ–เบฝเบ™เบฅเบฐเบžเบฒเบšเป€เบเบตเบ”เบ‚เบถเป‰เบ™, เบขเปˆเบฒเบ‡เปƒเบ”เบเปเบ•เบฒเบก ea เบ•เบปเบงเบ‚เบญเบ‡เบกเบฑเบ™เป€เบญเบ‡เบกเบตเบ„เบงเบฒเบกเบซเบกเบฑเป‰เบ™เบ„เบปเบ‡เบžเบฝเบ‡เบžเปเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰, เป€เบžเบฒเบฐเบงเปˆเบฒ เป„เบ”เป‰เบœเปˆเบฒเบ™เบŠเปˆเบญเบ‡เบ—เบฒเบ‡เบ•เปˆเบฒเบ‡เป† alpha ะธ เบ—เบปเบ”เบฅเบญเบ‡). เป€เบ›เบตเบ”เปƒเบŠเป‰เปเบฅเป‰เบง เบœเปˆเบฒเบ™ multiwerf เปƒเบ™โ€‹เบงเบดโ€‹เบ—เบตโ€‹เบเบฒเบ™โ€‹เบ”เบฑเปˆเบ‡โ€‹เบ•เปเปˆโ€‹เป„เบ›โ€‹เบ™เบตเป‰โ€‹:

source $(multiwerf use 1.1 ea)
werf COMMAND ...

เบชเบฐเบซเบฅเบธเบš

เบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบ‚เบฑเป‰เบ™เบ•เบญเบ™เปƒเบซเบกเปˆเปเบฅเบฐเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ‚เบญเบ‡เบ•เบปเบงเบชเป‰เบฒเบ‡เบชเปเบฒเบฅเบฑเบšเบœเบนเป‰เบชเป‰เบฒเบ‡ Stapel เปเบฅเบฐ Dockerfile เป€เบ›เบตเบ”เบ„เบงเบฒเบกเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ‚เบญเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เปเบˆเบเบขเบฒเบเปเบฅเบฐเบ‚เบฐเบซเบ™เบฒเบ™เปƒเบ™ werf. เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบˆเบฐเบ›เบฒเบเบปเบ”เบขเบนเปˆเปƒเบ™เบฅเบธเป‰เบ™ v1.1 เบ”เบฝเบงเบเบฑเบ™เปƒเบ™เป„เบงเป†เบ™เบตเป‰ เปเบฅเบฐเบˆเบฐเบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เป„เบ”เป‰เป‚เบ”เบเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เบœเปˆเบฒเบ™เบเบปเบ™เป„เบเบเบฒเบ™เบญเบฑเบšเป€เบ”เบ”เบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ” (เบชเบณเบฅเบฑเบšเบœเบนเป‰เปƒเบŠเป‰ multiwerf).

เปƒเบ™เบเบฒเบ™เบ›เปˆเบญเบเบ™เบตเป‰, เบเบธเบ”เบ—เบฐเบชเบฒเบ”เบเบฒเบ™เบ•เบดเบ”เปเบ—เบฑเบเป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆเป€เบ™เบทเป‰เบญเบซเบฒเบฎเบนเบšเบžเบฒเบšเป„เบ”เป‰เบ–เบทเบเป€เบžเบตเปˆเบก - tagging เบญเบตเบ‡เปƒเบชเปˆเป€เบ™เบทเป‰เบญเปƒเบ™, เป€เบŠเบดเปˆเบ‡เป„เบ”เป‰เบเบฒเบเป€เบ›เบฑเบ™เบเบธเบ”เบ—เบฐเบชเบฒเบ”เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™. เบšเบฑเบ™โ€‹เบ—เบถเบโ€‹เบ„เปเบฒโ€‹เบชเบฑเปˆเบ‡โ€‹เบ•เบปเป‰เบ™โ€‹เบ•เปโ€‹เบเบฑเบ‡โ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบเบฒเบ™โ€‹เป€เบฎเบฑเบ”โ€‹เบงเบฝเบโ€‹เปƒเบซเบกเปˆโ€‹: werf build, werf publish, werf deploy, werf dismiss, werf cleanup.

เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™เบ•เปเปˆเป„เบ›เปเบกเปˆเบ™เบเบฒเบ™เป€เบžเบตเปˆเบกเบเบฒเบ™เบ›เบฐเบเบญเบšเบเบฒเบ™เปเบˆเบเบขเบฒเบ. เบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡เบ—เบตเปˆเปเบˆเบเบขเบฒเบเป„เบ”เป‰เบเบฒเบเป€เบ›เบฑเบ™เบšเบนเบฅเบดเบกเบฐเบชเบดเบ”เบ—เบตเปˆเบชเบนเบ‡เบเบงเปˆเบฒเบเบฒเบ™เบชเป‰เบฒเบ‡เปเบšเบšเบ‚เบฐเบซเบ™เบฒเบ™เบ•เบฑเป‰เบ‡เปเบ•เปˆ v1.0 เป€เบžเบฒเบฐเบงเปˆเบฒเบžเบงเบเบกเบฑเบ™เป€เบžเบตเปˆเบกเบกเบนเบ™เบ„เปˆเบฒเป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบ•เปเปˆเบเบฑเบš werf: เบเบฒเบ™เบ›เบฑเบšเบ‚เบฐเบซเบ™เบฒเบ”เบ‚เบญเบ‡เบ•เบปเบงเบชเป‰เบฒเบ‡เปƒเบ™เปเบ™เบงเบ•เบฑเป‰เบ‡เปเบฅเบฐเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบชเปเบฒเบฅเบฑเบšเบœเบนเป‰เบชเป‰เบฒเบ‡เบ—เบตเปˆเบšเปเปˆเบŠเป‰เปเบฒเบเบฑเบ™เปƒเบ™เบฅเบฐเบšเบปเบš CI / CD เบ•เปˆเบฒเบ‡เป†, เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™เบเบฑเบšเบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เปƒเบ™เบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™ GitHub เบขเปˆเบฒเบ‡เป€เบ›เบฑเบ™เบ—เบฒเบ‡เบเบฒเบ™. . เบชเบฐโ€‹เบ™เบฑเป‰เบ™, เป€เบชเบฑเป‰เบ™โ€‹เบ•เบฒเบโ€‹เบเบฒเบ™โ€‹เบ›เบฐโ€‹เบ•เบดโ€‹เบšเบฑเบ”โ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹เบชเบฐโ€‹เบžเบฒโ€‹เบ‚เบฐโ€‹เบซเบ™เบฒเบ™โ€‹เป„เบ”เป‰โ€‹เบ–เบทเบโ€‹เบ›เปˆเบฝเบ™โ€‹เปเบ›เบ‡. เบขเปˆเบฒเบ‡เปƒเบ”เบเปเปˆเบ•เบฒเบก, เบžเบงเบเป€เบฎเบปเบฒเบเปเบฒเบฅเบฑเบ‡เป€เบฎเบฑเบ”เบงเบฝเบเป€เบžเบทเปˆเบญเบ›เบฐเบ•เบดเบšเบฑเบ”เบ—เบฑเบ‡เบชเบญเบ‡เบ„เบงเบฒเบกเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เป„เบงเป€เบ—เบปเปˆเบฒเบ—เบตเปˆเบˆเบฐเป„เบงเป„เบ”เป‰.

เบ•เบดเบ”เบ•เบฒเบกเบ‚เปˆเบฒเบง! เปเบฅเบฐเบขเปˆเบฒเบฅเบทเบกเป„เบ›เบขเป‰เบฝเบกเบขเบฒเบกเบžเบงเบเป€เบฎเบปเบฒเบ—เบตเปˆ GitHubเป€เบžเบทเปˆเบญเบชเป‰เบฒเบ‡เบšเบฑเบ™เบซเบฒ, เบŠเบญเบเบซเบฒเบ—เบตเปˆเบกเบตเบขเบนเปˆเปเบฅเป‰เบงเปเบฅเบฐเป€เบžเบตเปˆเบกเบšเบงเบ, เบชเป‰เบฒเบ‡ PR, เบซเบผเบทเบžเบฝเบ‡เปเบ•เปˆเป€เบšเบดเปˆเบ‡เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเป‚เบ„เบ‡เบเบฒเบ™.

PS

เบญเปˆเบฒเบ™เบเบฑเบ‡เบขเบนเปˆเปƒเบ™ blog เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ:

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: www.habr.com

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™