ΠΡΠ½ΠΎΠ²Π°ΡΠ° Π½Π° ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ΡΠΎ Π΅ Π½ΠΎΠ²Π°ΡΠ° Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠ° Π½Π° ΡΡΠ΅Π½ΠΈΡΠ½ΠΎΡΠΎ ΡΡΡ
ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΡΠ°Π±ΠΎΡΠ°ΡΠ° Π½Π° Π΄Π²Π°ΡΠ° ΠΊΠΎΠ»Π΅ΠΊΡΠΎΡΠ° (Π·Π° Stapel ΠΈ Dockerfile). ΠΠΎΠ²Π°ΡΠ° Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠ° Π·Π° ΡΡΡ
ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΎΡΠ²Π°ΡΡ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π·Π° Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅ Π½Π° ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈ ΡΠ³Π»ΠΎΠ±ΠΊΠΈ ΠΎΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Ρ
ΠΎΡΡΠΎΠ²Π΅ ΠΈ ΠΏΠ°ΡΠ°Π»Π΅Π»Π½ΠΈ ΡΠ³Π»ΠΎΠ±ΠΊΠΈ Π½Π° Π΅Π΄ΠΈΠ½ ΠΈ ΡΡΡ Ρ
ΠΎΡΡ.
ΠΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΡΠ°Π±ΠΎΡΠ°ΡΠ° Π²ΠΊΠ»ΡΡΠ²Π° ΠΏΡΠ΅ΠΌΠ°Ρ
Π²Π°Π½Π΅ Π½Π° Π½Π΅Π½ΡΠΆΠ½ΠΈΡΠ΅ ΠΈΠ·ΡΠΈΡΠ»Π΅Π½ΠΈΡ Π½Π° Π΅ΡΠ°ΠΏΠ° Π½Π° ΠΈΠ·ΡΠΈΡΠ»ΡΠ²Π°Π½Π΅ Π½Π° ΡΠΈΠ³Π½Π°ΡΡΡΠΈ Π½Π° Π΅ΡΠ°ΠΏΠΈ ΠΈ ΠΏΡΠΎΠΌΡΠ½Π° Π½Π° ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌΠΈΡΠ΅ Π·Π° ΠΈΠ·ΡΠΈΡΠ»ΡΠ²Π°Π½Π΅ Π½Π° ΠΊΠΎΠ½ΡΡΠΎΠ»Π½ΠΈ ΡΡΠΌΠΈ Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ ΠΊΡΠΌ ΠΏΠΎ-Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½ΠΈ. Π’Π°Π·ΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ Π½Π°ΠΌΠ°Π»ΡΠ²Π° ΡΡΠ΅Π΄Π½ΠΎΡΠΎ Π²ΡΠ΅ΠΌΠ΅ Π·Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° werf. Π ΠΏΡΠ°Π·Π½ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΈΠΈ, ΠΊΠΎΠ³Π°ΡΠΎ Π²ΡΠΈΡΠΊΠΈ Π΅ΡΠ°ΠΏΠΈ ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°Ρ Π² ΠΊΠ΅ΡΠ° Π΅ΡΠ°ΠΏΠΈ-ΡΠΊΠ»Π°Π΄, Π²Π΅ΡΠ΅ ΡΠ° ΠΌΠ½ΠΎΠ³ΠΎ Π±ΡΡΠ·ΠΈ. Π ΠΏΠΎΠ²Π΅ΡΠ΅ΡΠΎ ΡΠ»ΡΡΠ°ΠΈ ΡΠ΅ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΈΡΡΠ° ΡΠ΅ ΠΎΡΠ½Π΅ΠΌΠ΅ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ ΠΎΡ 1 ΡΠ΅ΠΊΡΠ½Π΄Π°! Π’ΠΎΠ²Π° Π²Π°ΠΆΠΈ ΠΈ Π·Π° ΠΏΡΠΎΡΠ΅Π΄ΡΡΠΈΡΠ΅ Π·Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° Π΅ΡΠ°ΠΏΠΈΡΠ΅ Π² ΠΏΡΠΎΡΠ΅ΡΠ° Π½Π° ΡΠ°Π±ΠΎΡΠ° Π½Π° Π΅ΠΊΠΈΠΏΠΈΡΠ΅. werf deploy
ΠΈ werf run
.
Π‘ΡΡΠΎ ΡΠ°ΠΊΠ° Π² ΡΠ°Π·ΠΈ Π²Π΅ΡΡΠΈΡ ΡΠ΅ ΠΏΠΎΡΠ²ΠΈ ΡΡΡΠ°ΡΠ΅Π³ΠΈΡ Π·Π° ΠΌΠ°ΡΠΊΠΈΡΠ°Π½Π΅ Π½Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΏΠΎ ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅ - ΠΌΠ°ΡΠΊΠΈΡΠ°Π½Π΅, Π±Π°Π·ΠΈΡΠ°Π½ΠΎ Π½Π° ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅, ΠΊΠΎΠΉΡΠΎ Π²Π΅ΡΠ΅ Π΅ Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π½ ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ ΠΈ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½ΠΈΡΡ ΠΏΡΠ΅ΠΏΠΎΡΡΡΠ°Π½.
ΠΠ΅ΠΊΠ° ΡΠ°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ ΠΏΠΎ-ΠΎΡΠ±Π»ΠΈΠ·ΠΎ ΠΊΠ»ΡΡΠΎΠ²ΠΈΡΠ΅ ΠΈΠ½ΠΎΠ²Π°ΡΠΈΠΈ Π² 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
Π΅ Π³Π°ΡΠ°Π½ΡΠΈΡΠ°Π½ ΡΠ½ΠΈΠΊΠ°Π»Π΅Π½ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ Π½Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΠΉΡΠΎ ΡΠ΅ Π³Π΅Π½Π΅ΡΠΈΡΠ° ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ΡΠΎ Π½Π° Π½ΠΎΠ²ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅.
ΠΠ»Π³ΠΎΡΠΈΡΡΠΌΡΡ Π·Π° ΠΈΠ·Π±ΠΎΡ Π½Π° Π΅ΡΠ°ΠΏΠΈ ΠΎΡ ΠΊΠ΅ΡΠ° ΡΠ΅ ΠΎΡΠ½ΠΎΠ²Π°Π²Π° Π½Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° Π²ΡΡΠ·ΠΊΠ°ΡΠ° Π½Π° Git Π°Π½Π³Π°ΠΆΠΈΠΌΠ΅Π½ΡΠΈΡΠ΅:
- Werf ΠΈΠ·ΡΠΈΡΠ»ΡΠ²Π° ΡΠΈΠ³Π½Π°ΡΡΡΠ°ΡΠ° Π½Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ Π΅ΡΠ°ΠΏ.
- Π Π΅ΡΠ°ΠΏΠΈ-ΡΠΊΠ»Π°Π΄ ΠΠΎΠΆΠ΅ Π΄Π° ΠΈΠΌΠ° Π½ΡΠΊΠΎΠ»ΠΊΠΎ Π΅ΡΠ°ΠΏΠ° Π·Π° Π΄Π°Π΄Π΅Π½ ΠΏΠΎΠ΄ΠΏΠΈΡ. Werf ΠΈΠ·Π±ΠΈΡΠ° Π²ΡΠΈΡΠΊΠΈ Π΅ΡΠ°ΠΏΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΎΡΠ³ΠΎΠ²Π°ΡΡΡ Π½Π° ΠΏΠΎΠ΄ΠΏΠΈΡΠ°.
- ΠΠΊΠΎ ΡΠ΅ΠΊΡΡΠΈΡΡ Π΅ΡΠ°ΠΏ Π΅ ΡΠ²ΡΡΠ·Π°Π½ Ρ Git (git-Π°ΡΡ
ΠΈΠ², ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΈ Π΅ΡΠ°ΠΏ Ρ Git ΠΏΠ°ΡΠΎΠ²Π΅:
install
,beforeSetup
,setup
; ΠΈΠ»ΠΈ git-latest-patch), ΡΠΎΠ³Π°Π²Π° werf ΠΈΠ·Π±ΠΈΡΠ° ΡΠ°ΠΌΠΎ ΠΎΠ½Π΅Π·ΠΈ Π΅ΡΠ°ΠΏΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ° ΡΠ²ΡΡΠ·Π°Π½ΠΈ Ρ Π°Π½Π³Π°ΠΆΠΈΠΌΠ΅Π½Ρ, ΠΊΠΎΠΉΡΠΎ Π΅ ΠΏΡΠ΅Π΄ΡΠ΅ΡΡΠ²Π΅Π½ΠΈΠΊ Π½Π° ΡΠ΅ΠΊΡΡΠΈΡ ΠΊΠΎΠΌΠΈΡ (Π·Π° ΠΊΠΎΠΉΡΠΎ ΡΠ΅ ΠΈΠ·Π²ΠΈΠΊΠ²Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΈΡΡΠ°). - ΠΡ ΠΎΡΡΠ°Π½Π°Π»ΠΈΡΠ΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠΈ Π΅ΡΠ°ΠΏΠΈ ΡΠ΅ ΠΈΠ·Π±ΠΈΡΠ° Π΅Π΄ΠΈΠ½ - Π½Π°ΠΉ-ΡΡΠ°ΡΠΈΡΡ ΠΏΠΎ Π΄Π°ΡΠ° Π½Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅.
ΠΡΠ°ΠΏ Π·Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΊΠ»ΠΎΠ½ΠΎΠ²Π΅ Π½Π° Git ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠΌΠ° Π΅Π΄Π½Π°ΠΊΡΠ² ΠΏΠΎΠ΄ΠΏΠΈΡ. ΠΠΎ werf ΡΠ΅ ΠΏΠΎΠΏΡΠ΅ΡΠΈ Π½Π° ΠΊΠ΅ΡΠ°, ΡΠ²ΡΡΠ·Π°Π½ Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΊΠ»ΠΎΠ½ΠΎΠ²Π΅, Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ΅Π·ΠΈ ΠΊΠ»ΠΎΠ½ΠΎΠ²Π΅, Π΄ΠΎΡΠΈ Π°ΠΊΠΎ ΠΏΠΎΠ΄ΠΏΠΈΡΠΈΡΠ΅ ΡΡΠ²ΠΏΠ°Π΄Π°Ρ.
ΠΠΎΠ² Π°Π»Π³ΠΎΡΠΈΡΡΠΌ Π·Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ ΠΈ Π·Π°ΠΏΠ°Π·Π²Π°Π½Π΅ Π½Π° Π΅ΡΠ°ΠΏΠΈ Π² Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ΡΠΎ Π½Π° Π΅ΡΠ°ΠΏΠ°
ΠΠΊΠΎ, ΠΊΠΎΠ³Π°ΡΠΎ ΠΈΠ·Π±ΠΈΡΠ° Π΅ΡΠ°ΠΏΠΈ ΠΎΡ ΠΊΠ΅ΡΠ°, werf Π½Π΅ Π½Π°ΠΌΠ΅ΡΠΈ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡ Π΅ΡΠ°ΠΏ, ΡΠΎΠ³Π°Π²Π° ΡΠ΅ ΠΈΠ½ΠΈΡΠΈΠΈΡΠ° ΠΏΡΠΎΡΠ΅ΡΡΡ Π½Π° ΡΠ³Π»ΠΎΠ±ΡΠ²Π°Π½Π΅ Π½Π° Π½ΠΎΠ² Π΅ΡΠ°ΠΏ.
ΠΠΌΠ°ΠΉΡΠ΅ ΠΏΡΠ΅Π΄Π²ΠΈΠ΄, ΡΠ΅ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΏΡΠΎΡΠ΅ΡΠΈ (Π½Π° Π΅Π΄ΠΈΠ½ ΠΈΠ»ΠΈ ΠΏΠΎΠ²Π΅ΡΠ΅ Ρ ΠΎΡΡΠΎΠ²Π΅) ΠΌΠΎΠ³Π°Ρ Π΄Π° Π·Π°ΠΏΠΎΡΠ½Π°Ρ Π΄Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Ρ Π΅Π΄ΠΈΠ½ ΠΈ ΡΡΡ Π΅ΡΠ°ΠΏ ΠΏΡΠΈΠ±Π»ΠΈΠ·ΠΈΡΠ΅Π»Π½ΠΎ ΠΏΠΎ Π΅Π΄Π½ΠΎ ΠΈ ΡΡΡΠΎ Π²ΡΠ΅ΠΌΠ΅. Werf ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΎΠΏΡΠΈΠΌΠΈΡΡΠΈΡΠ΅Π½ Π°Π»Π³ΠΎΡΠΈΡΡΠΌ Π·Π° Π±Π»ΠΎΠΊΠΈΡΠ°Π½Π΅ Π΅ΡΠ°ΠΏΠΈ-ΡΠΊΠ»Π°Π΄ Π² ΠΌΠΎΠΌΠ΅Π½ΡΠ° Π½Π° Π·Π°ΠΏΠ°Π·Π²Π°Π½Π΅ Π½Π° ΠΏΡΡΡΠ½ΠΎ ΡΡΠ±ΡΠ°Π½ΠΎΡΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π΅ΡΠ°ΠΏΠΈ-ΡΠΊΠ»Π°Π΄. ΠΠΎ ΡΠΎΠ·ΠΈ Π½Π°ΡΠΈΠ½, ΠΊΠΎΠ³Π°ΡΠΎ Π½ΠΎΠ²Π°ΡΠ° ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΈΡ Π½Π° Π΅ΡΠ°ΠΏΠ° Π΅ Π³ΠΎΡΠΎΠ²Π°, werf Π±Π»ΠΎΠΊΠΈΡΠ° Π΅ΡΠ°ΠΏΠΈ-ΡΠΊΠ»Π°Π΄ ΠΈ Π·Π°ΠΏΠΈΡΠ²Π° ΠΏΡΡΡΠ½ΠΎ ΡΡΠ±ΡΠ°Π½ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΡΠ°ΠΌ ΡΠ°ΠΌΠΎ Π°ΠΊΠΎ ΡΠ°ΠΌ Π²Π΅ΡΠ΅ Π½Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π° ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ (ΠΏΠΎ ΠΏΠΎΠ΄ΠΏΠΈΡ ΠΈ Π΄ΡΡΠ³ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ - Π²ΠΈΠΆΡΠ΅ Π½ΠΎΠ²ΠΈΡ Π°Π»Π³ΠΎΡΠΈΡΡΠΌ Π·Π° ΠΈΠ·Π±ΠΎΡ Π½Π° Π΅ΡΠ°ΠΏΠΈ ΠΎΡ ΠΊΠ΅ΡΠ°).
ΠΡΡΡΠ½ΠΎ ΡΠ³Π»ΠΎΠ±Π΅Π½ΠΎΡΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π³Π°ΡΠ°Π½ΡΠΈΡΠ°Π½ΠΎ ΠΈΠΌΠ° ΡΠ½ΠΈΠΊΠ°Π»Π΅Π½ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΠΎΡ TIMESTAMP_MILLISEC
(Π²ΠΈΠΆΡΠ΅ Π½ΠΎΠ²ΠΈΡ ΡΠΎΡΠΌΠ°Ρ Π·Π° ΠΈΠΌΠ΅Π½ΡΠ²Π°Π½Π΅ Π½Π° Π΅ΡΠ°ΠΏΠ°). Π ΡΠ»ΡΡΠ°ΠΉ, ΡΠ΅ Π² Π΅ΡΠ°ΠΏΠΈ-ΡΠΊΠ»Π°Π΄ ΡΠ΅ Π±ΡΠ΄Π΅ Π½Π°ΠΌΠ΅ΡΠ΅Π½ΠΎ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΡΡΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅, werf ΡΠ΅ ΠΎΡΡ
Π²ΡΡΠ»ΠΈ ΠΏΡΡΡΠ½ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½ΠΎΡΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ ΠΎΡ ΠΊΠ΅ΡΠ°.
Π‘ Π΄ΡΡΠ³ΠΈ Π΄ΡΠΌΠΈ: ΠΏΡΡΠ²ΠΈΡΡ ΠΏΡΠΎΡΠ΅Ρ, ΠΊΠΎΠΉΡΠΎ Π·Π°Π²ΡΡΡΠΈ ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ΡΠΎ Π½Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ (Π½Π°ΠΉ-Π±ΡΡΠ·ΠΈΡΡ), ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈ ΠΏΡΠ°Π²ΠΎΡΠΎ Π΄Π° Π³ΠΎ ΡΡΡ ΡΠ°Π½ΡΠ²Π° Π½Π° Π΅ΡΠ°ΠΏΠΈ-ΡΡΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ (ΠΈ ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° ΡΠΎΠ²Π° Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΡΠ΅ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° Π²ΡΠΈΡΠΊΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΈΠΈ). ΠΠ°Π²Π½ΠΈΡΡ ΠΏΡΠΎΡΠ΅Ρ Π½Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π½ΠΈΠΊΠΎΠ³Π° Π½ΡΠΌΠ° Π΄Π° ΠΏΠΎΠΏΡΠ΅ΡΠΈ Π½Π° ΠΏΠΎ-Π±ΡΡΠ· ΠΏΡΠΎΡΠ΅Ρ Π΄Π° Π·Π°ΠΏΠ°Π·ΠΈ ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΈΡΠ΅ ΠΎΡ ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ΡΠΎ Π½Π° ΡΠ΅ΠΊΡΡΠΈΡ Π΅ΡΠ°ΠΏ ΠΈ Π΄Π° ΠΏΡΠ΅ΠΌΠΈΠ½Π΅ ΠΊΡΠΌ ΡΠ»Π΅Π΄Π²Π°ΡΠΎΡΠΎ ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅.
ΠΠΎΠ΄ΠΎΠ±ΡΠ΅Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ Π½Π° ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ° Π½Π° Dockerfile
Π ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅ΡΡΡ ΠΎΡ Π΅ΡΠ°ΠΏΠΈ Π·Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅, ΠΈΠ·Π³ΡΠ°Π΄Π΅Π½ΠΎ ΠΎΡ Dockerfile, ΡΠ΅ ΡΡΡΡΠΎΠΈ ΠΎΡ Π΅Π΄ΠΈΠ½ Π΅ΡΠ°ΠΏ - dockerfile
. ΠΡΠΈ ΠΈΠ·ΡΠΈΡΠ»ΡΠ²Π°Π½Π΅ Π½Π° ΠΏΠΎΠ΄ΠΏΠΈΡΠ° ΡΠ΅ ΠΈΠ·ΡΠΈΡΠ»ΡΠ²Π° ΠΊΠΎΠ½ΡΡΠΎΠ»Π½Π°ΡΠ° ΡΡΠΌΠ° Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ΡΠ΅ context
, ΠΊΠΎΠΉΡΠΎ ΡΠ΅ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΏΡΠΈ ΠΌΠΎΠ½ΡΠ°ΠΆΠ°. ΠΡΠ΅Π΄ΠΈ ΡΠΎΠ²Π° ΠΏΠΎΠ΄ΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ werf ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΠΎ ΠΏΡΠ΅ΠΌΠΈΠ½Π°Π²Π° ΠΏΡΠ΅Π· Π²ΡΠΈΡΠΊΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ ΠΈ ΠΏΠΎΠ»ΡΡΠ°Π²Π° ΠΊΠΎΠ½ΡΡΠΎΠ»Π½Π° ΡΡΠΌΠ° ΡΡΠ΅Π· ΡΡΠΌΠΈΡΠ°Π½Π΅ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° ΠΈ ΡΠ΅ΠΆΠΈΠΌΠ° Π½Π° Π²ΡΠ΅ΠΊΠΈ ΡΠ°ΠΉΠ». ΠΠ°ΠΏΠΎΡΠ²Π°ΠΉΠΊΠΈ Ρ v1.1, werf ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΈΠ·ΡΠΈΡΠ»Π΅Π½ΠΈ ΠΊΠΎΠ½ΡΡΠΎΠ»Π½ΠΈ ΡΡΠΌΠΈ, ΡΡΡ
ΡΠ°Π½ΡΠ²Π°Π½ΠΈ Π² Git Ρ
ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅.
ΠΠ»Π³ΠΎΡΠΈΡΡΠΌΡΡ ΡΠ΅ ΠΎΡΠ½ΠΎΠ²Π°Π²Π° Π½Π° .dockerignore
ΠΈ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΠΎ ΠΏΡΠ΅ΠΌΠΈΠ½Π°Π²Π° ΠΏΡΠ΅Π· ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΡΠΎ Π΄ΡΡΠ²ΠΎ ΡΠ°ΠΌΠΎ ΠΊΠΎΠ³Π°ΡΠΎ Π΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ. Π’Π°ΠΊΠ° ΠΎΡΠ΄Π΅Π»ΠΈΡ
ΠΌΠ΅ ΡΠ΅ΡΠ΅Π½Π΅ΡΠΎ Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° ΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡΠ° Π½Π° Π°Π»Π³ΠΎΡΠΈΡΡΠΌΠ° ΠΎΡ ΡΠ°Π·ΠΌΠ΅ΡΠ° context
Π½Π΅ Π΅ Π·Π½Π°ΡΠΈΠΌΠΎ.
ΠΠ»Π³ΠΎΡΠΈΡΡΠΌΡΡ ΡΡΡΠΎ ΡΠ°ΠΊΠ° ΠΏΡΠΎΠ²Π΅ΡΡΠ²Π° Π½Π΅ΠΏΡΠΎΡΠ»Π΅Π΄Π΅Π½ΠΈΡΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ ΠΈ, Π°ΠΊΠΎ Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ, Π³ΠΈ Π²Π·Π΅ΠΌΠ° ΠΏΡΠ΅Π΄Π²ΠΈΠ΄ Π² ΠΊΠΎΠ½ΡΡΠΎΠ»Π½Π°ΡΠ° ΡΡΠΌΠ°.
ΠΠΎΠ΄ΠΎΠ±ΡΠ΅Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ ΠΏΡΠΈ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π΅
ΠΠ΅ΡΡΠΈΠΈΡΠ΅ Π½Π° werf v1.1 ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ rsync ΡΡΡΠ²ΡΡ, ΠΊΠΎΠ³Π°ΡΠΎ
ΠΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° Π½Π° ΠΈΠΌΠΏΠΎΡΡΠΈΡΠ°Π½Π΅ Π² macOS Π²Π΅ΡΠ΅ Π½Π΅ Π΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π° ΠΎΡ ΡΠΎΠΌΠΎΠ²Π΅ΡΠ΅ Π½Π° Docker ΠΈ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠ°Π½Π΅ΡΠΎ Π·Π°Π²ΡΡΡΠ²Π° Π·Π° ΡΡΡΠΎΡΠΎ Π²ΡΠ΅ΠΌΠ΅ ΠΊΠ°ΡΠΎ Linux ΠΈ Windows.
Π’Π°Π³Π²Π°Π½Π΅, Π±Π°Π·ΠΈΡΠ°Π½ΠΎ Π½Π° ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅
Werf v1.1 ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° ΡΠ°ΠΊΠ° Π½Π°ΡΠ΅ΡΠ΅Π½ΠΎΡΠΎ ΠΌΠ°ΡΠΊΠΈΡΠ°Π½Π΅ ΡΡΠ΅Π· ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅ Π½Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ - ΠΌΠ°ΡΠΊΠΈΡΠ°Π½Π΅, Π±Π°Π·ΠΈΡΠ°Π½ΠΎ Π½Π° ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅. ΠΡΠΈΠΊΠ΅ΡΠΈΡΠ΅ Π½Π° ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡΠ΅ Docker ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π·Π°Π²ΠΈΡΡΡ ΠΎΡ ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅ΡΠΎ Π½Π° ΡΠ΅Π·ΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ.
ΠΡΠΈ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° werf publish --tags-by-stages-signature
ΠΈΠ»ΠΈ werf ci-env --tagging-strategy=stages-signature
ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π°Π½ΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π½Π° Ρ.Π½Π°Ρ ΡΡΠ΅Π½ΠΈΡΠ΅Π½ ΠΏΠΎΠ΄ΠΏΠΈΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅. ΠΡΡΠΊΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π΅ ΠΌΠ°ΡΠΊΠΈΡΠ°Π½ΠΎ ΡΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½ ΠΏΠΎΠ΄ΠΏΠΈΡ Π½Π° Π΅ΡΠ°ΠΏΠΈΡΠ΅ Π½Π° ΡΠΎΠ²Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΠΉΡΠΎ ΡΠ΅ ΠΈΠ·ΡΠΈΡΠ»ΡΠ²Π° ΠΏΠΎ ΡΡΡΠΈΡΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π° ΠΊΠ°ΡΠΎ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡ ΠΏΠΎΠ΄ΠΏΠΈΡ Π½Π° Π²ΡΠ΅ΠΊΠΈ Π΅ΡΠ°ΠΏ ΠΏΠΎΠΎΡΠ΄Π΅Π»Π½ΠΎ, Π½ΠΎ Π΅ ΠΎΠ±Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ Π½Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ.
Π‘ΠΈΠ³Π½Π°ΡΡΡΠ°ΡΠ° Π½Π° Π΅ΡΠ°ΠΏΠΈΡΠ΅ Π½Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ Π·Π°Π²ΠΈΡΠΈ ΠΎΡ:
- ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅ΡΠΎ Π½Π° ΡΠΎΠ²Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅;
- ΠΈΡΡΠΎΡΠΈΠΈ Π½Π° ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅ Π² Git, Π΄ΠΎΠ²Π΅Π»ΠΈ Π΄ΠΎ ΡΠΎΠ²Π° ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅.
Π₯ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ΡΠΎ Π½Π° Git Π²ΠΈΠ½Π°Π³ΠΈ ΠΈΠΌΠ° ΡΠΈΠΊΡΠΈΠ²Π½ΠΈ Π°Π½Π³Π°ΠΆΠΈΠΌΠ΅Π½ΡΠΈ, ΠΊΠΎΠΈΡΠΎ Π½Π΅ ΠΏΡΠΎΠΌΠ΅Π½ΡΡ ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅ΡΠΎ Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ΡΠ΅ Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ Π°Π½Π³Π°ΠΆΠΈΠΌΠ΅Π½ΡΠΈ ΡΠ°ΠΌΠΎ Ρ ΠΊΠΎΠΌΠ΅Π½ΡΠ°ΡΠΈ ΠΈΠ»ΠΈ Π°Π½Π³Π°ΠΆΠΈΠΌΠ΅Π½ΡΠΈ Π·Π° ΡΠ»ΠΈΠ²Π°Π½Π΅, ΠΈΠ»ΠΈ Π°Π½Π³Π°ΠΆΠΈΠΌΠ΅Π½ΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΏΡΠΎΠΌΠ΅Π½ΡΡ ΠΎΠ½Π΅Π·ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Π² Git, ΠΊΠΎΠΈΡΠΎ Π½ΡΠΌΠ° Π΄Π° Π±ΡΠ΄Π°Ρ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠ°Π½ΠΈ Π² ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ.
ΠΡΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΠΌΠ°ΡΠΊΠΈΡΠ°Π½Π΅, Π±Π°Π·ΠΈΡΠ°Π½ΠΎ Π½Π° ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅, ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈΡΠ΅ Ρ Π½Π΅Π½ΡΠΆΠ½ΠΎ ΡΠ΅ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΠ°ΠΊΠ΅ΡΠΈ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π² Kubernetes ΠΏΠΎΡΠ°Π΄ΠΈ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Π² ΠΈΠΌΠ΅ΡΠΎ Π½Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ ΡΠ΅ ΡΠ΅ΡΠ°Π²Π°Ρ, Π΄ΠΎΡΠΈ Π°ΠΊΠΎ ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ Π½Π΅ ΡΠ΅ Π΅ ΠΏΡΠΎΠΌΠ΅Π½ΠΈΠ»ΠΎ. ΠΠ΅ΠΆΠ΄Ρ Π΄ΡΡΠ³ΠΎΡΠΎ, ΡΠΎΠ²Π° Π΅ Π΅Π΄Π½Π° ΠΎΡ ΠΏΡΠΈΡΠΈΠ½ΠΈΡΠ΅, ΠΊΠΎΠΈΡΠΎ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΡΠ²Π°Ρ ΡΡΡ ΡΠ°Π½ΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠΈΠΊΡΠΎΡΡΠ»ΡΠ³ΠΈ Π½Π° Π΅Π΄Π½ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² Π΅Π΄Π½ΠΎ Git Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅.
Π‘ΡΡΠΎ ΡΠ°ΠΊΠ°, Π±Π°Π·ΠΈΡΠ°Π½ΠΎΡΠΎ Π½Π° ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅ ΠΌΠ°ΡΠΊΠΈΡΠ°Π½Π΅ Π΅ ΠΏΠΎ-Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ ΠΌΠ΅ΡΠΎΠ΄ Π·Π° ΠΌΠ°ΡΠΊΠΈΡΠ°Π½Π΅ ΠΎΡ ΠΌΠ°ΡΠΊΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΠΊΠ»ΠΎΠ½ΠΎΠ²Π΅ Π½Π° Git, ΡΡΠΉ ΠΊΠ°ΡΠΎ ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π½Π΅ Π·Π°Π²ΠΈΡΠΈ ΠΎΡ ΡΠ΅Π΄Π°, Π² ΠΊΠΎΠΉΡΠΎ ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°Ρ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅ΡΠΈ Π² CI ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° Π·Π° ΡΠ³Π»ΠΎΠ±ΡΠ²Π°Π½Π΅ Π½Π° ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π°Π½Π³Π°ΠΆΠΈΠΌΠ΅Π½ΡΠΈ Π½Π° Π΅Π΄ΠΈΠ½ ΠΈ ΡΡΡΠΈ ΠΊΠ»ΠΎΠ½.
ΠΠ°ΠΆΠ½ΠΎ Π΅: ΠΎΡ ΡΠ΅Π³Π° Π΅ΡΠ°ΠΏΠΈ-ΠΏΠΎΠ΄ΠΏΠΈΡ - Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π°ΡΠ° ΠΏΡΠ΅ΠΏΠΎΡΡΡΠΈΡΠ΅Π»Π½Π° ΡΡΡΠ°ΡΠ΅Π³ΠΈΡ Π·Π° ΠΌΠ°ΡΠΊΠΈΡΠ°Π½Π΅. Π’ΠΎΠΉ ΡΠ΅ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° werf ci-env
(ΠΎΡΠ²Π΅Π½ Π°ΠΊΠΎ ΠΈΠ·ΡΠΈΡΠ½ΠΎ Π½Π΅ ΠΏΠΎΡΠΎΡΠΈΡΠ΅ ΡΠ°Π·Π»ΠΈΡΠ½Π° ΡΡ
Π΅ΠΌΠ° Π·Π° ΠΌΠ°ΡΠΊΠΈΡΠ°Π½Π΅).
ΠΠΈΠ²Π° Π½Π° ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠ°Π½Π΅
ΠΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΡ Π²Π΅ΡΠ΅ ΠΈΠΌΠ° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π΄Π° ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΠ° ΠΈΠ·Ρ
ΠΎΠ΄Π°, Π΄Π° Π·Π°Π΄Π°Π΄Π΅ Π½ΠΈΠ²ΠΎΡΠΎ Π½Π° ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠ°Π½Π΅ ΠΈ Π΄Π° ΡΠ°Π±ΠΎΡΠΈ Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π·Π° ΠΎΡΡΡΡΠ°Π½ΡΠ²Π°Π½Π΅ Π½Π° Π³ΡΠ΅ΡΠΊΠΈ. ΠΠΎΠ±Π°Π²Π΅Π½ΠΈ ΠΎΠΏΡΠΈΠΈ --log-quiet
, --log-verbose
, --log-debug
.
ΠΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ ΠΈΠ·Ρ ΠΎΠ΄ΡΡ ΡΡΠ΄ΡΡΠΆΠ° ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π½Π°ΡΠ° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ:
ΠΠΎΠ³Π°ΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ ΠΌΠ½ΠΎΠ³ΠΎΡΠ»ΠΎΠ²Π΅Π½ ΠΈΠ·Ρ
ΠΎΠ΄ (--log-verbose
) ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π²ΠΈΠ΄ΠΈΡΠ΅ ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠΈ werf:
ΠΠΎΠ΄ΡΠΎΠ±Π΅Π½ ΠΈΠ·Ρ
ΠΎΠ΄ (--log-debug
), Π² Π΄ΠΎΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΡΠΌ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡΡΠ° Π·Π° ΠΎΡΡΡΡΠ°Π½ΡΠ²Π°Π½Π΅ Π½Π° Π³ΡΠ΅ΡΠΊΠΈ Π½Π° werf, ΡΡΠ΄ΡΡΠΆΠ° ΠΈ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Π½Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π²ΠΈΠ΄ΠΈΡΠ΅ ΠΊΠ°ΠΊ ΡΠ΅ ΠΎΡΡΡΠ΅ΡΡΠ²ΡΠ²Π° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ΡΠΎ Ρ ΡΠ΅Π³ΠΈΡΡΡΡΠ° Π½Π° Docker ΠΈ ΡΡΡΠΎ ΡΠ°ΠΊΠ° Π΄Π° Π·Π°ΠΏΠΈΡΠ΅ΡΠ΅ ΠΌΠ΅ΡΡΠ°ΡΠ°, ΠΊΡΠ΄Π΅ΡΠΎ ΡΠ΅ ΠΏΡΠ΅ΠΊΠ°ΡΠ²Π° Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ Π²ΡΠ΅ΠΌΠ΅:
ΠΠΎ-Π½Π°ΡΠ°ΡΡΡΠ½ΠΈ ΠΏΠ»Π°Π½ΠΎΠ²Π΅
ΠΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅! ΠΠΏΡΠΈΠΈΡΠ΅, ΠΎΠΏΠΈΡΠ°Π½ΠΈ ΠΏΠΎ-Π΄ΠΎΠ»Ρ, ΡΠ° ΠΌΠ°ΡΠΊΠΈΡΠ°Π½ΠΈ v1.1 ΡΠ΅ ΡΡΠ°Π½Π°Ρ Π΄ΠΎΡΡΡΠΏΠ½ΠΈ Π² ΡΠ°Π·ΠΈ Π²Π΅ΡΡΠΈΡ, ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡ ΡΡΡ
Π² Π±Π»ΠΈΠ·ΠΊΠΎ Π±ΡΠ΄Π΅ΡΠ΅. ΠΠΊΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈΡΠ΅ ΡΠ΅ ΠΈΠ΄Π²Π°Ρ ΡΡΠ΅Π· Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΈ Π°ΠΊΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ
ΠΡΠ»Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π½Π° Docker Registry (ΠΠΠΠ)
- ΠΠ΅ΡΡΠΈΡ: v1.1
- ΠΠ°ΡΠΈ: ΠΌΠ°ΡΡ
-
ΠΠ·Π΄Π°Π²Π°Π½Π΅
Π¦Π΅Π»ΡΠ° Π΅ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΡ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΏΠ΅ΡΡΠΎΠ½Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π±Π΅Π· ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ, ΠΊΠΎΠ³Π°ΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° werf.
Π ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΡΠΌΠ΅ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΠ°Π»ΠΈ ΡΠ»Π΅Π΄Π½ΠΈΡ Π½Π°Π±ΠΎΡ ΠΎΡ ΡΠ΅ΡΠ΅Π½ΠΈΡ, Π·Π° ΠΊΠΎΠΈΡΠΎ ΡΠ΅ Π³Π°ΡΠ°Π½ΡΠΈΡΠ°ΠΌΠ΅ ΠΏΡΠ»Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°:
- ΠΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ (Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°/ΡΠ΅Π³ΠΈΡΡΡΡ)*,
- AWS ECR
- Π»Π°Π·ΡΡΠ½ΠΎ*,
- Docker Hub
- GCR*,
- GitHub ΠΏΠ°ΠΊΠ΅ΡΠΈ
- Π Π΅Π³ΠΈΡΡΡΡ Π½Π° GitLab*,
- ΠΏΡΠΈΡΡΠ°Π½ΠΈΡΠ΅*,
- ΠΠ΅ΠΉ.
Π Π΅ΡΠ΅Π½ΠΈΡΡΠ°, ΠΊΠΎΠΈΡΠΎ Π² ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΡΠ΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Ρ Π½Π°ΠΏΡΠ»Π½ΠΎ ΠΎΡ werf, ΡΠ° ΠΌΠ°ΡΠΊΠΈΡΠ°Π½ΠΈ ΡΡΡ Π·Π²Π΅Π·Π΄ΠΈΡΠΊΠ°. ΠΠ° Π΄ΡΡΠ³ΠΈ ΠΈΠΌΠ° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°, Π½ΠΎ Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ.
ΠΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΠ°Π½ΠΈ Π΄Π²Π° ΠΎΡΠ½ΠΎΠ²Π½ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°:
- ΠΡΠΊΠΎΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π½Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Ρ ΠΏΡΠ΅ΠΌΠ°Ρ Π²Π°Π½Π΅ Π½Π° ΡΠ°Π³ΠΎΠ²Π΅ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° API Π½Π° ΡΠ΅Π³ΠΈΡΡΡΡΠ° Π½Π° Docker, ΠΊΠΎΠ΅ΡΠΎ Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π½Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈΡΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎΡΠΎ ΠΏΠΎΡΠΈΡΡΠ²Π°Π½Π΅ Π½Π° werf. Π’ΠΎΠ²Π° Π²Π°ΠΆΠΈ Π·Π° ΠΏΠ°ΠΊΠ΅ΡΠΈΡΠ΅ AWS ECR, Docker Hub ΠΈ GitHub.
- ΠΡΠΊΠΎΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π½Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Ρ ΡΠ°ΠΊΠ° Π½Π°ΡΠ΅ΡΠ΅Π½ΠΈΡΠ΅ Π²Π»ΠΎΠΆΠ΅Π½ΠΈ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ° (Docker Hub, GitHub Packages ΠΈ Quay) ΠΈΠ»ΠΈ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Ρ, Π½ΠΎ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΡ ΡΡΡΠ±Π²Π° Π΄Π° Π³ΠΈ ΡΡΠ·Π΄Π°Π΄Π΅ ΡΡΡΠ½ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΈΠ»ΠΈ API (AWS ECR).
ΠΠΈΠ΅ ΡΠ΅ ΡΠ°Π·ΡΠ΅ΡΠΈΠΌ ΡΠ΅Π·ΠΈ ΠΈ Π΄ΡΡΠ³ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ, ΠΊΠ°ΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ ΡΠΎΠ±ΡΡΠ²Π΅Π½ΠΈΡΠ΅ API Π½Π° ΡΠ΅ΡΠ΅Π½ΠΈΡΡΠ°. Π’Π°Π·ΠΈ Π·Π°Π΄Π°ΡΠ° Π²ΠΊΠ»ΡΡΠ²Π° ΠΈ ΠΏΠΎΠΊΡΠΈΠ²Π°Π½Π΅ Π½Π° ΠΏΡΠ»Π½ΠΈΡ ΡΠΈΠΊΡΠ» Π½Π° ΡΠ°Π±ΠΎΡΠ° Π½Π° werf Ρ ΡΠ΅ΡΡΠΎΠ²Π΅ Π·Π° Π²ΡΠ΅ΠΊΠΈ ΠΎΡ ΡΡΡ .
ΠΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π½Π° ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ (β)
- ΠΠ΅ΡΡΠΈΡ: v1.2 v1.1 (ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΡΡ Π·Π° ΠΏΡΠΈΠ»Π°Π³Π°Π½Π΅ Π½Π° ΡΠ°Π·ΠΈ ΡΡΠ½ΠΊΡΠΈΡ Π΅ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½)
- ΠΠ°ΡΠΈ: ΠΌΠ°ΡΡ-Π°ΠΏΡΠΈΠ» ΠΌΠ°ΡΡ
-
ΠΠ·Π΄Π°Π²Π°Π½Π΅
Π ΠΌΠΎΠΌΠ΅Π½ΡΠ° werf v1.0 ΠΈ v1.1 ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΡΠ°ΠΌΠΎ Π½Π° Π΅Π΄ΠΈΠ½ ΡΠΏΠ΅ΡΠΈΠ°Π»Π΅Π½ Ρ ΠΎΡΡ Π·Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΏΠΎ ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ ΠΈ ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π°Π½Π΅ Π½Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΈ Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ Π² Kubernetes.
ΠΠ° Π΄Π° ΡΠ΅ ΠΎΡΠ²ΠΎΡΡΡ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈΡΠ΅ Π·Π° ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π° ΡΠ°Π±ΠΎΡΠ° Π½Π° werf, ΠΊΠΎΠ³Π°ΡΠΎ ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ΡΠΎ ΠΈ Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π² Kubernetes ΡΠ΅ ΡΡΠ°ΡΡΠΈΡΠ°Ρ Π½Π° Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»Π½ΠΈ Ρ ΠΎΡΡΠ° ΠΈ ΡΠ΅Π·ΠΈ Ρ ΠΎΡΡΠΎΠ²Π΅ Π½Π΅ Π·Π°ΠΏΠ°Π·Π²Π°Ρ ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ΡΠΎ ΡΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΈΠΈΡΠ΅ (Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΈ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°ΡΠΈ ΡΠ΅), werf ΡΠ΅ ΠΈΠ·ΠΈΡΠΊΠ²Π° Π΄Π° ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ ΡΠ΅Π³ΠΈΡΡΡΡΠ° Π½Π° Docker ΠΊΠ°ΡΠΎ ΠΌΡΡΡΠΎ Π·Π° ΡΡΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅.
ΠΡΠ΅Π΄ΠΈ ΡΠΎΠ²Π°, ΠΊΠΎΠ³Π°ΡΠΎ ΠΏΡΠΎΠ΅ΠΊΡΡΡ werf Π²ΡΠ΅ ΠΎΡΠ΅ ΡΠ΅ Π½Π°ΡΠΈΡΠ°ΡΠ΅ dapp, ΠΈΠΌΠ°ΡΠ΅ ΡΠ°ΠΊΠ°Π²Π° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ. ΠΡΠΏΡΠ΅ΠΊΠΈ ΡΠΎΠ²Π° ΡΠ΅ Π½Π°ΡΡΠΊΠ½Π°Ρ ΠΌΠ΅ Π½Π° ΡΠ΅Π΄ΠΈΡΠ° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° Π±ΡΠ΄Π°Ρ Π²Π·Π΅ΡΠΈ ΠΏΠΎΠ΄ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΏΡΠΈ Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠ°Π·ΠΈ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡ Π² werf.
ΠΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅. Π’Π°Π·ΠΈ ΡΡΠ½ΠΊΡΠΈΡ Π½Π΅ ΠΈΠ·ΠΈΡΠΊΠ²Π° ΠΊΠΎΠ»Π΅ΠΊΡΠΎΡΡΡ Π΄Π° ΡΠ°Π±ΠΎΡΠΈ Π² Kubernetes pods, Π·Π°ΡΠΎΡΠΎ ΠΠ° Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅ ΡΠΎΠ²Π°, ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ ΠΎΡΡΡΠ²Π΅ΡΠ΅ ΠΎΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡΠ° ΠΎΡ Π»ΠΎΠΊΠ°Π»Π½ΠΈΡ Docker ΡΡΡΠ²ΡΡ (Π² Kubernetes pod Π½ΡΠΌΠ° Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ Π»ΠΎΠΊΠ°Π»Π½ΠΈΡ Docker ΡΡΡΠ²ΡΡ, Π·Π°ΡΠΎΡΠΎ ΡΠ°ΠΌΠΈΡΡ ΠΏΡΠΎΡΠ΅Ρ ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π° Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ, Π° werf Π½Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° ΠΈ Π½ΡΠΌΠ° Π΄Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° ΡΠ°Π±ΠΎΡΠ° Ρ Docker ΡΡΡΠ²ΡΡΠ° ΠΏΡΠ΅Π· ΠΌΡΠ΅ΠΆΠ°ΡΠ°). ΠΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π·Π° ΡΠ°Π±ΠΎΡΠ° Ρ Kubernetes ΡΠ΅ Π±ΡΠ΄Π΅ Π²Π½Π΅Π΄ΡΠ΅Π½Π° ΠΎΡΠ΄Π΅Π»Π½ΠΎ.
ΠΡΠΈΡΠΈΠ°Π»Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° GitHub Actions (ΠΠΠΠ)
- ΠΠ΅ΡΡΠΈΡ: v1.1
- ΠΠ°ΡΠΈ: ΠΌΠ°ΡΡ
-
ΠΠ·Π΄Π°Π²Π°Π½Π΅
ΠΠΊΠ»ΡΡΠ²Π° werf Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ (ΡΠ΅ΠΊΡΠΈΠΈ ΡΠΏΡΠ°Π²ΠΊΠ° ΠΈ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΠΈ), ΠΊΠ°ΠΊΡΠΎ ΠΈ ΠΎΡΠΈΡΠΈΠ°Π»Π½ΠΎΡΠΎ GitHub Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Π·Π° ΡΠ°Π±ΠΎΡΠ° Ρ werf.
Π Π΄ΠΎΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅, ΡΠΎΠ²Π° ΡΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈ Π½Π° werf Π΄Π° ΡΠ°Π±ΠΎΡΠΈ Π²ΡΡΡ Ρ Π΅ΡΠΈΠΌΠ΅ΡΠ½ΠΈ Π±Π΅Π³Π°ΡΠΈ.
ΠΠ΅Ρ Π°Π½ΠΈΠΊΠ°ΡΠ° Π½Π° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Π½Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ Ρ CI ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° ΡΠ΅ ΡΠ΅ ΠΎΡΠ½ΠΎΠ²Π°Π²Π° Π½Π° ΠΏΠΎΡΡΠ°Π²ΡΠ½Π΅ Π½Π° Π΅ΡΠΈΠΊΠ΅ΡΠΈ Π²ΡΡΡ Ρ Π·Π°ΡΠ²ΠΊΠΈ Π·Π° ΠΈΠ·ΡΠ΅Π³Π»ΡΠ½Π΅, Π·Π° Π΄Π° ΡΠ΅ ΠΈΠ½ΠΈΡΠΈΠΈΡΠ°Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Π·Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅/ΡΠ°Π·Π³ΡΡΡΠ°Π½Π΅ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ.
ΠΠΎΠΊΠ°Π»Π½ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ²Π°Π½Π΅ ΠΈ Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Ρ werf (β)
- ΠΠ΅ΡΡΠΈΡ: v1.1
- ΠΠ°ΡΠΈ: ΡΠ½ΡΠ°ΡΠΈ-ΡΠ΅Π²ΡΡΠ°ΡΠΈ Π°ΠΏΡΠΈΠ»
-
ΠΠ·Π΄Π°Π²Π°Π½Π΅
ΠΡΠ½ΠΎΠ²Π½Π°ΡΠ° ΡΠ΅Π» Π΅ Π΄Π° ΡΠ΅ ΠΏΠΎΡΡΠΈΠ³Π½Π΅ Π΅Π΄ΠΈΠ½Π½Π° ΡΠ½ΠΈΡΠΈΡΠΈΡΠ°Π½Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Π·Π° Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΊΠ°ΠΊΡΠΎ Π»ΠΎΠΊΠ°Π»Π½ΠΎ, ΡΠ°ΠΊΠ° ΠΈ Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²ΠΎ, Π±Π΅Π· ΡΠ»ΠΎΠΆΠ½ΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ, ΠΈΠ·Π²ΡΠ½ ΠΊΡΡΠΈΡΡΠ°.
werf ΡΡΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΠΈΠΌΠ° ΡΠ΅ΠΆΠΈΠΌ Π½Π° ΡΠ°Π±ΠΎΡΠ°, Π² ΠΊΠΎΠΉΡΠΎ ΡΠ΅ Π±ΡΠ΄Π΅ ΡΠ΄ΠΎΠ±Π½ΠΎ Π΄Π° ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠ°ΡΠ΅ ΠΊΠΎΠ΄Π° Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ ΠΈ Π½Π΅Π·Π°Π±Π°Π²Π½ΠΎ Π΄Π° ΠΏΠΎΠ»ΡΡΠ°Π²Π°ΡΠ΅ ΠΎΠ±ΡΠ°ΡΠ½Π° Π²ΡΡΠ·ΠΊΠ° ΠΎΡ ΡΠ°Π±ΠΎΡΠ΅ΡΠΎΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π·Π° ΠΎΡΡΡΡΠ°Π½ΡΠ²Π°Π½Π΅ Π½Π° Π³ΡΠ΅ΡΠΊΠΈ.
ΠΠΎΠ² Π°Π»Π³ΠΎΡΠΈΡΡΠΌ Π·Π° ΠΏΠΎΡΠΈΡΡΠ²Π°Π½Π΅ (ΠΠΠ)
- ΠΠ΅ΡΡΠΈΡ: v1.1
- ΠΠ°ΡΠΈ: Π°ΠΏΡΠΈΠ»
-
ΠΠ·Π΄Π°Π²Π°Π½Π΅
Π ΡΠ΅ΠΊΡΡΠ°ΡΠ° Π²Π΅ΡΡΠΈΡ Π½Π° werf v1.1 Π² ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ°ΡΠ° cleanup
ΠΡΠΌΠ° ΡΠ°Π·ΠΏΠΎΡΠ΅Π΄Π±Π° Π·Π° ΠΏΠΎΡΠΈΡΡΠ²Π°Π½Π΅ Π½Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π·Π° Π±Π°Π·ΠΈΡΠ°Π½Π°ΡΠ° Π½Π° ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅ ΡΡ
Π΅ΠΌΠ° Π·Π° ΠΌΠ°ΡΠΊΠΈΡΠ°Π½Π΅ - ΡΠ΅Π·ΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΠ΅ ΡΠ΅ Π½Π°ΡΡΡΠΏΠ²Π°Ρ.
Π‘ΡΡΠΎ ΡΠ°ΠΊΠ° ΡΠ΅ΠΊΡΡΠ°ΡΠ° Π²Π΅ΡΡΠΈΡ Π½Π° werf (v1.0 ΠΈ v1.1) ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΏΡΠ°Π²ΠΈΠ»Π° Π·Π° ΠΏΠΎΡΠΈΡΡΠ²Π°Π½Π΅ Π·Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ, ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π°Π½ΠΈ ΠΏΠΎΠ΄ ΡΡ Π΅ΠΌΠΈ Π·Π° ΠΌΠ°ΡΠΊΠΈΡΠ°Π½Π΅: Git ΠΊΠ»ΠΎΠ½, Git tag ΠΈΠ»ΠΈ Git commit.
ΠΠ·ΠΎΠ±ΡΠ΅ΡΠ΅Π½ Π΅ Π½ΠΎΠ² Π°Π»Π³ΠΎΡΠΈΡΡΠΌ Π·Π° ΠΏΠΎΡΠΈΡΡΠ²Π°Π½Π΅ Π½Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ, Π±Π°Π·ΠΈΡΠ°Π½ Π½Π° ΠΈΡΡΠΎΡΠΈΡΡΠ° Π½Π° ΠΊΠΎΠΌΠΈΡΠΈΡΠ΅ Π² Git, ΡΠ½ΠΈΡΠΈΡΠΈΡΠ°Π½ Π·Π° Π²ΡΠΈΡΠΊΠΈ ΡΡ Π΅ΠΌΠΈ Π·Π° ΠΌΠ°ΡΠΊΠΈΡΠ°Π½Π΅:
- Π‘ΡΡ ΡΠ°Π½ΡΠ²Π°ΠΉΡΠ΅ Π½Π΅ ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΎΡ N1 ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ, ΡΠ²ΡΡΠ·Π°Π½ΠΈ Ρ Π½Π°ΠΉ-Π½ΠΎΠ²ΠΈΡΠ΅ Π°Π½Π³Π°ΠΆΠΈΠΌΠ΅Π½ΡΠΈ N2 Π·Π° Π²ΡΠ΅ΠΊΠΈ git HEAD (ΠΊΠ»ΠΎΠ½ΠΎΠ²Π΅ ΠΈ ΡΠ°Π³ΠΎΠ²Π΅).
- Π‘ΡΡ ΡΠ°Π½ΡΠ²Π°ΠΉΡΠ΅ Π½Π΅ ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΎΡ N1 Π΅ΡΠ°ΠΏΠ½ΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ, ΡΠ²ΡΡΠ·Π°Π½ΠΈ Ρ N2 Π½Π°ΠΉ-ΡΠΊΠΎΡΠΎΡΠ½ΠΈ Π°Π½Π³Π°ΠΆΠΈΠΌΠ΅Π½ΡΠΈ Π·Π° Π²ΡΠ΅ΠΊΠΈ git HEAD (ΠΊΠ»ΠΎΠ½ΠΎΠ²Π΅ ΠΈ ΡΠ°Π³ΠΎΠ²Π΅).
- Π‘ΡΡ ΡΠ°Π½ΡΠ²Π°ΠΉΡΠ΅ Π²ΡΠΈΡΠΊΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ, ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Π²ΡΠ² Π²ΡΠΈΡΠΊΠΈ ΡΠ΅ΡΡΡΡΠΈ Π½Π° ΠΊΠ»ΡΡΡΠ΅Ρ Π½Π° Kubernetes (Π²ΡΠΈΡΠΊΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠΈ Π½Π° kube Π½Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈΡ ΡΠ°ΠΉΠ» ΠΈ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° ΠΎΡ ΠΈΠΌΠ΅Π½Π° ΡΠ΅ ΡΠΊΠ°Π½ΠΈΡΠ°Ρ; ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΡΠ΅ ΡΠΎΠ²Π° ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»Π½ΠΈ ΠΎΠΏΡΠΈΠΈ).
- Π‘ΡΡ ΡΠ°Π½ΡΠ²Π°ΠΉΡΠ΅ Π²ΡΠΈΡΠΊΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ, ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Π² ΠΌΠ°Π½ΠΈΡΠ΅ΡΡΠΈ Π·Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Π½Π° ΡΠ΅ΡΡΡΡΠΈ, Π·Π°ΠΏΠ°Π·Π΅Π½ΠΈ Π² ΠΈΠ·Π΄Π°Π½ΠΈΡΡΠ° Π½Π° Helm.
- ΠΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΈΠ·ΡΡΠΈΡΠΎ, Π°ΠΊΠΎ Π½Π΅ Π΅ ΡΠ²ΡΡΠ·Π°Π½ΠΎ Ρ Π½ΠΈΡΠΎ Π΅Π΄ΠΈΠ½ HEAD ΠΎΡ git (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π·Π°ΡΠΎΡΠΎ ΡΠ°ΠΌΠΈΡΡ ΡΡΠΎΡΠ²Π΅ΡΠ΅Π½ HEAD Π΅ ΠΈΠ·ΡΡΠΈΡ) ΠΈ Π½Π΅ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π² Π½ΠΈΠΊΠ°ΠΊΠ²ΠΈ ΠΌΠ°Π½ΠΈΡΠ΅ΡΡΠΈ Π² ΠΊΠ»ΡΡΡΠ΅ΡΠ° Π½Π° Kubernetes ΠΈ Π² ΠΈΠ·Π΄Π°Π½ΠΈΡΡΠ° Π½Π° Helm.
ΠΠ°ΡΠ°Π»Π΅Π»Π½ΠΎ ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ (β)
- ΠΠ΅ΡΡΠΈΡ: v1.1
- ΠΠ°ΡΠΈ: ΡΠ½ΡΠ°ΡΠΈ-ΡΠ΅Π²ΡΡΠ°ΡΠΈ Π°ΠΏΡΠΈΠ»*
Π’Π΅ΠΊΡΡΠ°ΡΠ° Π²Π΅ΡΡΠΈΡ Π½Π° werf ΡΡΠ±ΠΈΡΠ° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡΡΠ° ΠΈ Π°ΡΡΠ΅ΡΠ°ΠΊΡΠΈΡΠ΅, ΠΎΠΏΠΈΡΠ°Π½ΠΈ Π² werf.yaml
, ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎ. ΠΠ΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π΅ Π΄Π° ΡΠ΅ ΠΏΠ°ΡΠ°Π»Π΅Π»ΠΈΠ·ΠΈΡΠ° ΠΏΡΠΎΡΠ΅ΡΡΡ Π½Π° ΡΠ³Π»ΠΎΠ±ΡΠ²Π°Π½Π΅ Π½Π° Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΈ Π΅ΡΠ°ΠΏΠΈ ΠΎΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΈ Π°ΡΡΠ΅ΡΠ°ΠΊΡΠΈ, ΠΊΠ°ΠΊΡΠΎ ΠΈ Π΄Π° ΡΠ΅ ΠΎΡΠΈΠ³ΡΡΠΈ ΡΠ΄ΠΎΠ±Π΅Π½ ΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ²Π΅Π½ ΠΈΠ·Ρ
ΠΎΠ΄.
* ΠΠ°Π±Π΅Π»Π΅ΠΆΠΊΠ°: ΠΊΡΠ°ΠΉΠ½ΠΈΡΡ ΡΡΠΎΠΊ Π΅ ΠΈΠ·ΠΌΠ΅ΡΡΠ΅Π½ ΠΏΠΎΡΠ°Π΄ΠΈ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΡ ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ Π·Π° Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅ Π½Π° ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΎ Π°ΡΠ΅ΠΌΠ±Π»ΠΈΡΠ°Π½Π΅, ΠΊΠΎΠ΅ΡΠΎ ΡΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈ ΠΏΠΎΠ²Π΅ΡΠ΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π·Π° Ρ ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»Π½ΠΎ ΠΌΠ°ΡΠ°Π±ΠΈΡΠ°Π½Π΅, ΠΊΠ°ΠΊΡΠΎ ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° werf Ρ GitHub Actions. ΠΠ°ΡΠ°Π»Π΅Π»Π½ΠΎΡΠΎ ΡΠ³Π»ΠΎΠ±ΡΠ²Π°Π½Π΅ Π΅ ΡΠ»Π΅Π΄Π²Π°ΡΠ°ΡΠ° ΡΡΡΠΏΠΊΠ° Π½Π° ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ, ΠΎΡΠΈΠ³ΡΡΡΠ²Π°ΡΠ° Π²Π΅ΡΡΠΈΠΊΠ°Π»Π½Π° ΠΌΠ°ΡΠ°Π±ΠΈΡΡΠ΅ΠΌΠΎΡΡ ΠΏΡΠΈ ΡΠ³Π»ΠΎΠ±ΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° Π΅Π΄ΠΈΠ½ ΠΏΡΠΎΠ΅ΠΊΡ.
ΠΡΠ΅Ρ ΠΎΠ΄ ΠΊΡΠΌ Helm 3 (β)
- ΠΠ΅ΡΡΠΈΡ: v1.2
- ΠΠ°ΡΠΈ: ΡΠ΅Π²ΡΡΠ°ΡΠΈ-ΠΌΠ°ΡΡ ΠΌΠ°ΠΉ*
ΠΠΊΠ»ΡΡΠ²Π° ΠΌΠΈΠ³ΡΠ°ΡΠΈΡ ΠΊΡΠΌ Π½ΠΎΠ²Π° ΠΊΠΎΠ΄ΠΎΠ²Π° Π±Π°Π·Π°
* ΠΠ°Π±Π΅Π»Π΅ΠΆΠΊΠ°: ΠΏΡΠ΅ΠΌΠΈΠ½Π°Π²Π°Π½Π΅ΡΠΎ ΠΊΡΠΌ Helm 3 Π½ΡΠΌΠ° Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈ Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΊΡΠΌ werf, ΡΡΠΉ ΠΊΠ°ΡΠΎ Π²ΡΠΈΡΠΊΠΈ ΠΊΠ»ΡΡΠΎΠ²ΠΈ Ρ
Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ Π½Π° Helm 3 (3-ΠΏΠΎΡΠΎΡΠ½ΠΎ ΡΠ»ΠΈΠ²Π°Π½Π΅ ΠΈ Π±Π΅Π· ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅) Π²Π΅ΡΠ΅ ΡΠ° Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈ Π² werf. ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π° werf ΠΈΠΌΠ°
Jsonnet Π·Π° ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡΠ° Π½Π° Kubernetes (β)
- ΠΠ΅ΡΡΠΈΡ: v1.2
- ΠΠ°ΡΠΈ: ΡΠ½ΡΠ°ΡΠΈ-ΡΠ΅Π²ΡΡΠ°ΡΠΈ Π°ΠΏΡΠΈΠ»-ΠΌΠ°ΠΉ
Werf ΡΠ΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ Π½Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡΠ° Π·Π° Kubernetes Π²ΡΠ² ΡΠΎΡΠΌΠ°Ρ Jsonnet. Π ΡΡΡΠΎΡΠΎ Π²ΡΠ΅ΠΌΠ΅ werf ΡΠ΅ ΠΎΡΡΠ°Π½Π΅ ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌ Ρ Helm ΠΈ ΡΠ΅ ΠΈΠΌΠ° ΠΈΠ·Π±ΠΎΡ Π½Π° ΡΠΎΡΠΌΠ°Ρ Π½Π° ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅.
ΠΡΠΈΡΠΈΠ½Π°ΡΠ° Π΅, ΡΠ΅ ΡΠ°Π±Π»ΠΎΠ½ΠΈΡΠ΅ Π½Π° Go, ΡΠΏΠΎΡΠ΅Π΄ ΠΌΠ½ΠΎΠ³ΠΎ Ρ ΠΎΡΠ°, ΠΈΠΌΠ°Ρ Π²ΠΈΡΠΎΠΊΠ° Π²Ρ ΠΎΠ΄Π½Π° Π±Π°ΡΠΈΠ΅ΡΠ° ΠΈ ΡΠ°Π·Π±ΠΈΡΠ°Π΅ΠΌΠΎΡΡΡΠ° Π½Π° ΠΊΠΎΠ΄Π° Π½Π° ΡΠ΅Π·ΠΈ ΡΠ°Π±Π»ΠΎΠ½ΠΈ ΡΡΡΠΎ ΡΡΡΠ°Π΄Π°.
ΠΠ±ΠΌΠΈΡΠ»Ρ ΡΠ΅ ΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π·Π° Π²ΡΠ²Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° Π΄ΡΡΠ³ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ Π·Π° ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡΠ° Π½Π° Kubernetes (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Kustomize).
Π Π°Π±ΠΎΡΠ° Π² Kubernetes (β)
- ΠΠ΅ΡΡΠΈΡ: v1.2
- ΠΠ°ΡΠΈ: Π°ΠΏΡΠΈΠ»-ΠΌΠ°ΠΉ ΠΌΠ°ΠΉ-ΡΠ½ΠΈ
Π¦Π΅Π»: Π£Π²Π΅ΡΠ΅ΡΠ΅ ΡΠ΅, ΡΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡΡΠ° ΡΠ° ΡΡΠ·Π΄Π°Π΄Π΅Π½ΠΈ ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ ΡΠ΅ Π΄ΠΎΡΡΠ°Π²Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° runners Π² Kubernetes. Π’Π΅Π·ΠΈ. ΠΠΎΠ²ΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Ρ, ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π°Ρ, ΠΏΠΎΡΠΈΡΡΠ²Π°Ρ ΠΈ Π²Π½Π΅Π΄ΡΡΠ²Π°Ρ Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ ΠΎΡ Kubernetes pods.
ΠΠ° Π΄Π° ΠΏΡΠΈΠ»ΠΎΠΆΠΈΡΠ΅ ΡΠ°Π·ΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ, ΠΏΡΡΠ²ΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΡΠ·Π΄Π°Π²Π°ΡΠ΅ ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ (Π²ΠΈΠΆ ΡΠΎΡΠΊΠ°ΡΠ° ΠΏΠΎ-Π³ΠΎΡΠ΅).
Π’ΠΎΠΉ ΡΡΡΠΎ ΡΠ°ΠΊΠ° ΠΈΠ·ΠΈΡΠΊΠ²Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΡΠ΅ΠΆΠΈΠΌ Π½Π° ΡΠ°Π±ΠΎΡΠ° Π½Π° ΡΡΡΠΎΠΈΡΠ΅Π»Ρ Π±Π΅Π· Docker ΡΡΡΠ²ΡΡ (Ρ.Π΅. ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΈΡ, ΠΏΠΎΠ΄ΠΎΠ±Π½Π° Π½Π° Kaniko ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΈΡ Π² ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ).
Werf ΡΠ΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ΡΠΎ Π½Π° Kubernetes Π½Π΅ ΡΠ°ΠΌΠΎ Ρ Dockerfile, Π½ΠΎ ΠΈ ΡΡΡ ΡΠ²ΠΎΡ Stapel builder Ρ ΠΏΠΎΡΡΠ΅ΠΏΠ΅Π½Π½ΠΈ ΡΠ΅ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΈ Ansible.
Π‘ΡΡΠΏΠΊΠ° ΠΊΡΠΌ ΠΎΡΠ²ΠΎΡΠ΅Π½ΠΎ ΡΠ°Π·Π²ΠΈΡΠΈΠ΅
ΠΠ±ΠΈΡΠ°ΠΌΠ΅ Π½Π°ΡΠ°ΡΠ° ΠΎΠ±ΡΠ½ΠΎΡΡ (
Π‘ΡΠ²ΡΠ΅ΠΌ Π½Π°ΡΠΊΠΎΡΠΎ Π±Π΅ΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΎ Π΄Π° ΡΠ΅ ΠΏΡΠ΅ΠΌΠΈΠ½Π΅ ΠΊΡΠΌ
ΠΠ΅ΡΠ΅ ΡΠ²ΡΡΡΠ΅Π½Π° ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°Π±ΠΎΡΠ° ΠΏΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈΡΠ΅:
- ΠΡΠ΅ΠΌΠ°Ρ Π½Π°ΡΠΈ ΡΠ° Π½Π΅ΡΠΌΠ΅ΡΡΠ½ΠΈΡΠ΅.
- Π‘ΡΡΠ΅ΡΡΠ²ΡΠ²Π°ΡΠΈΡΠ΅ ΡΠ΅ ΠΏΡΠΈΠ²Π΅ΠΆΠ΄Π°Ρ Π² Π΅Π΄ΠΈΠ½Π΅Π½ ΡΠΎΡΠΌΠ°Ρ, Ρ Π΄ΠΎΡΡΠ°ΡΡΡΠ΅Π½ Π±ΡΠΎΠΉ Π΄Π΅ΡΠ°ΠΉΠ»ΠΈ ΠΈ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΡΡΠΈ.
- ΠΠΎΠ±Π°Π²Π΅Π½ΠΈ ΡΠ° Π½ΠΎΠ²ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ Ρ ΠΈΠ΄Π΅ΠΈ ΠΈ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΠ°ΠΊ Π΄Π° Π°ΠΊΡΠΈΠ²ΠΈΡΠ°ΠΌ Π²Π΅ΡΡΠΈΡ v1.1
Π ΠΌΠΎΠΌΠ΅Π½ΡΠ° Π²Π΅ΡΡΠΈΡΡΠ° Π΅ Π΄ΠΎΡΡΡΠΏΠ½Π° Π²
source $(multiwerf use 1.1 ea)
werf COMMAND ...
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
ΠΠΎΠ²Π°ΡΠ° Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠ° Π·Π° ΡΡΡ
ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π½Π° ΡΡΠ΅Π½Π°ΡΠ° ΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈΡΠ΅ Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΎΡΠ° Π·Π° Stapel ΠΈ Dockerfile builder ΠΎΡΠ²Π°ΡΡΡ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π·Π° Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅ Π½Π° ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈ ΠΈ ΠΏΠ°ΡΠ°Π»Π΅Π»Π½ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΈΠΈ Π² werf. Π’Π΅Π·ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠΊΠΎΡΠΎ ΡΠ΅ ΡΠ΅ ΠΏΠΎΡΠ²ΡΡ Π² ΡΡΡΠ°ΡΠ° Π²Π΅ΡΡΠΈΡ v1.1 ΠΈ ΡΠ΅ ΡΡΠ°Π½Π°Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ Π΄ΠΎΡΡΡΠΏΠ½ΠΈ ΡΡΠ΅Π· ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌΠ° Π·Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ Π°ΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅ (Π·Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ
Π ΡΠ°Π·ΠΈ Π²Π΅ΡΡΠΈΡ Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° ΡΡΡΠ°ΡΠ΅Π³ΠΈΡ Π·Π° ΠΌΠ°ΡΠΊΠΈΡΠ°Π½Π΅, Π±Π°Π·ΠΈΡΠ°Π½Π° Π½Π° ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅ Π½Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ - ΠΌΠ°ΡΠΊΠΈΡΠ°Π½Π΅, Π±Π°Π·ΠΈΡΠ°Π½ΠΎ Π½Π° ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅, ΠΊΠΎΠ΅ΡΠΎ ΡΠ΅ ΠΏΡΠ΅Π²ΡΡΠ½Π° Π² ΡΡΡΠ°ΡΠ΅Π³ΠΈΡ ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅. ΠΡΠ½ΠΎΠ²Π½ΠΈΡΡ Π΄Π½Π΅Π²Π½ΠΈΠΊ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄ΠΈΡΠ΅ ΡΡΡΠΎ Π΅ ΠΏΡΠ΅ΡΠ°Π±ΠΎΡΠ΅Π½: werf build
, werf publish
, werf deploy
, werf dismiss
, werf cleanup
.
Π‘Π»Π΅Π΄Π²Π°ΡΠ°ΡΠ° Π²Π°ΠΆΠ½Π° ΡΡΡΠΏΠΊΠ° Π΅ Π΄ΠΎΠ±Π°Π²ΡΠ½Π΅ΡΠΎ Π½Π° ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈ ΡΠ±ΠΎΡΠΊΠΈ. Π Π°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΈΠΈ ΡΠ΅ ΠΏΡΠ΅Π²ΡΡΠ½Π°Ρ Π° Π² ΠΏΠΎ-Π²ΠΈΡΠΎΠΊ ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ ΠΎΡ ΠΏΠ°ΡΠ°Π»Π΅Π»Π½ΠΈΡΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΈΠΈ ΡΠ»Π΅Π΄ v1.0, ΡΡΠΉ ΠΊΠ°ΡΠΎ ΡΠ΅ Π΄ΠΎΠ±Π°Π²ΡΡ ΠΏΠΎΠ²Π΅ΡΠ΅ ΡΡΠΎΠΉΠ½ΠΎΡΡ ΠΊΡΠΌ werf: Π²Π΅ΡΡΠΈΠΊΠ°Π»Π½ΠΎ ΠΌΠ°ΡΠ°Π±ΠΈΡΠ°Π½Π΅ Π½Π° ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠΈ ΠΈ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΠΊΡΠ°ΡΠΊΠΎΡΡΠ°ΠΉΠ½ΠΈ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠΈ Π² ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ CI/CD ΡΠΈΡΡΠ΅ΠΌΠΈ, ΠΊΠ°ΠΊΡΠΎ ΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΠΎΡΠΈΡΠΈΠ°Π»Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° GitHub Actions . ΠΠΎΡΠ°Π΄ΠΈ ΡΠΎΠ²Π° ΡΡΠΎΠΊΠΎΠ²Π΅ΡΠ΅ Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΠ°ΡΠ°Π»Π΅Π»Π½ΠΈΡΠ΅ ΠΌΠΎΠ½ΡΠ°ΠΆΠΈ Π±ΡΡ Π° ΠΈΠ·ΠΌΠ΅ΡΡΠ΅Π½ΠΈ. ΠΠΈΠ΅ ΠΎΠ±Π°ΡΠ΅ ΡΠ°Π±ΠΎΡΠΈΠΌ Π·Π° ΠΏΡΠΈΠ»Π°Π³Π°Π½Π΅ΡΠΎ Π½Π° Π΄Π²Π΅ΡΠ΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉ-ΡΠΊΠΎΡΠΎ.
Π‘Π»Π΅Π΄Π΅ΡΠ΅ Π½ΠΎΠ²ΠΈΠ½ΠΈΡΠ΅! Π Π½Π΅ Π·Π°Π±ΡΠ°Π²ΡΠΉΡΠ΅ Π΄Π° Π½ΠΈ ΠΏΠΎΡΠ΅ΡΠΈΡΠ΅ Π½Π°
PS
ΠΡΠΎΡΠ΅ΡΠ΅ΡΠ΅ ΡΡΡΠΎ Π² Π½Π°ΡΠΈΡ Π±Π»ΠΎΠ³:
- Β«
ΠΡΠ΅Π΄ΡΡΠ°Π²ΡΠ½Π΅ Π½Π° werf 1.0 stable: ΠΊΠ°ΠΊΠ²ΠΎ ΠΎΠ±ΡΠΎ ΠΈΠΌΠ° GitOps Ρ Π½Π΅Π³ΠΎ, ΡΡΠ°ΡΡΡ ΠΈ ΠΏΠ»Π°Π½ΠΎΠ²Π΅ Β» - Β«
werf - Π½Π°ΡΠΈΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π·Π° CI / CD Π² Kubernetes (ΠΎΠ±Ρ ΠΏΡΠ΅Π³Π»Π΅Π΄ ΠΈ Π²ΠΈΠ΄Π΅ΠΎ ΠΎΡΡΠ΅Ρ) Β»; - ΠΠΎΡΠ΅Π΄ΠΈΡΠ° ΠΎΡ Π±Π΅Π»Π΅ΠΆΠΊΠΈ Π·Π° ΠΈΠ½ΠΎΠ²Π°ΡΠΈΠΈΡΠ΅ Π² werf:
- Β«
3-ΠΏΠΎΡΠΎΡΠ½ΠΎ ΡΠ»ΠΈΠ²Π°Π½Π΅ ΠΊΡΠΌ werf: Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅ Π² Kubernetes Ρ Helm βΠ½Π° ΡΡΠ΅ΡΠΎΠΈΠ΄ΠΈβ Β»; - Β«
ΠΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° werf Π·Π° Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅ Π½Π° ΡΠ»ΠΎΠΆΠ½ΠΈ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΈ Π½Π° Helm Β»; - Β«
ΠΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° monorepo ΠΈ multirepo Π² werf ΠΈ ΠΊΠ°ΠΊΠ²ΠΎ ΠΎΠ±ΡΠΎ ΠΈΠΌΠ° Docker Registry Ρ ΡΠΎΠ²Π° Β»; - Β«
ΠΠ΅ΡΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΡΠ·Π΄Π°Π²Π°ΡΠ΅ Docker ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π² werf, ΠΊΠ°ΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ Dockerfile ".
- Β«
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: www.habr.com