Π’Π°Π³Π²Π°Π½Π΅, Π±Π°Π·ΠΈΡ€Π°Π½ΠΎ Π½Π° ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅ Π² werf builder: Π·Π°Ρ‰ΠΎ ΠΈ ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚ΠΈ?

Π’Π°Π³Π²Π°Π½Π΅, Π±Π°Π·ΠΈΡ€Π°Π½ΠΎ Π½Π° ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅ Π² werf builder: Π·Π°Ρ‰ΠΎ ΠΈ ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚ΠΈ?

werf Π΅ Π½Π°ΡˆΠ°Ρ‚Π° ΠΏΠΎΠΌΠΎΡ‰Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ° GitOps CLI с ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ ΠΊΠΎΠ΄ Π·Π° ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅ ΠΈ доставянС Π½Π° прилоТСния Π΄ΠΎ Kubernetes. IN вСрсия v1.1 бСшС въвСдСна Π½ΠΎΠ²Π° функция Π² ΠΊΠΎΠ»Π΅ΠΊΡ‚ΠΎΡ€Π° Π½Π° изобраТСния: ΠΌΠ°Ρ€ΠΊΠΈΡ€Π°Π½Π΅ Π½Π° изобраТСния ΠΏΠΎ ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΠΌΠ°Ρ€ΠΊΠΈΡ€Π°Π½Π΅, Π±Π°Π·ΠΈΡ€Π°Π½ΠΎ Π½Π° ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅. ДосСга Ρ‚ΠΈΠΏΠΈΡ‡Π½Π°Ρ‚Π° схСма Π·Π° ΠΌΠ°Ρ€ΠΊΠΈΡ€Π°Π½Π΅ Π² werf Π²ΠΊΠ»ΡŽΡ‡Π²Π°ΡˆΠ΅ ΠΌΠ°Ρ€ΠΊΠΈΡ€Π°Π½Π΅ Π½Π° Docker изобраТСния Ρ‡Ρ€Π΅Π· Git tag, Git ΠΊΠ»ΠΎΠ½ ΠΈΠ»ΠΈ Git commit. Но всички Ρ‚Π΅Π·ΠΈ схСми ΠΈΠΌΠ°Ρ‚ Π½Π΅Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ†ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ са напълно Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈ ΠΎΡ‚ Π½ΠΎΠ²Π°Ρ‚Π° стратСгия Π·Π° ΠΌΠ°Ρ€ΠΊΠΈΡ€Π°Π½Π΅. ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΡΡ‚ΠΈ Π·Π° Π½Π΅Π³ΠΎ ΠΈ Π·Π°Ρ‰ΠΎ Π΅ Ρ‚ΠΎΠ»ΠΊΠΎΠ²Π° Π΄ΠΎΠ±ΡŠΡ€ са ΠΏΠΎΠ΄ ΠΈΠ·Ρ€Π΅Π·ΠΊΠ°Ρ‚Π°.

Π Π°Π·Π³Ρ€ΡŠΡ‰Π°Π½Π΅ Π½Π° Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ микроуслуги ΠΎΡ‚ Π΅Π΄Π½ΠΎ Git Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅

ЧСсто възниква ситуация, ΠΊΠΎΠ³Π°Ρ‚ΠΎ Π΅Π΄Π½ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΅ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΎ Π½Π° ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ²Π΅Ρ‡Π΅ ΠΈΠ»ΠΈ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ нСзависими услуги. Π˜Π·Π΄Π°Π½ΠΈΡΡ‚Π° Π½Π° Ρ‚Π΅Π·ΠΈ услуги ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π°Ρ‚ нСзависимо: Π΅Π΄Π½Π° ΠΈΠ»ΠΈ ΠΏΠΎΠ²Π΅Ρ‡Π΅ услуги ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ пуснати навСднъТ, Π΄ΠΎΠΊΠ°Ρ‚ΠΎ останалитС трябва Π΄Π° ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠ°Ρ‚ Π΄Π° работят Π±Π΅Π· Π½ΠΈΠΊΠ°ΠΊΠ²ΠΈ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ. Но ΠΎΡ‚ Π³Π»Π΅Π΄Π½Π° Ρ‚ΠΎΡ‡ΠΊΠ° Π½Π° ΡΡŠΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠ΄ ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ Π΅ ΠΏΠΎ-ΡƒΠ΄ΠΎΠ±Π½ΠΎ Π΄Π° сС ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°Ρ‚ Ρ‚Π°ΠΊΠΈΠ²Π° услуги Π·Π° прилоТСния Π² Π΅Π΄Π½ΠΎ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅.

