αž”αž‰αŸ’αž αžΆαž“αŸƒαž€αžΆαžšαžŸαž˜αŸ’αž’αžΆαž "αž†αŸ’αž›αžΆαžαžœαŸƒ" αž“αŸƒαžšαžΌαž”αž—αžΆαž–αž€αž»αž„αžαžΊαž“αŸαžš αž“αž·αž„αžŠαŸ†αžŽαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αžšαž”αžŸαŸ‹αžœαžΆαž“αŸ…αž€αŸ’αž“αž»αž„ werf

αž”αž‰αŸ’αž αžΆαž“αŸƒαž€αžΆαžšαžŸαž˜αŸ’αž’αžΆαž "αž†αŸ’αž›αžΆαžαžœαŸƒ" αž“αŸƒαžšαžΌαž”αž—αžΆαž–αž€αž»αž„αžαžΊαž“αŸαžš αž“αž·αž„αžŠαŸ†αžŽαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αžšαž”αžŸαŸ‹αžœαžΆαž“αŸ…αž€αŸ’αž“αž»αž„ werf

αž’αžαŸ’αžαž”αž‘αž–αž·αž—αžΆαž€αŸ’αžŸαžΆαž’αŸ†αž–αžΈαž”αž‰αŸ’αž αžΆαž“αŸƒαž€αžΆαžšαžŸαž˜αŸ’αž’αžΆαžαžšαžΌαž”αž—αžΆαž–αžŠαŸ‚αž›αž€αž€αž€αž»αž‰αž“αŸ…αž€αŸ’αž“αž»αž„αž€αžΆαžšαž…αž»αŸ‡αž”αž‰αŸ’αž‡αžΈαž€αž»αž„αžαžΊαž“αŸαžš (Docker Registry αž“αž·αž„ analogues αžšαž”αžŸαŸ‹αžœαžΆ) αž“αŸ…αž€αŸ’αž“αž»αž„αž€αžΆαžšαž–αž·αžαž“αŸƒαž”αŸ†αž–αž„αŸ‹αž”αž„αŸ’αž αžΌαžš CI/CD αž‘αŸ†αž“αžΎαž”αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžŠαžΎαž˜αž›αžΎαž–αž–αž€αžŠαŸ‚αž›αž”αžΆαž“αž”αž‰αŸ’αž‡αžΌαž“αž‘αŸ… Kubernetes αŸ” αž›αž€αŸ’αžαžŽαŸˆαžœαž·αž“αž·αž…αŸ’αž†αŸαž™αž…αž˜αŸ’αž”αž„αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž—αžΆαž–αž–αžΆαž€αŸ‹αž–αŸαž“αŸ’αž’αž“αŸƒαžšαžΌαž”αž—αžΆαž– αž“αž·αž„αž€αžΆαžšαž›αŸ†αž”αžΆαž€αž‡αžΆαž›αž‘αŸ’αž’αž•αž›αž€αŸ’αž“αž»αž„αž€αžΆαžšαžŸαž˜αŸ’αž’αžΆαžαžŠαŸ„αž™αžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž· αž€αžΆαžšαžŸαž“αŸ’αžŸαŸ†αž‘αŸ†αž αŸ† αž“αž·αž„αž€αžΆαžšαž”αŸ†αž–αŸαž‰αžαž˜αŸ’αžšαžΌαžœαž€αžΆαžšαžšαž”αžŸαŸ‹αž€αŸ’αžšαž»αž˜αžαŸ’αžšαžΌαžœαž”αžΆαž“αž•αŸ’αžαž›αŸ‹αž±αŸ’αž™αŸ” αž‡αžΆαž…αž»αž„αž€αŸ’αžšαŸ„αž™ αžŠαŸ„αž™αž”αŸ’αžšαžΎαž§αž‘αžΆαž αžšαžŽαŸαž“αŸƒαž‚αž˜αŸ’αžšαŸ„αž„ Open Source αž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹ αž™αžΎαž„αž“αžΉαž„αž”αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αž“αž€αž–αžΈαžšαž”αŸ€αž”αžŠαŸ‚αž›αž€αžΆαžšαž›αŸ†αž”αžΆαž€αž‘αžΆαŸ†αž„αž“αŸαŸ‡αž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž™αž€αžˆαŸ’αž“αŸ‡αŸ”

αžŸαŸαž…αž€αŸ’αžαžΈαžŽαŸ‚αž“αžΆαŸ†

αž…αŸ†αž“αž½αž“αžšαžΌαž”αž—αžΆαž–αž“αŸ…αž€αŸ’αž“αž»αž„αž”αž‰αŸ’αž‡αžΈαžˆαŸ’αž˜αŸ„αŸ‡αž€αž»αž„αžαžΊαž“αŸαžšαž’αžΆαž…αž€αžΎαž“αž‘αžΎαž„αž™αŸ‰αžΆαž„αž†αžΆαž”αŸ‹αžšαž αŸαžŸ αžŠαŸ„αž™αž™αž€αž‘αŸ†αž αŸ†αž•αŸ’αž‘αž»αž€αž€αžΆαž“αŸ‹αžαŸ‚αž…αŸ’αžšαžΎαž“ αž αžΎαž™αžŠαžΌαž…αŸ’αž“αŸαŸ‡αžœαžΆαž”αž„αŸ’αž€αžΎαž“αž€αžΆαžšαž…αŸ†αžŽαžΆαž™αžšαž”αžŸαŸ‹αžœαžΆαž™αŸ‰αžΆαž„αžαŸ’αž›αžΆαŸ†αž„αŸ” αžŠαžΎαž˜αŸ’αž”αžΈαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„ αž€αž˜αŸ’αžšαž·αž αž¬αžšαž€αŸ’αžŸαžΆαž€αŸ†αžŽαžΎαž“αžŠαŸ‚αž›αž’αžΆαž…αž‘αž‘αž½αž›αž™αž€αž”αžΆαž“αž“αŸƒαž‘αŸ†αž αŸ†αžŠαŸ‚αž›αž”αžΆαž“αž€αžΆαž“αŸ‹αž€αžΆαž”αŸ‹αž“αŸ…αž€αŸ’αž“αž»αž„αž”αž‰αŸ’αž‡αžΈαžˆαŸ’αž˜αŸ„αŸ‡ αžœαžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αž‘αž‘αž½αž›αž™αž€αŸ–

  1. αž”αŸ’αžšαžΎαž…αŸ†αž“αž½αž“αžαŸαžšαž“αŸƒαžŸαŸ’αž›αžΆαž€αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžšαžΌαž”αž—αžΆαž–;
  2. αžŸαž˜αŸ’αž’αžΆαžαžšαžΌαž”αž—αžΆαž–αžαžΆαž˜αžšαž”αŸ€αž”αžŽαžΆαž˜αž½αž™αŸ”


αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αžŠαŸ†αž”αžΌαž„αž‚αžΊαž‡αž½αž“αž€αžΆαž›αž’αžΆαž…αž‘αž‘αž½αž›αž™αž€αž”αžΆαž“αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αŸ’αžšαž»αž˜αžαžΌαž…αŸ—αŸ” αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž’αž—αž·αžœαžŒαŸ’αžαž“αŸαž˜αžΆαž“αžŸαŸ’αž›αžΆαž€αž’αž…αž·αž“αŸ’αžšαŸ’αžαŸƒαž™αŸαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαžΆαž“αŸ‹ (latest, main, test, boris αž›) αž”αž‰αŸ’αž‡αžΈαžˆαŸ’αž˜αŸ„αŸ‡αž“αžΉαž„αž˜αž·αž“αž αžΎαž˜αž€αŸ’αž“αž»αž„αž‘αŸ†αž αŸ†αž‘αŸ αž αžΎαž™αž€αŸ’αž“αž»αž„αžšαž™αŸˆαž–αŸαž›αž™αžΌαžš αž’αŸ’αž“αž€αž“αžΉαž„αž˜αž·αž“αž…αžΆαŸ†αž”αžΆαž…αŸ‹αž‚αž·αžαž’αŸ†αž–αžΈαž€αžΆαžšαžŸαž˜αŸ’αž’αžΆαžαžœαžΆαž‘αžΆαž›αŸ‹αžαŸ‚αžŸαŸ„αŸ‡αŸ” αž™αŸ‰αžΆαž„αžŽαžΆαž˜αž·αž‰ αžšαžΌαž”αž—αžΆαž–αžŠαŸ‚αž›αž˜αž·αž“αž–αžΆαž€αŸ‹αž–αŸαž“αŸ’αž’αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αžαŸ’αžšαžΌαžœαž”αžΆαž“αž›αž»αž”αž…αŸαž‰ αž αžΎαž™αž˜αž·αž“αž˜αžΆαž“αž€αžΆαžšαž„αžΆαžšαž’αŸ’αžœαžΈαž“αŸ…αžŸαž›αŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαžŸαž˜αŸ’αž’αžΆαžαž‘αŸ (αž’αŸ’αžœαžΈαŸ—αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž‚αžΊαž’αŸ’αžœαžΎαž‘αžΎαž„αžŠαŸ„αž™αž’αŸ’αž“αž€αž”αŸ’αžšαž˜αžΌαž›αžŸαŸ†αžšαžΆαž˜αž’αž˜αŸ’αž˜αžαžΆ)αŸ”

αž‘αŸ„αŸ‡αž‡αžΆαž™αŸ‰αžΆαž„αžŽαžΆαž€αŸαžŠαŸ„αž™ αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αžαž“αŸαŸ‡αž€αŸ†αžŽαžαŸ‹αž€αžΆαžšαž’αž—αž·αžœαžŒαŸ’αžαž“αŸαž™αŸ‰αžΆαž„αžαŸ’αž›αžΆαŸ†αž„ αž αžΎαž™αž€αž˜αŸ’αžšαž“αžΉαž„αž’αžΆαž…αž’αž“αž»αžœαžαŸ’αžαž”αžΆαž“αž…αŸ†αž–αŸ„αŸ‡αž‚αž˜αŸ’αžšαŸ„αž„ CI/CD αž‘αŸ†αž“αžΎαž”αŸ” αž•αŸ’αž“αŸ‚αž€αžŸαŸ†αžαžΆαž“αŸ‹αž˜αž½αž™αž“αŸƒαž€αžΆαžšαž’αž—αž·αžœαžŒαŸ’αžαž“αŸαž‚αžΊ αžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž·αž€αž˜αŸ’αž˜αžŠαŸ‚αž›αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž’αŸ’αž“αž€αžŸαžΆαž€αž›αŸ’αž”αž„ αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹ αž“αž·αž„αž•αŸ’αžαž›αŸ‹αž˜αž»αžαž„αžΆαžšαžαŸ’αž˜αžΈαžŠαž›αŸ‹αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž”αžΆαž“αž›αžΏαž“αž‡αžΆαž„αž˜αž»αž“αŸ” αž‡αžΆαž§αž‘αžΆαž αžšαžŽαŸ αž“αŸ…αž€αŸ’αž“αž»αž„αž‚αž˜αŸ’αžšαŸ„αž„αžšαž”αžŸαŸ‹αž™αžΎαž„αž‘αžΆαŸ†αž„αž’αžŸαŸ‹ αž”αŸ†αž–αž„αŸ‹αž”αž„αŸ’αž αžΌαžš CI αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαžŠαŸ„αž™αžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž·αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž€αžΆαžšαž”αŸ’αžαŸαž‡αŸ’αž‰αžΆαž…αž·αžαŸ’αžαž“αžΈαž˜αž½αž™αŸ—αŸ” αž“αŸ…αž€αŸ’αž“αž»αž„αžœαžΆ αžšαžΌαž”αž—αžΆαž–αžαŸ’αžšαžΌαžœαž”αžΆαž“αž•αŸ’αž‚αž»αŸ† αžŸαžΆαž€αž›αŸ’αž”αž„ αž”αž‰αŸ’αž…αžΌαž›αž‘αŸ…αž€αŸ’αž“αž»αž„αžŸαŸ€αž‚αŸ’αžœαžΈ Kubernetes αž•αŸ’αžŸαŸαž„αŸ—αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž€αŸ‚αž€αŸ†αž αž»αžŸ αž“αž·αž„αž€αžΆαžšαžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αžŠαŸ‚αž›αž“αŸ…αžŸαž›αŸ‹ αž αžΎαž™αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž‚αžΊαž›αŸ’αž’ αž“αŸ„αŸ‡αž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž‘αŸ…αžŠαž›αŸ‹αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž…αž»αž„αž€αŸ’αžšαŸ„αž™αŸ” αž αžΎαž™αž“αŸαŸ‡αž˜αž·αž“αž˜αŸ‚αž“αž‡αžΆαžœαž·αž‘αŸ’αž™αžΆαžŸαžΆαžŸαŸ’αžαŸ’αžšαžšαŸ‰αž»αž€αŸ’αž€αŸ‚αžαž‘αŸ€αžαž‘αŸ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž‡αžΆαž€αžΆαžšαž€αžΎαžαž‘αžΎαž„αž”αŸ’αžšαž…αžΆαŸ†αžαŸ’αž„αŸƒαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž˜αž“αž»αžŸαŸ’αžŸαž‡αžΆαž…αŸ’αžšαžΎαž“ - αž—αžΆαž‚αž…αŸ’αžšαžΎαž“αž‘αŸ†αž“αž„αž‡αžΆαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αž“αž€ αž…αžΆαž”αŸ‹αžαžΆαŸ†αž„αž–αžΈαž’αŸ’αž“αž€αž€αŸ†αž–αž»αž„αž’αžΆαž“αž’αžαŸ’αžαž”αž‘αž“αŸαŸ‡αŸ”

