áá¯ááºáá±ááŸá¯á á¡ááŒá±áá¶ááẠá
ááºááŒáá·áºááá¯ááŸá±á¬ááºááŸá¯á áááá¯áá¬á¡áá
áºááŒá
áºááŒá®áž á
á¯áá±á¬ááºážáá°áá»á¬áž (Stapel ááŸáá·áº Dockerfile á¡ááœááº) ááŸá
áºáá¯á
áá¯á¶ážá áá¯ááºáá±á¬ááºááŸá¯ááᯠááá¯ááá¯áá±á¬ááºážááœááºá¡á±á¬ááºááŒá¯áá¯ááºááŒááºáž ááŒá
áºáááºá ááá¯ááŸá±á¬ááºááŸá¯áááá¯áá¬á¡áá
áºááẠáá
áºáá¯áááºážáá±á¬ host ááœáẠhost áá»á¬ážá
áœá¬á០ááŒáá·áºáá±áá¬ážáá±á¬ á
ááºážáá±ážááœá²áá»á¬ážááᯠá¡áá±á¬ááºá¡áááºáá±á¬áºááá¯ááºááŒá±ááᯠááœáá·áºáá±ážáááºá
á¡áá¯ááºá ááá¯ááá¯áá±á¬ááºážááœááºá¡á±á¬ááºááŒá¯áá¯ááºááŒááºážááœáẠá¡ááá·áºáááºááŸááºáá»á¬ážááᯠááœááºáá»ááºááŒááºážá¡ááá·áºááœáẠáááá¯á¡ááºáá±á¬ ááœááºáá»ááºááŸá¯áá»á¬ážááᯠáááºááŸá¬ážááŒááºážááŸáá·áº ááá¯áẠchecksums ááœááºáá»ááºááŒááºážá¡ááœáẠááá¹ááá¬ážáá»á¬ážááᯠááá¯ááá¯áááá±á¬ááºáá±á¬ á¡áá¬áá»á¬ážá¡ááŒá
ẠááŒá±á¬ááºážáá²ááŒááºáž áá«áááºáááºá á€ááá¯ááá¯áá±á¬ááºážááœááºá¡á±á¬ááºááŒá¯áá¯ááºááŒááºážá werf ááá¯á¡áá¯á¶ážááŒá¯á ááá±á¬áá»ááºáááºáá±á¬ááºááŸá¯ááá»ááºážáá»áŸá¡áá»áááºááᯠáá»áŸá±á¬á·áá»áá±ážáááºá áááºááŸáºááœáẠá¡ááá·áºá¡á¬ážáá¯á¶ážááŸáááá·áºá¡áá« idle build ááẠá¡ááá·áºáá»á¬áž - ááá¯ááŸá±á¬ááºááŸá¯á á¡áá¯ááááºááŒááºáááºá ááá
á¹á
á¡áá»á¬ážá
á¯ááœááºá áááºáá±á¬ááºááŸá¯ááᯠááŒááºáááºá
áááºááẠá¡áá»ááẠ1 á
áá¹ááá·áºáááºáááºážáá«áááºá áááºážááẠá¡ááœá²á·áá»á¬ážá áá¯ááºáááºážá
á¥áºá¡ááœááºáž á¡ááá·áºáá»á¬ážááᯠá
áá
á
áºááŒááºážááá¯ááºáᬠáá¯ááºáá¯á¶ážáá¯ááºáááºážáá»á¬ážááŸáá·áºáááºáž áááºááá¯ááºáá«áááºá werf deploy
О werf run
.
á€áá¯ááºáá±ááŸá¯ááœááºáááºáž á¡ááŒá±á¬ááºážá¡áá¬á¡ááá¯áẠáá¯á¶áá»á¬ážááᯠáááºááá¯ážááŒááºážá¡ááœáẠáá»á°áá¬áá áºáᯠáá±á«áºáá¬áááº- á¡ááŒá±á¬ááºážá¡áá¬á¡ááŒá±áá¶áááºáá¯ááºááŒááºážááá¯á¶ááŸááºá¡á¬ážááŒáá·áº ááœáá·áºáá¬ážááŒá®ážááŒá áºááá·áº áá áºáá¯áááºážáá±á¬ á¡ááŒá¶ááŒá¯áá¬ážáááºá
werf v1.1 ááœáẠá¡ááá áá®ááœááºáááºážáá áºááŸá¯áá»á¬ážááᯠá¡áá®ážááẠáá±á·áá¬ááŒáá·áºááŒá áá¯á·á áá áºáá»áááºáááºážááœáẠá¡áá¬áááºá¡ááœáẠá¡á á®á¡á ááºáá»á¬ážá¡ááŒá±á¬ááºáž ááŒá±á¬ááŒáá«áááºá
werf v1.1 ááœáẠáá¬ááœá±ááŒá±á¬ááºážáá²ááœá¬ážáá²á
áááºááŸáºá០á¡ááá·áºáá»á¬ážááᯠááœá±ážáá»ááºááŒááºážá¡ááœáẠá ááááºá¡áááºáá±á¬áºáááºá¡áá áºááŸáá·áº á¡ááºáááá¯áá®áááº
á¡ááá·áºá¡áááºáá»áá¯ážááẠá ááºážáá»ááºážá¡áá áºá ááá¯á¡áá« á ááááºáááºáá±á¬ááºááŸá¯áá áºáá¯á á®ááẠá¡ááá¯ááºáž á ááá¯ááºážáá«áááºááá·áº áá°ážááŒá¬ážáá±á¬á¡ááá·áºá¡áááºáá áºáá¯ááᯠáá¯ááºáá±ážáááº- áááºááŸáẠ(v2 ááœááºááŸááá²á·ááá·áºá¡ááá¯ááºáž) ááŸáá·áº áá°ážááŒá¬ážáá±á¬ áá¬áá®áááºááŸááºááŸá¯áá áºáá¯ááŒá áºáááºá
á¥ááá¬á¡á¬ážááŒáá·áºá áá¬ááºá ááºáá¯ááºáá¯á¶á¡ááẠá¡ááŒáá·áºá¡á á¯á¶ááẠá€áá²á·ááá¯á·ááŒá áºááá¯ááºáááº-
werf-stages-storage/myproject:d2c5ad3d2c9fcd9e57b50edd9cb26c32d156165eb355318cebc3412b-1582656767835
... ááá¯á·ááá¯áẠáá±áá¯áá»á¡á¬ážááŒáá·áº-
werf-stages-storage/PROJECT:SIGNATURE-TIMESTAMP_MILLISEC
á€áá±áá¬ááœááº:
-
SIGNATURE
á ááºááŒáá·áºá áááºááŸááºááẠáá¬ááºáá¯á¶á¡ááŒá±á¬ááºážá¡áá¬á ááœá²ááŒá¬ážáááºááŸááºááŸá¯ááᯠááá¯ááºá á¬ážááŒá¯ááŒá®áž á€á¡ááŒá±á¬ááºážá¡áá¬ááᯠááŒá áºáá±á«áºá á±ááá·áº Git ááœáẠáááºážááŒááºááŸá¯áá»á¬ážááááá¯ááºážá¡áá±á«áº áá°áááºáááºá -
TIMESTAMP_MILLISEC
áá¯á¶á¡áá áºáá áºáá¯áááºáá±á¬ááºáá»áááºááœáẠáá¯ááºáá±ážááá·áº á¡á¬ááá¶áá¬ážáá±á¬áá°ážááŒá¬ážáá±á¬áá¯á¶á¡ááŸááºá¡áá¬ážáá áºáá¯ááŒá áºáááºá
áááºááŸáºá០á¡ááá·áºáá»á¬ážááᯠááœá±ážáá»ááºááŒááºážá¡ááœáẠalgorithm ááẠGit commits á áááºá ááºááŸá¯ááᯠá á áºáá±ážááŒááºážá¡áá±á«áº á¡ááŒá±áá¶áááº-
- Werf ááẠáááºááŸááºáá¬ážáá±á¬ á¡ááá·áºáá áºáá¯á áááºááŸááºááᯠááœááºáá»ááºáááºá
- Ð á¡ááá·áºáá»á¬áž - ááá¯ááŸá±á¬ááºááŸá¯ áá±ážáá¬ážáá±á¬áááºááŸááºá¡ááœáẠá¡ááá·áºáá»á¬ážá áœá¬ááŸáááá¯ááºáááºá Werf ááẠáááºááŸááºááŸáá·áº ááá¯ááºáá®ááá·áº á¡ááá·áºá¡á¬ážáá¯á¶ážááᯠááœá±ážáá»ááºáááºá
- áááºááŸáá¡ááá·áºááẠGit (git-archiveá Git áá¬áá±ážááŸá¯áá»á¬ážááŒáá·áº á
áááºááŒáá¯ááºá¡ááá·áº-
install
,beforeSetup
,setup
; ááá¯á·ááá¯áẠgit-latest-patch)á ááá¯á·áá±á¬áẠwerf ááẠáááºááŸá commit á ááá¯ážáá±ážááŒá áºááá·áº (áááºáá±á¬ááºááŸá¯ááᯠáá±á«áºáááº) ááŸáá·áº áááºá ááºáá±ááá·áº á¡ááá¯áá«á¡ááá·áºáá»á¬ážááá¯áᬠááœá±ážáá»ááºáááºá - áá»ááºááŸááá±á¬ ááá·áºáá»á±á¬áºáá±á¬á¡ááá·áºáá»á¬ážááŸá áá áºáá¯ááᯠáááºáá®ážááá·áºáá±á·á áœá²ááŒáá·áº á¡áááºá¡ááŒá®ážáá¯á¶ážááᯠááœá±ážáááºá
ááá°áá®áá±á¬ Git áááºááœá²áá»á¬ážá¡ááœáẠá¡ááá·áºáá áºáá¯ááœáẠáá°áá®áá±á¬áááºááŸááºááŸáááá¯ááºáááºá ááá¯á·áá±á¬áº werf ááẠááá°áá®áá±á¬á¡ááá¯ááºážá¡áááºáá»á¬ážááŸáá·áº áááºá ááºáá±áá±á¬ áááºááŸáºáá»á¬ážááᯠá€á¡ááá¯ááºážá¡áááºáá»á¬ážááŒá¬ážááœáẠá¡áá¯á¶ážááŒá¯ááŒááºážá០áááºážáá±ážá á±áááºááŒá áºááŒá®áž áááºááŸááºáá»á¬ážááẠáá°áá®áá«áá
á ááááºááá¯ááŸá±á¬ááºááŸá¯ááœáẠá¡ááá·áºáá»á¬ážáááºáá®ážááŒááºážááŸáá·áº ááááºážáááºážááŒááºážá¡ááœáẠá¡ááºáááá¯áá®áááºá¡áá áº
á¡áááºá áááºááŸáºá០á¡ááá·áºáá»á¬ážááᯠááœá±ážáá»ááºáá±á¬á¡áá«á werf ááẠááá·áºáá»á±á¬áºáá±á¬ á¡ááá·áºááᯠááŸá¬áááœá±á·áá«áá ááá¯á·áá±á¬áẠá¡ááá·áºá¡áá áºáá áºáá¯ááᯠá á¯á ááºážááŒááºáž áá¯ááºáááºážá ááºááᯠá áááºááá¯ááºáááºá
áá¯ááºáááºážá ááºáá»á¬ážá áœá¬ (áá áºáᯠááá¯á·ááá¯áẠáá áºáá¯áááºááá¯áá±á¬ host áá»á¬ážááœááº) ááẠáá°áá®áá±á¬á¡ááá·áºááᯠáá áºáá»áááºáááºážááœáẠá áááºáááºáá±á¬ááºááá¯ááºáááºááᯠáááááŒá¯áá«á Werf ááẠá¡áá±á¬ááºážááŒááºáá±á¬ááááºááá¯á·ááŒááºážááá¯ááºáᬠá¡ááºáááá¯áá®áááºááᯠá¡áá¯á¶ážááŒá¯áááºá á¡ááá·áºáá»á¬áž - ááá¯ááŸá±á¬ááºááŸá¯ áááºáááºáááºááẠá á¯áá±á¬ááºážáá¬ážáá±á¬áá¯á¶ááᯠááááºážáááºážáá±á áẠá¡ááá·áºáá»á¬áž - ááá¯ááŸá±á¬ááºááŸá¯. á€áááºážá¡á¬ážááŒáá·áºá á ááºááŒáá·áºáááºáá±á¬ááºááŸá¯á¡áá áºá¡áááºááá·áºááŒá áºáá±á¬á¡áá«á werf blocks áá»á¬áž á¡ááá·áºáá»á¬áž - ááá¯ááŸá±á¬ááºááŸá¯ ááá·áºáá»á±á¬áºáá±á¬áá¯á¶áááŸááá±á¬á·ááŸáᬠáááºáááºáááºáááºá á¯áá±á¬ááºážáá¬ážáá±á¬áá¯á¶áá áºáá¯á¶ááᯠááá¯áá±áá¬ááœáẠááááºážáááºážáá«á (áááºááŸááºááŸáá·áºá¡ááŒá¬ážááá·áºáááºáá»ááºáá»á¬ážá¡á¬ážááŒáá·áº - áááºááŸáºááŸá¡ááá·áºáá»á¬ážááá¯ááœá±ážáá»ááºáááºá¡ááœáẠalgorithm á¡áá áºááá¯ááŒáá·áºáá«).
áááºážáá
áºá
áœá¬ áá±á«ááºážá
ááºáá¬ážáá±á¬ áá¯ááºáá¯á¶ááẠáá°ážááŒá¬ážáá±á¬ ááœá²ááŒá¬ážáááºááŸááºááŸá¯ ááŸáááẠá¡á¬ááá¶áá«áááºá TIMESTAMP_MILLISEC
(á
ááºááŒáá·áºá¡áááºáá±á¬áºáááºá¡áá
áºááᯠááŒáá·áºáá«). ááŒá
áºáááºááŸáẠá¡ááá·áºáá»á¬áž - ááá¯ááŸá±á¬ááºááŸá¯ ááá·áºáá»á±á¬áºáá±á¬áá¯á¶áá
áºáá¯á¶ááᯠááœá±á·áááá·áºáááºá werf ááẠá¡áá
áºá
á¯á
ááºážáá¬ážáá±á¬áá¯á¶á¡á¬áž á
áœáá·áºáá
áºáááºááŒá
áºááŒá®áž áááºááŸáºááŸáá¯á¶ááᯠá¡áá¯á¶ážááŒá¯áááºááŒá
áºáááºá
áá áºáááºážá¡á¬ážááŒáá·áº- áá¯ááºáá¯á¶áááºáá±á¬ááºááŒááºážááᯠá¡ááŒá®ážáááºááẠááááá¯á¶ážáá¯ááºáááºážá áẠ(á¡ááŒááºáá¯á¶ážáá áºáá¯) ááẠáááºážááᯠá¡ááá·áºáá»á¬áž-ááá¯ááŸá±á¬ááºááŸá¯ááœáẠááááºážáááºážááœáá·áº áááŸááááá·áºááẠ(ááá¯á·áá±á¬áẠáááºážááẠáááºáá±á¬ááºááŸá¯á¡á¬ážáá¯á¶ážá¡ááœáẠá¡áá¯á¶ážááŒá¯ááá·áº á€áá áºáá¯áááºážáá±á¬áá¯á¶ááŒá áºáááº)á ááŸá±ážááœá±ážáá±á¬ áááºáá±á¬ááºááŸá¯ áá¯ááºáááºážá ááºááẠáááºááŸáá¡ááá·áºá áááºáá±á¬ááºááŸá¯ááááºáá»á¬ážááᯠááááºážáááºážááŒá®áž áá±á¬ááºáááºáá±á¬ááºááŸá¯ááá¯á· áááºááœá¬ážááŒááºážá០ááá¯ááá¯ááŒááºáááºáá±á¬ áá¯ááºáááºážá ááºááᯠáááºáá±á¬á¡áá«á០ááááºááá¯á·áááºááá¯ááºáá«á
Dockerfile áááºáá±á¬ááºáá° á áœááºážáá±á¬ááºáááºááᯠááŒáŸáá·áºáááºáá¬ážáááºá
áá±á¬áá±á¬áááºááœááºá Dockerfile áá
áºáá¯ááŸáááºáá±á¬ááºáá¬ážáá±á¬ áá¯á¶áá
áºáá¯á¶á¡ááœáẠá¡ááá·áºáá»á¬áž ááá¯ááºááá¯ááºážááœáẠá¡ááá·áºáá
áºáá¯áá«ááŸáááẠ- dockerfile
. áááºááŸááºááᯠááœááºáá»ááºáá±á¬á¡áá«á ááá¯ááºáá»á¬ážá checksum ááᯠááœááºáá»ááºáááºá context
áááºáááºáá±á
ááºá¡ááœááºáž á¡áá¯á¶ážááŒá¯ááá·áºá á€ááœááºážáá¶ááŒááºáááºááŸá¯áááŒá¯áá®á werf ááẠááá¯ááºáá»á¬ážá¡á¬ážáá¯á¶ážááᯠááŸáá·áºáááºááŒáá·áºááŸá¯ááŒá®áž ááá¯ááºáá
áºáá¯á
á®á á¡ááŒá±á¬ááºážá¡áá¬ááŸáá·áº áá¯ááºááᯠáá±á«ááºážá
ááºážááŒááºážááŒáá·áº checksum áá
áºáá¯ááᯠááá°áá²á·áááºá v1.1 ááŸá
áááºá werf ááẠGit repository ááœááºááááºážáááºážáá¬ážáá±á¬ááœááºáá»ááºáá¬ážáá±á¬ checksums ááá¯áá¯á¶ážááá¯ááºáááºá
á¡ááá¯áá« algorithm áá±á«áºááœááºá¡ááŒá±áá¶áááºá .dockerignore
ááá¯á¡ááºááá·áºá¡áá«ááŸáᬠááá¯ááºáá
áºáááºááᯠááŒááºááœá¬ážááẠá ááá¯á·ááŒá±á¬áá·áºá áá»áœááºá¯ááºááá¯á·ááẠááá¯ááºá
áá
áºá¡á¬áž áááºááŸá¯ááŒááºážá០ááœá²áá¯ááºááá¯ááºááŒá®áž á¡ááœááºá¡á
á¬ážá¡áá±á«áº algorithm á ááŸá®ááá¯á¡á¬ážáá¬ážááŸá¯á context
áááá¬áááºááŸá¬ážáááºááá¯ááºá
á¡ááºáááá¯áá®áááºááẠááŒá±áá¬áá¶ááá¬ážáá±á¬ááá¯ááºáá»á¬ážááá¯áááºáž á á áºáá±ážááŒá®áž ááá¯á¡ááºáá«á áááºážááá¯á·ááᯠchecksum ááœáẠááá·áºááœááºážá ááºážá á¬ážáááºá
ááá¯ááºáá»á¬ážáááºááœááºážááá·áºá¡áá« á áœááºážáá±á¬ááºáááºááᯠááŒáŸáá·áºáááºáá¬ážáááºá
werf v1.1 ááá¬ážááŸááºážáá»á¬ážááẠrsync áá¬áá¬ááᯠá¡áá¯á¶ážááŒá¯ááá·áºá¡áá«ááœááºááŒá
áºáááºá
macOS ááœáẠáááºááœááºážááŸá¯á áœááºážáá±á¬ááºáááºááᯠDocker ááá¬ááá»á¬ážááŒáá·áº ááá·áºáááºááá¬ážáá±á¬á·áá² áááºááœááºážááŸá¯áá»á¬ážááᯠLinux ááŸáá·áº Windows áá²á·ááá¯á· á¡áá»áááºá¡ááá¯ááºážá¡áá¬áá áºáá¯á¡ááœááºáž ááŒá®ážááŒá±á¬ááºá á±áááºá
á¡ááŒá±á¬ááºážá¡áá¬á¡ááŒá±áᶠáááºáá¯ááºááŒááºážá
Werf v1.1 ááẠáá¯ááºáá¯á¶á¡ááŒá±á¬ááºážá¡áá¬á¡ááá¯áẠáááºááŒááºážáá¯áá±á«áºááẠá¡ááŒá±á¬ááºážá¡áá¬á¡ááŒá±áá¶áááºáá¯ááºááŒááºážá. áááŸááá¬áá±á¬ Docker áá¯á¶áá»á¬ážá áááºáá»á¬ážááẠá€áá¯á¶áá»á¬ážá á¡ááŒá±á¬ááºážá¡áá¬áá»á¬ážáá±á«áºááœáẠáá°áááºáá«áááºá
command ááᯠrun áá±á¬á¡áá« werf publish --tags-by-stages-signature
ááá¯á·ááá¯áẠwerf ci-env --tagging-strategy=stages-signature
áááºáá«áá±á«áºáá¯á¶áá»á¬áž á
ááºááŒáá·áºáááºááŸáẠáá¯á¶á áá¯á¶áá
áºáá¯á¶áá»ááºážá
á®ááᯠá¡ááá·áºáá
áºáá¯á
á®á áá°áá®áá±á¬á
ááºážáá»ááºážáá»á¬ážá¡ááá¯ááºáž ááœááºáá»ááºáá¬ážááá·áº á€áá¯á¶áá¡ááá·áºáá»á¬ážá ááá¯ááºááá¯ááºá¡ááŸááºá¡áá¬ážááŒáá·áº á¡ááŸááºá¡áá¬ážááŒá¯áá¬ážáááºá
áá¯á¶á¡ááá·áºááá·áºá áááºááŸááºááẠá¡á±á¬ááºáá«ááá¯á·á¡áá±á«áº áá°áááºáá«áááºá
- á€áá¯á¶áá¡ááŒá±á¬ááºážá¡áá¬áá»á¬áž;
- á€á¡ááŒá±á¬ááºážá¡áá¬ááᯠááŒá áºá á±áá±á¬ Git á¡ááŒá±á¬ááºážá¡áá²áá»á¬ážá ááŸááºáááºážáá»á¬ážá
Git repository ááœáẠáá¯á¶ááá¯ááºáá»á¬ážá á¡ááŒá±á¬ááºážá¡áá¬áá»á¬ážááᯠáááŒá±á¬ááºážáá²á á±áá±á¬ dummy commits áá»á¬áž á¡ááŒá²ááŸááá«áááºá á¥ááá¬á¡á¬ážááŒáá·áºá ááŸááºáá»ááºáá»á¬ážáᬠááá¯á·ááá¯áẠáá±á«ááºážá ááºážááŒááºážááá¯ááºáᬠáááááŒá¯ááŸá¯áá»á¬ážááŸáá·áº áááááááºááŒá¯ááŒááºáž ááá¯á·ááá¯áẠáá¯á¶áá²ááá¯á· ááá·áºááœááºážáááºááá¯ááºááá·áº Git ááŸá á¡ááá¯áá«ááá¯ááºáá»á¬ážááᯠááŒá±á¬ááºážáá²á á±áá±á¬ áááááŒá¯ááŸá¯áá»á¬ážá
á¡ááŒá±á¬ááºážá¡áá¬-á¡ááŒá±áá¶áááºáá¯ááºááŒááºážááᯠá¡áá¯á¶ážááŒá¯áá±á¬á¡áá«á áá¯á¶áá¡ááŒá±á¬ááºážá¡áá¬áá»á¬ážááᯠáááŒá±á¬ááºážáá²áá±á¬áºáááºáž áá¯ááºáá¯á¶áá¡áááºááŒá±á¬ááºážáá²ááŸá¯ááŒá±á¬áá·áº Kubernetes ááŸá áááá¯á¡ááºáá² á¡ááá®áá±ážááŸááºážáá»á¬áž ááŒááºáááºá áááºááŒááºážááá¯ááºáᬠááŒá¿áá¬áá»á¬ážááᯠááŒá±ááŸááºážáá±ážáá«áááºá á áá¬ážáá ááºá á€áááºááŸá¬ Git repository áá áºáá¯áááºážááœáẠá¡ááá®áá±ážááŸááºážáá áºáá¯á microservice á¡áá»á¬ážá¡ááŒá¬ážááᯠááááºážáááºážááŒááºážááᯠáá¬ážáá®ážááá·áº á¡ááŒá±á¬ááºážáááºážáá áºáá¯ááŒá áºáááºá
ááá¯á·á¡ááŒááºá á¡ááŒá±á¬ááºážá¡áá¬-á¡ááŒá±áá¶áááºáá¯ááºááŒááºážááẠGit á¡ááá¯ááºážá¡áááºáá»á¬ážááᯠáááºááŒááºážááẠááá¯ááá¯áá¯á¶ááŒááºá áááºáá»ááá±á¬ áááºáá¯ááºááŒááºážáááºážáááºážááŒá áºáááºá á¡ááŒá±á¬ááºážááŸá¬ ááááºáá¯á¶áá»á¬ážá á¡ááŒá±á¬ááºážá¡áá¬ááẠáá°áá®áá±á¬áá¬áááœá²áá áºáá¯á ááœááºááá·áºáá»á¬ážá áœá¬ááᯠá á¯á ááºážáááºá¡ááœáẠCI á áá áºááœáẠááá¯ááºááá¯ááºážáá»á¬ážááᯠáá¯ááºáá±á¬ááºááá·áºá¡á á®á¡á á¥áºáá±á«áºááœááºáá°áááºááŒááºážáááŸááá±á¬ááŒá±á¬áá·áºááŒá áºáááºá
á¡áá±ážááŒá®ážáá±á¬: á¡áá¯ááŸá
áááºá á¡ááá·áºáá»á¬áž-áááºááŸáẠ- á á¡ááŒá¶ááŒá¯áá¬ážááá·áº áá
áºáá¯áááºážáá±á¬ tagging áááºážáá»á°áá¬. áááºážááᯠcommand ááœáẠdefault á¡áá±ááŒáá·áº á¡áá¯á¶ážááŒá¯áááºááŒá
áºáááºá werf ci-env
(á¡ááŒá¬ážáááºáá¯ááºááŒááºážá¡á
á®á¡á
ááºááᯠá¡ááá¡áá»ááááºááŸááºáá¬ážáá»áŸááº)á
áá áºáá¯ááºááŒááºážá¡ááá·áºááá·áº
ááá¯á¡áá« á¡áá¯á¶ážááŒá¯áá°ááẠá¡ááœááºááᯠááááºážáá»á¯ááºáááºá ááŸááºáááºážá¡ááá·áºááᯠáááºááŸááºááŒá®áž á¡ááŸá¬ážááŸá¬ááŒááºááá·áº á¡áá»ááºá¡áááºááŒáá·áº áá¯ááºáá±á¬ááºááẠá¡ááœáá·áºá¡áá±ážááŸááááºá ááœá±ážáá»ááºá
áá¬áá»á¬áž ááá·áºáá¬ážáááºá --log-quiet
, --log-verbose
, --log-debug
.
áá¯á¶ááŸááºá¡á¬ážááŒáá·áºá á¡ááœááºááœáẠá¡áááá·áºáá¯á¶ážá¡áá»ááºá¡áááºáá»á¬áž áá«áááºáááº-
verbose output ááá¯áá¯á¶ážáá±á¬á¡áá« (--log-verbose
) werf á¡áá¯ááºáá¯ááºáá¯á¶ááᯠáááºááŒááºááá¯ááºáááº-
á¡áá±ážá
ááẠoutput (--log-debug
) werf debugging á¡áá»ááºá¡áááºá¡ááŒááºá á¡áá¯á¶ážááŒá¯áá¬ážáá±á¬ á
á¬ááŒáá·áºááá¯ááºáá»á¬ážá ááŸááºáááºážáá»á¬ážáá«ááŸááááºá á¥ááá¬á¡á¬ážááŒáá·áºá áááºááẠDocker Registry ááŸáá·áº áááºááá¯á·á¡ááŒááºá¡ááŸááºáá¯á¶á·ááŒááºááŸá¯ ááŒá
áºááœá¬ážáááºááᯠáááºááŒááºááá¯ááºááŒá®áž á¡áá»áááºáá»á¬ážá
áœá¬ááŒá¬ááá·áºáá±áá¬áá»á¬ážááᯠááŸááºáááºážáááºáá¬ážááá¯ááºáááº-
á¡áá¬áááºá á®áá¶ááááºáž
ááááá±ážááŒááºáž! á¡á±á¬ááºááœááºáá±á¬áºááŒáá¬ážáá±á¬ááœá±ážáá»ááºá
áá¬áá»á¬ážááá¯ááŸááºáá¬ážáá¬ážáááºá v1.1 ááá±ážáá±á¬á·áá²á·á¡áá¬áááºááŸá¬ á¡áá»á¬ážá
á¯ááᯠáá®áá¬ážááŸááºážááŸá¬ áááá¯ááºáá«áááá·áºáááºá á¡ááºááááºáá»á¬ážááẠá¡ááá¯á¡áá»á±á¬áẠá¡ááºááááºáá»á¬ážááŸáá
áºááá·áº áá±á¬ááºáá¬áááá·áºáááºá
á¡áá»áá¯ážáá»áá¯ážáá±á¬ Docker Registry á¡áá±á¬ááºá¡áááºáá±á¬áºáá±á¬ááºááœááºááŸá¯áá»á¬ážá¡ááœáẠá¡ááŒáá·áºá¡ááá¶á·ááá¯ážááŸá¯ (NEW)
- áá¬ážááŸááºáž- v1.1
- áááºá áœá²áá»á¬áž- áááºá
-
áá¯ááºááŒááºáááº
áááºááœááºáá»ááºááŸá¬ werf ááá¯á¡áá¯á¶ážááŒá¯ááá·áºá¡áá« ááá·áºáááºáá»ááºáá»á¬ážáááŸááá² á áááºááŒáá¯ááºá¡áá±á¬ááºá¡áááºáá±á¬áºááŸá¯ááᯠá¡áá¯á¶ážááŒá¯áááºááŒá áºáááºá
áá±á¬áá±á¬áááºááœááºá áá»áœááºá¯ááºááá¯á·ááẠá¡ááŒáá·áºá¡ááá¶á·ááá¯ážááŸá¯á¡á¬ááá¶áá»ááºáá±ážááá·áº á¡á±á¬ááºáá«ááŒá±ááŸááºážáááºážáá»á¬ážááᯠááŸá¬ááœá±áá±á¬áºáá¯ááºáá¬ážáá«áááºá
- áá°áááºáž (library/registry)*á
- AWS ECR
- Azure*á
- Docker Hub
- GCR*á
- GitHub Packages áá»á¬áž
- GitLab ááŸááºáá¯á¶áááºááŒááºáž*á
- ááááºáááºáž*,
- ááœá±á·á
werf á០áá±á¬áá±á¬ááẠá¡ááŒáá·áºá¡á áá¶á·ááá¯ážáá±ážáá¬ážááá·áº ááŒá±ááŸááºážáá»ááºáá»á¬ážááᯠááá±ááœáá·áºááŒáá·áº ááŸááºáá¬ážáá¬ážáááºá áááŒá¬ážáá°ááœá±á¡ááœááºáá±á¬á· áá¶á·ááá¯ážááŸá¯ááœá±ááŸááá±ááá·áº ááá·áºáááºáá»ááºááŸááááºá
á¡áááááŒá¿áá¬ááŸá áºáá¯ááᯠáá±á¬áºáá¯ááºááá¯ááºáááº-
- á¡áá¯á¶ážááŒá¯áá°áá»á¬ážá¡á¬áž werf áá¡ááá¯á¡áá»á±á¬ááºááŸááºážáááºážááŸá¯ááá¯á¡áá¯á¶ážááŒá¯ááŒááºážááŸáá¬ááœááºáá±ážáá±á¬ Docker Registry API ááá¯á¡áá¯á¶ážááŒá¯á áááºáááºááŸá¬ážááŒááºážá¡áá»áá¯á·ááŒá±ááŸááºážáá»ááºáá»á¬ážáááá¶á·ááá¯ážáá«á áááºážááẠAWS ECRá Docker Hub ááŸáá·áº GitHub Packages áá»á¬ážá¡ááœáẠááŸááºáááºáá«áááºá
- á¡áá»áá¯á·áá±á¬ááŒá±ááŸááºážáá»ááºáá»á¬ážááẠnested repositories (Docker Hubá GitHub Packages ááŸáá·áº Quay) áá¯áá±á«áºáá±á¬ nested repositories áá»á¬ážááᯠááá¶á·ááá¯ážááá¯ááºáá±á¬áºáááºážá á¡áá¯á¶ážááŒá¯áá°ááẠáááºážááá¯á·ááᯠUI ááá¯á·ááá¯áẠAPI (AWS ECR) ááŒáá·áº ááá¯ááºááá¯ááºáááºáá®ážááá«áááºá
áá»áœááºá¯ááºááá¯á·ááẠááŒá±ááŸááºážáá»ááºáá»á¬ážá áá°á APIs áá»á¬ážááᯠá¡áá¯á¶ážááŒá¯á á€ááŸáá·áº á¡ááŒá¬ážááŒá¿áá¬áá»á¬ážááᯠááŒá±ááŸááºážááœá¬ážáá«áááºá á€áá¯ááºáááºážáá¬áááºááẠáááºážááá¯á·áá áºáá¯á á®á¡ááœáẠá ááºážáááºááŸá¯áá»á¬ážááŸáá·áºá¡áá° werf áááºáááºááŸá¯áá¶ááá¬áá áºáá¯áá¯á¶ážááᯠááŒá¯á¶áá¯á¶ááá á±ááŒááºážáááºáž áá«áááºáááºá
ááŒáá·áºáá±áá¬ážáá±á¬ áá¯á¶áááºáá±á¬ááºáá¯á¶ (â)
- áá¬ážááŸááºáž- v1.2 v1.1 (á€á¡ááºá¹áá«áááºááᯠá¡áá±á¬ááºá¡áááºáá±á¬áºááẠáŠážá á¬ážáá±ážááᯠááá¯ážááŒáŸáá·áºáá¬ážáááº)
- áááºá áœá²áá»á¬áž- áááºá-á§ááŒá® áááºá
-
áá¯ááºááŒááºáááº
áá±á¬áá±á¬áááºááœááºá werf v1.0 ááŸáá·áº v1.1 ááẠáá¯ááºáá¯á¶áá»á¬ážááᯠáááºáá±á¬ááºááŒááºážááŸáá·áº áá¯ááºáá±ááŒááºážááŸáá·áº á¡ááºááºáá®áá±ážááŸááºážááᯠKubernetes ááœáẠá¡áá¯á¶ážááŒá¯ááŒááºážá¡ááœáẠáá®ážááŒá¬áž host áá áºáá¯ááœááºáᬠá¡áá¯á¶ážááŒá¯ááá¯ááºáááºá
werf á ááŒáá·áºáá±ááŸá¯ááá¯ááºáᬠáá¯ááºáá±á¬ááºááá¯ááºááŒá±áá»á¬ážááᯠááœáá·áºáááºá Kubernetes ááŸá á¡ááºááºáá®áá±ážááŸááºážáá»á¬áž áááºáá±á¬ááºááŒááºážááŸáá·áº ááŒáá·áºáá»ááºááŒááºážááá¯á·ááᯠáááá¬ážáá±á¬ host á¡áá»á¬ážá¡ááŒá¬ážááœáẠá áááºáá±á¬á¡áá«ááœáẠá€á¡áááºááŸááºáá»á¬ážááẠáááºáá±á¬ááºááŸá¯áá»á¬áž (áá¬áá®á¡ááŒá±ážááá¬ážáá»á¬ážá¡ááŒá¬áž áááºážááá¯á·áá¡ááŒá±á¡áá±ááᯠááááºáááºáá«)á á¡áá¯á¶ážááŒá¯ááá¯ááºá áœááºážááᯠá¡áá±á¬ááºá¡áááºáá±á¬áºáááºá¡ááœáẠwerf ááá¯á¡ááºáá«áááºá Docker Registry ááᯠá ááá¯ážááá¯ááºáá áºáá¯á¡ááŒá áº
ááááºá werf ááá±á¬áá»ááºááᯠdapp áá¯áá±á«áºááá¯áá²á·áá±ážáá±á¬á¡áá«ááœááºá ááá¯ááá¯á·áá±á¬á¡ááœáá·áºá¡áá±ážáá áºáá¯ááŸááááºá ááá¯á·áá±á¬áºá werf ááœáẠá€áá¯ááºáá±á¬ááºáá»ááºááᯠá¡áá±á¬ááºá¡áááºáá±á¬áºáá¬ááœáẠááá·áºááœááºážá ááºážá á¬ážáááá·áº ááŒá¿áá¬áá»á¬ážá áœá¬ááᯠáá»áœááºá¯ááºááá¯á·ááŒá¯á¶ááœá±á·áá²á·ááááºá
ááœá±á¬ááá¯. á€á¡ááºá¹áá«áááºááẠKubernetes pods áá»á¬ážá¡ááœááºážááœáẠá á¯áá±á¬ááºážáá°á¡á¬áž áá¯ááºáá±á¬ááºááẠáááá¯á¡ááºáá±á¬ááŒá±á¬áá·áºááŒá áºáááºá áááºážááá¯áá¯ááºáá±á¬ááºáááºá áááºááẠáá±áááœááºáž Docker áá¬áá¬á¡áá±á«áº ááŸá®ááá¯ááŸá¯ááᯠáááºááŸá¬ážááẠááá¯á¡ááºááẠ( Kubernetes pod ááœáẠáá±áááœááºáž Docker áá¬áá¬ááᯠá¡áá¯á¶ážááŒá¯ááœáá·áºáááŸááá«á á¡áááºááŒá±á¬áá·áºááá¯áá±á¬áº áá¯ááºáááºážá ááºááá¯ááºááá¯ááºá ááœááºááááºáá¬áá áºáá¯á¡ááœááºáž áá¯ááºáá±á¬ááºáá±áá±á¬ááŒá±á¬áá·áºá werf á áá¶á·ááá¯ážáá±ážáááºááá¯ááºáá«á ááœááºáááºáá±á«áºááœáẠDocker áá¬áá¬ááŸáá·áº á¡áá¯ááºáá¯ááºáááº)á Kubernetes áá¯ááºáá±á¬ááºááŒááºážá¡ááœáẠáá¶á·ááá¯ážááŸá¯ááᯠáá®ážááŒá¬áž á¡áá±á¬ááºá¡áááºáá±á¬áºáá«áááºá
GitHub áá¯ááºáá±á¬ááºáá»ááºáá»á¬ážá¡ááœáẠááá¬ážáááºáá¶á·ááá¯ážááŸá¯ (á¡áá áº)
- áá¬ážááŸááºáž- v1.1
- áááºá áœá²áá»á¬áž- áááºá
-
áá¯ááºááŒááºáááº
werf á á¬ááœááºá á¬áááºážáá»á¬áž áá«áááºááẠ(ááá¹ááá»á¬áž á¡ááœáŸááºáž О áááºážááœáŸááº) á¡ááŒáẠwerf ááŸáá·áºá¡áá¯ááºáá¯ááºáááºá¡ááœááºááá¬ážááẠGitHub áá¯ááºáá±á¬ááºáá»ááºá
ááá¯á·á¡ááŒááºá áááºážááẠwerf á¡á¬áž áá±á«áºáááºá¡ááŒá±ážááá¬ážáá»á¬ážá¡ááœáẠáá¯ááºáá±á¬ááºááá¯ááºáááºááŒá áºáááºá
CI á áá áºááŸáá·áº á¡áá¯á¶ážááŒá¯áá° á¡ááŒááºá¡ááŸáẠá¡ááŒááºá¡ááŸáẠáááºááœááºááŸá¯ááá¯ááºáᬠá ááºááŒááºáá»á¬ážááẠá¡ááá®áá±ážááŸááºážááᯠáááºáá±á¬ááº/áá¯ááºááẠá¡áá»áá¯á·áá±á¬ áá¯ááºáá±á¬ááºáá»ááºáá»á¬ážááᯠá áááºááẠááœá²áá°áá±á¬ááºážááá¯ááŸá¯áá»á¬ážá¡áá±á«áº á¡ááœáŸááºážáá»á¬áž áá¬ážááŸáááŸá¯á¡áá±á«áº á¡ááŒá±áá¶áááºááŒá áºáááºá
werf (â) ááŒáá·áº áá±áááá¯ááºáᬠááœá¶á·ááŒáá¯ážááá¯ážáááºááŸá¯ááŸáá·áº á¡áá¯á¶ážáá»áááá¯ááááºáá»á¬áž ááŒáá·áºáá»ááºááŒááºáž
- áá¬ážááŸááºáž- v1.1
- áááºá áœá²áá»á¬áž- áááºááá«áá®á០áá±áá±á¬áºáá«áá® á§ááŒá®á
-
áá¯ááºááŒááºáááº
á¡ááááááºážááá¯ááºááŸá¬ ááŸá¯ááºááœá±ážáá±á¬áá¯ááºáá±á¬ááºáá»ááºáá»á¬ážááá«áá²á á ááºá¡ááœááºážá០á¡ááá®áá±ážááŸááºážáá»á¬ážááᯠá ááºááœááºážááá±á¬ áá¯ááºáá¯ááºááŸá¯ááœáẠááŒáá·áºáá»ááºááŒááºážá¡ááœáẠáá áºáá¯áááºážáá±á¬ áá±á«ááºážá ááºááœá²á·á ááºážááŸá¯áá áºáá¯ááᯠáááŸááááºááŒá áºáááºá
werf ááẠá¡ááá®áá±ážááŸááºážáá¯ááºááᯠáááºážááŒááºáááºááŸáá·áº á¡ááŸá¬ážááŸá¬ááŒááºááŒááºážá¡ááœáẠáá¯ááºáá±á¬ááºáá±ááá·áº á¡ááá®áá±ážááŸááºážáá¶á០áá¯á¶á·ááŒááºáá»ááºáá»ááºáá»ááºážáááŸáááẠá¡áááºááŒá±á á±ááá·áº áááºáááºááŸá¯áá¯ááºáá áºáá¯áááºáž ááá¯á¡ááºáá«áááºá
ááá·áºááŸááºážáá±ážáá¯ááºáá¯á¶ážáá¯ááºáááºážá¡áá Ạ(á¡áá áº)
- áá¬ážááŸááºáž- v1.1
- áááºá áœá²áá»á¬áž- á§ááŒá®á
-
áá¯ááºááŒááºáááº
áá¯ááºáá¯á¶ážáá¯ááºáááºážááŸá werf v1.1 á áááºááŸááá¬ážááŸááºážááœáẠcleanup
á¡ááŒá±á¬ááºážá¡áá¬á¡ááŒá±áᶠáááºáá¯ááºááŒááºážá¡á
á®á¡á
ááºá¡ááœáẠáá¯ááºáá¯á¶áá»á¬ážááᯠááŸááºážáááºážááẠááŒáá¹áá¬ááºážáá»ááºáááŸááá« - á€áá¯á¶áá»á¬ážááẠá
á¯áá¯á¶áá±áááá·áºáááºá
ááá¯á·á¡ááŒááºá werf (v1.0 ááŸáá·áº v1.1) á áááºááŸááá¬ážááŸááºážááẠáááºáá¯ááºááŒááºážá¡á á®á¡á ááºáá»á¬ážá¡á±á¬ááºááœáẠáá¯ááºáá±áá¬ážáá±á¬ áá¯á¶áá»á¬ážá¡ááœáẠááá°áá®áá±á¬ ááŸááºážáááºážáá±ážáá°áá«ááá»á¬ážááᯠá¡áá¯á¶ážááŒá¯áááº- Git áá¬áááœá²á Git ááẠááá¯á·ááá¯áẠGit commitá
Git ááŸá commits áá»á¬ážááááá¯ááºážááá¯á¡ááŒá±áá¶á áá¯á¶áá»á¬ážááá¯ááŸááºážáááºážááẠá¡ááºáááá¯áá®áááºá¡áá áºáá áºáá¯ááᯠtagging á¡á á®á¡á ááºá¡á¬ážáá¯á¶ážá¡ááœáẠáá±á«ááºážá ááºážáá¬ážááŒá®ážá
- git HEAD (á¡ááá¯ááºážá¡áááºáá»á¬ážááŸáá·áº áááºáá»á¬áž) áá áºáá¯á á®á¡ááœáẠN1 ááŸáá·áº áááºá ááºáá±ááá·áº áá±á¬ááºáá¯á¶ážááááááẠN2 ááẠáááá¯áá«á á±ááŸáá·áºá
- git HEAD (á¡ááá¯ááºážá¡áááºáá»á¬ážááŸáá·áº áááºáá»á¬áž) áá áºáá¯á á®á¡ááœáẠN1 ááŸáá·áº áááºá ááºáá±ááá·áº áá±á¬ááºáá¯á¶ážááááááẠN2 á¡ááá·áºááẠáááá¯á á±ááá«á
- áááºááá·áº Kubernetes á¡á á¯á¡áá±áž á¡áááºážá¡ááŒá áºáá»á¬ážááœáẠá¡áá¯á¶ážááŒá¯ááá·áº áá¯á¶á¡á¬ážáá¯á¶ážááᯠááááºážáááºážáá¬ážáá« (ááœá²á·á ááºážáá¯á¶ááá¯ááºááŸáá·áº namespaces áá»á¬ážá kube áááºá ááºááŸá¯áá»á¬ážááᯠá áááºááºáááºááŒá®ážá á€á¡ááŒá¯á¡áá°ááᯠá¡áá°ážááœá±ážáá»ááºááŸá¯áá»á¬ážááŒáá·áº áááºááá·áºáááºááá¯ááºáááº)á
- Helm áá¯ááºáá±ááŸá¯áá»á¬ážááœáẠááááºážáááºážáá¬ážááá·áº á¡áááºážá¡ááŒá áºááœá²á·á ááºážááŸá¯áá¯á¶á ᶠáááºáá®ážáááºá áºáá»á¬ážááœáẠá¡áá¯á¶ážááŒá¯ááá·áº áá¯á¶á¡á¬ážáá¯á¶ážááᯠááááºážáááºážáá«á
- áá¯á¶áá áºáá¯á¶ááᯠgit á០HEAD áá áºáá¯áá¯ááŸáá·áº áááºá ááºááŸá¯áááŸááá«á (á¥ááá¬á áááºááá¯ááºáᬠHEAD ááá¯ááºááá¯áẠáá»ááºááá¯ááºáá±á¬ááŒá±á¬áá·áº) ááŸáá·áº Kubernetes cluster ááŸáá·áº Helm áá¯ááºáá±ááŸá¯áá»á¬ážááœáẠáááºááá·áº manifests áá»á¬ážááœáẠá¡áá¯á¶ážáááŒá¯áá«á áá»ááºááá¯ááºáá«áááºá
á¡ááŒáá¯ááºáá¯ááºáá¯á¶áááºáá±á¬ááºáá¯á¶ (â)
- áá¬ážááŸááºáž- v1.1
- áááºá áœá²áá»á¬áž- áááºááá«áá®á០áá±áá±á¬áºáá«áá® á§ááŒá®á*
werf á áááºááŸááá¬ážááŸááºážááœáẠáá±á¬áºááŒáá¬ážáá±á¬ áá¯ááºáá¯á¶áá»á¬ážááŸáá·áº ááŸá±ážáá±á¬ááºážáá
á¹á
ááºážáá»á¬ážááᯠá
á¯áá±á¬ááºážáá«áááºá werf.yaml
, ááá·áºáá²á áá¯ááºáá¯á¶áá»á¬ážááŸáá·áº ááŸá±ážáá±á¬ááºážáá
á¹á
ááºážáá»á¬ážá áá®ážááŒá¬ážá¡ááá·áºáá»á¬áž á
á¯á
ááºážááŸá¯áá¯ááºáááºážá
ááºááᯠááŒáá¯ááºáá°áá¯ááºáá±á¬ááºááẠááá¯á¡ááºááá·áºá¡ááŒáẠá¡áááºááŒá±ááŒá®áž ááááºážá¡áá»ááºá¡áááºááœááºááŸáááŸá¯ááᯠáá±ážáá±á¬ááºááẠááá¯á¡ááºáá«áááºá
* ááŸááºáá»ááº- ááŒáá·áºáá±áá¬ážáá±á¬ á á¯áá±ážááŸá¯á¡á¬áž áŠážá á¬ážáá±ážáá¯ááºáá±á¬ááºááẠááá¯ážááŒáŸáá·áºáá¬ážáá±á¬ áŠážá á¬ážáá±ážááŒá±á¬áá·áº áá±á¬ááºáá¯á¶ážáááºááᯠááœáŸá±á·ááá¯ááºááŒá®ážá á¡áá»á¬ážááá¯áẠá¡ááá¯ááºážá¡áᬠáá»á²á·ááœááºááá¯ááºááŸá¯áá»á¬ážá¡ááŒáẠGitHub áá¯ááºáá±á¬ááºáá»ááºáá»á¬ážááŒáá·áº werf á¡áá¯á¶ážááŒá¯ááŒááºážááá¯á·ááᯠááá¯ááá¯ááá·áºááœááºážáá±ážáááºááŒá áºáááºá Parallel assembly ááẠááá±á¬áá»ááºáá áºáá¯á¡á¬áž áááºáááºáá¬ááœáẠáá±á«ááºááá¯áẠá¡ááœááºá¡á á¬ážááᯠáá¶á·ááá¯ážáá±ážááá·áº áá±á¬ááºááẠááá¯ááá¯áá±á¬ááºážááœááºá¡á±á¬áẠááŒá¯áá¯ááºáá±áž á¡ááá·áºááŒá áºáááºá
Helm 3 ááá¯á· áá°ážááŒá±á¬ááºážááŒááºáž (â)
- áá¬ážááŸááºáž- v1.2
- áááºá áœá²áá»á¬áž- áá±áá±á¬áºáá«áá®áá០áááºá áá±á*
codebase á¡áá
áºááá¯á· ááŒá±á¬ááºážááœáŸá±á·ááŒááºáž áá«áááºáááºá
* ááŸááºáá»ááº- Helm 3 ááá¯á·ááŒá±á¬ááºážááŒááºážááẠwerf ááœáẠáááá¬áááºááŸá¬ážáá±á¬á¡ááºá¹áá«áááºáá»á¬ážááᯠááá·áºáááºááá¯ááºáá«á á¡ááŒá±á¬ááºážááŸá¬ Helm 3 (3-way-merge ááŸáá·áº no tiller) ááᯠwerf ááœáẠá¡áá±á¬ááºá¡áááºáá±á¬áºááŒá®ážááŒá
áºáá±á¬ááŒá±á¬áá·áºááŒá
áºáááºá ááá¯á·á¡ááŒááºá werf ááŸááááºá
Kubernetes ááœá²á·á ááºážááŸá¯áá¯á¶á á¶ááᯠáá±á¬áºááŒáááºá¡ááœáẠJsonnet (â)
- áá¬ážááŸááºáž- v1.2
- áá±á·áááºáá»á¬áž- áááºááá«áá®á០áá±áá±á¬áºáá«áá® á§ááŒá®áá០áá±á
Werf ááẠJsonnet áá±á¬áºáááºááŒáá·áº Kubernetes á¡ááœáẠááœá²á·á ááºážááŸá¯áá¯á¶á á¶áá±á¬áºááŒáá»ááºáá»á¬ážááᯠáá¶á·ááá¯ážáá±ážáá«áááºá áá áºáá»áááºáááºážááŸá¬áááºá werf ááẠHelm ááŸáá·áº ááœá²áááºá¡áá¯á¶ážááŒá¯ááá¯ááºáááºááŒá áºááŒá®áž áá±á¬áºááŒáá»ááºáá±á¬áºáááºááœá±ážáá»ááºááŸá¯áá áºáá¯ááŸááá«áááºá
á¡ááŒá±á¬ááºážáááºážááŸá¬ Go templates áá»á¬ážááẠááŒáá·áºáá¬ážáá±á¬ entry barrier áá»á¬ážáá«ááŸáááŒá®áž á¡ááá¯áá« templates áá»á¬ážá code ááᯠáá¬ážáááºááá¯ááºááŸá¯ááŸá¬áááºáž ááŒá¯á¶ááœá±á·áá±ááá±á¬ááŒá±á¬áá·áºááŒá áºáááºá
á¡ááŒá¬ážáá±á¬ Kubernetes ááœá²á·á ááºážááŸá¯áá¯á¶á á¶áá±á¬áºááŒáá»ááºá áá áºáá»á¬áž (á¥ááá¬á Kustomize) ááᯠááááºáááºááá¯ááºááŒá±ááá¯áááºáž ááá·áºááœááºážá ááºážá á¬ážáá»ááºááŸááááºá
Kubernetes (â) ááœáẠá¡áá¯ááºáá¯ááºáááº
- áá¬ážááŸááºáž- v1.2
- áááºá áœá²áá»á¬áž- á§ááŒá®á-áá±á-ááœááº
áááºážááá¯ááº- áá¯ááºáá¯á¶áá»á¬ážááᯠáááºáá±á¬ááºááŒá®áž Kubernetes ááŸá á¡ááŒá±ážááá¬ážáá»á¬ážááᯠá¡áá¯á¶ážááŒá¯á á¡ááá®áá±ážááŸááºážááᯠáá±ážááá¯á·ááŒá±á¬ááºáž áá±áá»á¬áá«á á±á á¡á²áá«ááœá±á áá¯á¶á¡áá áºáá»á¬ážááᯠKubernetes pods áá»á¬ážá០ááá¯ááºááá¯ááºáááºáá±á¬ááºááŒááºážá áá¯ááºáá±ááŒááºážá ááŸááºážáá¯ááºááŒááºážááŸáá·áº á¡áá¯á¶ážáá»ááá¯ááºáááºá
á€á áœááºážáááºááᯠá¡áá±á¬ááºá¡áááºáá±á¬áºáááºá¡ááœáẠáááºááẠááŒáá·áºáá±áá¬ážáá±á¬áá¯á¶áá»á¬ážááᯠáŠážá áœá¬áááºáá±á¬ááºááá¯ááºááá«áááºá (á¡áá±á«áºá á¡áá»ááºááá¯ááŒáá·áºáá«).
áááºážááẠDocker áá¬áá¬ááá«áá² áááºáá±á¬ááºáá°á áááºáááºááŸá¯áá¯ááºá¡ááœáẠáá¶á·ááá¯ážááŸá¯áááºáž ááá¯á¡ááºááẠ(ááá¯ááá¯áááºááŸá¬ Kaniko-like build ááá¯á·ááá¯áẠuserspace ááœáẠáááºáá±á¬ááºáááº)á
Werf ááẠDockerfile ááŒáá·áºáá¬áá Kubernetes ááœááºáááºáá±á¬ááºááŒááºážááᯠáá¶á·ááá¯ážáá±ážáááºááŒá áºááŒá®áž ááá¯ážááŒáá·áºáá±á¬ááŒááºáááºáááºáá±á¬ááºááŸá¯ááŸáá·áº Ansible ááŒáá·áº áááºážá Stapel builder ááŸáá·áºáááºáž áá¶á·ááá¯ážáá±ážáááºááŒá áºáááºá
ááœáá·áºáááºážáá±á¬ ááœá¶á·ááŒáá¯ážááá¯ážáááºááŸá¯áá®ááá¯á· ááŒá±ááŸááºážáá áºáá¯
áá«ááá¯á·á¡ááá¯ááºážá¡ááá¯ááºážááá¯áá»á
áºááẠ(
áááŒá¬áá±ážáá®áá០ááŒá±á¬ááºážááẠáá¯á¶ážááŒááºáá²á·áááºá
-
á á¬ááœááºá á¬áááºážááŸáá·áºááá¯áẠ; -
áá¬áá¬ááŒááºá¡ááœáẠá ááºážáááºááŒááºáž ; -
Bugs ááŸáá·áº Bad 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
.
áá±á¬ááºáá°ážááŒá¬ážáá»ááºááŸá¬ ááŒáá·áºáá±áá¬ážáá±á¬ á ááºážáá±ážááœá²áá»á¬ážááᯠááá·áºááœááºážáááºááŒá áºáááºá ááŒáá·áºáá±áá¬ážáá±á¬áááºáá±á¬ááºááŸá¯áá»á¬ážááẠwerf ááœááºáááºááá¯ážááá¯ááá¯ááá·áºáááºáá±á¬ááŒá±á¬áá·áº v1.0 ááŸá ááŒá®áž á¡ááŒáá¯ááºáááºáá±á¬ááºááŸá¯áá»á¬ážááẠááá¯ááá¯áŠážá á¬ážáá±ážááŒá áºáá¬áááº- áááºáá±á¬ááºáá°áá»á¬ážááá±á«ááºááá¯ááºá¡ááá¯ááºážá¡áá¬ááŸáá·áº CI/CD á áá áºá¡áá»áá¯ážáá»áá¯ážááŸá áá±á«áºáááºáááºáá±á¬ááºáá°áá»á¬ážá¡ááœááºáá¶á·ááá¯ážááŸá¯á GitHub áá¯ááºáá±á¬ááºáá»ááºáá»á¬ážá¡ááœááºááá¬ážáááºáá¶á·ááá¯ážááŸá¯ááŒá¯áá¯ááºááá¯ááºááŸá¯ááá¯á·ááŒá±á¬áá·áºááŒá áºáááºá . ááá¯á·ááŒá±á¬áá·áº á¡ááŒáá¯ááºá ááºážáá±ážááœá²áá»á¬áž á¡áá±á¬ááºá¡áááºáá±á¬áºááẠáááºááŸááºáááºááᯠááœáŸá±á·áá¬ážáááºá ááá¯á·áá±á¬áº ááŒá áºááá¯ááºáá»á± ááŸá áºáá¯áá¯á¶ážááᯠá¡ááŒááºáá¯á¶ážá¡áá±á¬ááºá¡áááºáá±á¬áºááẠáá»áœááºá¯ááºááá¯á· áá¯ááºáá±á¬ááºáá±áá«áááºá
ááááºážááᯠááá¯ááºáá¬áá«á ááŒá®ážáá±á¬á· áá»áœááºáá±á¬áºááá¯á·ááᯠáá¬áááºááá¯á· ááá±á·áá«áá²á·á
PS
áá»áœááºá¯ááºááá¯á·áááá±á¬á·ááºááœááºáááºážáááºáá«
- «
werf 1.0 áááºááŒáááºááŸá¯ááᯠááááºáááºááŒááºáž- GitOps ááẠáááºážááŸáá·áº áááºááá¯á·áááºááá¯ááºááááºážá á¡ááŒá±á¡áá±ááŸáá·áº á¡á á®á¡á ááºáá»á¬áž » - «
werf - Kubernetes ááŸá CI/CD á¡ááœáẠáá»áœááºá¯ááºááá¯á·ááááááᬠ(ááŒá¯á¶áá¯á¶áá¯á¶ážáááºáá»ááºááŸáá·áº áá®áá®ááá¯á¡á á®áááºáá¶á á¬) "; - werf ááœáẠáááºážáá
áºáá®ááœááºááŸá¯áá»á¬ážá¡ááŒá±á¬ááºáž á¡ááœá²ááá¯ááºááŸááºá
á¯áá»á¬áž-
- «
werf ááá¯á· 3-áááºáž áá±á«ááºážá ááºážááŒááºáž- "á áá®ááœáá¯ááºáá»á¬ážáá±á«áºááœááº" Helm ááŒáá·áº Kubernetes ááá¯á· ááŒáá·áºáá»ááºááŒááºáž "; - «
ááŸá¯ááºááœá±ážáá±á¬ Helm ááá¬ážáá»á¬ážááᯠáá¯ááºááẠwerf ááᯠá¡áá¯á¶ážááŒá¯ááŒááºážá "; - «
werf ááœáẠmonorepo ááŸáá·áº multirepo á¡ááœáẠáá¶á·ááá¯ážááŸá¯ ááŸáá·áº Docker Registry ááẠáááºážááŸáá·áº áááºááá¯ááºáááºá "; - «
ááᯠáááºááẠáá¯á¶ááŸáẠDockerfile ááᯠá¡áá¯á¶ážááŒá¯á werf ááœáẠDocker áá¯á¶áá»á¬ážááᯠáááºáá±á¬ááºááá¯ááºáá«ááŒá®á "á
- «
source: www.habr.com