Има ситуации, ΠΊΠΎΠ³Π°Ρ‚ΠΎ услугитС са наистина нСзависими ΠΈ Π½Π΅ са ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈ с Π΅Π΄Π½ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π’ Ρ‚ΠΎΠ·ΠΈ случай Ρ‚Π΅ Ρ‰Π΅ Π±ΡŠΠ΄Π°Ρ‚ Ρ€Π°Π·ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈ Π² ΠΎΡ‚Π΄Π΅Π»Π½ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ ΠΈ освобоТдаванСто ΠΈΠΌ Ρ‰Π΅ сС ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π° Ρ‡Ρ€Π΅Π· ΠΎΡ‚Π΄Π΅Π»Π½ΠΈ CI/CD процСси във всСки ΠΎΡ‚ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ‚Π΅.

Π’ дСйствитСлност ΠΎΠ±Π°Ρ‡Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅ чСсто раздСлят Π΅Π΄Π½ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° няколко микроуслуги, Π½ΠΎ ΡΡŠΠ·Π΄Π°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΎΡ‚Π΄Π΅Π»Π½ΠΎ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π·Π° всяка... Π΅ явно прСкаляванС. ИмСнно Ρ‚Π°Π·ΠΈ ситуация Ρ‰Π΅ бъдС обсъдСна ΠΏΠΎ-Π½Π°Ρ‚Π°Ρ‚ΡŠΠΊ: няколко Ρ‚Π°ΠΊΠΈΠ²Π° микроуслуги сС Π½Π°ΠΌΠΈΡ€Π°Ρ‚ Π² Π΅Π΄Π½ΠΎ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈ изданията сС ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π°Ρ‚ Ρ‡Ρ€Π΅Π· Π΅Π΄ΠΈΠ½ процСс Π² CI/CD.

ΠœΠ°Ρ€ΠΊΠΈΡ€Π°Π½Π΅ Ρ‡Ρ€Π΅Π· Git ΠΊΠ»ΠΎΠ½ ΠΈ Git Ρ‚Π°Π³

Π”Π° ΠΊΠ°ΠΆΠ΅ΠΌ, Ρ‡Π΅ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π½Π°ΠΉ-чСсто срСщаната стратСгия Π·Π° ΠΌΠ°Ρ€ΠΊΠΈΡ€Π°Π½Π΅ - Π΅Ρ‚ΠΈΠΊΠ΅Ρ‚ ΠΈΠ»ΠΈ ΠΊΠ»ΠΎΠ½. Π—Π° Git ΠΊΠ»ΠΎΠ½ΠΎΠ²Π΅, изобраТСнията са ΠΌΠ°Ρ€ΠΊΠΈΡ€Π°Π½ΠΈ с ΠΈΠΌΠ΅Ρ‚ΠΎ Π½Π° ΠΊΠ»ΠΎΠ½Π°, Π·Π° Π΅Π΄ΠΈΠ½ ΠΊΠ»ΠΎΠ½ Π² Π΄Π°Π΄Π΅Π½ ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΈΠΌΠ° само Π΅Π΄Π½ΠΎ ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π°Π½ΠΎ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ с ΠΈΠΌΠ΅Ρ‚ΠΎ Π½Π° Ρ‚ΠΎΠ·ΠΈ ΠΊΠ»ΠΎΠ½. Π—Π° Ρ‚Π°Π³ΠΎΠ²Π΅ Git изобраТСнията сС ΠΌΠ°Ρ€ΠΊΠΈΡ€Π°Ρ‚ спорСд ΠΈΠΌΠ΅Ρ‚ΠΎ Π½Π° Π΅Ρ‚ΠΈΠΊΠ΅Ρ‚Π°.

ΠšΠΎΠ³Π°Ρ‚ΠΎ сС създадС Π½ΠΎΠ² Git Ρ‚Π°Π³ – Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠΎΠ³Π°Ρ‚ΠΎ сС пуснС Π½ΠΎΠ²Π° вСрсия – Ρ‰Π΅ бъдС създадСн Π½ΠΎΠ² Docker Ρ‚Π°Π³ Π·Π° всички изобраТСния Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π² Ρ€Π΅Π³ΠΈΡΡ‚ΡŠΡ€Π° Π½Π° Docker:

  • myregistry.org/myproject/frontend:v1.1.10
  • myregistry.org/myproject/myservice1:v1.1.10
  • myregistry.org/myproject/myservice2:v1.1.10
  • myregistry.org/myproject/myservice3:v1.1.10
  • myregistry.org/myproject/myservice4:v1.1.10
  • myregistry.org/myproject/myservice5:v1.1.10
  • myregistry.org/myproject/database:v1.1.10