αžŠαŸ„αž™αžŸαžΆαžšαž€αžΆαžšαž‡αž½αžŸαž‡αž»αž›αž€αŸ†αž αž»αžŸ αž“αž·αž„αž€αžΆαžšαž”αž„αŸ’αž€αžΎαžαž˜αž»αžαž„αžΆαžšαžαŸ’αž˜αžΈαžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αž“αž»αžœαžαŸ’αžαžŸαŸ’αžšαž”αž‚αŸ’αž“αžΆ αž αžΎαž™αž€αžΆαžšαž…αŸαž‰αž•αŸ’αžŸαžΆαž™αž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αž“αž»αžœαžαŸ’αžαž…αŸ’αžšαžΎαž“αžŠαž„αž€αŸ’αž“αž»αž„αž˜αž½αž™αžαŸ’αž„αŸƒ αžœαžΆαž…αŸ’αž”αžΆαžŸαŸ‹αžŽαžΆαžŸαŸ‹αžαžΆαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž’αž—αž·αžœαžŒαŸ’αžαž“αŸαžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αž˜αžŠαŸ„αž™αž…αŸ†αž“αž½αž“αž“αŸƒαž€αžΆαžšαž”αŸ’αžαŸαž‡αŸ’αž‰αžΆαž…αž·αžαŸ’αžαž‡αžΆαž…αŸ’αžšαžΎαž“ αžŠαŸ‚αž›αž˜αžΆαž“αž“αŸαž™αžαžΆ αžšαžΌαž”αž—αžΆαž–αž˜αž½αž™αž…αŸ†αž“αž½αž“αž’αŸ†αž“αŸ…αž€αŸ’αž“αž»αž„αž”αž‰αŸ’αž‡αžΈαžˆαŸ’αž˜αŸ„αŸ‡. αž‡αžΆαž›αž‘αŸ’αž’αž•αž›αž”αž‰αŸ’αž αžΆαž“αŸƒαž€αžΆαžšαžšαŸ€αž”αž…αŸ†αž€αžΆαžšαžŸαž˜αŸ’αž’αžΆαžαž”αŸ’αžšαž€αž”αžŠαŸ„αž™αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αž“αŸƒαž”αž‰αŸ’αž‡αžΈαžˆαŸ’αž˜αŸ„αŸ‡αž€αžΎαžαž‘αžΎαž„, i.e. αž€αžΆαžšαž›αž»αž”αžšαžΌαž”αž—αžΆαž–αžŠαŸ‚αž›αž˜αž·αž“αž–αžΆαž€αŸ‹αž–αŸαž“αŸ’αž’αŸ”

αž”αŸ‰αž»αž“αŸ’αžαŸ‚β€‹αžαžΎβ€‹αž’αŸ’αž“αž€β€‹αž€αŸ†αžŽαžαŸ‹β€‹αžαžΆβ€‹αžαžΎβ€‹αžšαžΌαž”αž—αžΆαž–β€‹αž˜αž½αž™β€‹αž–αžΆαž€αŸ‹αž–αŸαž“αŸ’αž’β€‹αžŠαŸ„αž™β€‹αžšαž”αŸ€αž”β€‹αžŽαžΆ?

αž›αž€αŸ’αžαžŽαŸˆαžœαž·αž“αž·αž…αŸ’αž†αŸαž™αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž—αžΆαž–αž–αžΆαž€αŸ‹αž–αŸαž“αŸ’αž’αž“αŸƒαžšαžΌαž”αž—αžΆαž–

αž€αŸ’αž“αž»αž„αž€αžšαžŽαžΈαž—αžΆαž‚αž…αŸ’αžšαžΎαž“ αž›αž€αŸ’αžαžŽαŸˆαžœαž·αž“αž·αž…αŸ’αž†αŸαž™αž…αž˜αŸ’αž”αž„αž“αžΉαž„αž˜αžΆαž“αŸˆ

1. αž‘αžΈαž˜αž½αž™ (αž…αŸ’αž”αžΆαžŸαŸ‹αž”αŸ†αž•αž»αž αž“αž·αž„αžšαž·αŸ‡αž‚αž“αŸ‹αž”αŸ†αž•αž»αž) αž‚αžΊαž‡αžΆαžšαžΌαž”αž—αžΆαž–αž“αŸ„αŸ‡αŸ” αž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž“αŸ…αž€αŸ’αž“αž»αž„ Kubernetes. αž€αžΆαžšαž›αž»αž”αžšαžΌαž”αž—αžΆαž–αž‘αžΆαŸ†αž„αž“αŸαŸ‡αž…αŸαž‰αž’αžΆαž…αž”αžŽαŸ’αžαžΆαž›αž±αŸ’αž™αž˜αžΆαž“αž€αžΆαžšαž…αŸ†αžŽαžΆαž™αž–αŸαž›αžœαŸαž›αžΆαžšαž„αž…αžΆαŸ†αž•αž›αž·αžαž€αž˜αŸ’αž˜αž™αŸ‰αžΆαž„αžŸαŸ†αžαžΆαž“αŸ‹ (αž§αž‘αžΆαž αžšαžŽαŸ αžšαžΌαž”αž—αžΆαž–αž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‘αžΆαž˜αž‘αžΆαžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž…αž˜αŸ’αž›αž„) αž¬αž”αžŠαž·αžŸαŸαž’αž€αžΆαžšαžαž·αžαžαŸ†αž”αŸ’αžšαžΉαž„αž”αŸ’αžšαŸ‚αž„αžšαž”αžŸαŸ‹αž€αŸ’αžšαž»αž˜αž€αžΆαžšαž€αŸ‚αž€αŸ†αž αž»αžŸαž›αžΎαžšαž„αŸ’αžœαž·αž›αž‡αž»αŸ†αžŽαžΆαž˜αž½αž™αŸ” (αžŸαž˜αŸ’αžšαžΆαž”αŸ‹β€‹αž αŸαžαž»αž•αž›β€‹αž“αŸαŸ‡ αž™αžΎαž„β€‹αžαŸ‚αž˜β€‹αž‘αžΆαŸ†αž„β€‹αž”αžΆαž“β€‹αž’αŸ’αžœαžΎβ€‹αž€αžΆαžšβ€‹αž–αž·αžŸαŸαžŸβ€‹αž˜αž½αž™ αž’αŸ’αž“αž€αž“αžΆαŸ†αž…αŸαž‰ PrometheusαžŠαŸ‚αž›αžαžΆαž˜αžŠαžΆαž“αž’αžœαžαŸ’αžαž˜αžΆαž“αž“αŸƒαžšαžΌαž”αž—αžΆαž–αž”αŸ‚αž”αž“αŸαŸ‡αž“αŸ…αž€αŸ’αž“αž»αž„αž…αž„αŸ’αž€αŸ„αž˜ Kubernetes αžŽαžΆαž˜αž½αž™αŸ”)

2. αž‘αžΈαž–αžΈαžš (αž˜αž·αž“αžŸαžΌαžœαž…αŸ’αž”αžΆαžŸαŸ‹αž‘αŸ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž€αŸαžŸαŸ†αžαžΆαž“αŸ‹αžαŸ’αž›αžΆαŸ†αž„αžŠαŸ‚αžš αž αžΎαž™αž˜αŸ’αžαž„αž‘αŸ€αžαž‘αžΆαž€αŸ‹αž‘αž„αž“αžΉαž„αž€αžΆαžšαž€αŸαž„αž”αŸ’αžšαžœαŸαž‰αŸ’αž…) - αžšαžΌαž”αž—αžΆαž–αž“αŸ„αŸ‡αŸ” αž‘αžΆαž˜αž‘αžΆαžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαžœαž·αž›αžαŸ’αžšαž‘αž”αŸ‹αž˜αž€αžœαž·αž‰ αž€αŸ’αž“αž»αž„αž€αžšαžŽαžΈαžšαž€αžƒαžΎαž‰αž”αž‰αŸ’αž αžΆαž’αŸ’αž„αž“αŸ‹αž’αŸ’αž„αžš αž“αŸ…αž€αŸ’αž“αž»αž„αž€αŸ†αžŽαŸ‚αž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“αŸ” αž§αž‘αžΆαž αžšαžŽαŸ αž€αŸ’αž“αž»αž„αž€αžšαžŽαžΈ Helm αž‘αžΆαŸ†αž„αž“αŸαŸ‡αž‚αžΊαž‡αžΆαžšαžΌαž”αž—αžΆαž–αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎαž“αŸ…αž€αŸ’αž“αž»αž„αž€αŸ†αžŽαŸ‚αžŠαŸ‚αž›αž”αžΆαž“αžšαž€αŸ’αžŸαžΆαž‘αž»αž€αž“αŸƒαž€αžΆαžšαž…αŸαž‰αž•αŸ’αžŸαžΆαž™αŸ” (αžŠαŸ„αž™αžœαž·αž’αžΈαž“αŸαŸ‡ αžαžΆαž˜αž›αŸ†αž“αžΆαŸ†αžŠαžΎαž˜αž“αŸ…αž€αŸ’αž“αž»αž„ Helm αžŠαŸ‚αž“αž€αŸ†αžŽαžαŸ‹αž‚αžΊ 256 αž€αžΆαžšαž€αŸ‚αž”αŸ’αžšαŸ‚ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžœαžΆαž˜αž·αž“αž‘αŸ†αž“αž„αžαžΆαž“αžšαžŽαžΆαž˜αŸ’αž“αžΆαž€αŸ‹αž–αž·αžαž‡αžΆαžαŸ’αžšαžΌαžœαž€αžΆαžšαžšαž€αŸ’αžŸαžΆαž‘αž»αž€αž‘αŸαŸ” αž”αŸ‚αž”αž“αŸαŸ‡ αž˜αž½αž™αž…αŸ†αž“αž½αž“αž’αŸ†αž“αŸƒαž€αŸ†αžŽαŸ‚?..) αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž‘αžΆαŸ†αž„αž’αžŸαŸ‹, αž‡αžΆαž–αž·αžŸαŸαžŸ, αž™αžΎαž„αžšαž€αŸ’αžŸαžΆαž‘αž»αž€αž€αŸ†αžŽαŸ‚αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž™αžΎαž„αž’αžΆαž…αž”αŸ’αžšαžΎαž–αž½αž€αžœαžΆαž“αŸ…αž–αŸαž›αž€αŸ’αžšαŸ„αž™, i.e. "αžαŸ’αžšαž‘αž”αŸ‹" αž‘αŸ…αž–αž½αž€αž‚αŸαž”αŸ’αžšαžŸαž·αž“αž”αžΎαž…αžΆαŸ†αž”αžΆαž…αŸ‹αŸ”

