αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαžšαž”αžŸαŸ‹αž™αžΎαž„αž“αŸƒαž€αžΆαžšαžŠαžΆαž€αŸ‹αž–αž„αŸ’αžšαžΆαž™αž‡αžΆαž”αž“αŸ’αžαž”αž“αŸ’αž‘αžΆαž”αŸ‹αž“αŸ…αž›αžΎαžœαŸαž‘αž·αž€αžΆαžšαž”αžŸαŸ‹αž’αžαž·αžαž·αž‡αž“

αž™αžΎαž„αž“αŸ… True Engineering αž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž˜αž½αž™αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž…αŸ‚αž€αž…αžΆαž™αž–αŸαžαŸŒαž˜αžΆαž“αžαŸ’αž˜αžΈαŸ—αž‡αžΆαž”αž“αŸ’αžαž”αž“αŸ’αž‘αžΆαž”αŸ‹αž‘αŸ…αž€αžΆαž“αŸ‹αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαžšαž”αžŸαŸ‹αž’αžαž·αžαž·αž‡αž“ αž αžΎαž™αž…αž„αŸ‹αž…αŸ‚αž€αžšαŸ†αž›αŸ‚αž€αž”αž‘αž–αž·αžŸαŸ„αž’αž“αŸαž“αŸαŸ‡αŸ”

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

αž“αŸ…αž€αŸ’αž“αž»αž„αž’αžαŸ’αžαž”αž‘αž“αŸαŸ‡ αž™αžΎαž„αž“αžΉαž„αž“αž·αž™αžΆαž™αž’αŸ†αž–αžΈαžŠαŸ†αžŽαžΆαž€αŸ‹αž€αžΆαž›αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž“αŸƒαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŠαžΆαž€αŸ‹αž–αž„αŸ’αžšαžΆαž™αž”αž“αŸ’αž (ស៊ីឌី) αž¬αž€αžΆαžšαž…αŸ‚αž€αž…αžΆαž™αž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“αž—αžΆαž–αž‘αŸ…αž€αžΆαž“αŸ‹αžœαŸαž‘αž·αž€αžΆαžšαž”αžŸαŸ‹αž’αžαž·αžαž·αž‡αž“αŸ–

  1. αžαžΎαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž“αŸαŸ‡αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αžŠαŸ„αž™αžšαž”αŸ€αž”αžŽαžΆ?
  2. αž€αžΆαžšαž’αŸ’αžœαžΎαžŸαž˜αž€αžΆαž›αž€αž˜αŸ’αž˜αž‡αžΆαž˜αž½αž™αžƒαŸ’αž›αžΆαŸ†αž„ Git αžšαž”αžŸαŸ‹αž’αžαž·αžαž·αž‡αž“,
  3. αž€αžΆαžšαž‡αž½αž”αž”αŸ’αžšαž‡αž»αŸ†αž‚αŸ’αž“αžΆαž“αŸƒαž•αŸ’αž“αŸ‚αž€αžαžΆαž„αž€αŸ’αžšαŸ„αž™αž“αž·αž„αž•αŸ’αž“αŸ‚αž€αžαžΆαž„αž˜αž»αž,
  4. αž€αžΆαžšαžŠαžΆαž€αŸ‹αž–αž„αŸ’αžšαžΆαž™αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžŠαŸ„αž™αžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž·αž“αŸ…αž€αŸ’αž“αž»αž„αž”αžšαž·αž™αžΆαž€αžΆαžŸαžŸαžΆαž€αž›αŸ’αž”αž„,
  5. αž€αžΆαžšαžŠαžΆαž€αŸ‹αž–αž„αŸ’αžšαžΆαž™αžŠαŸ„αž™αžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž·αž‘αŸ… Prod αŸ”

αž™αžΎαž„αž“αžΉαž„αž…αŸ‚αž€αžšαŸ†αž›αŸ‚αž€αž–αŸαžαŸŒαž˜αžΆαž“αž›αž˜αŸ’αž’αž·αžαž’αŸ†αž–αžΈαž€αžΆαžšαžŠαŸ†αž‘αžΎαž„αž“αŸ…αžαžΆαž˜αž•αŸ’αž›αžΌαžœαŸ”

αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαžšαž”αžŸαŸ‹αž™αžΎαž„αž“αŸƒαž€αžΆαžšαžŠαžΆαž€αŸ‹αž–αž„αŸ’αžšαžΆαž™αž‡αžΆαž”αž“αŸ’αžαž”αž“αŸ’αž‘αžΆαž”αŸ‹αž“αŸ…αž›αžΎαžœαŸαž‘αž·αž€αžΆαžšαž”αžŸαŸ‹αž’αžαž·αžαž·αž‡αž“

1. αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αžŸαŸŠαžΈαžŒαžΈ

αž€αžΆαžšαžŠαžΆαž€αŸ‹αž±αŸ’αž™αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž‡αžΆαž”αž“αŸ’αžαž”αž“αŸ’αž‘αžΆαž”αŸ‹αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αžŠαŸ„αž™αž’αŸ’αž“αž€αž’αž—αž·αžœαžŒαŸ’αžαž“αŸαž‡αŸ†αžšαž»αž‰αž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž‘αŸ…αž€αžΆαž“αŸ‹αžŸαžΆαžαžΆαž…αŸαž‰αž•αŸ’αžŸαžΆαž™αž“αŸƒαžƒαŸ’αž›αžΆαŸ†αž„ Git αžšαž”αžŸαŸ‹αž™αžΎαž„αŸ”

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

αž™αžΎαž„αžšαŸ€αž”αž…αŸ†αž€αžΆαžšαž„αžΆαžšαžαžΆαž˜αžšαž™αŸˆαžƒαŸ’αž›αžΆαŸ†αž„αž˜αž½αž™αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž αŸαžαž»αž•αž›αž‡αžΆαž…αŸ’αžšαžΎαž“αŸ–

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

2. αž€αžΆαžšαž’αŸ’αžœαžΎαžŸαž˜αž€αžΆαž›αž€αž˜αŸ’αž˜αž‡αžΆαž˜αž½αž™αžƒαŸ’αž›αžΆαŸ†αž„ Git αž“αŸƒαž€αžΌαžŠαž”αŸ’αžšαž—αž–αžšαž”αžŸαŸ‹αž’αžαž·αžαž·αž‡αž“

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

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

αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαžšαž”αžŸαŸ‹αž™αžΎαž„αž“αŸƒαž€αžΆαžšαžŠαžΆαž€αŸ‹αž–αž„αŸ’αžšαžΆαž™αž‡αžΆαž”αž“αŸ’αžαž”αž“αŸ’αž‘αžΆαž”αŸ‹αž“αŸ…αž›αžΎαžœαŸαž‘αž·αž€αžΆαžšαž”αžŸαŸ‹αž’αžαž·αžαž·αž‡αž“

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

3. αž€αžΆαžšαž”αŸ’αžšαž˜αžΌαž›αž•αŸ’αžαž»αŸ†αž•αŸ’αž“αŸ‚αž€αžαžΆαž„αž€αŸ’αžšαŸ„αž™ αž“αž·αž„αž•αŸ’αž“αŸ‚αž€αžαžΆαž„αž˜αž»αž

αž€αžΆαžšαž€αžŸαžΆαž„ backend αž“αž·αž„ frontend αž‚αžΊαž‡αžΆαž€αž·αž…αŸ’αž…αž€αžΆαžšαžŸαŸ’αžšαž”αž‚αŸ’αž“αžΆαž–αžΈαžšαžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αž“αž»αžœαžαŸ’αžαž“αŸ…αž€αŸ’αž“αž»αž„αž”αŸ’αžšαž–αŸαž“αŸ’αž’ GitLab Runner αŸ” αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αžŠαžΎαž˜αžšαž”αžŸαŸ‹αžœαžΆαž˜αžΆαž“αž‘αžΈαžαžΆαŸ†αž„αž“αŸ…αž€αŸ’αž“αž»αž„αžƒαŸ’αž›αžΆαŸ†αž„αžαŸ‚αž˜αž½αž™αŸ”