Π’Π΅Π·ΠΈ Π½ΠΎΠ²ΠΈ ΠΈΠΌΠ΅Π½Π° Π½Π° изобраТСния сС ΠΏΡ€Π΅Π΄Π°Π²Π°Ρ‚ ΠΏΡ€Π΅Π· Helm шаблони към конфигурацията Π½Π° Kubernetes. ΠŸΡ€ΠΈ стартиранС Π½Π° Ρ€Π°Π·Π³Ρ€ΡŠΡ‰Π°Π½Π΅Ρ‚ΠΎ с ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° werf deploy ΠΏΠΎΠ»Π΅Ρ‚ΠΎ сС Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€Π° image Π² манифСсти Π½Π° рСсурс Π½Π° Kubernetes ΠΈ рСстартиранС Π½Π° ΡΡŠΠΎΡ‚Π²Π΅Ρ‚Π½ΠΈΡ‚Π΅ рСсурси ΠΏΠΎΡ€Π°Π΄ΠΈ ΠΏΡ€ΠΎΠΌΠ΅Π½Π΅Π½ΠΎΡ‚ΠΎ ΠΈΠΌΠ΅ Π½Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ.

ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ: Π² случай, Ρ‡Π΅ Π²ΡΡŠΡ‰Π½ΠΎΡΡ‚ ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π΅ сС Π΅ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΠ»ΠΎ ΠΎΡ‚ ΠΏΡ€Π΅Π΄ΠΈΡˆΠ½ΠΎΡ‚ΠΎ внСдряванС (Git Ρ‚Π°Π³), Π° само нСговия Docker Ρ‚Π°Π³, Ρ‚ΠΎΠ²Π° сС случва Скстра рСстартиранС Π½Π° Ρ‚ΠΎΠ²Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ ΡΡŠΠΎΡ‚Π²Π΅Ρ‚Π½ΠΎ Π΅ възмоТСн извСстСн прСстой. Π’ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‡Π΅ нямашС Ρ€Π΅Π°Π»Π½Π° ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π° Π΄Π° сС ΠΈΠ·Π²ΡŠΡ€ΡˆΠΈ Ρ‚ΠΎΠ²Π° рСстартиранС.

Π’ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ Π½Π° Ρ‚ΠΎΠ²Π° с настоящата схСма Π·Π° ΠΌΠ°Ρ€ΠΊΠΈΡ€Π°Π½Π΅ Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° сС оградят няколко ΠΎΡ‚Π΄Π΅Π»Π½ΠΈ Git Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° ΠΈ възниква ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡŠΡ‚ с ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π° внСдряванСто Π½Π° Ρ‚Π΅Π·ΠΈ няколко Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π°. ΠšΠ°Ρ‚ΠΎ цяло ΠΏΠΎΠ΄ΠΎΠ±Π½Π° схСма сС ΠΎΠΊΠ°Π·Π²Π° ΠΏΡ€Π΅Ρ‚ΠΎΠ²Π°Ρ€Π΅Π½Π° ΠΈ слоТна. По-Π΄ΠΎΠ±Ρ€Π΅ Π΅ Π΄Π° ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€Π°Ρ‚Π΅ ΠΌΠ½ΠΎΠ³ΠΎ услуги Π² Π΅Π΄Π½ΠΎ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ ΠΈ Π΄Π° ΡΡŠΠ·Π΄Π°Π΄Π΅Ρ‚Π΅ Docker Ρ‚Π°Π³ΠΎΠ²Π΅, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ Π΄Π° няма Π½Π΅Π½ΡƒΠΆΠ½ΠΈ рСстартирания.

ΠœΠ°Ρ€ΠΊΠΈΡ€Π°Π½Π΅ Ρ‡Ρ€Π΅Π· Git commit

werf ΡΡŠΡ‰ΠΎ ΠΈΠΌΠ° стратСгия Π·Π° ΠΌΠ°Ρ€ΠΊΠΈΡ€Π°Π½Π΅, ΡΠ²ΡŠΡ€Π·Π°Π½Π° с Git Π°Π½Π³Π°ΠΆΠΈΠΌΠ΅Π½Ρ‚ΠΈ.

Git-commit Π΅ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Π·Π° ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° Git Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ ΠΈ зависи ΠΎΡ‚ хронологията Π½Π° Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ Π² Git Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅Ρ‚ΠΎ, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° ΠΌΠ°Ρ€ΠΊΠΈΡ€Π°Π½Π΅ Π½Π° изобраТСния Π² Ρ€Π΅Π³ΠΈΡΡ‚ΡŠΡ€Π° Π½Π° Docker.