3. αž‘αžΈαž”αžΈ - αžαž˜αŸ’αžšαžΌαžœαž€αžΆαžšαž’αŸ’αž“αž€αž’αž—αž·αžœαžŒαŸ’αžαž“αŸαŸ– αžšαžΌαž”αž—αžΆαž–αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αžŠαŸ‚αž›αž‘αžΆαž€αŸ‹αž‘αž„αž“αžΉαž„αž€αžΆαžšαž„αžΆαžšαž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“αžšαž”αžŸαŸ‹αž–αž½αž€αž‚αŸαŸ” αž§αž‘αžΆαž αžšαžŽαŸ αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž™αžΎαž„αž€αŸ†αž–αž»αž„αž–αž·αž…αžΆαžšαžŽαžΆ PR αž“αŸ„αŸ‡αžœαžΆαžŸαž˜αž αŸαžαž»αž•αž›αž€αŸ’αž“αž»αž„αž€αžΆαžšαž‘αž»αž€αžšαžΌαž”αž—αžΆαž–αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž“αžΉαž„αž€αžΆαžšαž”αŸ’αžαŸαž‡αŸ’αž‰αžΆαž…αž·αžαŸ’αžαž…αž»αž„αž€αŸ’αžšαŸ„αž™ αž αžΎαž™αž“αž·αž™αžΆαž™αžαžΆαž€αžΆαžšαž”αŸ’αžαŸαž‡αŸ’αž‰αžΆαž…αž·αžαŸ’αžαž–αžΈαž˜αž»αž“αŸ– αžœαž·αž’αžΈαž“αŸαŸ‡αž’αŸ’αž“αž€αž’αž—αž·αžœαžŒαŸ’αžαž“αŸαž’αžΆαž…αžαŸ’αžšαž›αž”αŸ‹αž‘αŸ…αž€αž·αž…αŸ’αž…αž€αžΆαžšαžŽαžΆαž˜αž½αž™αž”αžΆαž“αž™αŸ‰αžΆαž„αž†αžΆαž”αŸ‹αžšαž αŸαžŸ αž αžΎαž™αž’αŸ’αžœαžΎαž€αžΆαžšαž‡αžΆαž˜αž½αž™αž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž…αž»αž„αž€αŸ’αžšαŸ„αž™αž”αŸ†αž•αž»αžαŸ”

4. αž‘αžΈαž”αž½αž“ - αžšαžΌαž”αž—αžΆαž–αž“αŸ„αŸ‡αŸ” αžαŸ’αžšαžΌαžœαž‚αŸ’αž“αžΆαž‘αŸ…αž“αžΉαž„αž€αŸ†αžŽαŸ‚αž“αŸƒαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžšαž”αžŸαŸ‹αž™αžΎαž„αŸ”, i.e. αž‚αžΊαž‡αžΆαž•αž›αž·αžαž•αž›αž…αž»αž„αž€αŸ’αžšαŸ„αž™αŸ– v1.0.0, 20.04.01/XNUMX/XNUMX, αžŸαŸ€αžšαŸ‰αžΆαŸ”αž›αŸ”

NB: αž›αž€αŸ’αžαžŽαŸˆαžœαž·αž“αž·αž…αŸ’αž†αŸαž™αžŠαŸ‚αž›αž”αžΆαž“αž€αŸ†αžŽαžαŸ‹αž“αŸ…αž‘αžΈαž“αŸαŸ‡αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαž‘αžΎαž„αžŠαŸ„αž™αž•αŸ’αž’αŸ‚αž€αž›αžΎαž”αž‘αž–αž·αžŸαŸ„αž’αž“αŸαžŠαŸ‚αž›αž˜αžΆαž“αž‘αŸ†αž“αžΆαž€αŸ‹αž‘αŸ†αž“αž„αž‡αžΆαž˜αž½αž™αž€αŸ’αžšαž»αž˜αž’αž—αž·αžœαžŒαŸ’αžαž“αŸαžšαžΆαž”αŸ‹αžŸαž·αž”αž“αžΆαž€αŸ‹αž˜αž€αž–αžΈαž€αŸ’αžšαž»αž˜αž αŸŠαž»αž“αž•αŸ’αžŸαŸαž„αŸ—αž‚αŸ’αž“αžΆαŸ” αž‘αŸ„αŸ‡αž‡αžΆαž™αŸ‰αžΆαž„αžŽαžΆαž€αŸαžŠαŸ„αž™ αž’αžΆαžŸαŸ’αžšαŸαž™αž›αžΎαž—αžΆαž–αž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹αž“αŸ…αž€αŸ’αž“αž»αž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž’αž—αž·αžœαžŒαŸ’αžαž“αŸ αž“αž·αž„αž αŸαžŠαŸ’αž‹αžΆαžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αžŠαŸ‚αž›αž”αžΆαž“αž”αŸ’αžšαžΎ (αž§αž‘αžΆαž αžšαžŽαŸ Kubernetes αž˜αž·αž“αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎαž‘αŸ) αž›αž€αŸ’αžαžŽαŸˆαžœαž·αž“αž·αž…αŸ’αž†αŸαž™αž‘αžΆαŸ†αž„αž“αŸαŸ‡αž’αžΆαž…αžαž»αžŸαž‚αŸ’αž“αžΆαŸ”

αžŸαž·αž‘αŸ’αž’αž·αž‘αž‘αž½αž›αž”αžΆαž“ αž“αž·αž„αžŠαŸ†αžŽαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αžŠαŸ‚αž›αž˜αžΆαž“αžŸαŸ’αžšαžΆαž”αŸ‹

αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αž–αŸαž‰αž“αž·αž™αž˜αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž€αžΆαžšαž…αž»αŸ‡αž”αž‰αŸ’αž‡αžΈαž€αž»αž„αžαžΊαž“αŸαžš αž‡αžΆαž€αŸ’αž”αž½αž“αž•αŸ’αžαž›αŸ‹αž“αžΌαžœαž‚αŸ„αž›αž€αžΆαžšαžŽαŸαžŸαž˜αŸ’αž’αžΆαžαžšαžΌαž”αž—αžΆαž–αž•αŸ’αž‘αžΆαž›αŸ‹αžαŸ’αž›αž½αž“αžšαž”αžŸαŸ‹αž–αž½αž€αž‚αŸαŸ– αž“αŸ…αž€αŸ’αž“αž»αž„αž–αž½αž€αžœαžΆαž’αŸ’αž“αž€αž’αžΆαž…αž€αŸ†αžŽαžαŸ‹αž›αž€αŸ’αžαžαžŽαŸ’αžŒαžŠαŸ‚αž›αžŸαŸ’αž›αžΆαž€αž˜αž½αž™αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŠαž€αž…αŸαž‰αž–αžΈαž”αž‰αŸ’αž‡αžΈαžˆαŸ’αž˜αŸ„αŸ‡αŸ” αž‘αŸ„αŸ‡αž™αŸ‰αžΆαž„αžŽαžΆαž€αŸαžŠαŸ„αž™ αž›αž€αŸ’αžαžαžŽαŸ’αžŒαž‘αžΆαŸ†αž„αž“αŸαŸ‡αžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αŸ†αžŽαžαŸ‹αžŠαŸ„αž™αž”αŸ‰αžΆαžšαŸ‰αžΆαž˜αŸ‰αŸ‚αžαŸ’αžšαžŠαžΌαž…αž‡αžΆαžˆαŸ’αž˜αŸ„αŸ‡ αž–αŸαž›αžœαŸαž›αžΆαž”αž„αŸ’αž€αžΎαž αž“αž·αž„αž…αŸ†αž“αž½αž“αžŸαŸ’αž›αžΆαž€*αŸ”

* αž’αžΆαžŸαŸ’αžšαŸαž™αž›αžΎαž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαž€αžΆαžšαž…αž»αŸ‡αž”αž‰αŸ’αž‡αžΈαž€αž»αž„αžαžΊαž“αŸαžšαž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹αŸ” αž™αžΎαž„αž”αžΆαž“αž–αž·αž…αžΆαžšαžŽαžΆαž–αžΈαž›αž‘αŸ’αž’αž—αžΆαž–αž“αŸƒαžŠαŸ†αžŽαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αžŠαžΌαž…αžαžΆαž„αž€αŸ’αžšαŸ„αž˜αŸ– Azure CR, Docker Hub, ECR, GCR, GitHub Packages, GitLab Container Registry, Harbor Registry, JFrog Artifactory, Quay.io - αž‚αž·αžαžαŸ’αžšαžΉαž˜αžαŸ‚αž€αž‰αŸ’αž‰αžΆαž†αŸ’αž“αžΆαŸ† 2020 αŸ”

αžŸαŸ†αžŽαž»αŸ†αž“αŸƒαž”αŸ‰αžΆαžšαŸ‰αžΆαž˜αŸ‰αŸ‚αžαŸ’αžšαž“αŸαŸ‡αž‚αžΊαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαžΆαž“αŸ‹αžŠαžΎαž˜αŸ’αž”αžΈαž”αŸ†αž–αŸαž‰αž›αž€αŸ’αžαžŽαŸˆαžœαž·αž“αž·αž…αŸ’αž†αŸαž™αž‘αžΈαž”αž½αž“ - αž“αŸ„αŸ‡αž‚αžΊαžŠαžΎαž˜αŸ’αž”αžΈαž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸαžšαžΌαž”αž—αžΆαž–αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž“αžΉαž„αž€αŸ†αžŽαŸ‚αŸ” αž‘αŸ„αŸ‡αž‡αžΆαž™αŸ‰αžΆαž„αžŽαžΆαž€αŸαžŠαŸ„αž™ αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž›αž€αŸ’αžαžŽαŸˆαžœαž·αž“αž·αž…αŸ’αž†αŸαž™αž•αŸ’αžŸαŸαž„αž‘αŸ€αžαž‘αžΆαŸ†αž„αž’αžŸαŸ‹ αž˜αž“αž»αžŸαŸ’αžŸαž˜αŸ’αž“αžΆαž€αŸ‹αžαŸ’αžšαžΌαžœαž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸαž”αŸ’αžšαž—αŸαž‘αž“αŸƒαžŠαŸ†αžŽαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αžŸαž˜αŸ’αžšαž”αžŸαž˜αŸ’αžšαž½αž›αž˜αž½αž™αž…αŸ†αž“αž½αž“ (αž‚αŸ„αž›αž“αž™αŸ„αž”αžΆαž™αžαžΉαž„αžšαŸ‰αžΉαž„ αž¬αž•αŸ’αž‘αž»αž™αž‘αŸ…αžœαž·αž‰ αž‚αŸ„αž›αž“αž™αŸ„αž”αžΆαž™αžŠαŸ‚αž›αž’αžΌαžšαžŸαŸ’αžšαžΆαž›αž‡αžΆαž„) - αž’αžΆαžŸαŸ’αžšαŸαž™αž›αžΎαž€αžΆαžšαžšαŸ†αž–αžΉαž„αž‘αž»αž€ αž“αž·αž„αžŸαž˜αžαŸ’αžαž—αžΆαž–αž αž·αžšαž‰αŸ’αž‰αžœαžαŸ’αžαž»αŸ”