αž€αžΆαžšαž”αž„αŸ’αžšαŸ€αž“αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαžŸαžšαžŸαŸαžšαž’αž€αŸ’αžŸαžš YAML αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαžŸαžΆαž„αžŸαž„αŸ‹αž“αŸ…αž€αŸ’αž“αž»αž„ GitLab.

GitLab Runner αž™αž€αž€αžΌαžŠαž–αžΈαžƒαŸ’αž›αžΆαŸ†αž„αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž€αžΆαžš αž”αŸ’αžšαž˜αžΌαž›αž•αŸ’αžαž»αŸ†αžœαžΆαž‡αžΆαž˜αž½αž™αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαž”αž„αŸ’αž€αžΎαžαž€αž˜αŸ’αž˜αžœαž·αž’αžΈ Java αž αžΎαž™αž•αŸ’αž‰αžΎαžœαžΆαž‘αŸ… Docker registry αŸ” αž“αŸ…αž‘αžΈαž“αŸαŸ‡αž™αžΎαž„αž”αŸ’αžšαž˜αžΌαž›αž•αŸ’αžαž»αŸ†αž•αŸ’αž“αŸ‚αž€αžαžΆαž„αž€αŸ’αžšαŸ„αž™ αž“αž·αž„αž•αŸ’αž“αŸ‚αž€αžαžΆαž„αž˜αž»αž αž‘αž‘αž½αž›αž”αžΆαž“αžšαžΌαž”αž—αžΆαž– Docker αžŠαŸ‚αž›αž™αžΎαž„αžŠαžΆαž€αŸ‹αž€αŸ’αž“αž»αž„αžƒαŸ’αž›αžΆαŸ†αž„αž“αŸ…αžαžΆαž„αž’αžαž·αžαž·αž‡αž“αŸ” αžŠαžΎαž˜αŸ’αž”αžΈαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αžšαžΌαž”αž—αžΆαž– Docker αž™αžΎαž„αž”αŸ’αžšαžΎ αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‡αŸ†αž“αž½αž™ Gradle.

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

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

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

αž™αžΎαž„αž‘αž‘αž½αž›αž”αžΆαž“αž€αŸ†αžŽαŸ‚αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž–αžΈαž›αž‘αŸ’αž’αž•αž›αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆ
git describe --tags --abbrev=7.

4. αž€αžΆαžšαžŠαžΆαž€αŸ‹αž–αž„αŸ’αžšαžΆαž™αžŠαŸ„αž™αžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž·αž“αžΌαžœαž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž…αŸ†αž–αŸ„αŸ‡αž”αžšαž·αž™αžΆαž€αžΆαžŸαžŸαžΆαž€αž›αŸ’αž”αž„ (UAT)

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

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

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

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

5. αž€αžΆαžšαžŠαžΆαž€αŸ‹αž–αž„αŸ’αžšαžΆαž™αžŠαŸ„αž™αžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž·αž“αŸƒαž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž‘αŸ… Prod

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

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

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

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

αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž”αŸ’αžšαžΎαž’αžαŸαžšαž”αžšαž·αžŸαŸ’αžαžΆαž“αŸ” αžαž˜αŸ’αž›αŸƒβ€‹αžšαž”αžŸαŸ‹β€‹αžœαžΆβ€‹αžαŸ’αžšαžΌαžœβ€‹αž”αžΆαž“β€‹αž€αŸ†αžŽαžαŸ‹β€‹αž€αŸ’αž“αž»αž„β€‹αž€αž»αž„αžαžΊαž“αŸαžšβ€‹αžŠαŸ„αž™β€‹αž”αŸ’αžšαžΎ K8S configmap αžŠαŸ‚αž›β€‹αžαŸ’αžšαžΌαžœβ€‹αž”αžΆαž“β€‹αž”αž„αŸ’αž€αžΎαžβ€‹αžŠαŸ„αž™β€‹αž”αŸ’αžšαžΎβ€‹αž‚αŸ†αžšαžΌ Go αŸ” αž‡αžΆαž§αž‘αžΆαž αžšαžŽαŸ αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αž’αžαŸαžšαž”αžšαž·αžŸαŸ’αžαžΆαž“αž‘αŸ…αž“αžΉαž„αžˆαŸ’αž˜αŸ„αŸ‡αžŠαŸ‚αž“αž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αŸ’αžœαžΎαžŠαžΌαž…αž“αŸαŸ‡αŸ–

