ΠΡΠ½ΠΎΠ²Π°ΡΠ° Π½Π° ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ΡΠΎ Π΅ Π½ΠΎΠ²Π°ΡΠ° Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠ° Π·Π° ΡΠΊΠ»Π°Π΄ΠΈΡΠ°ΡΠ΅ Π½Π° ΡΡΠ΅Π½Π°ΡΠ° ΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡΠ° Π½Π° ΡΠ°Π±ΠΎΡΠ°ΡΠ° Π½Π° Π΄Π²Π°ΡΠ° ΠΊΠΎΠ»Π΅ΠΊΡΠΎΡΠΈ (Π·Π° Stapel ΠΈ Dockerfile). ΠΠΎΠ²Π°ΡΠ° Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠ° Π·Π° ΡΠΊΠ»Π°Π΄ΠΈΡΠ°ΡΠ΅ ΡΠ° ΠΎΡΠ²ΠΎΡΠ° ΠΌΠΎΠΆΠ½ΠΎΡΡΠ° Π·Π° ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠ° Π½Π° Π΄ΠΈΡΡΡΠΈΠ±ΡΠΈΡΠ°Π½ΠΈ ΡΠΊΠ»ΠΎΠΏΠΎΠ²ΠΈ ΠΎΠ΄ ΠΏΠΎΠ²Π΅ΡΠ΅ Ρ
ΠΎΡΡΠΎΠ²ΠΈ ΠΈ ΠΏΠ°ΡΠ°Π»Π΅Π»Π½ΠΈ ΡΠΊΠ»ΠΎΠΏΠΎΠ²ΠΈ Π½Π° ΠΈΡΡΠΈΠΎΡ Π΄ΠΎΠΌΠ°ΡΠΈΠ½.
ΠΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡΠ°ΡΠ° Π½Π° ΡΠ°Π±ΠΎΡΠ°ΡΠ° Π²ΠΊΠ»ΡΡΡΠ²Π° ΠΎΡΠ»ΠΎΠ±ΠΎΠ΄ΡΠ²Π°ΡΠ΅ ΠΎΠ΄ Π½Π΅ΠΏΠΎΡΡΠ΅Π±Π½ΠΈΡΠ΅ ΠΏΡΠ΅ΡΠΌΠ΅ΡΠΊΠΈ Π²ΠΎ ΡΠ°Π·Π°ΡΠ° Π½Π° ΠΏΡΠ΅ΡΠΌΠ΅ΡΡΠ²Π°ΡΠ΅ ΠΏΠΎΡΠΏΠΈΡΠΈ Π½Π° ΡΠ°Π·Π° ΠΈ ΠΌΠ΅Π½ΡΠ²Π°ΡΠ΅ Π½Π° ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌΠΈΡΠ΅ Π·Π° ΠΏΡΠ΅ΡΠΌΠ΅ΡΡΠ²Π°ΡΠ΅ Π½Π° ΠΊΠΎΠ½ΡΡΠΎΠ»Π½ΠΈ ΡΡΠΌΠΈ Π½Π° Π΄Π°ΡΠΎΡΠ΅ΠΊΠΈ Π½Π° ΠΏΠΎΠ΅ΡΠΈΠΊΠ°ΡΠ½ΠΈ. ΠΠ²Π°Π° ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡΠ° Π³ΠΎ Π½Π°ΠΌΠ°Π»ΡΠ²Π° ΠΏΡΠΎΡΠ΅ΡΠ½ΠΎΡΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΠΈΠ·ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠΈ ΡΠΎ ΠΏΠΎΠΌΠΎΡ Π½Π° werf. Π Π½Π΅Π°ΠΊΡΠΈΠ²Π΅Π½ builds, ΠΊΠΎΠ³Π° ΡΠΈΡΠ΅ ΡΠ°Π·ΠΈ ΠΏΠΎΡΡΠΎΡΠ°Ρ Π²ΠΎ ΠΊΠ΅ΡΠΎΡ ΡΠ°Π·ΠΈ-ΡΠΊΠ»Π°Π΄ΠΈΡΠ°ΡΠ΅, ΡΠ΅Π³Π° ΡΠ΅ Π½Π°Π²ΠΈΡΡΠΈΠ½Π° Π±ΡΠ·ΠΈ. ΠΠΎ ΠΏΠΎΠ²Π΅ΡΠ΅ΡΠΎ ΡΠ»ΡΡΠ°ΠΈ, ΡΠ΅ΡΡΠ°ΡΡΠΈΡΠ°ΡΠ΅ΡΠΎ Π½Π° ΠΈΠ·Π³ΡΠ°Π΄Π±Π°ΡΠ° ΡΠ΅ ΠΏΠΎΡΡΠ°Π΅ ΠΏΠΎΠΌΠ°Π»ΠΊΡ ΠΎΠ΄ 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 commits:
- ΠΠ΅ΡΡ Π³ΠΎ ΠΏΡΠ΅ΡΠΌΠ΅ΡΡΠ²Π° ΠΏΠΎΡΠΏΠΈΡΠΎΡ Π½Π° ΠΎΠ΄ΡΠ΅Π΄Π΅Π½Π° ΡΠ°Π·Π°.
- Π ΡΠ°Π·ΠΈ-ΡΠΊΠ»Π°Π΄ΠΈΡΠ°ΡΠ΅ ΠΠΎΠΆΠ΅ Π΄Π° ΠΈΠΌΠ° Π½Π΅ΠΊΠΎΠ»ΠΊΡ ΡΠ°Π·ΠΈ Π·Π° Π΄Π°Π΄Π΅Π½ ΠΏΠΎΡΠΏΠΈΡ. ΠΠ΅ΡΡ Π³ΠΈ ΠΈΠ·Π±ΠΈΡΠ° ΡΠΈΡΠ΅ ΡΠ°Π·ΠΈ ΡΡΠΎ ΠΎΠ΄Π³ΠΎΠ²Π°ΡΠ°Π°Ρ Π½Π° ΠΏΠΎΡΠΏΠΈΡΠΎΡ.
- ΠΠΊΠΎ ΡΠ΅ΠΊΠΎΠ²Π½Π°ΡΠ° ΡΠ°Π·Π° Π΅ ΠΏΠΎΠ²ΡΠ·Π°Π½Π° ΡΠΎ Git (git-Π°ΡΡ
ΠΈΠ²Π°, ΠΏΡΠΈΡΠΏΠΎΡΠΎΠ±Π΅Π½Π° ΡΠ°Π·Π° ΡΠΎ Git Π·Π°ΠΊΡΠΏΠΈ:
install
,beforeSetup
,setup
; ΠΈΠ»ΠΈ git-latest-patch), ΡΠΎΠ³Π°Ρ werf Π³ΠΈ ΠΈΠ·Π±ΠΈΡΠ° ΡΠ°ΠΌΠΎ ΠΎΠ½ΠΈΠ΅ ΡΠ°Π·ΠΈ ΠΊΠΎΠΈ ΡΠ΅ ΠΏΠΎΠ²ΡΠ·Π°Π½ΠΈ ΡΠΎ commit ΡΡΠΎ Π΅ ΠΏΡΠ΅Π΄ΠΎΠΊ Π½Π° ΡΠ΅ΠΊΠΎΠ²Π½ΠΈΠΎΡ commit (Π·Π° ΠΊΠΎΡ ΡΠ΅ Π½Π°ΡΠ΅ΠΊΡΠ²Π° ΠΈΠ·Π³ΡΠ°Π΄Π±Π°ΡΠ°). - ΠΠ΄ ΠΏΡΠ΅ΠΎΡΡΠ°Π½Π°ΡΠΈΡΠ΅ ΠΏΠΎΠ³ΠΎΠ΄Π½ΠΈ ΡΠ°Π·ΠΈ, ΡΠ΅ ΠΈΠ·Π±ΠΈΡΠ° Π΅Π΄Π½Π° - Π½Π°ΡΡΡΠ°ΡΠ°ΡΠ° ΠΏΠΎ Π΄Π°ΡΡΠΌΠΎΡ Π½Π° ΡΠΎΠ·Π΄Π°Π²Π°ΡΠ΅.
Π‘ΡΠ΅Π½Π°ΡΠ° Π·Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π³ΡΠ°Π½ΠΊΠΈ Π½Π° Git ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠΌΠ° ΠΈΡΡ ΠΏΠΎΡΠΏΠΈΡ. ΠΠΎ, 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
) ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π²ΠΈΠ΄ΠΈΡΠ΅ ΠΊΠ°ΠΊΠΎ ΡΠ°Π±ΠΎΡΠΈ Π²Π΅ΡΡ:
ΠΠ΅ΡΠ°Π»Π΅Π½ ΠΈΠ·Π»Π΅Π· (--log-debug
), ΠΏΠΎΠΊΡΠ°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈΡΠ΅ Π·Π° Π΄Π΅Π±Π°Π³ΠΈΡΠ°ΡΠ΅ Π½Π° werf, ΡΠΎΠ΄ΡΠΆΠΈ ΠΈ Π΄Π½Π΅Π²Π½ΠΈΡΠΈ Π½Π° ΠΊΠΎΡΠΈΡΡΠ΅Π½ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ. ΠΠ° ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π²ΠΈΠ΄ΠΈΡΠ΅ ΠΊΠ°ΠΊΠΎ ΡΠ΅ ΡΠ°Π²ΡΠ²Π° ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΡΠ°ΡΠ° ΡΠΎ Docker Registry, Π° ΠΈΡΡΠΎ ΡΠ°ΠΊΠ° Π΄Π° Π³ΠΈ ΡΠ½ΠΈΠΌΠΈΡΠ΅ ΠΌΠ΅ΡΡΠ°ΡΠ° ΠΊΠ°Π΄Π΅ ΡΡΠΎ ΡΠ΅ ΡΡΠΎΡΠΈ Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ Π²ΡΠ΅ΠΌΠ΅:
ΠΠ΄Π½ΠΈ ΠΏΠ»Π°Π½ΠΎΠ²ΠΈ
ΠΡΠ΅Π΄ΡΠΏΡΠ΅Π΄ΡΠ²Π°ΡΠ΅! ΠΠΏΡΠΈΠΈΡΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈ ΠΏΠΎΠ΄ΠΎΠ»Ρ ΡΠ΅ ΠΎΠ·Π½Π°ΡΠ΅Π½ΠΈ v1.1 ΡΠ΅ ΡΡΠ°Π½Π°Ρ Π΄ΠΎΡΡΠ°ΠΏΠ½ΠΈ Π²ΠΎ ΠΎΠ²Π°Π° Π²Π΅ΡΠ·ΠΈΡΠ°, ΠΌΠ½ΠΎΠ³Ρ ΠΎΠ΄ Π½ΠΈΠ² Π²ΠΎ Π±Π»ΠΈΡΠΊΠ° ΠΈΠ΄Π½ΠΈΠ½Π°. ΠΠΆΡΡΠΈΡΠ°ΡΠ°ΡΠ° ΡΠ΅ Π΄ΠΎΠ°ΡΠ°Π°Ρ ΠΏΡΠ΅ΠΊΡ Π°Π²ΡΠΎΠΌΠ°ΡΡΠΊΠΎ Π°ΠΆΡΡΠΈΡΠ°ΡΠ΅
Π¦Π΅Π»ΠΎΡΠ½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΊΠ° Π·Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ Π½Π° Docker Registry (ΠΠΠ)
- ΠΠ΅ΡΠ·ΠΈΡΠ°: v1.1
- ΠΠ°ΡΡΠΌΠΈ: ΠΌΠ°ΡΡ
-
ΠΈΡΡ ΠΎΠ΄ΠΎΡ
Π¦Π΅Π»ΡΠ° Π΅ ΠΊΠΎΡΠΈΡΠ½ΠΈΠΊΠΎΡ Π΄Π° ΠΊΠΎΡΠΈΡΡΠΈ ΠΏΡΠΈΠ»Π°Π³ΠΎΠ΄Π΅Π½Π° ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠ° Π±Π΅Π· ΠΎΠ³ΡΠ°Π½ΠΈΡΡΠ²Π°ΡΠ° ΠΏΡΠΈ ΠΊΠΎΡΠΈΡΡΠ΅ΡΠ΅ Π½Π° werf.
ΠΠΎ ΠΌΠΎΠΌΠ΅Π½ΡΠΎΠ², Π³ΠΎ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΡΠ²Π°Π²ΠΌΠ΅ ΡΠ»Π΅Π΄Π½ΠΈΠΎΡ ΡΠ΅Ρ Π½Π° ΡΠ΅ΡΠ΅Π½ΠΈΡΠ° Π·Π° ΠΊΠΎΠΈ ΡΠ΅ Π³Π°ΡΠ°Π½ΡΠΈΡΠ°ΠΌΠ΅ ΡΠ΅Π»ΠΎΡΠ½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΊΠ°:
- Π‘ΡΠ°Π½Π΄Π°ΡΠ΄Π½ΠΎ (Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°/ΡΠ΅Π³ΠΈΡΡΠ°Ρ)*,
- AWS ECR
- ΠΠ·ΡΡ*,
- Docker Hub
- ΠΠ¦Π *,
- GitHub ΠΏΠ°ΠΊΠ΅ΡΠΈ
- Π Π΅Π³ΠΈΡΡΠ°Ρ Π½Π° GitLab*,
- ΠΡΠΈΡΡΠ°Π½ΠΈΡΡΠ΅ *,
- ΠΠ΅Ρ.
Π Π΅ΡΠ΅Π½ΠΈΡΠ°ΡΠ° ΠΊΠΎΠΈ ΠΌΠΎΠΌΠ΅Π½ΡΠ°Π»Π½ΠΎ ΡΠ΅ ΡΠ΅Π»ΠΎΡΠ½ΠΎ ΠΏΠΎΠ΄Π΄ΡΠΆΠ°Π½ΠΈ ΠΎΠ΄ werf ΡΠ΅ ΠΎΠ·Π½Π°ΡΠ΅Π½ΠΈ ΡΠΎ ΡΠ²Π΅Π·Π΄ΠΈΡΠΊΠ°. ΠΠ° Π΄ΡΡΠ³ΠΈΡΠ΅ ΠΈΠΌΠ° ΠΏΠΎΠ΄Π΄ΡΡΠΊΠ°, Π½ΠΎ ΡΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΡΠ²Π°ΡΠ°.
ΠΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΡΠ²Π°Π°Ρ Π΄Π²Π° Π³Π»Π°Π²Π½ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ:
- ΠΠ΅ΠΊΠΎΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΡΠ° Π½Π΅ ΠΏΠΎΠ΄Π΄ΡΠΆΡΠ²Π°Π°Ρ ΠΎΡΡΡΡΠ°Π½ΡΠ²Π°ΡΠ΅ ΠΎΠ·Π½Π°ΠΊΠΈ ΡΠΎ ΠΊΠΎΡΠΈΡΡΠ΅ΡΠ΅ Π½Π° Docker Registry API, ΡΠΏΡΠ΅ΡΡΠ²Π°ΡΡΠΈ Π³ΠΈ ΠΊΠΎΡΠΈΡΠ½ΠΈΡΠΈΡΠ΅ Π΄Π° ΠΊΠΎΡΠΈΡΡΠ°Ρ Π°Π²ΡΠΎΠΌΠ°ΡΡΠΊΠΎ ΡΠΈΡΡΠ΅ΡΠ΅ Π½Π° werf. ΠΠ²Π° Π²Π°ΠΆΠΈ Π·Π° ΠΏΠ°ΠΊΠ΅ΡΠΈΡΠ΅ AWS ECR, Docker Hub ΠΈ GitHub.
- ΠΠ΅ΠΊΠΎΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΡΠ° Π½Π΅ ΠΏΠΎΠ΄Π΄ΡΠΆΡΠ²Π°Π°Ρ ΡΠ°ΠΊΠ°Π½Π°ΡΠ΅ΡΠ΅Π½ΠΈ Π²Π³Π½Π΅Π·Π΄Π΅Π½ΠΈ ΡΠΊΠ»Π°Π΄ΠΈΡΡΠ° (Docker Hub, GitHub Packages ΠΈ Quay), Π½ΠΎ ΠΊΠΎΡΠΈΡΠ½ΠΈΠΊΠΎΡ ΠΌΠΎΡΠ° Π΄Π° Π³ΠΈ ΠΊΡΠ΅ΠΈΡΠ° ΡΠ°ΡΠ½ΠΎ ΠΊΠΎΡΠΈΡΡΠ΅ΡΡΠΈ UI ΠΈΠ»ΠΈ API (AWS ECR).
ΠΠ΅ Π³ΠΈ ΡΠ΅ΡΠΈΠΌΠ΅ ΠΎΠ²ΠΈΠ΅ ΠΈ Π΄ΡΡΠ³ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ ΠΊΠΎΡΠΈΡΡΠ΅ΡΡΠΈ ΠΏΡΠΈΡΠΎΠ΄Π½ΠΈ API Π½Π° ΡΠ΅ΡΠ΅Π½ΠΈΡΠ°ΡΠ°. ΠΠ²Π°Π° Π·Π°Π΄Π°ΡΠ°, ΠΈΡΡΠΎ ΡΠ°ΠΊΠ°, Π²ΠΊΠ»ΡΡΡΠ²Π° ΠΏΠΎΠΊΡΠΈΠ²Π°ΡΠ΅ Π½Π° ΡΠ΅Π»ΠΎΡΠ½ΠΈΠΎΡ ΡΠΈΠΊΠ»ΡΡ Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΠ° Π½Π° werf ΡΠΎ ΡΠ΅ΡΡΠΎΠ²ΠΈ Π·Π° ΡΠ΅ΠΊΠΎΡ ΠΎΠ΄ Π½ΠΈΠ².
ΠΠΈΡΡΡΠΈΠ±ΡΠΈΡΠ°Π½Π° Π³ΡΠ°Π΄Π±Π° Π½Π° ΡΠ»ΠΈΠΊΠΈ (β)
- ΠΠ΅ΡΠ·ΠΈΡΠ°: v1.2 v1.1 (ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠΎΡ Π·Π° ΡΠΏΡΠΎΠ²Π΅Π΄ΡΠ²Π°ΡΠ΅ Π½Π° ΠΎΠ²Π°Π° ΡΡΠ½ΠΊΡΠΈΡΠ° Π΅ Π·Π³ΠΎΠ»Π΅ΠΌΠ΅Π½)
- ΠΠ°ΡΡΠΌΠΈ: ΠΌΠ°ΡΡ-Π°ΠΏΡΠΈΠ» ΠΌΠ°ΡΡ
-
ΠΈΡΡ ΠΎΠ΄ΠΎΡ
ΠΠΎ ΠΌΠΎΠΌΠ΅Π½ΡΠΎΠ², werf v1.0 ΠΈ v1.1 ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠ°Ρ ΡΠ°ΠΌΠΎ Π½Π° Π΅Π΄Π΅Π½ ΠΏΠΎΡΠ²Π΅ΡΠ΅Π½ Π΄ΠΎΠΌΠ°ΡΠΈΠ½ Π·Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π·Π° Π³ΡΠ°Π΄Π΅ΡΠ΅ ΠΈ ΠΎΠ±ΡΠ°Π²ΡΠ²Π°ΡΠ΅ ΡΠ»ΠΈΠΊΠΈ ΠΈ ΡΠ°ΡΠΏΠΎΡΠ΅Π΄ΡΠ²Π°ΡΠ΅ Π½Π° Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΠ°ΡΠ° Π½Π° Kubernetes.
ΠΠ° Π΄Π° ΡΠ΅ ΠΎΡΠ²ΠΎΡΠ°Ρ ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈΡΠ΅ Π·Π° Π΄ΠΈΡΡΡΠΈΠ±ΡΠΈΡΠ°Π½Π° ΡΠ°Π±ΠΎΡΠ° Π½Π° werf, ΠΊΠΎΠ³Π° ΠΈΠ·Π³ΡΠ°Π΄Π±Π°ΡΠ° ΠΈ ΡΠ°ΡΠΏΠΎΡΠ΅Π΄ΡΠ²Π°ΡΠ΅ΡΠΎ Π½Π° Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈΡΠ΅ Π²ΠΎ Kubernetes ΡΠ΅ ΡΡΠ°ΡΡΡΠ²Π°Π°Ρ Π½Π° Π½Π΅ΠΊΠΎΠ»ΠΊΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»Π½ΠΈ Ρ ΠΎΡΡΠΎΠ²ΠΈ ΠΈ ΠΎΠ²ΠΈΠ΅ Ρ ΠΎΡΡΠΎΠ²ΠΈ Π½Π΅ ΡΠ° Π·Π°ΡΡΠ²ΡΠ²Π°Π°Ρ ΡΠ²ΠΎΡΠ°ΡΠ° ΡΠΎΡΡΠΎΡΠ±Π° ΠΏΠΎΠΌΠ΅ΡΡ Π³ΡΠ°Π΄Π±ΠΈΡΠ΅ (ΠΏΡΠΈΠ²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΡΡΠΊΠ°ΡΠΈ), ΠΏΠΎΡΡΠ΅Π±Π½ΠΎ Π΅ werf Π΄Π° ΡΠ° ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠΈΡΠ° ΠΌΠΎΠΆΠ½ΠΎΡΡΠ° Π·Π° ΠΊΠΎΡΠΈΡΡΠ΅ΡΠ΅ Docker Registry ΠΊΠ°ΠΊΠΎ ΠΏΡΠΎΠ΄Π°Π²Π½ΠΈΡΠ° Π·Π° ΡΡΠ΅Π½Π°.
ΠΡΠ΅ΡΡ ΠΎΠ΄Π½ΠΎ, ΠΊΠΎΠ³Π° ΠΏΡΠΎΠ΅ΠΊΡΠΎΡ werf ΡΓ¨ ΡΡΡΠ΅ ΡΠ΅ Π½Π°ΡΠ΅ΠΊΡΠ²Π°ΡΠ΅ dapp, ΠΈΠΌΠ°ΡΠ΅ ΡΠ°ΠΊΠ²Π° ΠΌΠΎΠΆΠ½ΠΎΡΡ. Π‘Π΅ΠΏΠ°ΠΊ, Π½Π°ΠΈΠ΄ΠΎΠ²ΠΌΠ΅ Π½Π° Π³ΠΎΠ»Π΅ΠΌ Π±ΡΠΎΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ ΠΊΠΎΠΈ ΡΡΠ΅Π±Π° Π΄Π° ΡΠ΅ Π·Π΅ΠΌΠ°Ρ ΠΏΡΠ΅Π΄Π²ΠΈΠ΄ ΠΏΡΠΈ ΡΠΏΡΠΎΠ²Π΅Π΄ΡΠ²Π°ΡΠ΅ Π½Π° ΠΎΠ²Π°Π° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡ Π²ΠΎ werf.
ΠΠΌΠ°ΡΡΠ΅ Π½Π° ΡΠΌ. ΠΠ²Π°Π° ΡΡΠ½ΠΊΡΠΈΡΠ° Π½Π΅ Π±Π°ΡΠ° ΠΊΠΎΠ»Π΅ΠΊΡΠΎΡΠΎΡ Π΄Π° ΡΠ°Π±ΠΎΡΠΈ Π²ΠΎ ΠΊΡΠ±Π΅ΡΠ½Π΅ΡΡΠΊΠΈΡΠ΅ ΠΏΠΎΠ΄Π»ΠΎΠ³ΠΈ, Π±ΠΈΠ΄Π΅ΡΡΠΈ ΠΠ° Π΄Π° Π³ΠΎ Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅ ΠΎΠ²Π°, ΡΡΠ΅Π±Π° Π΄Π° ΡΠ΅ ΠΎΡΠ»ΠΎΠ±ΠΎΠ΄ΠΈΡΠ΅ ΠΎΠ΄ Π·Π°Π²ΠΈΡΠ½ΠΎΡΡΠ° ΠΎΠ΄ Π»ΠΎΠΊΠ°Π»Π½ΠΈΠΎΡ ΡΠ΅ΡΠ²Π΅Ρ Docker (Π²ΠΎ ΠΏΠΎΠ΄Π»ΠΎΠ³Π°ΡΠ° Kubernetes Π½Π΅ΠΌΠ° ΠΏΡΠΈΡΡΠ°ΠΏ Π΄ΠΎ Π»ΠΎΠΊΠ°Π»Π½ΠΈΠΎΡ ΡΠ΅ΡΠ²Π΅Ρ Docker, Π±ΠΈΠ΄Π΅ΡΡΠΈ ΡΠ°ΠΌΠΈΠΎΡ ΠΏΡΠΎΡΠ΅Ρ ΡΠ°Π±ΠΎΡΠΈ Π²ΠΎ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅Ρ, Π° werf Π½Π΅ ΠΏΠΎΠ΄Π΄ΡΠΆΡΠ²Π° ΠΈ Π½Π΅ΠΌΠ° Π΄Π° ΠΏΠΎΠ΄Π΄ΡΠΆΡΠ²Π° ΡΠ°Π±ΠΎΡΠ° ΡΠΎ ΡΠ΅ΡΠ²Π΅ΡΠΎΡ Docker ΠΏΡΠ΅ΠΊΡ ΠΌΡΠ΅ΠΆΠ°ΡΠ°). ΠΠΎΠ΄Π΄ΡΡΠΊΠ°ΡΠ° Π·Π° Π²ΠΎΠ΄Π΅ΡΠ΅ Π½Π° Kubernetes ΡΠ΅ ΡΠ΅ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠΈΡΠ° ΠΏΠΎΡΠ΅Π±Π½ΠΎ.
ΠΡΠΈΡΠΈΡΠ°Π»Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΊΠ° Π·Π° GitHub Actions (ΠΠΠΠ)
- ΠΠ΅ΡΠ·ΠΈΡΠ°: v1.1
- ΠΠ°ΡΡΠΌΠΈ: ΠΌΠ°ΡΡ
-
ΠΈΡΡ ΠΎΠ΄ΠΎΡ
ΠΠΊΠ»ΡΡΡΠ²Π° Π²Π΅ΡΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠ° (Π΄Π΅Π»ΠΎΠ²ΠΈ ΡΠΏΠ°ΡΡΠ²Π°ΡΠ΅ ΠΈ Π²ΠΎΠ΄ΠΈΡ), ΠΊΠ°ΠΊΠΎ ΠΈ ΠΎΡΠΈΡΠΈΡΠ°Π»Π½Π°ΡΠ° GitHub Action Π·Π° ΡΠ°Π±ΠΎΡΠ° ΡΠΎ werf.
ΠΠΎΠΊΡΠ°Ρ ΡΠΎΠ°, ΡΠ΅ ΠΌΡ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΠΈ Π½Π° werf Π΄Π° ΡΠ°Π±ΠΎΡΠΈ Π½Π° Π΅ΡΠ΅ΠΌΠ΅ΡΠ½ΠΈ ΡΡΠΊΠ°ΡΠΈ.
ΠΠ΅Ρ Π°Π½ΠΈΠΊΠ°ΡΠ° Π½Π° ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΡΠ°ΡΠ° Π½Π° ΠΊΠΎΡΠΈΡΠ½ΠΈΠΊΠΎΡ ΡΠΎ ΡΠΈΡΡΠ΅ΠΌΠΎΡ CI ΡΠ΅ ΡΠ΅ Π·Π°ΡΠ½ΠΎΠ²Π° Π½Π° ΠΏΠΎΡΡΠ°Π²ΡΠ²Π°ΡΠ΅ Π΅ΡΠΈΠΊΠ΅ΡΠΈ Π½Π° Π±Π°ΡΠ°ΡΠ°ΡΠ° Π·Π° ΠΏΠΎΠ²Π»Π΅ΠΊΡΠ²Π°ΡΠ΅ Π·Π° Π΄Π° ΡΠ΅ ΠΈΠ½ΠΈΡΠΈΡΠ°Π°Ρ ΠΎΠ΄ΡΠ΅Π΄Π΅Π½ΠΈ Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ Π·Π° Π΄Π° ΡΠ΅ ΠΈΠ·Π³ΡΠ°Π΄ΠΈ/ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠΈ Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΠ°ΡΠ°.
ΠΠΎΠΊΠ°Π»Π΅Π½ ΡΠ°Π·Π²ΠΎΡ ΠΈ ΡΠ°ΡΠΏΠΎΡΠ΅Π΄ΡΠ²Π°ΡΠ΅ Π½Π° Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ ΡΠΎ werf (β)
- ΠΠ΅ΡΠ·ΠΈΡΠ°: v1.1
- Π’Π΅ΡΠΌΠΈΠ½ΠΈ: ΡΠ°Π½ΡΠ°ΡΠΈ-ΡΠ΅Π²ΡΡΠ°ΡΠΈ Π°ΠΏΡΠΈΠ»
-
ΠΈΡΡ ΠΎΠ΄ΠΎΡ
ΠΠ»Π°Π²Π½Π°ΡΠ° ΡΠ΅Π» Π΅ Π΄Π° ΡΠ΅ ΠΏΠΎΡΡΠΈΠ³Π½Π΅ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π° ΡΠ½ΠΈΡΠΈΡΠΈΡΠ°Π½Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΠ° Π·Π° ΡΠ°ΡΠΏΠΎΡΠ΅Π΄ΡΠ²Π°ΡΠ΅ Π½Π° Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ ΠΈ Π»ΠΎΠΊΠ°Π»Π½ΠΎ ΠΈ Π²ΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²ΠΎ, Π±Π΅Π· ΡΠ»ΠΎΠΆΠ΅Π½ΠΈ Π΄Π΅ΡΡΡΠ²Π°, Π½Π°Π΄Π²ΠΎΡ ΠΎΠ΄ ΠΊΡΡΠΈΡΠ°ΡΠ°.
ΠΠ΄ werf ΠΈΡΡΠΎ ΡΠ°ΠΊΠ° ΡΠ΅ Π±Π°ΡΠ° Π΄Π° ΠΈΠΌΠ° ΡΠ΅ΠΆΠΈΠΌ Π½Π° ΡΠ°Π±ΠΎΡΠ° Π²ΠΎ ΠΊΠΎΡ ΡΠ΅ Π±ΠΈΠ΄Π΅ ΠΏΠΎΠ³ΠΎΠ΄Π½ΠΎ Π΄Π° ΡΠ΅ ΡΡΠ΅Π΄ΡΠ²Π° ΠΊΠΎΠ΄ΠΎΡ Π½Π° Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΠ°ΡΠ° ΠΈ Π²Π΅Π΄Π½Π°Ρ Π΄Π° ΡΠ΅ Π΄ΠΎΠ±ΠΈΠ²Π°Π°Ρ ΠΏΠΎΠ²ΡΠ°ΡΠ½ΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎΠ΄ Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΠ°ΡΠ° ΠΊΠΎΡΠ° ΡΠ°Π±ΠΎΡΠΈ Π·Π° Π΄Π΅Π±Π°Π³ΠΈΡΠ°ΡΠ΅.
ΠΠΎΠ² Π°Π»Π³ΠΎΡΠΈΡΠ°ΠΌ Π·Π° ΡΠΈΡΡΠ΅ΡΠ΅ (ΠΠΠ)
- ΠΠ΅ΡΠ·ΠΈΡΠ°: v1.1
- ΠΠ°ΡΡΠΌΠΈ: Π°ΠΏΡΠΈΠ»
-
ΠΈΡΡ ΠΎΠ΄ΠΎΡ
ΠΠΎ ΡΠ΅ΠΊΠΎΠ²Π½Π°ΡΠ° Π²Π΅ΡΠ·ΠΈΡΠ° Π½Π° werf v1.1 Π²ΠΎ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ°ΡΠ° cleanup
ΠΠ΅ ΠΏΠΎΡΡΠΎΠΈ ΠΎΠ΄ΡΠ΅Π΄Π±Π° Π·Π° ΡΠΈΡΡΠ΅ΡΠ΅ Π½Π° ΡΠ»ΠΈΠΊΠΈ Π·Π° ΡΠ΅ΠΌΠ°ΡΠ° Π·Π° ΠΎΠ·Π½Π°ΡΡΠ²Π°ΡΠ΅ Π±Π°Π·ΠΈΡΠ°Π½Π° Π½Π° ΡΠΎΠ΄ΡΠΆΠΈΠ½Π° - ΠΎΠ²ΠΈΠ΅ ΡΠ»ΠΈΠΊΠΈ ΡΠ΅ ΡΠ΅ Π°ΠΊΡΠΌΡΠ»ΠΈΡΠ°Π°Ρ.
ΠΡΡΠΎ ΡΠ°ΠΊΠ°, ΡΠ΅ΠΊΠΎΠ²Π½Π°ΡΠ° Π²Π΅ΡΠ·ΠΈΡΠ° Π½Π° werf (v1.0 ΠΈ v1.1) ΠΊΠΎΡΠΈΡΡΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠΈ Π·Π° ΡΠΈΡΡΠ΅ΡΠ΅ Π½Π° ΡΠ»ΠΈΠΊΠΈ ΠΎΠ±ΡΠ°Π²Π΅Π½ΠΈ Π²ΠΎ ΡΠ΅ΠΌΠΈ Π·Π° ΠΎΠ·Π½Π°ΡΡΠ²Π°ΡΠ΅: Git branch, Git tag ΠΈΠ»ΠΈ Git commit.
ΠΠ·ΠΌΠΈΡΠ»Π΅Π½ Π΅ Π½ΠΎΠ² Π°Π»Π³ΠΎΡΠΈΡΠ°ΠΌ Π·Π° ΡΠΈΡΡΠ΅ΡΠ΅ ΡΠ»ΠΈΠΊΠΈ Π·Π°ΡΠ½ΠΎΠ²Π°Π½ Π½Π° ΠΈΡΡΠΎΡΠΈΡΠ°ΡΠ° Π½Π° ΠΎΠ±Π²ΡΡΠΊΠΈΡΠ΅ Π²ΠΎ Git, ΡΠ½ΠΈΡΠΈΡΠΈΡΠ°Π½ Π·Π° ΡΠΈΡΠ΅ ΡΠ΅ΠΌΠΈ Π·Π° ΠΎΠ·Π½Π°ΡΡΠ²Π°ΡΠ΅:
- Π§ΡΠ²Π°ΡΡΠ΅ Π½Π΅ ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΎΠ΄ N1 ΡΠ»ΠΈΠΊΠΈ ΠΏΠΎΠ²ΡΠ·Π°Π½ΠΈ ΡΠΎ N2 Π½Π°ΡΠ½ΠΎΠ²ΠΈΡΠ΅ ΠΎΠ±Π²ΡΡΠΊΠΈ Π·Π° ΡΠ΅ΠΊΠΎΡ git HEAD (Π³ΡΠ°Π½ΠΊΠΈ ΠΈ ΠΎΠ·Π½Π°ΠΊΠΈ).
- Π§ΡΠ²Π°ΡΡΠ΅ Π½Π΅ ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΎΠ΄ ΡΠ»ΠΈΠΊΠΈ ΠΎΠ΄ ΡΠ°Π·Π° N1 ΠΏΠΎΠ²ΡΠ·Π°Π½ΠΈ ΡΠΎ Π½Π°ΡΠ½ΠΎΠ²ΠΈΡΠ΅ ΠΎΠ±Π²ΡΡΠΊΠΈ N2 Π·Π° ΡΠ΅ΠΊΠΎΡ git HEAD (Π³ΡΠ°Π½ΠΊΠΈ ΠΈ ΠΎΠ·Π½Π°ΠΊΠΈ).
- Π‘ΠΊΠ»Π°Π΄ΠΈΡΠ°ΡΡΠ΅ Π³ΠΈ ΡΠΈΡΠ΅ ΡΠ»ΠΈΠΊΠΈ ΡΡΠΎ ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠ°Ρ Π²ΠΎ ΠΊΠΎΠΈ Π±ΠΈΠ»ΠΎ ΡΠ΅ΡΡΡΡΠΈ Π½Π° ΠΊΠ»Π°ΡΡΠ΅ΡΠΎΡ ΠΡΠ±Π΅ΡΠ½Π΅Ρ (ΡΠΈΡΠ΅ ΠΊΡΠ±Π΅ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠΈ Π½Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΠΊΠ°ΡΠ° Π΄Π°ΡΠΎΡΠ΅ΠΊΠ° ΠΈ ΠΏΡΠΎΡΡΠΎΡΠΈΡΠ΅ Π·Π° ΠΈΠΌΠΈΡΠ° ΡΠ΅ ΡΠΊΠ΅Π½ΠΈΡΠ°Π½ΠΈ; ΠΎΠ²Π° ΠΎΠ΄Π½Π΅ΡΡΠ²Π°ΡΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π³ΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΡΠ΅ ΡΠΎ ΡΠΏΠ΅ΡΠΈΡΠ°Π»Π½ΠΈ ΠΎΠΏΡΠΈΠΈ).
- Π‘ΠΊΠ»Π°Π΄ΠΈΡΠ°ΡΡΠ΅ Π³ΠΈ ΡΠΈΡΠ΅ ΡΠ»ΠΈΠΊΠΈ ΡΡΠΎ ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠ°Ρ Π²ΠΎ ΠΌΠ°Π½ΠΈΡΠ΅ΡΡΠ°ΡΠΈΠΈΡΠ΅ Π·Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΠ° Π½Π° ΡΠ΅ΡΡΡΡΠΈ Π·Π°ΡΡΠ²Π°Π½ΠΈ Π²ΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΡΠ°ΡΠ° Π½Π° Helm.
- Π‘Π»ΠΈΠΊΠ°ΡΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·Π±ΡΠΈΡΠ΅ Π°ΠΊΠΎ Π½Π΅ Π΅ ΠΏΠΎΠ²ΡΠ·Π°Π½Π° ΡΠΎ Π½ΠΈΡΡ Π΅Π΄Π½Π° HEAD ΠΎΠ΄ git (Π½Π° ΠΏΡΠΈΠΌΠ΅Ρ, Π·Π°ΡΠΎΠ° ΡΡΠΎ ΡΠ°ΠΌΠ°ΡΠ° ΡΠΎΠΎΠ΄Π²Π΅ΡΠ½Π° HEAD Π΅ ΠΈΠ·Π±ΡΠΈΡΠ°Π½Π°) ΠΈ Π½Π΅ ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠΈ Π²ΠΎ Π½ΠΈΠ΅Π΄Π΅Π½ ΠΌΠ°Π½ΠΈΡΠ΅ΡΡ Π²ΠΎ ΠΊΠ»Π°ΡΡΠ΅ΡΠΎΡ Kubernetes ΠΈ Π²ΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΡΠ°ΡΠ° Π½Π° Helm.
ΠΠ°ΡΠ°Π»Π΅Π»Π½Π° Π³ΡΠ°Π΄Π±Π° Π½Π° ΡΠ»ΠΈΠΊΠΈ (β)
- ΠΠ΅ΡΠ·ΠΈΡΠ°: v1.1
- Π’Π΅ΡΠΌΠΈΠ½ΠΈ: ΡΠ°Π½ΡΠ°ΡΠΈ-ΡΠ΅Π²ΡΡΠ°ΡΠΈ Π°ΠΏΡΠΈΠ»*
Π’Π΅ΠΊΠΎΠ²Π½Π°ΡΠ° Π²Π΅ΡΠ·ΠΈΡΠ° Π½Π° werf Π³ΠΈ ΡΠΎΠ±ΠΈΡΠ° ΡΠ»ΠΈΠΊΠΈΡΠ΅ ΠΈ Π°ΡΡΠ΅ΡΠ°ΠΊΡΠΈΡΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈ Π²ΠΎ werf.yaml
, ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎ. ΠΠ΅ΠΎΠΏΡ
ΠΎΠ΄Π½ΠΎ Π΅ Π΄Π° ΡΠ΅ ΠΏΠ°ΡΠ°Π»Π΅Π»ΠΈΠ·ΠΈΡΠ° ΠΏΡΠΎΡΠ΅ΡΠΎΡ Π½Π° ΡΠΊΠ»ΠΎΠΏΡΠ²Π°ΡΠ΅ Π½Π΅Π·Π°Π²ΠΈΡΠ½ΠΈ ΡΠ°Π·ΠΈ Π½Π° ΡΠ»ΠΈΠΊΠΈ ΠΈ Π°ΡΡΠ΅ΡΠ°ΠΊΡΠΈ, ΠΊΠ°ΠΊΠΎ ΠΈ Π΄Π° ΡΠ΅ ΠΎΠ±Π΅Π·Π±Π΅Π΄ΠΈ ΡΠ΄ΠΎΠ±Π΅Π½ ΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ²Π΅Π½ ΠΈΠ·Π»Π΅Π·.
* ΠΠ°Π±Π΅Π»Π΅ΡΠΊΠ°: ΡΠΎΠΊΠΎΡ Π΅ ΠΏΠΎΠΌΠ΅ΡΡΠ΅Π½ ΠΏΠΎΡΠ°Π΄ΠΈ Π·Π³ΠΎΠ»Π΅ΠΌΠ΅Π½ ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ Π·Π° ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠ° Π½Π° Π΄ΠΈΡΡΡΠΈΠ±ΡΠΈΡΠ°Π½ΠΎ ΡΠΊΠ»ΠΎΠΏΡΠ²Π°ΡΠ΅, ΡΡΠΎ ΡΠ΅ Π΄ΠΎΠ΄Π°Π΄Π΅ ΠΏΠΎΠ²Π΅ΡΠ΅ Ρ ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»Π½ΠΈ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠΈ Π·Π° ΡΠΊΠ°Π»ΠΈΡΠ°ΡΠ΅, ΠΊΠ°ΠΊΠΎ ΠΈ ΠΊΠΎΡΠΈΡΡΠ΅ΡΠ΅ Π½Π° werf ΡΠΎ GitHub Actions. ΠΠ°ΡΠ°Π»Π΅Π»Π½ΠΎΡΠΎ ΡΠΊΠ»ΠΎΠΏΡΠ²Π°ΡΠ΅ Π΅ ΡΠ»Π΅Π΄Π½ΠΈΠΎΡ ΡΠ΅ΠΊΠΎΡ Π½Π° ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡΠ°, ΠΎΠ±Π΅Π·Π±Π΅Π΄ΡΠ²Π°ΡΡΠΈ Π²Π΅ΡΡΠΈΠΊΠ°Π»Π½Π° ΠΏΡΠΈΡΠΏΠΎΡΠΎΠ±Π»ΠΈΠ²ΠΎΡΡ ΠΏΡΠΈ ΡΠΎΡΡΠ°Π²ΡΠ²Π°ΡΠ΅ Π½Π° Π΅Π΄Π΅Π½ ΠΏΡΠΎΠ΅ΠΊΡ.
Π’ΡΠ°Π½Π·ΠΈΡΠΈΡΠ° ΠΊΠΎΠ½ Π₯Π΅Π»ΠΌ 3 (β)
- ΠΠ΅ΡΠ·ΠΈΡΠ°: v1.2
- Π’Π΅ΡΠΌΠΈΠ½ΠΈ: ΡΠ΅Π²ΡΡΠ°ΡΠΈ-ΠΌΠ°ΡΡ ΠΌΠ°Ρ*
ΠΠΊΠ»ΡΡΡΠ²Π° ΠΌΠΈΠ³ΡΠ°ΡΠΈΡΠ° Π²ΠΎ Π½ΠΎΠ²Π° Π±Π°Π·Π° Π½Π° ΠΊΠΎΠ΄ΠΎΠ²ΠΈ
* ΠΠ°Π±Π΅Π»Π΅ΡΠΊΠ°: ΠΏΡΠ΅ΡΡΠ»Π°ΡΠ΅ΡΠΎ Π½Π° Helm 3 Π½Π΅ΠΌΠ° Π΄Π° Π΄ΠΎΠ΄Π°Π΄Π΅ Π·Π½Π°ΡΠ°ΡΠ½ΠΈ ΠΊΠ°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ Π½Π° werf, Π±ΠΈΠ΄Π΅ΡΡΠΈ ΡΠΈΡΠ΅ ΠΊΠ»ΡΡΠ½ΠΈ ΠΊΠ°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ Π½Π° Helm 3 (3-Π½Π°ΡΠΎΡΠ½ΠΎ ΡΠΏΠΎΡΡΠ²Π°ΡΠ΅ ΠΈ Π±Π΅Π· ΠΌΠΎΠ»ΠΊ) ΡΠ΅ Π²Π΅ΡΠ΅ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠΈΡΠ°Π½ΠΈ Π²ΠΎ werf. ΠΠΎΠΊΡΠ°Ρ ΡΠΎΠ°, Π²Π΅ΡΡ ΠΈΠΌΠ°
Jsonnet Π·Π° ΠΎΠΏΠΈΡΡΠ²Π°ΡΠ΅ Π½Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΠ°ΡΠ° Π½Π° Kubernetes (β)
- ΠΠ΅ΡΠ·ΠΈΡΠ°: v1.2
- Π’Π΅ΡΠΌΠΈΠ½ΠΈ: ΡΠ°Π½ΡΠ°ΡΠΈ-ΡΠ΅Π²ΡΡΠ°ΡΠΈ Π°ΠΏΡΠΈΠ»-ΠΌΠ°Ρ
Werf ΡΠ΅ ΠΏΠΎΠ΄Π΄ΡΠΆΡΠ²Π° ΠΎΠΏΠΈΡΠΈ Π·Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΠ° Π·Π° Kubernetes Π²ΠΎ Jsonnet ΡΠΎΡΠΌΠ°Ρ. ΠΠΎ ΠΈΡΡΠΎ Π²ΡΠ΅ΠΌΠ΅, werf ΡΠ΅ ΠΎΡΡΠ°Π½Π΅ ΠΊΠΎΠΌΠΏΠ°ΡΠΈΠ±ΠΈΠ»Π΅Π½ ΡΠΎ Helm ΠΈ ΡΠ΅ ΠΈΠΌΠ° ΠΈΠ·Π±ΠΎΡ Π½Π° ΡΠΎΡΠΌΠ°Ρ Π½Π° ΠΎΠΏΠΈΡ.
ΠΡΠΈΡΠΈΠ½Π°ΡΠ° Π΅ ΡΡΠΎ Go ΡΠ°Π±Π»ΠΎΠ½ΠΈΡΠ΅, ΡΠΏΠΎΡΠ΅Π΄ ΠΌΠ½ΠΎΠ³Ρ Π»ΡΡΠ΅, ΠΈΠΌΠ°Π°Ρ Π²ΠΈΡΠΎΠΊΠ° Π²Π»Π΅Π·Π½Π° Π±Π°ΡΠΈΠ΅ΡΠ°, Π° ΠΈΡΡΠΎ ΡΠ°ΠΊΠ° ΡΡΡΠ°Π΄Π° ΠΈ ΡΠ°Π·Π±ΠΈΡΠ»ΠΈΠ²ΠΎΡΡΠ° Π½Π° ΠΊΠΎΠ΄ΠΎΡ Π½Π° ΠΎΠ²ΠΈΠ΅ ΡΠ°Π±Π»ΠΎΠ½ΠΈ.
Π‘Π΅ ΡΠ°Π·Π³Π»Π΅Π΄ΡΠ²Π° ΠΈ ΠΌΠΎΠΆΠ½ΠΎΡΡΠ° Π·Π° Π²ΠΎΠ²Π΅Π΄ΡΠ²Π°ΡΠ΅ Π½Π° Π΄ΡΡΠ³ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ Π·Π° ΠΎΠΏΠΈΡ Π½Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΠ°ΡΠ° Π½Π° Kubernetes (Π½Π° ΠΏΡΠΈΠΌΠ΅Ρ, Kustomize).
Π Π°Π±ΠΎΡΠ° Π²ΠΎ Kubernetes (β)
- ΠΠ΅ΡΠ·ΠΈΡΠ°: v1.2
- Π’Π΅ΡΠΌΠΈΠ½ΠΈ: Π°ΠΏΡΠΈΠ»-ΠΌΠ°Ρ ΠΌΠ°Ρ-ΡΡΠ½ΠΈ
Π¦Π΅Π»: ΠΡΠΈΠ³ΡΡΠ΅ΡΠ΅ ΡΠ΅ Π΄Π΅ΠΊΠ° ΡΠ»ΠΈΠΊΠΈΡΠ΅ ΡΠ΅ ΠΈΠ·Π³ΡΠ°Π΄Π΅Π½ΠΈ ΠΈ Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΠ°ΡΠ° Π΅ ΠΈΡΠΏΠΎΡΠ°ΡΠ°Π½Π° ΡΠΎ ΠΏΠΎΠΌΠΎΡ Π½Π° ΡΡΠΊΠ°ΡΠΈ Π²ΠΎ Kubernetes. ΠΠ½ΠΈΠ΅. ΠΠΎΠ²ΠΈΡΠ΅ ΡΠ»ΠΈΠΊΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ Π³ΡΠ°Π΄Π°Ρ, ΠΎΠ±ΡΠ°Π²ΡΠ²Π°Π°Ρ, ΡΠΈΡΡΠ°Ρ ΠΈ ΡΠ°ΡΠΏΠΎΡΠ΅Π΄ΡΠ²Π°Π°Ρ Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ ΠΎΠ΄ ΠΏΠΎΠ΄Π»ΠΎΠ³ΠΈΡΠ΅ Π½Π° Kubernetes.
ΠΠ° Π΄Π° ΡΠ° ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠΈΡΠ°ΡΠ΅ ΠΎΠ²Π°Π° ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ, ΠΏΡΠ²ΠΎ ΡΡΠ΅Π±Π° Π΄Π° Π±ΠΈΠ΄Π΅ΡΠ΅ Π²ΠΎ ΠΌΠΎΠΆΠ½ΠΎΡΡ Π΄Π° ΠΈΠ·Π³ΡΠ°Π΄ΠΈΡΠ΅ Π΄ΠΈΡΡΡΠΈΠ±ΡΠΈΡΠ°Π½ΠΈ ΡΠ»ΠΈΠΊΠΈ (Π²ΠΈΠ΄ΠΈ ΡΠΎΡΠΊΠ° ΠΏΠΎΠ³ΠΎΡΠ΅).
ΠΡΡΠΎ ΡΠ°ΠΊΠ°, Π±Π°ΡΠ° ΠΏΠΎΠ΄Π΄ΡΡΠΊΠ° Π·Π° ΡΠ΅ΠΆΠΈΠΌΠΎΡ Π½Π° ΡΠ°Π±ΠΎΡΠ° Π½Π° Π³ΡΠ°Π΄ΠΈΡΠ΅Π»ΠΎΡ Π±Π΅Π· ΡΠ΅ΡΠ²Π΅Ρ Docker (Ρ.Π΅. ΠΈΠ·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΈΠ»ΠΈ Π³ΡΠ°Π΄Π±Π° Π²ΠΎ ΠΊΠΎΡΠΈΡΠ½ΠΈΡΠΊΠΈΠΎΡ ΠΏΡΠΎΡΡΠΎΡ ΡΠ»ΠΈΡΠ΅Π½ Π½Π° Kaniko).
Werf ΡΠ΅ Π³ΠΎ ΠΏΠΎΠ΄Π΄ΡΠΆΠΈ Π³ΡΠ°Π΄Π΅ΡΠ΅ΡΠΎ Π½Π° Kubernetes Π½Π΅ ΡΠ°ΠΌΠΎ ΡΠΎ Dockerfile, ΡΡΠΊΡ ΠΈ ΡΠΎ Π½Π΅Π³ΠΎΠ²ΠΈΠΎΡ Stapel builder ΡΠΎ ΠΏΠΎΡΡΠ΅ΠΏΠ΅Π½ΠΎ ΠΎΠ±Π½ΠΎΠ²ΡΠ²Π°ΡΠ΅ ΠΈ Ansible.
Π§Π΅ΠΊΠΎΡ ΠΊΠΎΠ½ ΠΎΡΠ²ΠΎΡΠ΅Π½ ΡΠ°Π·Π²ΠΎΡ
ΠΠ° ΡΠ°ΠΊΠ°ΠΌΠ΅ Π½Π°ΡΠ°ΡΠ° Π·Π°Π΅Π΄Π½ΠΈΡΠ° (
ΠΠ΅ΠΎΠ΄Π°ΠΌΠ½Π° Π±Π΅ΡΠ΅ ΠΎΠ΄Π»ΡΡΠ΅Π½ΠΎ Π΄Π° ΡΠ΅ ΠΏΡΠ΅ΡΡΠ»ΠΈ Π½Π°
-
ΠΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠ° ΠΈ Π»ΠΎΠΊΠ°ΡΠΈΡΠ° ; -
Π’Π΅ΡΡΠΈΡΠ°ΡΠ΅ ; -
ΠΡΠ±Π°ΡΠΊΠΈ ΠΈ Π»ΠΎΡ UX ; -
1.1 .
ΠΠ°ΠΏΡΠ°Π²Π΅Π½ΠΎ Π΅ ΠΌΠ½ΠΎΠ³Ρ ΡΠ°Π±ΠΎΡΠ° ΡΠΎ ΠΏΡΠ°ΡΠ°ΡΠ°:
- ΠΡΡΡΡΠ°Π½Π΅ΡΠΈ Π½Π΅Π±ΠΈΡΠ½ΠΈ.
- ΠΠΎΡΡΠΎΡΠ½ΠΈΡΠ΅ ΡΠ΅ Π΄ΠΎΠ²Π΅Π΄Π΅Π½ΠΈ Π²ΠΎ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½ ΡΠΎΡΠΌΠ°Ρ, ΡΠΎ Π΄ΠΎΠ²ΠΎΠ»Π΅Π½ Π±ΡΠΎΡ Π΄Π΅ΡΠ°Π»ΠΈ ΠΈ Π΄Π΅ΡΠ°Π»ΠΈ.
- ΠΠΎΠ΄Π°Π΄Π΅Π½ΠΈ ΡΠ΅ Π½ΠΎΠ²ΠΈ ΠΏΡΠ°ΡΠ°ΡΠ° ΡΠΎ ΠΈΠ΄Π΅ΠΈ ΠΈ ΠΏΡΠ΅Π΄Π»ΠΎΠ·ΠΈ.
ΠΠ°ΠΊΠΎ Π΄Π° ΡΠ° ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΠΈΡΠ΅ Π²Π΅ΡΠ·ΠΈΡΠ°ΡΠ° v1.1
ΠΠ΅ΡΠ·ΠΈΡΠ°ΡΠ° ΠΌΠΎΠΌΠ΅Π½ΡΠ°Π»Π½ΠΎ Π΅ Π΄ΠΎΡΡΠ°ΠΏΠ½Π° Π²ΠΎ
source $(multiwerf use 1.1 ea)
werf COMMAND ...
ΠΠ°ΠΊΠ»ΡΡΠΎΠΊ
ΠΠΎΠ²Π°ΡΠ° Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠ° Π·Π° ΡΠΊΠ»Π°Π΄ΠΈΡΠ°ΡΠ΅ Π½Π° ΡΡΠ΅Π½Π°ΡΠ° ΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈΡΠ΅ Π½Π° Π³ΡΠ°Π΄ΠΈΡΠ΅Π»ΠΈ Π·Π° Π³ΡΠ°Π΄ΠΈΡΠ΅Π»ΠΈΡΠ΅ Π½Π° Stapel ΠΈ Dockerfile ΡΠ° ΠΎΡΠ²ΠΎΡΠ°Π°Ρ ΠΌΠΎΠΆΠ½ΠΎΡΡΠ° Π·Π° ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠ° Π½Π° Π΄ΠΈΡΡΡΠΈΠ±ΡΠΈΡΠ°Π½ΠΈ ΠΈ ΠΏΠ°ΡΠ°Π»Π΅Π»Π½ΠΈ Π³ΡΠ°Π΄Π±ΠΈ Π²ΠΎ 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 (ΠΏΡΠ΅Π³Π»Π΅Π΄ ΠΈ Π²ΠΈΠ΄Π΅ΠΎ ΠΈΠ·Π²Π΅ΡΡΠ°Ρ) "; - ΠΠΈΠ·Π° Π±Π΅Π»Π΅ΡΠΊΠΈ Π·Π° ΠΈΠ½ΠΎΠ²Π°ΡΠΈΠΈΡΠ΅ Π²ΠΎ Π²Π΅ΡΡ:
- Β«
3-Π½Π°ΡΠΎΡΠ½ΠΎ ΡΠΏΠΎΡΡΠ²Π°ΡΠ΅ Π΄ΠΎ Π²Π΅ΡΡ: ΡΠ°ΡΠΏΠΎΡΠ΅Π΄ΡΠ²Π°ΡΠ΅ Π²ΠΎ ΠΡΠ±Π΅ΡΠ½Π΅ΡΠΈΡ ΡΠΎ Π₯Π΅Π»ΠΌ βΠ½Π° ΡΡΠ΅ΡΠΎΠΈΠ΄ΠΈβ "; - Β«
ΠΠΎΡΠΈΡΡΠ΅ΡΠ΅ Π½Π° Π²Π΅ΡΡ Π·Π° ΠΈΠ·ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΡΠ»ΠΎΠΆΠ΅Π½ΠΈ ΡΠ°Π±Π΅Π»ΠΈ Π½Π° Helm "; - Β«
ΠΠΎΠ΄Π΄ΡΡΠΊΠ° Π·Π° monorepo ΠΈ multirepo Π²ΠΎ werf ΠΈ ΠΊΠ°ΠΊΠ²Π° Π²ΡΡΠΊΠ° ΠΈΠΌΠ° Docker Registry ΡΠΎ ΡΠΎΠ° "; - Β«
Π‘Π΅Π³Π° ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΈΠ·Π³ΡΠ°Π΄ΠΈΡΠ΅ Docker ΡΠ»ΠΈΠΊΠΈ Π²ΠΎ werf ΠΊΠΎΡΠΈΡΡΠ΅ΡΡΠΈ ΠΎΠ±ΠΈΡΠ½Π° Dockerfile ".
- Β«
ΠΠ·Π²ΠΎΡ: www.habr.com