αž§αž‘αžΆαž αžšαžŽαŸ αž›αž€αŸ’αžαžŽαŸˆαžœαž·αž“αž·αž…αŸ’αž†αŸαž™αž‘αžΈαž”αžΈ - αž‘αžΆαž€αŸ‹αž‘αž„αž‘αŸ…αž“αžΉαž„αžαž˜αŸ’αžšαžΌαžœαž€αžΆαžšαžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž’αž—αž·αžœαžŒαŸ’αžαž“αŸ - αž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αžŠαŸ„αž™αž€αžΆαžšαžšαŸ€αž”αž…αŸ†αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž“αŸ…αž€αŸ’αž“αž»αž„αž€αŸ’αžšαž»αž˜αŸ– αž€αžΆαžšαžŠαžΆαž€αŸ‹αžˆαŸ’αž˜αŸ„αŸ‡αž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹αž“αŸƒαžšαžΌαž”αž—αžΆαž– αž€αžΆαžšαžšαž€αŸ’αžŸαžΆαž”αž‰αŸ’αž‡αžΈαž’αž“αž»αž‰αŸ’αž‰αžΆαžαž–αž·αžŸαŸαžŸ αž“αž·αž„αž€αž·αž…αŸ’αž…αž–αŸ’αžšαž˜αž–αŸ’αžšαŸ€αž„αž•αŸ’αž‘αŸƒαž€αŸ’αž“αž»αž„αŸ” αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž“αŸ…αž‘αžΈαž”αŸ†αž•αž»αžαžœαžΆαž“αŸ…αžαŸ‚αžαŸ’αžšαžΌαžœαž€αžΆαžšαžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž·αŸ” αž αžΎαž™αž”αŸ’αžšαžŸαž·αž“αž”αžΎαžŸαž˜αžαŸ’αžαž—αžΆαž–αž“αŸƒαžŠαŸ†αžŽαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αžŠαŸ‚αž›αžαŸ’αžšαŸ€αž˜αžšαž½αž…αž‡αžΆαžŸαŸ’αžšαŸαž…αž˜αž·αž“αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαžΆαž“αŸ‹αž‘αŸ αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαžαŸ‚αž’αŸ’αžœαžΎαž’αŸ’αžœαžΈαž˜αž½αž™αžŠαŸ„αž™αžαŸ’αž›αž½αž“αž―αž„αŸ”

αžŸαŸ’αžαžΆαž“αž—αžΆαž–αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž›αž€αŸ’αžαžŽαŸˆαžœαž·αž“αž·αž…αŸ’αž†αŸαž™αž–αžΈαžšαžŠαŸ†αž”αžΌαž„αž‚αžΊαžŸαŸ’αžšαžŠαŸ€αž„αž‚αŸ’αž“αžΆαŸ– αž–αž½αž€αž‚αŸαž˜αž·αž“αž’αžΆαž…αž–αŸαž‰αž…αž·αžαŸ’αžαžŠαŸ„αž™αž˜αž·αž“αž‘αž‘αž½αž›αž”αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αž–αžΈαž”αŸ’αžšαž–αŸαž“αŸ’αž’αžαžΆαž„αž€αŸ’αžšαŸ…αž‘αŸ αžŠαŸ‚αž›αž‡αžΆαž€αž“αŸ’αž›αŸ‚αž„αžŠαžΆαž€αŸ‹αž±αŸ’αž™αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž€αž˜αŸ’αž˜αžœαž·αž’αžΈ (αž€αŸ’αž“αž»αž„αž€αžšαžŽαžΈαžšαž”αžŸαŸ‹αž™αžΎαž„αž‚αžΊ Kubernetes) αŸ”

αžšαžΌαž”αž—αžΆαž–αž“αŸƒαž›αŸ†αž αžΌαžšαž€αžΆαžšαž„αžΆαžšαž“αŸ…αž€αŸ’αž“αž»αž„ Git

αž…αžΌαžšαž“αž·αž™αžΆαž™αžαžΆαž’αŸ’αž“αž€αž€αŸ†αž–αž»αž„αž’αŸ’αžœαžΎαž€αžΆαžšαž’αŸ’αžœαžΈαž˜αž½αž™αžŠαžΌαž…αž“αŸαŸ‡αž“αŸ…αž€αŸ’αž“αž»αž„ GitαŸ–

αž”αž‰αŸ’αž αžΆαž“αŸƒαž€αžΆαžšαžŸαž˜αŸ’αž’αžΆαž "αž†αŸ’αž›αžΆαžαžœαŸƒ" αž“αŸƒαžšαžΌαž”αž—αžΆαž–αž€αž»αž„αžαžΊαž“αŸαžš αž“αž·αž„αžŠαŸ†αžŽαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αžšαž”αžŸαŸ‹αžœαžΆαž“αŸ…αž€αŸ’αž“αž»αž„ werf

αžšαžΌαž”αžαŸ†αžŽαžΆαž„αžŠαŸ‚αž›αž˜αžΆαž“αž€αŸ’αž”αžΆαž›αž€αŸ’αž“αž»αž„αžŠαŸ’αž™αžΆαž€αŸ’αžšαžΆαž˜αž”αž„αŸ’αž αžΆαž‰αž–αžΈαžšαžΌαž”αž—αžΆαž–αž€αž»αž„αžαžΊαž“αŸαžšαžŠαŸ‚αž›αž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŠαžΆαž€αŸ‹αž±αŸ’αž™αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž€αŸ’αž“αž»αž„ Kubernetes αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αžŽαžΆαž˜αž½αž™ (αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž…αž»αž„αž€αŸ’αžšαŸ„αž™ αž’αŸ’αž“αž€αžŸαžΆαž€αž›αŸ’αž”αž„ αž’αŸ’αž“αž€αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αŸ”αž›αŸ”) αž¬αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αžŠαŸ„αž™αž’αŸ’αž“αž€αž’αž—αž·αžœαžŒαŸ’αžαž“αŸαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž€αŸ‚αž€αŸ†αž αž»αžŸ αž“αž·αž„αž‚αŸ„αž›αž”αŸ†αžŽαž„αžŸαŸ’αžšαžŠαŸ€αž„αž‚αŸ’αž“αžΆαŸ”

αžαžΎαž˜αžΆαž“αž’αŸ’αžœαžΈαž€αžΎαžαž‘αžΎαž„αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž‚αŸ„αž›αž€αžΆαžšαžŽαŸαžŸαž˜αŸ’αž’αžΆαžαž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αžšαž€αŸ’αžŸαžΆαž‘αž»αž€αžαŸ‚αžšαžΌαž”αž—αžΆαž– (αž˜αž·αž“αžαŸ’αžšαžΌαžœαž”αžΆαž“αž›αž»αž”) αžŠαŸ„αž™αžˆαŸ’αž˜αŸ„αŸ‡αžŸαŸ’αž›αžΆαž€αžŠαŸ‚αž›αž”αžΆαž“αž•αŸ’αžαž›αŸ‹αž±αŸ’αž™?

αž”αž‰αŸ’αž αžΆαž“αŸƒαž€αžΆαžšαžŸαž˜αŸ’αž’αžΆαž "αž†αŸ’αž›αžΆαžαžœαŸƒ" αž“αŸƒαžšαžΌαž”αž—αžΆαž–αž€αž»αž„αžαžΊαž“αŸαžš αž“αž·αž„αžŠαŸ†αžŽαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αžšαž”αžŸαŸ‹αžœαžΆαž“αŸ…αž€αŸ’αž“αž»αž„ werf

αž‡αžΆαž€αŸ‹αžŸαŸ’αžαŸ‚αž„ αžŸαŸαžŽαžΆαžšαžΈαž™αŸ‰αžΌαž”αŸ‚αž”αž“αŸαŸ‡αž“αžΉαž„αž˜αž·αž“αž–αŸαž‰αž…αž·αžαŸ’αžαž“αžšαžŽαžΆαž˜αŸ’αž“αžΆαž€αŸ‹αž‘αžΎαž™αŸ”

αžαžΎβ€‹αž“αžΉαž„β€‹αž˜αžΆαž“β€‹αž’αŸ’αžœαžΈβ€‹αž”αŸ’αžšαŸ‚αž”αŸ’αžšαž½αž›β€‹αž”αŸ’αžšαžŸαž·αž“αž”αžΎβ€‹αž‚αŸ„αž›αž€αžΆαžšαžŽαŸβ€‹αž˜αž·αž“β€‹αž’αž“αž»αž‰αŸ’αž‰αžΆαžβ€‹αž±αŸ’αž™β€‹αžšαžΌαž”αž—αžΆαž–β€‹αžαŸ’αžšαžΌαžœβ€‹αž”αžΆαž“β€‹αž›αž»αž”? αž™αŸ„αž„αž‘αŸ…αžαžΆαž˜αž…αž“αŸ’αž›αŸ„αŸ‡αž–αŸαž›αžŠαŸ‚αž›αž”αžΆαž“αž•αŸ’αžαž›αŸ‹αž±αŸ’αž™ / αž…αŸ†αž“αž½αž“αž“αŸƒαž€αžΆαžšαž”αŸ’αžšαž–αŸ’αžšαžΉαžαŸ’αžαž…αž»αž„αž€αŸ’αžšαŸ„αž™?

αž”αž‰αŸ’αž αžΆαž“αŸƒαž€αžΆαžšαžŸαž˜αŸ’αž’αžΆαž "αž†αŸ’αž›αžΆαžαžœαŸƒ" αž“αŸƒαžšαžΌαž”αž—αžΆαž–αž€αž»αž„αžαžΊαž“αŸαžš αž“αž·αž„αžŠαŸ†αžŽαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αžšαž”αžŸαŸ‹αžœαžΆαž“αŸ…αž€αŸ’αž“αž»αž„ werf

αž›αž‘αŸ’αž’αž•αž›β€‹αž”αžΆαž“β€‹αž€αŸ’αž›αžΆαž™β€‹αž‡αžΆβ€‹αž›αŸ’αž’β€‹αž”αŸ’αžšαžŸαžΎαžšβ€‹αž‡αžΆαž„β€‹αž˜αž»αž“ αž”αŸ‰αž»αž“αŸ’αžαŸ‚β€‹αž“αŸ…β€‹αž†αŸ’αž„αžΆαž™β€‹αž–αžΈβ€‹αž§αžαŸ’αžαž˜αž‚αžαž·β€‹αž“αŸ…αž‘αžΎαž™αŸ” αž™αŸ‰αžΆαž„αžŽαžΆαž˜αž·αž‰ αž™αžΎαž„αž“αŸ…αžαŸ‚αž˜αžΆαž“αž’αŸ’αž“αž€αž’αž—αž·αžœαžŒαŸ’αžαž“αŸαžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž€αžΆαžšαžšαžΌαž”αž—αžΆαž–αž“αŸ…αž€αŸ’αž“αž»αž„αž”αž‰αŸ’αž‡αžΈαžˆαŸ’αž˜αŸ„αŸ‡ (αž¬αžŸαžΌαž˜αŸ’αž”αžΈαžαŸ‚αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŠαžΆαž€αŸ‹αž±αŸ’αž™αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž€αŸ’αž“αž»αž„ K8s) αžŠαžΎαž˜αŸ’αž”αžΈαž”αŸ†αž”αžΆαžαŸ‹αž€αŸ†αž αž»αžŸ...