APP_EXTERNAL_DOMAIN: {{ (pluck .Values.global.env .Values.app.properties.app_external_domain | first) }}

.Values.global.env - αž’αžαŸαžšαž“αŸαŸ‡αžšαž€αŸ’αžŸαžΆαž‘αž»αž€αžˆαŸ’αž˜αŸ„αŸ‡αž”αžšαž·αžŸαŸ’αžαžΆαž“ (αž•αž›αž·αžαž•αž›, αžŠαŸ†αžŽαžΆαž€αŸ‹αž€αžΆαž›, UAT) αŸ”
.Values.app.properties.app_external_domain – αž“αŸ…αž€αŸ’αž“αž»αž„αž’αžαŸαžšαž“αŸαŸ‡ αž™αžΎαž„αž€αŸ†αžŽαžαŸ‹αžŠαŸ‚αž“αžŠαŸ‚αž›αž…αž„αŸ‹αž”αžΆαž“αž“αŸ…αž€αŸ’αž“αž»αž„αž―αž€αžŸαžΆαžš .Values.yaml

αž“αŸ…αž–αŸαž›αž’αžΆαž”αŸ‹αžŠαŸαžαž€αž˜αŸ’αž˜αžœαž·αž’αžΈ Helm αž”αž„αŸ’αž€αžΎαžαž―αž€αžŸαžΆαžš configmap.yaml αž–αžΈαž‚αŸ†αžšαžΌ αž αžΎαž™αž”αŸ†αž–αŸαž‰αžαž˜αŸ’αž›αŸƒ APP_EXTERNAL_DOMAIN αž‡αžΆαž˜αž½αž™αž“αžΉαž„αžαž˜αŸ’αž›αŸƒαžŠαŸ‚αž›αž…αž„αŸ‹αž”αžΆαž“ αž’αžΆαžŸαŸ’αžšαŸαž™αž›αžΎαž”αžšαž·αž™αžΆαž€αžΆαžŸαžŠαŸ‚αž›αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž’αžΆαž”αŸ‹αžŠαŸαžαŸ” αž’αžαŸαžšαž“αŸαŸ‡αžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αŸ†αžŽαžαŸ‹αžšαž½αž…αž αžΎαž™αž“αŸ…αž€αŸ’αž“αž»αž„αž€αž»αž„αžαžΊαž“αŸαžšαŸ” αžœαžΆαž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž…αžΌαž›αž”αŸ’αžšαžΎαž–αžΈαž€αž˜αŸ’αž˜αžœαž·αž’αžΈ αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž”αžšαž·αžŸαŸ’αžαžΆαž“αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž“αžΈαž˜αž½αž™αŸ—αž“αžΉαž„αž˜αžΆαž“αžαž˜αŸ’αž›αŸƒαžαž»αžŸαž‚αŸ’αž“αžΆαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αžαŸαžšαž“αŸαŸ‡αŸ”

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

αžŸαžšαž»αž”

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

αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαžšαž”αžŸαŸ‹αž™αžΎαž„αž“αŸƒαž€αžΆαžšαžŠαžΆαž€αŸ‹αž–αž„αŸ’αžšαžΆαž™αž‡αžΆαž”αž“αŸ’αžαž”αž“αŸ’αž‘αžΆαž”αŸ‹αž“αŸ…αž›αžΎαžœαŸαž‘αž·αž€αžΆαžšαž”αžŸαŸ‹αž’αžαž·αžαž·αž‡αž“

αž•αŸ‚αž“αž€αžΆαžšαž’αž“αžΆαž‚αžαŸ– αž€αžΆαžšαž•αŸ’αž‘αŸαžšαž‘αž·αž“αŸ’αž“αž“αŸαž™αžŠαŸ„αž™αžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž·

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

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

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

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

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

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