Π’ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‚ΠΎΠ²Π°, ΠΌΠ°Ρ€ΠΊΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Ρ‡Ρ€Π΅Π· Git commit ΠΈΠΌΠ° ΡΡŠΡ‰ΠΈΡ‚Π΅ Π½Π΅Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ†ΠΈ ΠΊΠ°Ρ‚ΠΎ ΠΌΠ°Ρ€ΠΊΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Ρ‡Ρ€Π΅Π· Git ΠΊΠ»ΠΎΠ½ΠΎΠ²Π΅ ΠΈΠ»ΠΈ Git Ρ‚Π°Π³ΠΎΠ²Π΅:

  • МоТС Π΄Π° сС създадС ΠΏΡ€Π°Π·Π΅Π½ ΠΊΠΎΠΌΠΈΡ‚, ΠΊΠΎΠΉΡ‚ΠΎ Π½Π΅ промСня Π½ΠΈΠΊΠ°ΠΊΠ²ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅, Π½ΠΎ Docker Ρ‚Π°Π³ΡŠΡ‚ Π½Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ Ρ‰Π΅ бъдС ΠΏΡ€ΠΎΠΌΠ΅Π½Π΅Π½.
  • МоТС Π΄Π° сС създадС Π°Π½Π³Π°ΠΆΠΈΠΌΠ΅Π½Ρ‚ Π·Π° сливанС, ΠΊΠΎΠΉΡ‚ΠΎ Π½Π΅ промСня Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅Ρ‚Π΅, Π½ΠΎ Docker Ρ‚Π°Π³ΡŠΡ‚ Π½Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ Ρ‰Π΅ бъдС ΠΏΡ€ΠΎΠΌΠ΅Π½Π΅Π½.
  • МоТС Π΄Π° сС Π½Π°ΠΏΡ€Π°Π²ΠΈ Π°Π½Π³Π°ΠΆΠΈΠΌΠ΅Π½Ρ‚, ΠΊΠΎΠΉΡ‚ΠΎ промСня ΠΎΠ½Π΅Π·ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ Π² Git, ΠΊΠΎΠΈΡ‚ΠΎ Π½Π΅ са ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€Π°Π½ΠΈ Π² ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ, ΠΈ ΠΌΠ°Ρ€ΠΊΠ΅Ρ€ΡŠΡ‚ Docker Π½Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ Ρ‰Π΅ бъдС ΠΏΡ€ΠΎΠΌΠ΅Π½Π΅Π½ ΠΎΡ‚Π½ΠΎΠ²ΠΎ.

ΠœΠ°Ρ€ΠΊΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΈΠΌΠ΅ Π½Π° ΠΊΠ»ΠΎΠ½ Π½Π° Git Π½Π΅ отразява вСрсията Π½Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ

Има Π΄Ρ€ΡƒΠ³ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, ΡΠ²ΡŠΡ€Π·Π°Π½ със стратСгията Π·Π° ΠΌΠ°Ρ€ΠΊΠΈΡ€Π°Π½Π΅ Π·Π° Git ΠΊΠ»ΠΎΠ½ΠΎΠ²Π΅.

ΠœΠ°Ρ€ΠΊΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ ΠΏΠΎ ΠΈΠΌΠ΅ Π½Π° ΠΊΠ»ΠΎΠ½ Ρ€Π°Π±ΠΎΡ‚ΠΈ, Π΄ΠΎΠΊΠ°Ρ‚ΠΎ Π°Π½Π³Π°ΠΆΠΈΠΌΠ΅Π½Ρ‚ΠΈΡ‚Π΅ Π½Π° Ρ‚ΠΎΠ·ΠΈ ΠΊΠ»ΠΎΠ½ сС ΡΡŠΠ±ΠΈΡ€Π°Ρ‚ послСдоватСлно Π² Ρ…Ρ€ΠΎΠ½ΠΎΠ»ΠΎΠ³ΠΈΡ‡Π΅Π½ Ρ€Π΅Π΄.