αžŠαžΎαž˜αŸ’αž”αžΈαžŸαž„αŸ’αžαŸαž”αžŸαŸ’αžαžΆαž“αž—αžΆαž–αž‘αžΈαž•αŸ’αžŸαžΆαžšαž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“αŸ– αž˜αž»αžαž„αžΆαžšαžŠαŸ‚αž›αž˜αžΆαž“αž“αŸ…αž€αŸ’αž“αž»αž„αž€αžΆαžšαž…αž»αŸ‡αž”αž‰αŸ’αž‡αžΈαž€αž»αž„αžαžΊαž“αŸαžšαž˜αž·αž“αž•αŸ’αžαž›αŸ‹αž—αžΆαž–αž”αžαŸ‹αž”αŸ‚αž“αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαžΆαž“αŸ‹αž“αŸ…αž–αŸαž›αžŸαž˜αŸ’αž’αžΆαžαž‘αŸ αž αžΎαž™αž˜αžΌαž›αž αŸαžαž»αž…αž˜αŸ’αž”αž„αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αž‰αŸ’αž αžΆαž“αŸαŸ‡αž‚αžΊ αž‚αŸ’αž˜αžΆαž“αž˜αž’αŸ’αž™αŸ„αž”αžΆαž™αž‘αžΆαž€αŸ‹αž‘αž„αž‡αžΆαž˜αž½αž™αž–αž·αž—αž–αžαžΆαž„αž€αŸ’αžšαŸ…αž‘αŸαŸ”. αžœαžΆαž”αž„αŸ’αž αžΆαž‰αžαžΆαž€αŸ’αžšαž»αž˜αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž€αžΆαžšαž—αžΆαž–αž”αžαŸ‹αž”αŸ‚αž“αž”αŸ‚αž”αž“αŸαŸ‡αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ’αžαŸ†αž±αŸ’αž™αž’αž“αž»αžœαžαŸ’αžαž€αžΆαžšαž›αž»αž”αžšαžΌαž”αž—αžΆαž–αžŠαŸ„αž™αž―αž€αžšαžΆαž‡αŸ’αž™ "αž–αžΈαžαžΆαž„αž€αŸ’αžšαŸ…" αžŠαŸ„αž™αž”αŸ’αžšαžΎ Docker Registry API (ឬ API αžŠαžΎαž˜αž“αŸƒαž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž‚αŸ’αž“αžΆ) αŸ”

αž‘αŸ„αŸ‡αž‡αžΆαž™αŸ‰αžΆαž„αžŽαžΆαž€αŸαžŠαŸ„αž™ αž–αž½αž€αž™αžΎαž„αž€αŸ†αž–αž»αž„αžŸαŸ’αžœαŸ‚αž„αžšαž€αžŠαŸ†αžŽαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž‡αžΆαžŸαž€αž› αžŠαŸ‚αž›αž“αžΉαž„αž’αŸ’αžœαžΎαž±αŸ’αž™αž€αžΆαžšαžŸαž˜αŸ’αž’αžΆαžαžšαžΌαž”αž—αžΆαž–αžŠαŸ„αž™αžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž·αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αŸ’αžšαž»αž˜αž•αŸ’αžŸαŸαž„αŸ—αž‚αŸ’αž“αžΆαžŠαŸ„αž™αž”αŸ’αžšαžΎαž€αžΆαžšαž…αž»αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡αž•αŸ’αžŸαŸαž„αŸ—αž‚αŸ’αž“αžΆ...

αž•αŸ’αž›αžΌαžœαžšαž”αžŸαŸ‹αž™αžΎαž„αž‘αŸ…αž€αžΆαž“αŸ‹αž€αžΆαžšαžŸαž˜αŸ’αž’αžΆαžαžšαžΌαž”αž—αžΆαž–αž‡αžΆαžŸαž€αž›

αžαžΎαžαž˜αŸ’αžšαžΌαžœαž€αžΆαžšαž“αŸαŸ‡αž˜αž€αž–αžΈαžŽαžΆ? αž€αžΆαžšαž–αž·αžαž‚αžΊαžαžΆ αž™αžΎαž„αž˜αž·αž“αž˜αŸ‚αž“αž‡αžΆαž€αŸ’αžšαž»αž˜αž’αŸ’αž“αž€αž’αž—αž·αžœαžŒαŸ’αžαž“αŸαžŠαžΆαž…αŸ‹αžŠαŸ„αž™αž‘αŸ‚αž€αž“αŸ„αŸ‡αž‘αŸ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž‡αžΆαž€αŸ’αžšαž»αž˜αžŠαŸ‚αž›αž”αž˜αŸ’αžšαžΎαž–αž½αž€αž‚αŸαž‡αžΆαž…αŸ’αžšαžΎαž“αž€αŸ’αž“αž»αž„αž–αŸαž›αžαŸ‚αž˜αž½αž™ αžŠαŸ„αž™αž‡αž½αž™αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž”αž‰αŸ’αž αžΆ CI/CD αž™αŸ‰αžΆαž„αž‘αžΌαž›αŸ†αž‘αžΌαž›αžΆαž™αŸ” αž αžΎαž™αž§αž”αž€αžšαžŽαŸαž”αž…αŸ’αž…αŸαž€αž‘αŸαžŸαžŸαŸ†αžαžΆαž“αŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž“αŸαŸ‡αž‚αžΊαž§αž”αž€αžšαžŽαŸαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž”αŸ’αžšαž—αž–αž”αžΎαž€αž…αŸ†αž  werf. αž—αžΆαž–αž–αž·αžŸαŸαžŸαžšαž”αžŸαŸ‹αžœαžΆαž‚αžΊαžαžΆαžœαžΆαž˜αž·αž“αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž˜αž»αžαž„αžΆαžšαžαŸ‚αž˜αž½αž™αž‘αŸ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž—αŸ’αž‡αžΆαž”αŸ‹αž‡αžΆαž˜αž½αž™αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž…αŸ‚αž€αž…αžΆαž™αž”αž“αŸ’αžαž“αŸ…αž‚αŸ’αžšαž”αŸ‹αžŠαŸ†αžŽαžΆαž€αŸ‹αž€αžΆαž›αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αŸ– αž–αžΈαž€αžΆαžšαž‡αž½αž”αž”αŸ’αžšαž‡αž»αŸ†αž‚αŸ’αž“αžΆαžšαž αžΌαžαžŠαž›αŸ‹αž€αžΆαžšαžŠαžΆαž€αŸ‹αž–αž„αŸ’αžšαžΆαž™αŸ”

αž€αžΆαžšαž”αŸ„αŸ‡αž–αž»αž˜αŸ’αž–αžšαžΌαž”αž—αžΆαž–αž‘αŸ…αž”αž‰αŸ’αž‡αžΈαžˆαŸ’αž˜αŸ„αŸ‡* (αž—αŸ’αž›αžΆαž˜αŸ—αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž–αž½αž€αžœαžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αžŸαžΆαž„αžŸαž„αŸ‹) αž‚αžΊαž‡αžΆαž˜αž»αžαž„αžΆαžšαž‡αžΆαž€αŸ‹αžŸαŸ’αžαŸ‚αž„αž“αŸƒαž§αž”αž€αžšαžŽαŸαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž”αŸ‚αž”αž“αŸαŸ‡αŸ” αž αžΎαž™αž…αžΆαž”αŸ‹αžαžΆαŸ†αž„αž–αžΈαžšαžΌαž”αž—αžΆαž–αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŠαžΆαž€αŸ‹αž“αŸ…αž‘αžΈαž“αŸ„αŸ‡αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž•αŸ’αž‘αž»αž€αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€ - αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž€αžΆαžšαž•αŸ’αž‘αž»αž€αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž˜αž·αž“αž˜αžΆαž“αžŠαŸ‚αž“αž€αŸ†αžŽαžαŸ‹ - αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαž‘αž‘αž½αž›αžαž»αžŸαžαŸ’αžšαžΌαžœαž…αŸ†αž–αŸ„αŸ‡αž€αžΆαžšαžŸαž˜αŸ’αž’αžΆαžαž‡αžΆαž”αž“αŸ’αžαž”αž“αŸ’αž‘αžΆαž”αŸ‹αžšαž”αžŸαŸ‹αž–αž½αž€αž‚αŸαŸ” αžšαž”αŸ€αž”αžŠαŸ‚αž›αž™αžΎαž„αžŸαž˜αŸ’αžšαŸαž…αž”αžΆαž“αž‡αŸ„αž‚αž‡αŸαž™αž€αŸ’αž“αž»αž„αžšαžΏαž„αž“αŸαŸ‡ αžŠαŸ„αž™αž”αŸ†αž–αŸαž‰αžαžΆαž˜αž›αž€αŸ’αžαžŽαŸˆαžœαž·αž“αž·αž…αŸ’αž†αŸαž™αžŠαŸ‚αž›αž”αžΆαž“αž”αž‰αŸ’αž‡αžΆαž€αŸ‹αž‘αžΆαŸ†αž„αž’αžŸαŸ‹ αž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž–αž·αž—αžΆαž€αŸ’αžŸαžΆαž”αž“αŸ’αžαŸ‚αž˜αž‘αŸ€αžαŸ”

* αž‘αŸ„αŸ‡αž”αžΈαž‡αžΆαž€αžΆαžšαž…αž»αŸ‡αž”αž‰αŸ’αž‡αžΈαžαŸ’αž›αž½αž“αž―αž„αž’αžΆαž…αžαž»αžŸαž‚αŸ’αž“αžΆ (Docker Registry, GitLab Container Registry, Harbor αŸ”αž›αŸ”) αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αžšαž”αžŸαŸ‹αž–αž½αž€αž‚αŸαž”αŸ’αžšαžˆαž˜αž“αžΉαž„αž”αž‰αŸ’αž αžΆαžŠαžΌαž…αž‚αŸ’αž“αžΆαŸ” αžŠαŸ†αžŽαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž‡αžΆαžŸαž€αž›αž“αŸ…αž€αŸ’αž“αž»αž„αž€αžšαžŽαžΈαžšαž”αžŸαŸ‹αž™αžΎαž„αž˜αž·αž“αž’αžΆαžŸαŸ’αžšαŸαž™αž›αžΎαž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαž“αŸƒαž€αžΆαžšαž…αž»αŸ‡αž”αž‰αŸ’αž‡αžΈαž“αŸ„αŸ‡αž‘αŸαž–αŸ’αžšαŸ„αŸ‡ αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž“αŸ…αžαžΆαž„αž€αŸ’αžšαŸ…αž”αž‰αŸ’αž‡αžΈαžˆαŸ’αž˜αŸ„αŸ‡αžαŸ’αž›αž½αž“αž―αž„ αž“αž·αž„αž•αŸ’αžαž›αŸ‹αž“αžΌαžœαž’αžΆαž€αž”αŸ’αž”αž€αž·αžšαž·αž™αžΆαžŠαžΌαž…αž‚αŸ’αž“αžΆαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž˜αž“αž»αžŸαŸ’αžŸαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αž“αžΆαŸ”

αž‘αŸ„αŸ‡αž”αžΈαž‡αžΆαž™αžΎαž„αž€αŸ†αž–αž»αž„αž”αŸ’αžšαžΎ werf αž‡αžΆαž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαž§αž‘αžΆαž αžšαžŽαŸαž€αŸαžŠαŸ„αž™ αž™αžΎαž„αžŸαž„αŸ’αžƒαžΉαž˜αžαžΆαžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αžαžŠαŸ‚αž›αž”αžΆαž“αž”αŸ’αžšαžΎαž“αžΉαž„αž˜αžΆαž“αž”αŸ’αžšαž™αŸ„αž‡αž“αŸαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αŸ’αžšαž»αž˜αž•αŸ’αžŸαŸαž„αž‘αŸ€αžαžŠαŸ‚αž›αž‡αž½αž”αž”αŸ’αžšαž‘αŸ‡αž“αžΉαž„αž€αžΆαžšαž›αŸ†αž”αžΆαž€αžŸαŸ’αžšαžŠαŸ€αž„αž‚αŸ’αž“αžΆαž“αŸαŸ‡αŸ”

αžŠαžΌαž…αŸ’αž“αŸαŸ‡β€‹αž™αžΎαž„β€‹αžšαžœαž›αŸ‹ αžαžΆαž„αž€αŸ’αžšαŸ… αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαž™αž“αŸ’αžαž€αžΆαžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαžŸαž˜αŸ’αž’αžΆαžαžšαžΌαž”αž—αžΆαž– - αž‡αŸ†αž“αž½αžŸαž±αŸ’αž™αžŸαž˜αžαŸ’αžαž—αžΆαž–αž‘αžΆαŸ†αž„αž“αŸ„αŸ‡αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαž‘αžΎαž„αžšαž½αž…αž αžΎαž™αž“αŸ…αž€αŸ’αž“αž»αž„αž”αž‰αŸ’αž‡αžΈαžˆαŸ’αž˜αŸ„αŸ‡αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αž»αž„αŸ” αž‡αŸ†αž αžΆαž“αžŠαŸ†αž”αžΌαž„αž‚αžΊαžαŸ’αžšαžΌαžœαž”αŸ’αžšαžΎ Docker Registry API αžŠαžΎαž˜αŸ’αž”αžΈαž”αž„αŸ’αž€αžΎαžαž‚αŸ„αž›αž€αžΆαžšαžŽαŸαž”αž‹αž˜αžŠαžΌαž…αž‚αŸ’αž“αžΆαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž…αŸ†αž“αž½αž“αžŸαŸ’αž›αžΆαž€ αž“αž·αž„αž–αŸαž›αžœαŸαž›αžΆαž“αŸƒαž€αžΆαžšαž”αž„αŸ’αž€αžΎαžαžšαž”αžŸαŸ‹αž–αž½αž€αž‚αŸ (αžŠαŸ‚αž›αž”αžΆαž“αžšαŸ€αž”αžšαžΆαž”αŸ‹αžαžΆαž„αž›αžΎ)αŸ” αž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αž‘αŸ…αž–αž½αž€αž‚αŸαŸ” αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž”αž‰αŸ’αž‡αžΈαžŠαŸ„αž™αž•αŸ’αž’αŸ‚αž€αž›αžΎαžšαžΌαž”αž—αžΆαž–αžŠαŸ‚αž›αž”αžΆαž“αž”αŸ’αžšαžΎαž“αŸ…αž€αŸ’αž“αž»αž„αž αŸαžŠαŸ’αž‹αžΆαžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αžŠαŸ‚αž›αž”αžΆαž“αžŠαžΆαž€αŸ‹αž–αž„αŸ’αžšαžΆαž™, i.e. Kubernetes αŸ” αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž–αŸαž›αž€αŸ’αžšαŸ„αž™ αžœαžΆαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαžΆαž“αŸ‹αž€αŸ’αž“αž»αž„αž€αžΆαžšαž”αŸ’αžšαžΎ Kubernetes API αžŠαžΎαž˜αŸ’αž”αžΈαž’αŸ’αžœαžΎαž‘αžΎαž„αžœαž·αž‰αžαžΆαž˜αžšαž™αŸˆαž’αž“αž’αžΆαž“αžŠαŸ‚αž›αž”αžΆαž“αžŠαžΆαž€αŸ‹αž–αž„αŸ’αžšαžΆαž™αž‘αžΆαŸ†αž„αž’αžŸαŸ‹ αž“αž·αž„αž‘αž‘αž½αž›αž”αžΆαž“αž”αž‰αŸ’αž‡αžΈαžαž˜αŸ’αž›αŸƒ image.

αžŠαŸ†αžŽαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αžŠαŸαž€αž˜αŸ’αžšαž“αŸαŸ‡αž”αžΆαž“αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž”αž‰αŸ’αž αžΆαžŸαŸ†αžαžΆαž“αŸ‹αž”αŸ†αž•αž»αž (αž›αž€αŸ’αžαžŽαŸˆαžœαž·αž“αž·αž…αŸ’αž†αŸαž™αž›αŸαž 1) αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž‚αŸ’αžšαžΆαž“αŸ‹αžαŸ‚αž‡αžΆαž€αžΆαžšαž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž“αŸƒαž€αžΆαžšαž’αŸ’αžœαžΎαžŠαŸ†αžŽαžΎαžšαžšαž”αžŸαŸ‹αž™αžΎαž„αžŠαžΎαž˜αŸ’αž”αžΈαž€αŸ‚αž›αž˜αŸ’αž’αž™αž“αŸ’αžαž€αžΆαžšαžŸαž˜αŸ’αž’αžΆαžαŸ” αž‡αŸ†αž αžΆαž“αž”αž“αŸ’αž‘αžΆαž”αŸ‹ - αž“αž·αž„αž‚αž½αžšαž±αŸ’αž™αž…αžΆαž”αŸ‹αž’αžΆαžšαž˜αŸ’αž˜αžŽαŸαž‡αžΆαž„αž“αŸαŸ‡ - αž‡αŸ†αž αžΆαž“αž‚αžΊαž€αžΆαžšαžŸαž˜αŸ’αžšαŸαž…αž…αž·αžαŸ’αž αž—αŸ’αž‡αžΆαž”αŸ‹αžšαžΌαž”αž—αžΆαž–αžŠαŸ‚αž›αž”αžΆαž“αž”αŸ„αŸ‡αž–αž»αž˜αŸ’αž–αž•αŸ’αžŸαžΆαž™αž‡αžΆαž˜αž½αž™αž”αŸ’αžšαžœαžαŸ’αžαž· Git.

αž‚αŸ’αžšαŸ„αž„αž€αžΆαžšαžŽαŸαžŠαžΆαž€αŸ‹αžŸαŸ’αž›αžΆαž€

αžŠαžΎαž˜αŸ’αž”αžΈαž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜ αž™αžΎαž„αž”αžΆαž“αž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸαžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αžαž˜αž½αž™αžŠαŸ‚αž›αžšαžΌαž”αž—αžΆαž–αž…αž»αž„αž€αŸ’αžšαŸ„αž™αž‚αž½αžšαžαŸ‚αžšαž€αŸ’αžŸαžΆαž‘αž»αž€αž–αŸαžαŸŒαž˜αžΆαž“αž…αžΆαŸ†αž”αžΆαž…αŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαžŸαž˜αŸ’αž’αžΆαž αž“αž·αž„αž”αž„αŸ’αž€αžΎαžαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž›αžΎαž‚αŸ’αžšαŸ„αž„αž€αžΆαžšαžŽαŸαžŠαžΆαž€αŸ‹αžŸαŸ’αž›αžΆαž€αŸ” αž“αŸ…αž–αŸαž›αž”αŸ„αŸ‡αž–αž»αž˜αŸ’αž–αžšαžΌαž”αž—αžΆαž– αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž”αžΆαž“αž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸαž‡αž˜αŸ’αžšαžΎαžŸαžŠαžΆαž€αŸ‹αžŸαŸ’αž›αžΆαž€αž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹αž˜αž½αž™ (git-branch, git-commit ឬ git-tag) αž αžΎαž™αž”αžΆαž“αž”αŸ’αžšαžΎαžαž˜αŸ’αž›αŸƒαžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž‚αŸ’αž“αžΆαŸ” αž“αŸ…αž€αŸ’αž“αž»αž„αž”αŸ’αžšαž–αŸαž“αŸ’αž’ CI αžαž˜αŸ’αž›αŸƒαž‘αžΆαŸ†αž„αž“αŸαŸ‡αžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αŸ†αžŽαžαŸ‹αžŠαŸ„αž™αžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž·αžŠαŸ„αž™αž•αŸ’αž’αŸ‚αž€αž›αžΎαž’αžαŸαžšαž”αžšαž·αžŸαŸ’αžαžΆαž“αŸ” αžαžΆαž˜αž–αž·αžαž‘αŸ… αžšαžΌαž”αž—αžΆαž–αž…αž»αž„αž€αŸ’αžšαŸ„αž™αžαŸ’αžšαžΌαžœαž”αžΆαž“αž—αŸ’αž‡αžΆαž”αŸ‹αž‡αžΆαž˜αž½αž™ Git primitive αž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹αžšαž€αŸ’αžŸαžΆαž‘αž»αž€αž‘αž·αž“αŸ’αž“αž“αŸαž™αž…αžΆαŸ†αž”αžΆαž…αŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαžŸαž˜αŸ’αž’αžΆαžαž“αŸ…αž€αŸ’αž“αž»αž„αžŸαŸ’αž›αžΆαž€αŸ”

αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αžαž“αŸαŸ‡αž”αžΆαž“αž”αžŽαŸ’αžαžΆαž›αž±αŸ’αž™αž˜αžΆαž“αžŸαŸ†αžŽαž»αŸ†αž“αŸƒαž‚αŸ„αž›αž“αž™αŸ„αž”αžΆαž™αžŠαŸ‚αž›αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™ Git αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎαž‡αžΆαž”αŸ’αžšαž—αž–αžαŸ‚αž˜αž½αž™αž“αŸƒαž€αžΆαžšαž–αž·αž:

  • αž“αŸ…αž–αŸαž›αž›αž»αž”αžŸαžΆαžαžΆ/αžŸαŸ’αž›αžΆαž€αž“αŸ…αž€αŸ’αž“αž»αž„ Git αžšαžΌαž”αž—αžΆαž–αžŠαŸ‚αž›αž–αžΆαž€αŸ‹αž–αŸαž“αŸ’αž’αž“αŸ…αž€αŸ’αž“αž»αž„αž”αž‰αŸ’αž‡αžΈαžˆαŸ’αž˜αŸ„αŸ‡αžαŸ’αžšαžΌαžœαž”αžΆαž“αž›αž»αž”αžŠαŸ„αž™αžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž·αŸ”
  • αž…αŸ†αž“αž½αž“αžšαžΌαž”αž—αžΆαž–αžŠαŸ‚αž›αž—αŸ’αž‡αžΆαž”αŸ‹αž‡αžΆαž˜αž½αž™αžŸαŸ’αž›αžΆαž€ Git αž“αž·αž„αž€αžΆαžšαž”αŸ’αžαŸαž‡αŸ’αž‰αžΆαž…αž·αžαŸ’αžαž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αžŠαŸ„αž™αž…αŸ†αž“αž½αž“αžŸαŸ’αž›αžΆαž€αžŠαŸ‚αž›αž”αžΆαž“αž”αŸ’αžšαžΎαž“αŸ…αž€αŸ’αž“αž»αž„αž‚αŸ’αžšαŸ„αž„αž€αžΆαžšαžŽαŸαžŠαŸ‚αž›αž”αžΆαž“αž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸ αž“αž·αž„αž–αŸαž›αžœαŸαž›αžΆαžŠαŸ‚αž›αž€αžΆαžšαž”αŸ’αžαŸαž‡αŸ’αž‰αžΆαž…αž·αžαŸ’αžαžŠαŸ‚αž›αž–αžΆαž€αŸ‹αž–αŸαž“αŸ’αž’αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαž‘αžΎαž„αŸ”