Ако Π² Ρ‚Π΅ΠΊΡƒΡ‰Π°Ρ‚Π° схСма потрСбитСлят Π·Π°ΠΏΠΎΡ‡Π½Π΅ Π΄Π° ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π° ΠΎΡ‚Π½ΠΎΠ²ΠΎ стар ΠΊΠΎΠΌΠΈΡ‚, ΡΠ²ΡŠΡ€Π·Π°Π½ с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ ΠΊΠ»ΠΎΠ½, Ρ‚ΠΎΠ³Π°Π²Π° werf Ρ‰Π΅ ΠΏΡ€Π΅Π½Π°ΠΏΠΈΡˆΠ΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ ΡΡŠΠΎΡ‚Π²Π΅Ρ‚Π½ΠΈΡ Docker Ρ‚Π°Π³ с Π½ΠΎΠ²ΠΎΠΈΠ·Π³Ρ€Π°Π΄Π΅Π½Π° вСрсия Π½Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ Π·Π° стария ΠΊΠΎΠΌΠΈΡ‚. ВнСдряванията, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‰ΠΈ Ρ‚ΠΎΠ·ΠΈ ΠΌΠ°Ρ€ΠΊΠ΅Ρ€ ΠΎΡ‚ сСга Π½Π°Ρ‚Π°Ρ‚ΡŠΠΊ, рискуват Π΄Π° изтСглят Ρ€Π°Π·Π»ΠΈΡ‡Π½Π° вСрсия Π½Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ ΠΏΡ€ΠΈ рСстартиранС Π½Π° pods, Π² Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ Π½Π° ΠΊΠΎΠ΅Ρ‚ΠΎ Π½Π°ΡˆΠ΅Ρ‚ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ‰Π΅ Π·Π°Π³ΡƒΠ±ΠΈ Π²Ρ€ΡŠΠ·ΠΊΠ° с CI систСмата ΠΈ Ρ‰Π΅ сС дСсинхронизира.

Π’ допълнСниС, с послСдоватСлни натискания Π² Π΅Π΄ΠΈΠ½ ΠΊΠ»ΠΎΠ½ с ΠΊΡ€Π°Ρ‚ΡŠΠΊ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ ΠΎΡ‚ Π²Ρ€Π΅ΠΌΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ тях, старият ΠΊΠΎΠΌΠΈΡ‚ ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π°Π½ ΠΏΠΎ-късно ΠΎΡ‚ ΠΏΠΎ-новия: старата вСрсия Π½Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ Ρ‰Π΅ ΠΏΡ€Π΅Π·Π°ΠΏΠΈΡˆΠ΅ Π½ΠΎΠ²Π°Ρ‚Π° с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° ΠΌΠ°Ρ€ΠΊΠ΅Ρ€Π° Π·Π° ΠΊΠ»ΠΎΠ½ Git. Π’Π°ΠΊΠΈΠ²Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ Ρ€Π΅ΡˆΠ΅Π½ΠΈ Ρ‡Ρ€Π΅Π· CI/CD систСма (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π² GitLab CI Ρ‚Ρ€ΡŠΠ±ΠΎΠΏΡ€ΠΎΠ²ΠΎΠ΄ΡŠΡ‚ Π½Π° послСдната сС стартира Π·Π° ΠΏΠΎΡ€Π΅Π΄ΠΈΡ†Π° ΠΎΡ‚ Π°Π½Π³Π°ΠΆΠΈΠΌΠ΅Π½Ρ‚ΠΈ). Π’ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‚ΠΎΠ²Π°, Π½Π΅ всички систСми ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Ρ‚ Ρ‚ΠΎΠ²Π° ΠΈ трябва Π΄Π° ΠΈΠΌΠ° ΠΏΠΎ-Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ Π½Π°Ρ‡ΠΈΠ½ Π·Π° прСдотвратяванС Π½Π° Ρ‚Π°ΠΊΡŠΠ² основСн ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ.

Какво Π΅ ΠΌΠ°Ρ€ΠΊΠΈΡ€Π°Π½Π΅, Π±Π°Π·ΠΈΡ€Π°Π½ΠΎ Π½Π° ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅?

И Ρ‚Π°ΠΊΠ°, ΠΊΠ°ΠΊΠ²ΠΎ Π΅ ΠΌΠ°Ρ€ΠΊΠΈΡ€Π°Π½Π΅, Π±Π°Π·ΠΈΡ€Π°Π½ΠΎ Π½Π° ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅Ρ‚ΠΎ – ΠΌΠ°Ρ€ΠΊΠΈΡ€Π°Π½Π΅ Π½Π° изобраТСния ΠΏΠΎ ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅.

Π—Π° създаванС Π½Π° Docker Ρ‚Π°Π³ΠΎΠ²Π΅ Π½Π΅ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ Git ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²ΠΈ (Git ΠΊΠ»ΠΎΠ½, Git Ρ‚Π°Π³...), Π° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π½Π° сума, ΡΠ²ΡŠΡ€Π·Π°Π½Π° с:

  • ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ. Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΎΠ½Π½ΠΈΡΡ‚ Π΅Ρ‚ΠΈΠΊΠ΅Ρ‚ Π½Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ отразява Π½Π΅Π³ΠΎΠ²ΠΎΡ‚ΠΎ ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅. ΠšΠΎΠ³Π°Ρ‚ΠΎ ΡΡŠΠ·Π΄Π°Π²Π°Ρ‚Π΅ Π½ΠΎΠ²Π° вСрсия, Ρ‚ΠΎΠ·ΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ няма Π΄Π° сС ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ, Π°ΠΊΠΎ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅Ρ‚Π΅ Π² ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π΅ са ΠΏΡ€ΠΎΠΌΠ΅Π½Π΅Π½ΠΈ;
  • история Π½Π° ΡΡŠΠ·Π΄Π°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Ρ‚ΠΎΠ²Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π² Git. Π˜Π·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΡΡ‚Π°, ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈ с Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ΠΊΠ»ΠΎΠ½ΠΎΠ²Π΅ Π½Π° Git ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Π° история Π½Π° ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅ Ρ‡Ρ€Π΅Π· werf, Ρ‰Π΅ ΠΈΠΌΠ°Ρ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ID Ρ‚Π°Π³ΠΎΠ²Π΅.