αžŸαžšαž»αž”αž˜αž€ αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαž›αž‘αŸ’αž’αž•αž›αž”αžΆαž“αž”αŸ†αž–αŸαž‰αžαž˜αŸ’αžšαžΌαžœαž€αžΆαžšαžšαž”αžŸαŸ‹αž™αžΎαž„ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž”αž‰αŸ’αž αžΆαž”αŸ’αžšαžˆαž˜αžαŸ’αž˜αžΈαž˜αž½αž™αž€αŸ†αž–αž»αž„αžšαž„αŸ‹αž…αžΆαŸ†αž™αžΎαž„αž€αŸ’αž“αž»αž„αž–αŸαž›αž†αžΆαž”αŸ‹αŸ—αž“αŸαŸ‡αŸ” αž€αžΆαžšαž–αž·αžαž‚αžΊαžαžΆ αžαžŽαŸˆαž–αŸαž›αžŠαŸ‚αž›αž”αŸ’αžšαžΎαž‚αŸ’αžšαŸ„αž„αž€αžΆαžšαžŽαŸαžŠαžΆαž€αŸ‹αžŸαŸ’αž›αžΆαž€αžŠαŸ„αž™αž•αŸ’αž’αŸ‚αž€αž›αžΎ Git primitives αž™αžΎαž„αž”αžΆαž“αž‡αž½αž”αž”αŸ’αžšαž‘αŸ‡αž“αžΌαžœαž…αŸ†αžŽαž»αž…αžαŸ’αžœαŸ‡αžαžΆαžαž˜αž½αž™αž…αŸ†αž“αž½αž“αŸ” (αž…αžΆαž”αŸ‹αžαžΆαŸ†αž„αž–αžΈαž€αžΆαžšαž–αž·αž–αžŽαŸŒαž“αžΆαžšαž”αžŸαŸ‹αž–αž½αž€αž‚αŸαž αž½αžŸαž–αžΈαžœαž·αžŸαžΆαž›αž—αžΆαž–αž“αŸƒαž’αžαŸ’αžαž”αž‘αž“αŸαŸ‡ αž’αŸ’αž“αž€αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αž“αžΆαž’αžΆαž…αžŸαŸ’αž‚αžΆαž›αŸ‹αžαŸ’αž›αž½αž“αž―αž„αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž–αŸαžαŸŒαž˜αžΆαž“αž›αž˜αŸ’αž’αž·αž αž“αŸ…αž‘αžΈαž“αŸαŸ‡.) αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž αžΎαž™ αžŠαŸ„αž™αž”αžΆαž“αžŸαž˜αŸ’αžšαŸαž…αž…αž·αžαŸ’αžαž”αŸ’αžαžΌαžšαž‘αŸ…αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αžαžŠαŸ‚αž›αž˜αžΆαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αž‡αžΆαž„αž˜αž»αž“αž€αŸ’αž“αž»αž„αž€αžΆαžšαžŠαžΆαž€αŸ‹αžŸαŸ’αž›αžΆαž€ (αž€αžΆαžšαžŠαžΆαž€αŸ‹αžŸαŸ’αž›αžΆαž€αž•αŸ’αž’αŸ‚αž€αž›αžΎαžαŸ’αž›αžΉαž˜αžŸαžΆαžš) αž™αžΎαž„αžαŸ’αžšαžΌαžœαž–αž·αž…αžΆαžšαžŽαžΆαž‘αžΎαž„αžœαž·αž‰αž“αžΌαžœαž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαž€αžΆαžšαžŸαž˜αŸ’αž’αžΆαžαžšαžΌαž”αž—αžΆαž–αŸ”

αž€αŸ’αž”αž½αž“αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αžαŸ’αž˜αžΈαŸ”

αž αŸαžαž»αž’αŸ’αžœαžΈ? αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž€αžΆαžšαžŠαžΆαž€αŸ‹αžŸαŸ’αž›αžΆαž€αž•αŸ’αž’αŸ‚αž€αž›αžΎαž˜αžΆαžαž·αž€αžΆ αžŸαŸ’αž›αžΆαž€αž“αžΈαž˜αž½αž™αŸ—αž’αžΆαž…αž”αŸ†αž–αŸαž‰αž€αžΆαžšαž”αŸ’αžαŸαž‡αŸ’αž‰αžΆαž…αž·αžαŸ’αžαž‡αžΆαž…αŸ’αžšαžΎαž“αž“αŸ…αž€αŸ’αž“αž»αž„ Git αŸ” αž“αŸ…αž–αŸαž›αžŸαž˜αŸ’αž’αžΆαžαžšαžΌαž”αž—αžΆαž– αž’αŸ’αž“αž€αž˜αž·αž“αž’αžΆαž…αžŸαž“αŸ’αž˜αžαŸ‹αž”αžΆαž“αž‘αŸ€αžαž‘αŸ αžαŸ‚ αž–αžΈαž€αžΆαžšαž”αŸ’αžαŸαž‡αŸ’αž‰αžΆαžŠαŸ‚αž›αžŸαŸ’αž›αžΆαž€αžαŸ’αž˜αžΈαžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αž‘αŸ…αž”αž‰αŸ’αž‡αžΈαžˆαŸ’αž˜αŸ„αŸ‡αŸ”

αžŸαž˜αŸ’αžšαžΆαž”αŸ‹β€‹αž€αŸ’αž”αž½αž“β€‹αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™β€‹αž€αžΆαžšβ€‹αžŸαž˜αŸ’αž’αžΆαžβ€‹αžαŸ’αž˜αžΈ αžœαžΆβ€‹αžαŸ’αžšαžΌαžœβ€‹αž”αžΆαž“β€‹αžŸαž˜αŸ’αžšαŸαž…β€‹αž…αž·αžαŸ’αžβ€‹αžŠαž€β€‹αžαŸ’αž›αž½αž“β€‹αž…αŸαž‰β€‹αž–αžΈβ€‹αž‚αž˜αŸ’αžšαŸ„αž„β€‹αž€αžΆαžšβ€‹αžŠαžΆαž€αŸ‹β€‹αžŸαŸ’αž›αžΆαž€ αž“αž·αž„β€‹αžŸαžΆαž„αžŸαž„αŸ‹ αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžšαžΌαž”αž—αžΆαž–αž˜αŸαžαžΆαžŠαŸ‚αž›αž“αžΈαž˜αž½αž™αŸ—αžšαž€αŸ’αžŸαžΆαž‘αž»αž€αž‡αžΆαž€αŸ’αžšαž»αž˜αŸ–

  • αž€αžΆαžšαž”αŸ’αžαŸαž‡αŸ’αž‰αžΆαž…αž·αžαŸ’αžαžŠαŸ‚αž›αž€αžΆαžšαž”αŸ„αŸ‡αž–αž»αž˜αŸ’αž–αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αž“αž»αžœαžαŸ’αž (αžœαžΆαž˜αž·αž“αž˜αžΆαž“αž”αž‰αŸ’αž αžΆαžαžΆαžαžΎαžšαžΌαž”αž—αžΆαž–αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜ αž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžš αž¬αž“αŸ…αžŠαžŠαŸ‚αž›αž€αŸ’αž“αž»αž„αž”αž‰αŸ’αž‡αžΈαžˆαŸ’αž˜αŸ„αŸ‡αž€αž»αž„αžαžΊαž“αŸαžš) αŸ”
  • αž“αž·αž„αž§αž”αž€αžšαžŽαŸαž€αŸ†αžŽαžαŸ‹αž’αžαŸ’αžαžŸαž‰αŸ’αž‰αžΆαžŽαžαžΆαž„αž€αŸ’αž“αž»αž„αžšαž”αžŸαŸ‹αž™αžΎαž„αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž‚αŸ’αž“αžΆαž“αžΉαž„αžšαžΌαž”αž—αžΆαž–αžŠαŸ‚αž›αž”αžΆαž“αž‡αž½αž”αž”αŸ’αžšαž‡αž»αŸ†αž‚αŸ’αž“αžΆαŸ”

αž“αŸ…αž€αŸ’αž“αž»αž„αž–αžΆαž€αŸ’αž™αž•αŸ’αžŸαŸαž„αž‘αŸ€αžαžœαžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αž•αŸ’αžαž›αŸ‹αž±αŸ’αž™ αž—αŸ’αž‡αžΆαž”αŸ‹αžŸαŸ’αž›αžΆαž€αžŠαŸ‚αž›αž”αžΆαž“αž”αŸ„αŸ‡αž–αž»αž˜αŸ’αž–αž•αŸ’αžŸαžΆαž™αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž€αžΆαžšαžŸαž“αŸ’αž™αžΆαž“αŸ…αž€αŸ’αž“αž»αž„ Git.

αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž…αž»αž„αž€αŸ’αžšαŸ„αž™ αž“αž·αž„αž€αŸ’αž”αž½αž“αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž‘αžΌαž‘αŸ…

αž“αŸ…αž–αŸαž›αž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž€αžΆαžšαžŸαž˜αŸ’αž’αžΆαž αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž’αžΆαž…αž…αžΌαž›αž”αŸ’αžšαžΎαž‚αŸ„αž›αž€αžΆαžšαžŽαŸαžŠαŸ‚αž›αž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸαžšαžΌαž”αž—αžΆαž–αž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“αŸ” αž‚αŸ„αž›αž€αžΆαžšαžŽαŸαž“αžΈαž˜αž½αž™αŸ—αžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αŸ†αžŽαžαŸ‹αŸ–

  • αž―αž€αžŸαžΆαžšαž™αŸ„αž„αž‡αžΆαž…αŸ’αžšαžΎαž“, i.e. αžŸαŸ’αž›αžΆαž€ Git ឬសអខអ Git αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎαž€αŸ†αž‘αž»αž„αž–αŸαž›αžŸαŸ’αž€αŸαž“αŸ”
  • αž“αž·αž„αžŠαŸ‚αž“αž€αŸ†αžŽαžαŸ‹αž“αŸƒαžšαžΌαž”αž—αžΆαž–αžŠαŸ‚αž›αž”αžΆαž“αžŸαŸ’αžœαŸ‚αž„αžšαž€αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž―αž€αžŸαžΆαžšαž™αŸ„αž„αž“αžΈαž˜αž½αž™αŸ—αž–αžΈαžŸαŸ†αžŽαž»αŸ†αŸ”

αžŠαžΎαž˜αŸ’αž”αžΈαž”αž„αŸ’αž αžΆαž‰ αž“αŸαŸ‡αž‡αžΆαž’αŸ’αžœαžΈαžŠαŸ‚αž›αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž‚αŸ„αž›αž€αžΆαžšαžŽαŸαž›αŸ†αž“αžΆαŸ†αžŠαžΎαž˜αž”αžΆαž“αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž˜αžΎαž›αž‘αŸ…αžŠαžΌαž…αŸ–

cleanup:
  keepPolicies:
  - references:
      tag: /.*/
      limit:
        last: 10
  - references:
      branch: /.*/
      limit:
        last: 10
        in: 168h
        operator: And
    imagesPerReference:
      last: 2
      in: 168h
      operator: And
  - references:  
      branch: /^(main|staging|production)$/
    imagesPerReference:
      last: 10

αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž“αŸαŸ‡αž˜αžΆαž“αž‚αŸ„αž›αž€αžΆαžšαžŽαŸαž”αžΈαžŠαŸ‚αž›αž’αž“αž»αž›αŸ„αž˜αžαžΆαž˜αžœαž·αž’αžΆαž“αžαžΆαž„αž€αŸ’αžšαŸ„αž˜αŸ–

  1. αžšαž€αŸ’αžŸαžΆαž‘αž»αž€αžšαžΌαž”αž—αžΆαž–αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžŸαŸ’αž›αžΆαž€ Git αž…αž»αž„αž€αŸ’αžšαŸ„αž™αž…αŸ†αž“αž½αž“ 10 (αžαžΆαž˜αž€αžΆαž›αž”αžšαž·αž…αŸ’αž†αŸαž‘αž”αž„αŸ’αž€αžΎαžαžŸαŸ’αž›αžΆαž€) αŸ”
  2. αžšαž€αŸ’αžŸαžΆαž‘αž»αž€αžšαžΌαž”αž—αžΆαž–αž˜αž·αž“αž›αžΎαžŸαž–αžΈ 2 αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ„αŸ‡αž–αž»αž˜αŸ’αž–αž€αŸ’αž“αž»αž„αžŸαž”αŸ’αžαžΆαž αŸαž…αž»αž„αž€αŸ’αžšαŸ„αž™αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž˜αž·αž“αž›αžΎαžŸαž–αžΈ 10 αžαŸ’αžŸαŸ‚αžŠαŸ‚αž›αž˜αžΆαž“αžŸαž€αž˜αŸ’αž˜αž—αžΆαž–αž€αŸ’αž“αž»αž„αžŸαž”αŸ’αžαžΆαž αŸαž…αž»αž„αž€αŸ’αžšαŸ„αž™αŸ”
  3. αžšαž€αŸ’αžŸαžΆαž‘αž»αž€αžšαžΌαž”αž—αžΆαž–αž…αŸ†αž“αž½αž“ 10 αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžŸαžΆαžαžΆ main, staging ΠΈ production.

αž€αŸ’αž”αž½αž“αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž…αž»αž„αž€αŸ’αžšαŸ„αž™αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž‘αŸ…αž‡αŸ†αž αžΆαž“αžŠαžΌαž…αžαžΆαž„αž€αŸ’αžšαŸ„αž˜αŸˆ

  • αž€αžΆαžšαž‘αžΆαž‰αž™αž€ manifests αž–αžΈαž€αžΆαžšαž…αž»αŸ‡αž”αž‰αŸ’αž‡αžΈαž€αž»αž„αžαžΊαž“αŸαžšαŸ”
  • αž˜αž·αž“αžšαžΆαž”αŸ‹αž”αž‰αŸ’αž…αžΌαž›αžšαžΌαž”αž—αžΆαž–αžŠαŸ‚αž›αž”αŸ’αžšαžΎαž€αŸ’αž“αž»αž„ Kubernetes αž‘αŸ αž–αŸ’αžšαŸ„αŸ‡ αž™αžΎαž„αž”αžΆαž“αž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸαž–αž½αž€αžœαžΆαž‡αžΆαž˜αž»αž“αžšαž½αž…αž αžΎαž™αžŠαŸ„αž™αž€αžΆαžšαžŸαŸ’αž‘αž„αŸ‹αž˜αžαž· K8s APIαŸ”
  • αž€αžΆαžšαžŸαŸ’αž€αŸαž“αž”αŸ’αžšαžœαžαŸ’αžαž· Git αž“αž·αž„αž€αžΆαžšαž˜αž·αž“αžšαžΆαž”αŸ‹αž”αž‰αŸ’αž…αžΌαž›αžšαžΌαž”αž—αžΆαž–αžŠαŸ„αž™αž•αŸ’αž’αŸ‚αž€αž›αžΎαž‚αŸ„αž›αž€αžΆαžšαžŽαŸαžŠαŸ‚αž›αž”αžΆαž“αž”αž‰αŸ’αž‡αžΆαž€αŸ‹αŸ”
  • αž€αžΆαžšαž›αž»αž”αžšαžΌαž”αž—αžΆαž–αžŠαŸ‚αž›αž“αŸ…αžŸαž›αŸ‹αŸ”

αžαŸ’αžšαž›αž”αŸ‹αž‘αŸ…αž€αžΆαžšαž”αŸ’αžšαŸ€αž”αž’αŸ€αž”αžšαž”αžŸαŸ‹αž™αžΎαž„ αž“αŸαŸ‡αž‡αžΆαž’αŸ’αžœαžΈαžŠαŸ‚αž›αž€αžΎαžαž‘αžΎαž„αž‡αžΆαž˜αž½αž™ werfαŸ–

αž”αž‰αŸ’αž αžΆαž“αŸƒαž€αžΆαžšαžŸαž˜αŸ’αž’αžΆαž "αž†αŸ’αž›αžΆαžαžœαŸƒ" αž“αŸƒαžšαžΌαž”αž—αžΆαž–αž€αž»αž„αžαžΊαž“αŸαžš αž“αž·αž„αžŠαŸ†αžŽαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αžšαž”αžŸαŸ‹αžœαžΆαž“αŸ…αž€αŸ’αž“αž»αž„ werf

αž‘αŸ„αŸ‡αž™αŸ‰αžΆαž„αžŽαžΆαž€αŸαžŠαŸ„αž™ αž‘αŸ„αŸ‡αž”αžΈαž‡αžΆαž’αŸ’αž“αž€αž˜αž·αž“αž”αŸ’αžšαžΎ werf αž€αŸαžŠαŸ„αž™ αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αžαžŸαŸ’αžšαžŠαŸ€αž„αž‚αŸ’αž“αžΆαž‘αŸ…αž“αžΉαž„αž€αžΆαžšαžŸαž˜αŸ’αž’αžΆαžαžšαžΌαž”αž—αžΆαž–αž€αž˜αŸ’αžšαž·αžαžαŸ’αž–αžŸαŸ‹ - αž“αŸ…αž€αŸ’αž“αž»αž„αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαž˜αž½αž™ αž¬αž˜αž½αž™αž•αŸ’αžŸαŸαž„αž‘αŸ€αž (αž™αŸ„αž„αž‘αŸ…αžαžΆαž˜αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αžαžŠαŸ‚αž›αž–αŸαž‰αž…αž·αžαŸ’αžαž…αŸ†αž–αŸ„αŸ‡αž€αžΆαžšαžŠαžΆαž€αŸ‹αžŸαŸ’αž›αžΆαž€αžšαžΌαž”αž—αžΆαž–) - αž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αž“αž»αžœαžαŸ’αžαž‘αŸ…αž”αŸ’αžšαž–αŸαž“αŸ’αž’/αž§αž”αž€αžšαžŽαŸαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž•αŸ’αžŸαŸαž„αž‘αŸ€αžαŸ” αžŠαžΎαž˜αŸ’αž”αžΈαž’αŸ’αžœαžΎαžŠαžΌαž…αž“αŸαŸ‡αžœαžΆαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαžΆαž“αŸ‹αž αžΎαž™αž€αŸ’αž“αž»αž„αž€αžΆαžšαž…αž„αž…αžΆαŸ†αž”αž‰αŸ’αž αžΆαžŠαŸ‚αž›αž€αžΎαžαž‘αžΎαž„αž αžΎαž™αžŸαŸ’αžœαŸ‚αž„αžšαž€αž±αž€αžΆαžŸαž‘αžΆαŸ†αž„αž“αŸ„αŸ‡αž“αŸ…αž€αŸ’αž“αž»αž„αž‡αž„αŸ‹αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αžŠαŸ‚αž›αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž’αŸ’αž“αž€αž”αž‰αŸ’αž…αžΌαž›αžŠαŸ†αžŽαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αžšαž”αžŸαŸ‹αž–αž½αž€αž‚αŸαž±αŸ’αž™αžšαž›αžΌαž“αžαžΆαž˜αžŠαŸ‚αž›αž’αžΆαž…αž’αŸ’αžœαžΎαž‘αŸ…αž”αžΆαž“αŸ” αž™αžΎαž„αžŸαž„αŸ’αžƒαžΉαž˜αžαžΆαž•αŸ’αž›αžΌαžœαžŠαŸ‚αž›αž™αžΎαž„αž”αžΆαž“αž’αŸ’αžœαžΎαžŠαŸ†αžŽαžΎαžšαž“αžΉαž„αž‡αž½αž™αž’αŸ’αž“αž€αž˜αžΎαž›αž€αžšαžŽαžΈαž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž–αŸαžαŸŒαž˜αžΆαž“αž›αž˜αŸ’αž’αž·αž αž“αž·αž„αž‚αŸ†αž“αž·αžαžαŸ’αž˜αžΈαŸ—αŸ”

αžŸαŸαž…αž€αŸ’αžαžΈαžŸαž“αŸ’αž“αž·αžŠαŸ’αž‹αžΆαž“

  • αž˜αž·αž“αž™αžΌαžšαž˜αž·αž“αž†αžΆαž”αŸ‹ αž€αŸ’αžšαž»αž˜αž—αžΆαž‚αž…αŸ’αžšαžΎαž“αž‡αž½αž”αž”αŸ’αžšαž‘αŸ‡αž”αž‰αŸ’αž αžΆαž“αŸƒαž€αžΆαžšαž›αžΎαžŸαž…αŸ†αžŽαž»αŸ‡αŸ”
  • αž“αŸ…αž–αŸαž›αžŸαŸ’αžœαŸ‚αž„αžšαž€αžŠαŸ†αžŽαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž‡αžΆαžŠαŸ†αž”αžΌαž„αž…αžΆαŸ†αž”αžΆαž…αŸ‹αžαŸ’αžšαžΌαžœαž€αŸ†αžŽαžαŸ‹αž›αž€αŸ’αžαžŽαŸˆαžœαž·αž“αž·αž…αŸ’αž†αŸαž™αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž—αžΆαž–αž–αžΆαž€αŸ‹αž–αŸαž“αŸ’αž’αž“αŸƒαžšαžΌαž”αž—αžΆαž–αŸ”
  • αž§αž”αž€αžšαžŽαŸαžŠαŸ‚αž›αž•αŸ’αžαž›αŸ‹αžŠαŸ„αž™αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αž…αž»αŸ‡αž”αž‰αŸ’αž‡αžΈαž€αž»αž„αžαžΊαž“αŸαžšαžŠαŸαž–αŸαž‰αž“αž·αž™αž˜αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž’αŸ’αž“αž€αžšαŸ€αž”αž…αŸ†αž€αžΆαžšαžŸαž˜αŸ’αž’αžΆαžαžŠαŸαžŸαžΆαž˜αž‰αŸ’αž‰αž”αŸ†αž•αž»αžαžŠαŸ‚αž›αž˜αž·αž“αž‚αž·αžαž–αžΈ "αž–αž·αž—αž–αžαžΆαž„αž€αŸ’αžšαŸ…"αŸ– αžšαžΌαž”αž—αžΆαž–αžŠαŸ‚αž›αž”αžΆαž“αž”αŸ’αžšαžΎαž“αŸ…αž€αŸ’αž“αž»αž„ Kubernetes αž“αž·αž„αž›αž€αŸ’αžαžŽαŸˆαž–αž·αžŸαŸαžŸαž“αŸƒαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αžΆαžšαž„αžΆαžšαžšαž”αžŸαŸ‹αž€αŸ’αžšαž»αž˜αŸ”
  • αž€αŸ’αž”αž½αž“αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αžŠαŸ‚αž›αž’αžΆαž…αž”αžαŸ‹αž”αŸ‚αž“αž”αžΆαž“ αž“αž·αž„αž˜αžΆαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αžαŸ’αžšαžΌαžœαžαŸ‚αž˜αžΆαž“αž€αžΆαžšαž™αž›αŸ‹αžŠαžΉαž„αž’αŸ†αž–αžΈαžŠαŸ†αžŽαžΎαžšαž€αžΆαžš CI/CD αž“αž·αž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž˜αž·αž“αžαŸ’αžšαžΉαž˜αžαŸ‚αž‡αžΆαž˜αž½αž™αž‘αž·αž“αŸ’αž“αž“αŸαž™αžšαžΌαž”αž—αžΆαž– Docker αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αž‘αŸαŸ”

PS

αžŸαžΌαž˜αž’αžΆαž“αž•αž„αžŠαŸ‚αžšαž“αŸ…αž›αžΎαž”αŸ’αž›αž€αŸ‹αžšαž”αžŸαŸ‹αž™αžΎαž„αŸ–

αž”αŸ’αžšαž—αž–: www.habr.com

αž”αž“αŸ’αžαŸ‚αž˜αž˜αžαž·αž™αŸ„αž”αž›αŸ‹