Вакъв ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Π΅ Ρ‚.Π½Π°Ρ€ сцСничСн подпис Π½Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ.

Всяко ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ сС ΡΡŠΡΡ‚ΠΎΠΈ ΠΎΡ‚ Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ Π΅Ρ‚Π°ΠΏΠΈ: from, before-install, git-archive, install, imports-after-install, before-setup, ... git-latest-patch ΠΈ Ρ‚.Π½. ВсСки Π΅Ρ‚Π°ΠΏ ΠΈΠΌΠ° ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€, ΠΊΠΎΠΉΡ‚ΠΎ отразява Π½Π΅Π³ΠΎΠ²ΠΎΡ‚ΠΎ ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅ βˆ’ сцСничСн подпис (сцСничСн подпис).

ΠšΡ€Π°ΠΉΠ½ΠΎΡ‚ΠΎ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, ΡΡŠΡΡ‚ΠΎΡΡ‰ΠΎ сС ΠΎΡ‚ Ρ‚Π΅Π·ΠΈ Π΅Ρ‚Π°ΠΏΠΈ, Π΅ ΠΌΠ°Ρ€ΠΊΠΈΡ€Π°Π½ΠΎ с Ρ‚Π°ΠΊΠ° нарСчСния подпис Π½Π° Π½Π°Π±ΠΎΡ€Π° ΠΎΡ‚ Ρ‚Π΅Π·ΠΈ Π΅Ρ‚Π°ΠΏΠΈ - Π΅Ρ‚Π°ΠΏΠΈ подпис, - ΠΊΠΎΠ΅Ρ‚ΠΎ Π΅ ΠΎΠ±ΠΎΠ±Ρ‰Π°Π²Π°Ρ‰ΠΎ Π·Π° всички Π΅Ρ‚Π°ΠΏΠΈ Π½Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ.

Π—Π° всяко ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΎΡ‚ конфигурацията werf.yaml Π² общия случай Ρ‰Π΅ ΠΈΠΌΠ° собствСн подпис ΠΈ ΡΡŠΠΎΡ‚Π²Π΅Ρ‚Π½ΠΎ Docker Ρ‚Π°Π³.

Π‘ΠΈΠ³Π½Π°Ρ‚ΡƒΡ€Π°Ρ‚Π° Π½Π° сцСната Ρ€Π΅ΡˆΠ°Π²Π° всички Ρ‚Π΅Π·ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ:

  • Устойчив Π½Π° ΠΏΡ€Π°Π·Π½ΠΈ Git Π°Π½Π³Π°ΠΆΠΈΠΌΠ΅Π½Ρ‚ΠΈ.
  • Устойчив Π½Π° Git Π°Π½Π³Π°ΠΆΠΈΠΌΠ΅Π½Ρ‚ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ промСнят Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅, ΠΊΠΎΠΈΡ‚ΠΎ Π½Π΅ са подходящи Π·Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ.
  • НС Π²ΠΎΠ΄ΠΈ Π΄ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° с ΠΏΡ€Π΅Ρ€Π°Π·Π³Π»Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° Ρ‚Π΅ΠΊΡƒΡ‰Π°Ρ‚Π° вСрсия Π½Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ ΠΏΡ€ΠΈ рСстартиранС Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ†ΠΈΠΈ Π·Π° стари Git Π°Π½Π³Π°ΠΆΠΈΠΌΠ΅Π½Ρ‚ΠΈ Π½Π° ΠΊΠ»ΠΎΠ½.

Π‘Π΅Π³Π° Ρ‚ΠΎΠ²Π° Π΅ ΠΏΡ€Π΅ΠΏΠΎΡ€ΡŠΡ‡ΠΈΡ‚Π΅Π»Π½Π°Ρ‚Π° стратСгия Π·Π° ΠΌΠ°Ρ€ΠΊΠΈΡ€Π°Π½Π΅ ΠΈ Π΅ ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ Π² werf Π·Π° всички CI систСми.

Как Π΄Π° Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°Ρ‚Π΅ ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ Π² werf

ΠšΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° Π²Π΅Ρ‡Π΅ ΠΈΠΌΠ° ΡΡŠΠΎΡ‚Π²Π΅Ρ‚Π½Π° опция werf publish: --tag-by-stages-signature=true|false

Π’ CI систСма стратСгията Π·Π° ΠΌΠ°Ρ€ΠΊΠΈΡ€Π°Π½Π΅ сС опрСдСля ΠΎΡ‚ ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° werf ci-env. ΠŸΡ€Π΅Π΄ΠΈ Ρ‚ΠΎΠ²Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚ΡŠΡ€ΡŠΡ‚ бСшС Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ€Π°Π½ Π·Π° Π½Π΅Π³ΠΎ werf ci-env --tagging-strategy=tag-or-branch. Π‘Π΅Π³Π°, Π°ΠΊΠΎ посочитС werf ci-env --tagging-strategy=stages-signature ΠΈΠ»ΠΈ Π½Π΅ ΡƒΠΊΠ°ΠΆΠ΅Ρ‚Π΅ Ρ‚Π°Π·ΠΈ опция, werf Ρ‰Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° стратСгията Π·Π° ΠΌΠ°Ρ€ΠΊΠΈΡ€Π°Π½Π΅ ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ stages-signature. Π•ΠΊΠΈΠΏ werf ci-env Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ Ρ‰Π΅ Π·Π°Π΄Π°Π΄Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈΡ‚Π΅ Ρ„Π»Π°Π³ΠΎΠ²Π΅ Π·Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° werf build-and-publish (Or werf publish), Ρ‚Π°ΠΊΠ° Ρ‡Π΅ Π½Π΅ Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° сС Π·Π°Π΄Π°Π²Π°Ρ‚ Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈ ΠΎΠΏΡ†ΠΈΠΈ Π·Π° Ρ‚Π΅Π·ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ.

НапримСр ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π°:

werf publish --stages-storage :local --images-repo registry.hello.com/web/core/system --tag-by-stages-signature

...ΠΌΠΎΠΆΠ΅ Π΄Π° създадС слСднитС изобраТСния:

  • registry.hello.com/web/core/system/backend:4ef339f84ca22247f01fb335bb19f46c4434014d8daa3d5d6f0e386d
  • registry.hello.com/web/core/system/frontend:f44206457e0a4c8a54655543f749799d10a9fe945896dab1c16996c6

Π’ΡƒΠΊ 4ef339f84ca22247f01fb335bb19f46c4434014d8daa3d5d6f0e386d Π΅ подпис Π½Π° Π΅Ρ‚Π°ΠΏΠΈΡ‚Π΅ Π½Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ backendИ f44206457e0a4c8a54655543f749799d10a9fe945896dab1c16996c6 - подпис Π½Π° Π΅Ρ‚Π°ΠΏΠΈΡ‚Π΅ Π½Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ frontend.

ΠŸΡ€ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° спСциални Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ werf_container_image ΠΈ werf_container_env НС Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° промСнятС Π½ΠΈΡ‰ΠΎ Π² ΡˆΠ°Π±Π»ΠΎΠ½ΠΈΡ‚Π΅ Π½Π° Helm: Ρ‚Π΅Π·ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ Ρ‰Π΅ Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Ρ‚ ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΈΡ‚Π΅ ΠΈΠΌΠ΅Π½Π° Π½Π° изобраТСния.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Π½Π° конфигурация Π² CI систСма:

type multiwerf && source <(multiwerf use 1.1 beta)
type werf && source <(werf ci-env gitlab)
werf build-and-publish|deploy

ΠŸΠΎΠ²Π΅Ρ‡Π΅ информация Π·Π° конфигурацията Π΅ Π΄ΠΎΡΡ‚ΡŠΠΏΠ½Π° Π² докумСнтацията:

ΠžΠ±Ρ‰ΠΎ

  • Нова опция werf publish --tag-by-stages-signature=true|false.
  • Нова стойност Π½Π° опцията werf ci-env --tagging-strategy=stages-signature|tag-or-branch (Π°ΠΊΠΎ Π½Π΅ Π΅ посочСно, ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ Ρ‰Π΅ бъдС stages-signature).
  • Ако ΠΏΡ€Π΅Π΄ΠΈ стС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π»ΠΈ ΠΎΠΏΡ†ΠΈΠΈΡ‚Π΅ Π·Π° ΠΌΠ°Ρ€ΠΊΠΈΡ€Π°Π½Π΅ Π·Π° Git Π°Π½Π³Π°ΠΆΠΈΠΌΠ΅Π½Ρ‚ΠΈ (WERF_TAG_GIT_COMMIT ΠΈΠ»ΠΈ опция werf publish --tag-git-commit COMMIT), Ρ‚ΠΎΠ³Π°Π²Π° Π½Π΅ забравяйтС Π΄Π° ΠΏΡ€Π΅ΠΌΠΈΠ½Π΅Ρ‚Π΅ към стратСгията Π·Π° ΠΌΠ°Ρ€ΠΊΠΈΡ€Π°Π½Π΅ Π΅Ρ‚Π°ΠΏΠΈ-подпис.
  • По-Π΄ΠΎΠ±Ρ€Π΅ Π΅ Π½Π΅Π·Π°Π±Π°Π²Π½ΠΎ Π΄Π° ΠΏΡ€Π΅Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ Π½ΠΎΠ²ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ към Π½ΠΎΠ²Π°Ρ‚Π° схСма Π·Π° ΠΌΠ°Ρ€ΠΊΠΈΡ€Π°Π½Π΅.
  • ΠŸΡ€ΠΈ ΠΏΡ€Π΅Ρ…Π²ΡŠΡ€Π»ΡΠ½Π΅ към werf 1.1 Π΅ ΠΏΡ€Π΅ΠΏΠΎΡ€ΡŠΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ Π΄Π° ΠΏΡ€Π΅Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ старитС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ към Π½ΠΎΠ²Π°Ρ‚Π° схСма Π·Π° ΠΌΠ°Ρ€ΠΊΠΈΡ€Π°Π½Π΅, Π½ΠΎ старата Π΅Ρ‚ΠΈΠΊΠ΅Ρ‚ ΠΈΠ»ΠΈ ΠΊΠ»ΠΎΠ½ всС ΠΎΡ‰Π΅ сС ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°.

ΠœΠ°Ρ€ΠΊΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ, Π±Π°Π·ΠΈΡ€Π°Π½ΠΎ Π½Π° ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅, Ρ€Π΅ΡˆΠ°Π²Π° всички ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ, Ρ€Π°Π·Π³Π»Π΅Π΄Π°Π½ΠΈ Π² статията:

  • Устойчивост Π½Π° ΠΈΠΌΠ΅Ρ‚ΠΎ Π½Π° Π΅Ρ‚ΠΈΠΊΠ΅Ρ‚Π° Π½Π° Docker срСщу ΠΏΡ€Π°Π·Π½ΠΈ Π°Π½Π³Π°ΠΆΠΈΠΌΠ΅Π½Ρ‚ΠΈ Π½Π° Git.
  • Устойчивост Π½Π° ΠΈΠΌΠ΅Ρ‚ΠΎ Π½Π° ΠΌΠ°Ρ€ΠΊΠ΅Ρ€Π° Π½Π° Docker спрямо Git Π°Π½Π³Π°ΠΆΠΈΠΌΠ΅Π½Ρ‚ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ промСнят Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅Ρ‚Π΅ Π±Π΅Π· Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π·Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ.
  • НС Π²ΠΎΠ΄ΠΈ Π΄ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° с ΠΏΡ€Π΅Ρ€Π°Π·Π³Π»Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° Ρ‚Π΅ΠΊΡƒΡ‰Π°Ρ‚Π° вСрсия Π½Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ ΠΏΡ€ΠΈ рСстартиранС Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ†ΠΈΠΈ Π·Π° стари Git Π°Π½Π³Π°ΠΆΠΈΠΌΠ΅Π½Ρ‚ΠΈ Π·Π° Git ΠΊΠ»ΠΎΠ½ΠΎΠ²Π΅.

Използваи Π³ΠΎ! И Π½Π΅ забравяйтС Π΄Π° Π½ΠΈ посСтитС Π½Π° GitHubΠ΄Π° ΡΡŠΠ·Π΄Π°Π΄Π΅Ρ‚Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ ΠΈΠ»ΠΈ Π΄Π° Π½Π°ΠΌΠ΅Ρ€ΠΈΡ‚Π΅ ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°Ρ‰, Π΄Π° Π΄Π°Π΄Π΅Ρ‚Π΅ плюс, Π΄Π° ΡΡŠΠ·Π΄Π°Π΄Π΅Ρ‚Π΅ PR ΠΈΠ»ΠΈ просто Π΄Π° Π½Π°Π±Π»ΡŽΠ΄Π°Π²Π°Ρ‚Π΅ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.

PS

ΠŸΡ€ΠΎΡ‡Π΅Ρ‚Π΅Ρ‚Π΅ ΡΡŠΡ‰ΠΎ Π² нашия Π±Π»ΠΎΠ³:

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: www.habr.com

ДобавянС Π½Π° Π½ΠΎΠ² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€