Каналы обновлений
Релизный процесс подразумевает последовательное прохождение версий по каналам в порядке повышения стабильности Alpha → Beta → Early-Access → Stable → Rock-Solid. Таким образом каждую версию на менее стабильном канале можно рассматривать как кандидата на переход в более стабильный канал.
Канал обновлений Rock-Solid рекомендуется использовать в критичных окружениях с высоким SLA. Мы гарантируем обратную совместимость между версиями канала обновлений Rock-Solid в пределах минорной версии (1.1.x). Мы гарантируем, что версия из канала обновлений Stable перейдет в канал обновлений Rock-Solid не ранее чем через 2 недели плотного тестирования.
Канал обновлений Stable можно безопасно использовать и мы рекомендуем этот канал обновлений везде. Мы гарантируем обратную совместимость между версиями канала обновлений Stable в пределах минорной версии (1.1.x). Мы гарантируем, что версия канала обновлений Early-Access перейдет в канал обновлений Stable не ранее чем через неделю после внутреннего тестирования.
Версии этого канала обновлений обычно безопасно использовать в некритичных окружениях или при локальной разработке. Мы не гарантируем обратную совместимость между версиями канала обновлений Early-Access.
Версии этого канала обновлений предназначены для более глубокого тестирования новых возможностей. Мы не гарантируем обратную совместимость между версиями канала обновлений Beta.
Версии этого канала обновлений могут содержать новые возможности, а также быть нестабильными, иметь ошибки. Мы не гарантируем обратную совместимость между версиями канала обновлений Alpha.
История изменений версий в каналах обновлений
Релиз:
Канал:

Для критичных окружений с высоким SLA

Канал обновлений Rock-Solid рекомендуется использовать в критичных окружениях с высоким SLA. Мы гарантируем обратную совместимость между версиями канала обновлений Rock-Solid в пределах минорной версии (1.1.x). Мы гарантируем, что версия из канала обновлений Stable перейдет в канал обновлений Rock-Solid не ранее чем через 2 недели плотного тестирования.

v1.1.19+fix11
11.08.2020, 12:36 +0300

Fix ‘patch does not apply’ error in github actions

"virtual-merge-commit": "true" label in the docker image of the stage was not reset to false when building a new image for regular commit (not virtual merge commit).

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.14+fix1
3.07.2020, 18:27 +0300

Added ability to use slash “/” and plus “+” signs in werf.yaml image names

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.8+fix20
14.05.2020, 23:41 +0300

Fix “@ERROR: invalid gid nogroup” on imports stage

The error occurs when artifact image does not contain “nogroup” group, which was used by default when running rsync server. For example when using “maven:3.6.3-jdk-13” as artifact base image.

Fixed by running rsync server using root group.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.8+fix19
14.05.2020, 20:10 +0300

Fix git-related stages selection when multiple git-mappings by the same url used

https://github.com/flant/werf/issues/2407

The problem only reproduces when multiple git-mappings by the same url is used and these git-mappings use different commit.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.8+fix17
30.04.2020, 14:01 +0300

Fix dockerInstructions stage not isolated when used after gitCache

After this release dockerInstructions signature will change if used after gitCache. Stage-not-exists in stages-storage errors may occur in this case.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.8+fix16
23.04.2020, 13:55 +0300

Fixes

Fix gitLatestPatch signature not stable against index-line changes in git patches.

Installation

Linux amd64

Darwin amd64

Windows amd64

Рекомендуемый канал обновлений, если вы не уверены в выборе

Канал обновлений Stable можно безопасно использовать и мы рекомендуем этот канал обновлений везде. Мы гарантируем обратную совместимость между версиями канала обновлений Stable в пределах минорной версии (1.1.x). Мы гарантируем, что версия канала обновлений Early-Access перейдет в канал обновлений Stable не ранее чем через неделю после внутреннего тестирования.

v1.1.21+fix22
11.08.2020, 13:56 +0300

Fix helm release name not slugged by default anymore

Fix deploy meta config templates defaults.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.20+fix21
11.08.2020, 13:21 +0300

Fix helm release name not slugged by default anymore

Fix deploy meta config templates defaults.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.21+fix22
11.08.2020, 11:38 +0300

Fix helm release name not slugged by default anymore

Fix deploy meta config templates defaults.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.20+fix21
7.08.2020, 16:24 +0300

Fix helm release name not slugged by default anymore

Fix deploy meta config templates defaults.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.20+fix19
5.08.2020, 18:36 +0300

Fix ‘patch does not apply’ error in github actions

"virtual-merge-commit": "true" label in the docker image of the stage was not reset to false when building a new image for regular commit (not virtual merge commit).

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.19+fix11
5.08.2020, 17:15 +0300

Fix ‘patch does not apply’ error in github actions

"virtual-merge-commit": "true" label in the docker image of the stage was not reset to false when building a new image for regular commit (not virtual merge commit).

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.19+fix10
22.07.2020, 10:18 +0300

Doc CI/CD integration fixes

  • Updating supported CI systems + a few corrections.
  • Fixed intro for unsupported CI systems.
  • Renaming generic CI/CD integration doc.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.19+fix8
9.07.2020, 16:55 +0300

Cleanup fixes

[cleanup] Fix UNAUTHORIZED: authentication required error with gitlab.com
[docker_registry] Autodetect gitlab.com implementation

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.16+fix10
16.06.2020, 15:00 +0300

Docs

[docs] Fixed github stats api usage, requests will be sent only once an hour

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.16+fix8
11.06.2020, 17:35 +0300

Changed https://werf.io and https://ru.werf.io landing pages!

Backport change for v1.1.16.

  • [doc] Added animated presentation, introduction to werf became more comprehensible
  • [doc] Added three new publications

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.14+fix1
21.05.2020, 10:33 +0300

Added ability to use slash “/” and plus “+” signs in werf.yaml image names

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.8+fix20
15.05.2020, 16:38 +0300

Fix “@ERROR: invalid gid nogroup” on imports stage

The error occurs when artifact image does not contain “nogroup” group, which was used by default when running rsync server. For example when using “maven:3.6.3-jdk-13” as artifact base image.

Fixed by running rsync server using root group.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.9+fix9
14.05.2020, 23:53 +0300

Fix git-related stages selection when multiple git-mappings by the same url used

https://github.com/flant/werf/issues/2407

The problem only reproduces when multiple git-mappings by the same url is used and these git-mappings use different commit.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.9+fix10
14.05.2020, 23:50 +0300

Fixes

  • Fix kubernetes namespace slug: should not allow capital letters.
  • Fix “@ERROR: invalid gid nogroup” on imports stage. The error occurs when artifact image does not contain “nogroup” group, which was used by default when running rsync server. For example when using “maven:3.6.3-jdk-13” as artifact base image. Fixed by running rsync server using root group.
  • Fix git-related stages selection when multiple git-mappings by the same url used.
    https://github.com/flant/werf/issues/2407

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.9+fix9
14.05.2020, 20:10 +0300

Fix git-related stages selection when multiple git-mappings by the same url used

https://github.com/flant/werf/issues/2407

The problem only reproduces when multiple git-mappings by the same url is used and these git-mappings use different commit.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.8+fix17
29.04.2020, 22:35 +0300

Fix dockerInstructions stage not isolated when used after gitCache

After this release dockerInstructions signature will change if used after gitCache. Stage-not-exists in stages-storage errors may occur in this case.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.8+fix16
20.04.2020, 21:01 +0300

Fixes

Fix gitLatestPatch signature not stable against index-line changes in git patches.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.8+fix15
20.04.2020, 11:18 +0300

Fix build panics and errors when newly built image has been discarded

Example of error:

  
  
 delete stage image fdf27403-2c05-4966-850f-dbb0c79ff577 manually and retry the build  

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.8+fix12
17.04.2020, 14:45 +0300

Fix dockerfile builder

[dockerfile] Fix git status checksum algorithm does not count symlinks properly
[dockerfile] Skip outside the build context wildcard till fail on docker build
[dockerfile] Take into account ignored files by .gitignore files
[dockerfile] Change checksum calculation without git logic

  • Add relative file path and mode to checksum
  • Add symlink link to checksum instead of linked data
    [dockerfile] Fix git status with not initialized submodules

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.8+fix14
17.04.2020, 14:22 +0300

Fix release

Fix problems related to changes introduced in v1.1.8+fix13: signatures has been accidentally changed in v1.1.8+fix13.

Fixes that were made in v1.1.8+fix13 are also available in this v1.1.8+fix14 release:

[build][git] Handle “commits not present” line in git diffs

[build][git] Fix gitLatestPatch not built when previous stage has been discarded during build

  • remove git-building-stage map from Conveyor;
  • remove AfterSignatureCalculated Stage hook.

[dockerfile] Fix ONBUILD instruction processing

  • dockerfile stage signature should take into account ONBUILD value;
  • dockerfile stage that uses another one with ONBUILD instructions should
    calculate files checksum for COPY/ADD trigger instruction in addition to ONBUILD value.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.8+fix12
15.04.2020, 16:13 +0300

Fix dockerfile builder

[dockerfile] Fix git status checksum algorithm does not count symlinks properly
[dockerfile] Skip outside the build context wildcard till fail on docker build
[dockerfile] Take into account ignored files by .gitignore files
[dockerfile] Change checksum calculation without git logic

  • Add relative file path and mode to checksum
  • Add symlink link to checksum instead of linked data
    [dockerfile] Fix git status with not initialized submodules

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.8+fix11
10.04.2020, 15:18 +0300

Fix release

  • Use 1.1 stable in README installation and docs.
  • Change v1.1.8 stages-storage-cache dir to prevent bugs related to update to new v1.1.9.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.8+fix10
10.04.2020, 13:42 +0300

Fix werf dockerfile image not rebuilds when COPY/ADD source path files changed

Fix COPY/ADD source path with trailing backslash is not counted in the signature.

Installation

Linux amd64

Darwin amd64

Windows amd64

Для некритичных окружений или локальной разработки

Версии этого канала обновлений обычно безопасно использовать в некритичных окружениях или при локальной разработке. Мы не гарантируем обратную совместимость между версиями канала обновлений Early-Access.

v1.1.21+fix24
11.08.2020, 20:04 +0300

Docs fixes

[readme] Hide code coverage badge
[docs] Configuration/Cleanup: add directives overview
[docs] Configuration/Introduction: fix adding file with shell example

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.21+fix22
7.08.2020, 16:21 +0300

Fix helm release name not slugged by default anymore

Fix deploy meta config templates defaults.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.21+fix20
5.08.2020, 18:24 +0300

Fix ‘patch does not apply’ error in github actions

"virtual-merge-commit": "true" label in the docker image of the stage was not reset to false when building a new image for regular commit (not virtual merge commit).

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.20+fix19
5.08.2020, 17:15 +0300

Fix ‘patch does not apply’ error in github actions

"virtual-merge-commit": "true" label in the docker image of the stage was not reset to false when building a new image for regular commit (not virtual merge commit).

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.20+fix17
27.07.2020, 18:55 +0300

Fix werf cleanup slow deletion of images

[cleanup] Gitlab registry implementation: use deleting a tag method instead of an image

More details in gitlab-org/container-registry documentation:

  • https://gitlab.com/gitlab-org/container-registry/-/blob/release/2.9-gitlab/docs/spec/api.md#deleting-a-tag
  • https://gitlab.com/gitlab-org/container-registry/-/blob/release/2.9-gitlab/docs/spec/api.md#deleting-an-image

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.20+fix16
23.07.2020, 15:50 +0300

Docs translation and fixes

Git history based cleanup related doc articles has been translated.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.20+fix15
22.07.2020, 10:18 +0300

Doc CI/CD integration fixes

  • Updating supported CI systems + a few corrections.
  • Fixed intro for unsupported CI systems.
  • Renaming generic CI/CD integration doc.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.20+fix14
17.07.2020, 17:37 +0300

Shallow clone related fixes

Do origin fetch only when git shallow clone is detected. The complete commit history is enough for all commands except images cleanup.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.19+fix8
3.07.2020, 18:23 +0300

Cleanup fixes

[cleanup] Fix UNAUTHORIZED: authentication required error with gitlab.com
[docker_registry] Autodetect gitlab.com implementation

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.19+fix7
26.06.2020, 19:56 +0300

Fix distributed werf hangs sometimes

The hanging case was in the lockgate library, described in the https://github.com/werf/lockgate/pull/24.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.19+fix6
23.06.2020, 09:46 +0300

[git] Do not use ‘git worktree add –no-checkout’ option

This option is not avaiable in the v2.17.1 version of git, which is the latest avaiable version for 18.04 lts ubuntu.

Specify target commit instead (which is by the way a faster and more precise approach).

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.16+fix10
16.06.2020, 15:00 +0300

Docs

[docs] Fixed github stats api usage, requests will be sent only once an hour

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.16+fix8
11.06.2020, 17:35 +0300

Changed https://werf.io and https://ru.werf.io landing pages!

Backport change for v1.1.16.

  • [doc] Added animated presentation, introduction to werf became more comprehensible
  • [doc] Added three new publications

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.16+fix7
11.06.2020, 17:28 +0300

[config] Add .Files.Glob Go template function

{{ range $path, $content := .Files.Glob ".werf/files/**" }}  
{{ $path }}: |  
{{ $content | indent 2 }}  
{{ end }}  
  • Process symlinks with .Files.Glob
    .Files.Glob returns the hash of regular files and their contents for the paths that are matched pattern. This function follows only symlinks pointed to a regular file (not to a directory).

  • .Files.Glob: has an ability to merge results
    The function supports shell pattern matching + **. Results can be merged with merge sprig function (e.g {{ $filesDict := merge (.Files.Glob "*/*.txt") (.Files.Glob "app/ **/*.txt") }})

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.16+fix2
2.06.2020, 16:07 +0300

Fixes

[ci_env] GitHub: fix typo os.Getenv(“IMAGES REPO”)
[cli] Fix –release and –namespace params: add WERF_RELEASE and WERF_NAMESPACE options

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.16+fix1
2.06.2020, 14:20 +0300

Fix hard-coded images repo/stages storage implementation for ci-env

Automatically set gitlab docker registry implementation for stages storage and images repo.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.14+fix1
21.05.2020, 10:33 +0300

Added ability to use slash “/” and plus “+” signs in werf.yaml image names

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.14
18.05.2020, 19:07 +0300

Docs

  • Guides/GitHub CI/CD integration.
  • Add distributed-werf reference info and switch to distributed guide.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.13+fix2
17.05.2020, 14:42 +0300

Fixes

  • Fix kubernetes namespace slug: should not allow capital letters.
  • Fix git-related stages selection when multiple git-mappings by the same url used.
    https://github.com/flant/werf/issues/2407

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.13+fix1
14.05.2020, 23:53 +0300

Fix v1.1 stage selection algorithm

Fix for a case when two images of the same stage for two consecutive commits are building at the same time. This can lead to the bug, because werf uses oldest stage by creation timestamp and not oldest by save-into-stages-storage timestamp.

Use selection based on saving-into-stages-storage-timestamp instead of docker-image creation timestamp.

After this change stages-storage-cache will be invalidated automatically.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.13+fix2
14.05.2020, 23:50 +0300

Fixes

  • Fix kubernetes namespace slug: should not allow capital letters.
  • Fix git-related stages selection when multiple git-mappings by the same url used.
    https://github.com/flant/werf/issues/2407

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.13+fix1
14.05.2020, 20:10 +0300

Fix v1.1 stage selection algorithm

Fix for a case when two images of the same stage for two consecutive commits are building at the same time. This can lead to the bug, because werf uses oldest stage by creation timestamp and not oldest by save-into-stages-storage timestamp.

Use selection based on saving-into-stages-storage-timestamp instead of docker-image creation timestamp.

After this change stages-storage-cache will be invalidated automatically.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.12+fix1
12.05.2020, 22:28 +0300

Fix “@ERROR: invalid gid nogroup” on imports stage

The error occurs when artifact image does not contain “nogroup” group, which was used by default when running rsync server. For example when using “maven:3.6.3-jdk-13” as artifact base image.

Fixed by running rsync server using root group.

Retry docker pull/push on internal server error

Werf automatically retries pull/push operations on internal server errors.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.9+fix8
29.04.2020, 22:35 +0300

Fix dockerInstructions stage not isolated when used after gitCache

After this release dockerInstructions signature will change if used after gitCache. Stage-not-exists in stages-storage errors may occur in this case.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.9+fix7
28.04.2020, 12:26 +0300

Fix cleanup deletes stages that are related to deployed images

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.9+fix6
23.04.2020, 20:21 +0300

Remote storages support

Auto reset stages-storage-cache and retry action when docker-image has been deleted from stages-storage, but exists in the stages-storage-cache.

Fixes

Fix gitLatestPatch signature not stable to index line in patches.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.8+fix16
20.04.2020, 21:01 +0300

Fixes

Fix gitLatestPatch signature not stable against index-line changes in git patches.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.8+fix15
17.04.2020, 19:55 +0300

Fix build panics and errors when newly built image has been discarded

Example of error:

  
  
 delete stage image fdf27403-2c05-4966-850f-dbb0c79ff577 manually and retry the build  

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.8+fix12
17.04.2020, 14:45 +0300

Fix dockerfile builder

[dockerfile] Fix git status checksum algorithm does not count symlinks properly
[dockerfile] Skip outside the build context wildcard till fail on docker build
[dockerfile] Take into account ignored files by .gitignore files
[dockerfile] Change checksum calculation without git logic

  • Add relative file path and mode to checksum
  • Add symlink link to checksum instead of linked data
    [dockerfile] Fix git status with not initialized submodules

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.8+fix14
17.04.2020, 14:08 +0300

Fix release

Fix problems related to changes introduced in v1.1.8+fix13: signatures has been accidentally changed in v1.1.8+fix13.

Fixes that were made in v1.1.8+fix13 are also available in this v1.1.8+fix14 release:

[build][git] Handle “commits not present” line in git diffs

[build][git] Fix gitLatestPatch not built when previous stage has been discarded during build

  • remove git-building-stage map from Conveyor;
  • remove AfterSignatureCalculated Stage hook.

[dockerfile] Fix ONBUILD instruction processing

  • dockerfile stage signature should take into account ONBUILD value;
  • dockerfile stage that uses another one with ONBUILD instructions should
    calculate files checksum for COPY/ADD trigger instruction in addition to ONBUILD value.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.8+fix12
15.04.2020, 16:13 +0300

Fix dockerfile builder

[dockerfile] Fix git status checksum algorithm does not count symlinks properly
[dockerfile] Skip outside the build context wildcard till fail on docker build
[dockerfile] Take into account ignored files by .gitignore files
[dockerfile] Change checksum calculation without git logic

  • Add relative file path and mode to checksum
  • Add symlink link to checksum instead of linked data
    [dockerfile] Fix git status with not initialized submodules

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.8+fix11
10.04.2020, 15:18 +0300

Fix release

  • Use 1.1 stable in README installation and docs.
  • Change v1.1.8 stages-storage-cache dir to prevent bugs related to update to new v1.1.9.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.8+fix10
10.04.2020, 12:56 +0300

Fix werf dockerfile image not rebuilds when COPY/ADD source path files changed

Fix COPY/ADD source path with trailing backslash is not counted in the signature.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.8.5
6.04.2020, 19:11 +0300

INCOMPATIBLE CHANGE Fix stages and images isolation problem for git-latest-patch and stages-signature

  • gitLatestPatch stage was not isolated between different branches when the same changes
    has been made in two different commits: added commits ancestry check when selecting
    suitable stage from cache for gitLatestPatch. The signature of gitLatestPatch stage
    has not been changed.

  • Stages-signature was not isolated between different branches when the same
    changes has been maed in two different commits. IMPORTANT stages-signature
    calculation algorithm has been changed, stages-signature will change for all projects
    that use stages-signature tagging strategy (content-based).

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.4
23.03.2020, 12:17 +0300

[dockerfile] Fix dockerfile stage name from “COPY –from” is not detected

Docker parser coverts dockerfile stage name (AS) to lowercase but in places of the name usage (COPY –from) does not.
This affected dockerfile stage signature calculation and occurred false warning messages.

Installation

Linux amd64

Darwin amd64

Windows amd64

Для более глубокого тестирования новых возможностей

Версии этого канала обновлений предназначены для более глубокого тестирования новых возможностей. Мы не гарантируем обратную совместимость между версиями канала обновлений Beta.

v1.1.21+fix24
11.08.2020, 20:04 +0300

Docs fixes

[readme] Hide code coverage badge
[docs] Configuration/Cleanup: add directives overview
[docs] Configuration/Introduction: fix adding file with shell example

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.21+fix23
11.08.2020, 19:11 +0300

Fix managed images records with capital letters

Ignore image names with capital letters for managed-images records.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.21+fix22
7.08.2020, 16:21 +0300

Fix helm release name not slugged by default anymore

Fix deploy meta config templates defaults.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.21+fix20
5.08.2020, 17:15 +0300

Fix ‘patch does not apply’ error in github actions

"virtual-merge-commit": "true" label in the docker image of the stage was not reset to false when building a new image for regular commit (not virtual merge commit).

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.21+fix18
27.07.2020, 19:55 +0300

Fix werf cleanup slow deletion of images

[cleanup] Gitlab registry implementation: use deleting a tag method instead of an image

More details in gitlab-org/container-registry documentation:

  • https://gitlab.com/gitlab-org/container-registry/-/blob/release/2.9-gitlab/docs/spec/api.md#deleting-a-tag
  • https://gitlab.com/gitlab-org/container-registry/-/blob/release/2.9-gitlab/docs/spec/api.md#deleting-an-image

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.21+fix15
27.07.2020, 11:08 +0300

Synchronization fixes

  • Http server main page landing with some info.
  • Added http synchronization server docs.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.21+fix16
27.07.2020, 10:36 +0300

Public http synchronization server by default in distributed mode

Use https://synchronization.werf.io by default when stages-storage not :local.

Fixes

Fix manifest-cache not filled by manifests of newly built stages. Store manifest of newly built stage into manifest stage immediately after building, before storing this stage into stages storage.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.21+fix15
23.07.2020, 22:02 +0300

Synchronization fixes

  • Http server main page landing with some info.
  • Added http synchronization server docs.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.21+fix14
23.07.2020, 18:45 +0300

Synchronization server basic health check procedure

  • GET /health gives {"err":"","echo":"","status":"OK"}.
  • POST /heath + body {"echo": "HEY!"} gives: {"err":"","echo":"HEY!","status":"OK"}.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.21+fix12
22.07.2020, 10:18 +0300

Doc CI/CD integration fixes

  • Updating supported CI systems + a few corrections.
  • Fixed intro for unsupported CI systems.
  • Renaming generic CI/CD integration doc.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.21+fix11
20.07.2020, 15:19 +0300

New implementation of distributed locking http server: use new version of lockgate

https://github.com/werf/lockgate/pull/26

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.20+fix14
17.07.2020, 17:33 +0300

Shallow clone related fixes

Do origin fetch only when git shallow clone is detected. The complete commit history is enough for all commands except images cleanup.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.20+fix13
16.07.2020, 22:42 +0300

Optimistic git shallow clone handling

  • Ignore git shallow clone when it is possible
  • Force using git shallow clone despite restrictions with option –allow-git-shallow-clone

The new cleanup algorithm: config syntax updates and fixes

[cleanup] Change configuration syntax: replace createdIn/publishedIn with in
[docs] Configuration/Cleanup: replace createdIn/publishedIn with in
[tests] Cleanup Suite: update syntax
[tests] Cleanup Suite: fix checks are not compatible with monorepo implementations
[cleanup] UNAUTHORIZED error should not be ignored
[cleanup] Fail purge commands if deletion failed due to using by containers without the force option

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.20+fix12
15.07.2020, 15:25 +0300

Docs and small fixes

[docs] Reference/Cleanup: more details for git history based cleanup
[managed images] Ignore artifact names
[docs] Adding href rels to topnav.html
[docs] Adding rels to slack_popup.html links for security

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.20+fix11
13.07.2020, 23:30 +0300

Fix dockerfile ONBUILD

[dockerfile] Take into account ONBUILD instructions from base image

The new cleanup algorithm updates

[tests] Cleanup Suite: fix commit commiter when overriding
[cleanup] Improve logging: shortify commit and content signature
[cleanup] Disable meta images fetching by default

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.20+fix10
13.07.2020, 21:51 +0300

Fix AWS ECR build and publish

Fix AWS ECR build/publish problem ‘Image has to have at least 1 layer’

Create empty zero-bytes layer for manifest-only images: managed images records and image metadata by commit id records.

The new cleanup algorithm backports for v1.1.20

[cleanup] Update default policies
[cleanup] Fix parsing of cleanup policy tag/branch parameter
[cleanup] Use creation date for annotated tags instead of head commit date
[docs] Reference/Git history based cleanup

[cleanup] Git history based cleanup: improve algorithm

  • Add opportunity to keep images by publishing period.
  • Update default policies
  • Update cleanup section configuration:
cleanup:  
    keepPolicies:  
    - references:  
        branch: /.*/  
        tag: /.*/  
        limit:  
        last: 10  
        createdIn: 168h  
        operator: And  
    imagesPerReference:  
        last: 10  
        publishedIn: 168h  
        operator: And  

[tests] Cleanup Suite: git history based tests
[logging] Optimize verbose output

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.20+fix11
13.07.2020, 21:14 +0300

Fix dockerfile ONBUILD

[dockerfile] Take into account ONBUILD instructions from base image

The new cleanup algorithm updates

[tests] Cleanup Suite: fix commit commiter when overriding
[cleanup] Improve logging: shortify commit and content signature
[cleanup] Disable meta images fetching by default

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.20+fix10
13.07.2020, 17:45 +0300

Fix AWS ECR build and publish

Fix AWS ECR build/publish problem ‘Image has to have at least 1 layer’

Create empty zero-bytes layer for manifest-only images: managed images records and image metadata by commit id records.

The new cleanup algorithm backports for v1.1.20

[cleanup] Update default policies
[cleanup] Fix parsing of cleanup policy tag/branch parameter
[cleanup] Use creation date for annotated tags instead of head commit date
[docs] Reference/Git history based cleanup

[cleanup] Git history based cleanup: improve algorithm

  • Add opportunity to keep images by publishing period.
  • Update default policies
  • Update cleanup section configuration:
cleanup:  
    keepPolicies:  
    - references:  
        branch: /.*/  
        tag: /.*/  
        limit:  
        last: 10  
        createdIn: 168h  
        operator: And  
    imagesPerReference:  
        last: 10  
        publishedIn: 168h  
        operator: And  

[tests] Cleanup Suite: git history based tests
[logging] Optimize verbose output

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.19+fix8
3.07.2020, 18:59 +0300

Cleanup fixes

[cleanup] Fix UNAUTHORIZED: authentication required error with gitlab.com
[docker_registry] Autodetect gitlab.com implementation

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.20+fix8
3.07.2020, 18:27 +0300

Cleanup fixes

[cleanup] Fix UNAUTHORIZED: authentication required error with gitlab.com
[docker_registry] Autodetect gitlab.com implementation

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.19+fix8
3.07.2020, 18:23 +0300

Cleanup fixes

[cleanup] Fix UNAUTHORIZED: authentication required error with gitlab.com
[docker_registry] Autodetect gitlab.com implementation

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.19+fix7
25.06.2020, 17:15 +0300

Fix distributed werf hangs sometimes

The hanging case was in the lockgate library, described in the https://github.com/werf/lockgate/pull/24.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.19+fix6
19.06.2020, 10:55 +0300

[git] Do not use ‘git worktree add –no-checkout’ option

This option is not avaiable in the v2.17.1 version of git, which is the latest avaiable version for 18.04 lts ubuntu.

Specify target commit instead (which is by the way a faster and more precise approach).

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.16+fix11
18.06.2020, 17:16 +0300

Enable ‘Waiting for locked …’ log messages for kubernetes locker in distributed werf mode

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.16+fix10
16.06.2020, 14:42 +0300

Docs

[docs] Fixed github stats api usage, requests will be sent only once an hour

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.19+fix3
16.06.2020, 13:52 +0300

Distributed mode fix

  • Use locker-with-retry for all kubernetes locks in werf (10 attempts for acquire/release operations are configured).
  • Log all failed attempts to the stderr.

More fixes for werf.io landing

  • Fix grammar and rephrase sentences.
  • Added extra step to introduction presentation.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.16+fix8
11.06.2020, 17:35 +0300

Changed https://werf.io and https://ru.werf.io landing pages!

Backport change for v1.1.16.

  • [doc] Added animated presentation, introduction to werf became more comprehensible
  • [doc] Added three new publications

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.16+fix7
8.06.2020, 13:58 +0300

[config] Add .Files.Glob Go template function

{{ range $path, $content := .Files.Glob ".werf/files/**" }}  
{{ $path }}: |  
{{ $content | indent 2 }}  
{{ end }}  
  • Process symlinks with .Files.Glob
    .Files.Glob returns the hash of regular files and their contents for the paths that are matched pattern. This function follows only symlinks pointed to a regular file (not to a directory).

  • .Files.Glob: has an ability to merge results
    The function supports shell pattern matching + **. Results can be merged with merge sprig function (e.g {{ $filesDict := merge (.Files.Glob "*/*.txt") (.Files.Glob "app/ **/*.txt") }})

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.16+fix2
2.06.2020, 16:07 +0300

Fixes

[ci_env] GitHub: fix typo os.Getenv(“IMAGES REPO”)
[cli] Fix –release and –namespace params: add WERF_RELEASE and WERF_NAMESPACE options

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.16+fix1
25.05.2020, 14:13 +0300

Fix hard-coded images repo/stages storage implementation for ci-env

Automatically set gitlab docker registry implementation for stages storage and images repo.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.14+fix1
20.05.2020, 12:10 +0300

Added ability to use slash “/” and plus “+” signs in werf.yaml image names

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.14
18.05.2020, 19:07 +0300

Docs

  • Guides/GitHub CI/CD integration.
  • Add distributed-werf reference info and switch to distributed guide.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.13+fix3
17.05.2020, 15:01 +0300

Fixes

[dockerfile] Fix COPY –from arbitrary image (not only dockerfile stage)

Docs

Guides/GitLab CI/CD integration: added overview

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.13+fix2
17.05.2020, 14:42 +0300

Fixes

  • Fix kubernetes namespace slug: should not allow capital letters.
  • Fix git-related stages selection when multiple git-mappings by the same url used.
    https://github.com/flant/werf/issues/2407

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.13+fix1
14.05.2020, 23:53 +0300

Fix v1.1 stage selection algorithm

Fix for a case when two images of the same stage for two consecutive commits are building at the same time. This can lead to the bug, because werf uses oldest stage by creation timestamp and not oldest by save-into-stages-storage timestamp.

Use selection based on saving-into-stages-storage-timestamp instead of docker-image creation timestamp.

After this change stages-storage-cache will be invalidated automatically.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.13+fix2
14.05.2020, 23:50 +0300

Fixes

  • Fix kubernetes namespace slug: should not allow capital letters.
  • Fix git-related stages selection when multiple git-mappings by the same url used.
    https://github.com/flant/werf/issues/2407

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.13+fix1
14.05.2020, 20:10 +0300

Fix v1.1 stage selection algorithm

Fix for a case when two images of the same stage for two consecutive commits are building at the same time. This can lead to the bug, because werf uses oldest stage by creation timestamp and not oldest by save-into-stages-storage timestamp.

Use selection based on saving-into-stages-storage-timestamp instead of docker-image creation timestamp.

After this change stages-storage-cache will be invalidated automatically.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.12+fix1
7.05.2020, 19:03 +0300

Fix “@ERROR: invalid gid nogroup” on imports stage

The error occurs when artifact image does not contain “nogroup” group, which was used by default when running rsync server. For example when using “maven:3.6.3-jdk-13” as artifact base image.

Fixed by running rsync server using root group.

Retry docker pull/push on internal server error

Werf automatically retries pull/push operations on internal server errors.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.11
6.05.2020, 20:24 +0300

Custom helm chart directory (.helm) and werf configuration file (werf.yaml) options

  • Add –helm-chart-dir option.
  • Add –config / –config-templates-dir options to override default paths.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.10+fix4
6.05.2020, 12:46 +0300

Docs

[docs] Guides/GitLab CI/CD integration
[docs] Support hiding headers in TOC

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.10+fix3
29.04.2020, 22:35 +0300

Fix dockerInstructions stage not isolated when used after gitCache

After this release dockerInstructions signature will change if used after gitCache. Stage-not-exists in stages-storage errors may occur in this case.

Other

Detailed error messages for git submodules when submodule exists in the repo in the incorrect state.

[test] Test “Check broken links” hase been updated.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.10+fix2
28.04.2020, 12:26 +0300

Fix cleanup deletes stages that are related to deployed images

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.10
24.04.2020, 19:37 +0300

Introducing distributed builds

Werf now can store stages in the docker registry by specifying --stages-storage REPO instead of --stages-storage :local.

There is no more restriction that a single host should be used to run all werf commands for a project:

  • All werf commands that need an access to the stages should specify the same stages storage.
  • It is irrelevant on which host werf command is running as long as the same stages storage is used for the commands like: build, publish, cleanup and deploy.
  • Also all hosts which run werf should have a connection to the Kubernetes cluster, because werf uses Kubernetes to synchronize multiple build/publish/deploy processes running from different machines.

“werf ci-env gitlab” default mode now is to store stages by path CI_REGISTRY_IMAGE/stages. All existing werf installations will continue to use :local stages storage because --stages-storage :local param has explicitly been specified in all CI-configs. So to use distributed builds user needs to remove this param, see guided steps below about migrating to the distributed stages storage.

Synchronization, caches and cleanup

Introduced a new parameter named --synchronization, which controls how multiple werf processes are synchronized between each other. There is a stages-storage cache and locks components that werf needs to run. Stages storage cache is an internal component used to boost werf performance for idle builds when calculating stages. Locks are needed to organize correct publishing of new stages into stages-storage, publishing images into images-repo and for deploy process also.

When --synchronization :local used (which is factually by default in the previous versions < v1.1.10), then stages-storage cache reside in the local host file system (~/.werf/shared_context/storage/stages_storage_cache/1/PROJECT) and local file locks are used.

When --synchronization kubernetes://NAMESPACE is used, then werf creates a ConfigMap for project in this namespace, stores stages storage cache in this ConfigMap and uses distributed locking over this ConfigMap to synchronize multiple werf processes running from multiple hosts.

By default, when non local stages-storage is used werf automatically use kubernetes://werf-synchronization namespace and create a ConfigMap named werf-PROJECT in this namespace. User can specify arbitrary non-standard namespace on own needs.

What about local docker images cache on hosts where werf is running? — There is such a cache, which is cleared either by the werf itself or can freely be removed by other tools (docker rmi
.

New commands to sync and switch stages

  1. werf stages sync --from=:local|REPO --to=:local|REPO.
    • Command will copy stages from one stages-storage to another.
    • Command will copy only difference of stages from one stages-storage to another.
    • Furthermore command will copy multiple stages in parallel.
    • Command run result is idempotent: sync can be called multiple times, interrupted, then called again — the result will be the sam
      .
    • There are delete options: --remove-source and --cleanup-local-cache, which controls whether werf will delete synced stages from source stages-storage and wheter werf will cleanup localhost from temporary docker images created during sync process.
    • This command can be used to download project stages-storage to the localhost for development purpose as well as backuping and migrating purposes.
  2. werf stages switch-from-local --to=REPO
    • Command will automatically sync existing stages from :local stages storage to the specified REPO.
    • Command will block project from being used with :local stages-storage.
      • This means after werf stages switch-from-local is done, any werf command that specifies :local stages-storage for the project will fail preventing storing and using build results from different stages-storages.
      • Note that project is blocked after all existing stages has been synced.

How to migrate to distributed mode

Let’s say you have some project in Gitlab CI, that uses werf. Steps:

  1. Go to the directory where your project reside on the runner host.
  2. Create an MR in the project, that removes --stages-storage :local param from all werf invocations. There is no need to set this param explicitly anymore, because werf ci-env will automatically set it to CI_REGISTRY_IMAGE/stages.
  3. Run werf stages switch-from-local --to=CI_REGISTRY_IMAGE/stages where CI_REGISTRY_IMAGE is the address of container registry for your gitlab project. After this step all werf invocations from different git branches of the project that uses --stages-storage :local will refuse to work, because switch-from-local command sets a block to use :local.
  4. Merge your MR with correct stages-storage param.
  5. All git branches that need to run werf should rebase then onto the new changes to use new stages-storage, otherwise werf will refuse to use :local stages storage.

Other changes since last release v1.1.10-alpha.7

[docs] Remove –stages-storage :local from Gitlab CI docs
[ci] Cache GO modules
[tests] New tests
[tests] K8S/Cleanup Suite: test cleanup with deployed image
[tests] K8S/Guides Suite: actualize after each
Error: –stages-storage=ADDRESS param required
[tests] Helm/Render Suite: add extra annotations and labels check
[tests] Cleanup Suite: test stages storage repo

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.9+fix6
20.04.2020, 20:55 +0300

Remote storages support

Auto reset stages-storage-cache and retry action when docker-image has been deleted from stages-storage, but exists in the stages-storage-cache.

Fixes

Fix gitLatestPatch signature not stable to index line in patches.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.8+fix15
17.04.2020, 18:44 +0300

Fix build panics and errors when newly built image has been discarded

Example of error:

  
  
 delete stage image fdf27403-2c05-4966-850f-dbb0c79ff577 manually and retry the build  

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.8+fix12
17.04.2020, 14:45 +0300

Fix dockerfile builder

[dockerfile] Fix git status checksum algorithm does not count symlinks properly
[dockerfile] Skip outside the build context wildcard till fail on docker build
[dockerfile] Take into account ignored files by .gitignore files
[dockerfile] Change checksum calculation without git logic

  • Add relative file path and mode to checksum
  • Add symlink link to checksum instead of linked data
    [dockerfile] Fix git status with not initialized submodules

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.8+fix14
17.04.2020, 13:39 +0300

Fix release

Fix problems related to changes introduced in v1.1.8+fix13: signatures has been accidentally changed in v1.1.8+fix13.

Fixes that were made in v1.1.8+fix13 are also available in this v1.1.8+fix14 release:

[build][git] Handle “commits not present” line in git diffs

[build][git] Fix gitLatestPatch not built when previous stage has been discarded during build

  • remove git-building-stage map from Conveyor;
  • remove AfterSignatureCalculated Stage hook.

[dockerfile] Fix ONBUILD instruction processing

  • dockerfile stage signature should take into account ONBUILD value;
  • dockerfile stage that uses another one with ONBUILD instructions should
    calculate files checksum for COPY/ADD trigger instruction in addition to ONBUILD value.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.8+fix12
16.04.2020, 11:58 +0300

Fix dockerfile builder

[dockerfile] Fix git status checksum algorithm does not count symlinks properly
[dockerfile] Skip outside the build context wildcard till fail on docker build
[dockerfile] Take into account ignored files by .gitignore files
[dockerfile] Change checksum calculation without git logic

  • Add relative file path and mode to checksum
  • Add symlink link to checksum instead of linked data
    [dockerfile] Fix git status with not initialized submodules

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.9+fix3
15.04.2020, 22:18 +0300

Fix dockerfile builder

[dockerfile] Fix git status checksum algorithm does not count symlinks properly
[dockerfile] Skip outside the build context wildcard till fail on docker build
[dockerfile] Take into account ignored files by .gitignore files
[dockerfile] Change checksum calculation without git logic

  • Add relative file path and mode to checksum
  • Add symlink link to checksum instead of linked data
    [dockerfile] Fix git status with not initialized submodules

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.9+fix4
15.04.2020, 21:44 +0300

Fixes

[cleanup] Skip images with MANIFEST_UNKNOWN error

[build][git] Handle “commits not present” line in git diffs

[build][git] Fix gitLatestPatch not built when previous stage has been discarded during build

  • remove git-building-stage map from Conveyor;
  • remove AfterSignatureCalculated Stage hook.

[dockerfile] Fix ONBUILD instruction processing

  • dockerfile stage signature should take into account ONBUILD value;
  • dockerfile stage that uses another one with ONBUILD instructions should calculate files checksum for COPY/ADD trigger instruction in addition to ONBUILD value.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.9+fix3
15.04.2020, 16:13 +0300

Fix dockerfile builder

[dockerfile] Fix git status checksum algorithm does not count symlinks properly
[dockerfile] Skip outside the build context wildcard till fail on docker build
[dockerfile] Take into account ignored files by .gitignore files
[dockerfile] Change checksum calculation without git logic

  • Add relative file path and mode to checksum
  • Add symlink link to checksum instead of linked data
    [dockerfile] Fix git status with not initialized submodules

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.9+fix2
13.04.2020, 14:42 +0300

Remote storages support: safe switch between alpha and beta werf versions

Invalidate stages-storage-cache directory when old cache directory exists. Remove old and current stages-storage-cache directories in this case.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.8+fix11
10.04.2020, 15:18 +0300

Fix release

  • Use 1.1 stable in README installation and docs.
  • Change v1.1.8 stages-storage-cache dir to prevent bugs related to update to new v1.1.9.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.8+fix10
10.04.2020, 14:03 +0300

Fix werf dockerfile image not rebuilds when COPY/ADD source path files changed

Fix COPY/ADD source path with trailing backslash is not counted in the signature.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.9
10.04.2020, 13:01 +0300

Support non-default docker registries implementations and dockerhub

  • AWS ECR, Azure CR, GCR, GitHub Packages, GitLab Registry, Harbor, Quay.
  • Documentation: https://werf.io/v1.1-beta/documentation/reference/working_with_docker_registries.html

Support stages-storage in docker registry

For now only when building from single host. Building from multiple hosts will be available soon in v1.1.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.8+fix10
10.04.2020, 12:56 +0300

Fix werf dockerfile image not rebuilds when COPY/ADD source path files changed

Fix COPY/ADD source path with trailing backslash is not counted in the signature.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.8.9
8.04.2020, 16:22 +0300

Fix build panic when running ‘werf build ARTIFACT’ and artifact depends on another artifact

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.8.7
8.04.2020, 01:05 +0300

Support import from certain artifact/image stage

Added ability to specify stage directive in the import directive to perform import from certain artifact or image stage:

import:  
- add: /file  
  to: /file  
  artifact: myartifact  
  before: setup  
  stage: install  

Note that image which imports some files from another image stage will be rebuild only if this specified stage has been rebuilt.

This feature allows to avoid unnecessary imports of unchanged files.

Implementation details

  • image stages-signature has been renamed to image content-signature;
  • added content-signature to each stage, which differs from regular signature and represents content of the stage.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.8.6
7.04.2020, 20:30 +0300

Support building only artifacts specified for ‘werf build’ command

werf build -s :local ARTIFACT_NAME1 ARTIFACT_NAME2 ...

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.8.5
6.04.2020, 12:39 +0300

INCOMPATIBLE CHANGE Fix stages and images isolation problem for git-latest-patch and stages-signature

  • gitLatestPatch stage was not isolated between different branches when the same changes
    has been made in two different commits: added commits ancestry check when selecting
    suitable stage from cache for gitLatestPatch. The signature of gitLatestPatch stage
    has not been changed.

  • Stages-signature was not isolated between different branches when the same
    changes has been maed in two different commits. IMPORTANT stages-signature
    calculation algorithm has been changed, stages-signature will change for all projects
    that use stages-signature tagging strategy (content-based).

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.8.4
1.04.2020, 12:51 +0300

Werf kubernetes manifests yaml generation fixes

  1. Fix werf extra labels and annotations not added to deployed resources.

  2. Unfortunately revert fix to the problem with ‘|’ rendered as ‘|-‘ in kubernetes templates,
    which was in the https://github.com/flant/werf/releases/tag/v1.1.7 release.

    The fix for this problem is being investigated and will be released soon.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.8.1
31.03.2020, 11:43 +0300

Fixes

Fix “UNSUPPORTED: Invalid parameter at ‘maxResults’” when using ECR. Fixed by updating github.com/google/go-containerregistry, the issue: https://github.com/google/go-containerregistry/issues/681.

Docs

Added publications about werf 1.1.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.8.3
31.03.2020, 11:17 +0300

Fix failed to prepare update: unable to decode “”: Object ‘Kind’ is missing

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.8.1
30.03.2020, 23:32 +0300

Fixes

Fix “UNSUPPORTED: Invalid parameter at ‘maxResults’” when using ECR. Fixed by updating github.com/google/go-containerregistry, the issue: https://github.com/google/go-containerregistry/issues/681.

Docs

Added publications about werf 1.1.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.8.2
30.03.2020, 22:44 +0300

Fix extra annotations/labels are not added to k8s resources

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.8.1
30.03.2020, 19:16 +0300

Fixes

Fix “UNSUPPORTED: Invalid parameter at ‘maxResults’” when using ECR. Fixed by updating github.com/google/go-containerregistry, the issue: https://github.com/google/go-containerregistry/issues/681.

Docs

Added publications about werf 1.1.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.8
30.03.2020, 19:05 +0300

An option to enable cleanup for stages-signature tagging strategy

When running werf in ci with werf ci-env command, then either:

  • create cleanup config for the host:

    mkdir ~/.werf/config  
    echo "stagesSignatureStrategyExpiryDays: 30" >> ~/.werf/config/cleanup.yaml  
    echo "stagesSignatureStrategyLimit: 50" >> ~/.werf/config/cleanup.yaml  
    
  • export environment variables in your CI/CD system: WERF_STAGES_SIGNATURE_STRATEGY_LIMIT=50 and WERF_STAGES_SIGNATURE_STRATEGY_EXPIRY_DAYS=30.

By default werf will not cleanup images published with stages-signature tagging strategy and related stages.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.9
30.03.2020, 18:59 +0300

Support non-default docker registries implementations and dockerhub

  • AWS ECR, Azure CR, GCR, GitHub Packages, GitLab Registry, Harbor, Quay.
  • Documentation: https://werf.io/v1.1-beta/documentation/reference/working_with_docker_registries.html

Support stages-storage in docker registry

For now only when building from single host. Building from multiple hosts will be available soon in v1.1.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.8
23.03.2020, 22:05 +0300

An option to enable cleanup for stages-signature tagging strategy

When running werf in ci with werf ci-env command, then either:

  • create cleanup config for the host:

    mkdir ~/.werf/config  
    echo "stagesSignatureStrategyExpiryDays: 30" >> ~/.werf/config/cleanup.yaml  
    echo "stagesSignatureStrategyLimit: 50" >> ~/.werf/config/cleanup.yaml  
    
  • export environment variables in your CI/CD system: WERF_STAGES_SIGNATURE_STRATEGY_LIMIT=50 and WERF_STAGES_SIGNATURE_STRATEGY_EXPIRY_DAYS=30.

By default werf will not cleanup images published with stages-signature tagging strategy and related stages.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.7
23.03.2020, 12:17 +0300

[deploy] Hotfix werf helm render: fix problem with ‘|’ rendered as ‘|-‘

Change gopkg.in/yaml.v2 to github.com/ghodss/yaml in custom werf templates engine,
as github.com/ghodss/yaml is used everywhere in the helm 2.

In the helm 3 sigs.k8s.io/yaml is used, but it is not possible for now to switch to sigs.k8s.io/yaml before switching to helm 3 codebase.
https://github.com/helm/helm/blob/master/pkg/engine/funcs.go#L27

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.5
20.03.2020, 11:38 +0300

Docs

Added rss feeds for werf releases.

Fixes

[dockerfile] Fail build if dockerfile COPY instruction refers to nonexistent stage.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.4
19.03.2020, 22:50 +0300

[dockerfile] Fix dockerfile stage name from “COPY –from” is not detected

Docker parser coverts dockerfile stage name (AS) to lowercase but in places of the name usage (COPY –from) does not.
This affected dockerfile stage signature calculation and occurred false warning messages.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.3
19.03.2020, 11:12 +0300

Fix release

[dockerfile] Fix calculating context files checksum when submodule is used

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.2
12.03.2020, 10:25 +0300

Fix git problems release

Fix creating an archive fails when nested submodules is used

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.1
11.03.2020, 13:51 +0300

Fix git problem release

Fix creating an archive fails when submodule dir/file is specified in git.add

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.0
6.03.2020, 18:06 +0300

Official v1.1 beta

Implemented content based tagging and new stages storage architecture as a big step toward distributed and concurrent builds.

New stages format and cache selection algorithm

New stage name generation rule. Every build of the stage generates uniq stage-cache image name, which consists of 2 parts: signature (as in v1.0) plus unique identifier.

For example, full stage image name will look like:

  
werf-stages-storage/myproject:d2c5ad3d2c9fcd9e57b50edd9cb26c32d156165eb355318cebc3412b-1582656767835
  
werf-stages-storage/PROJECT:SIGNATURE-TIMESTAMP_MILLISEC
  

Signature identifier of the stage represents content of the stage and depends on git history which lead to this content.

Werf stage selection algorithm is based on the git commits ancestry detection:

  1. Werf calculates a stage signature for some stage.

  2. There may be multiple stages in the stages storage by this signature, werf selects all suitable stages by the signature.

  3. If current stage is related to git (git-archive, user stage with git patch or git latest patch), then werf selects only

    those stages which are relaed to the commit that is ancestor of current git commit.

  4. Select from the remaining stages the oldest by the creation timestamp.

There may be multiple built images for a single signature.

Stage for different git branches can have the same signature, but werf will prevent cache of different git branches from

being reused for totally different branch.

For more info see documentation: https://werf.io/v1.1-beta/documentation/reference/stages_and_images.html#stage-naming.

New stage building and saving algorithm

If suitable stage has not been found during stage selection, werf starts building a new image for stage.

Note that multiple processes (on a single or multiple hosts) may start building the same stage at the same time. Werf uses optimistic locking when saving newly built image into the stages storage: when a new stage has been built werf locks stages storage and saves newly built stage image into storage stages cache only if there are no suitable already existing stages exists. Newly saved image will have a guaranteed unique identifier

by TIMESTAMP_MILLISEC. In the case when already existing stage has been found in the stages storage werf will discard newly built image and

use already existing one as a cache.

In other words: the first process which finishes the build (the fastest one) will have a chance to save newly built stage into the stages storage. The slow build process will not block faster processes from saving build results and building next stages.

For more info see documentation: https://werf.io/v1.1-beta/documentation/reference/stages_and_images.html#stage-building-and-saving.

Benefits of new stages storage architecture

This new stages storage architecture opens up an opportunities to build stages concurrently and even distributely

from multiple build machines. For now there are no theoretical limitations of current werf architecture to implement

distributed or concurrent builds. So we consider this release as a big step towards distributed and concurrent builds.

Werf have an --stages-storage and --synchronization parameters which specify addresses of the stages storage and

synchronization lock manager. For now there is only :local implementations of both primitives. By changing these implementations to docker-registry for the stages storage and Redis or Kubernetes server based synchronization lock manager, werf will implement distributed builds out of the box.

Content based tagging

Werf v1.1 supports so called content based tagging. Tags of resulting docker images depend on the content of these images.

When using werf publish --tags-by-stages-signature or werf ci-env --tagging-strategy=stages-signature werf will tag result images by so called image stages signature. Each image tagged by own stages signature which calculated by the same rules as regular signature of image stage.

Image stages signature depends on content of the image and depends on the git history which lead to this content.

There may be dummy commits into the git repo that do not change resulting images. For example empty commits, merge commits or commits which change files that are not imported into the resulting image.

When using tagging by git-commits these dummy commits will cause werf to create new images names even if content of these images is the same. New images names in turn will cause restarts of application Pods in Kubernetes which is totally not a desired behaviour. All in all this is the reason preventing storing multiple application services in the single git repo.

Stages signature on the countrary will not change on dummy commits, so these commits will not cause restarts of application Pods in kubernetes, yet it similarly to commit-id relates to the git history of edits and depends on the content of the files.

Also tagging by stages signatures is more realiable tagging method than tagging by a git-branch for example, because resulting images content does not depend on order of pipelines execution. Stages signature leads to stable immutable images names which represent the address of the certain image content.

NOTE From now and on stages-signature is the default tagging strategy and the only recommended one for usage.

For more info see documentation: https://werf.io/v1.1-beta/documentation/reference/publish_process.html#content-based-tagging.

Improved performance of stages selection and verification

Idle builds when all stages are exist in the stages storage are really fast now (in the most cases build retry will run under 1sec).

Stages verification performance during werf deploy and werf run commands also improved a lot.

Improved performance of Dockerfile builder

Werf Dockerfile builder signature calculation performance is improved due to using git ls-tree checksums

for docker context files. Signature calculation does not depend on the docker context size.

Improved performance of artifact/image imports

Werf uses rsync server to import files from artifacts and images.

MacOS imports performance does not depend on docker implementation of volumes now. MacOS imports performance is the same as in Linux and Windows.

Other changes

  • Added --log-debug, --log-verbose and --log-quiet modes.

  • Removed legacy params and code (dapp secret key legacy support removed; --insecure-repo legacy option removed, only –skip-tls-verify-registry is available).

  • Eliminated werf.io/recreate annotation, werf uses helm.sh/hook-delete-policy=before-hook-creation mode by default (as in helm 3).

  • Improved werf cleanup procedure not to clean images from werf.yaml defined in the different git branches,

    those are not exist in the werf.yaml config of the master branch. Added new commands to control managed images: werf managed-images ls|add|rm.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.0-beta.7
6.03.2020, 11:41 +0300

Docs

  • New stages storage architecture documented.

  • Content based tagging documented.

Other fixes

  • fromLatest/git.Branch params could be used only with herebyIAdmitThatBranchMightBreakReproducibility and herebyIAdmitThatFromLatestMightBreakReproducibility params;

  • werf images managed subcommand renamed to werf managed-images;

  • tiny logging improvements:

    • hide docker container output in silent mode;

    • initialize stapel container before preparing of stage run args.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.0-beta.6
4.03.2020, 19:09 +0300

Fix logs in default mode

Remove ‘Switch work tree to commit …’ messages in default mode (will be printed in –log-verbose or –log-debug).

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.0-beta.5
4.03.2020, 13:14 +0300

WARNING: incompatible release

Stages signatures was changed, pipelines that were already build will use new signatures on retry, so rebuild needed.

Dockerfile builder support for v1.1!

Calculate docker build context files checksum with git ls-tree and status.

Fixed imports: allow merging of directories

  
import:
  
- artifact: myartifact
  
  add: /mydir
  
  to: /my/existing/dir
  
  after: install
  

Werf will automatically merge content of /mydir into /my/existing/dir.

This case was broken in v1.1.0-beta.4 due to imports optimization rework: the specified config will create my/existing/dir/mydir instead of merging directories.

v1.1.0-beta.3 was not affected by this bug.

Fixed logging performance

Fixed logboek library logging performance when processing large output, e.g. from make build command. Logging performance affects build time.

Stapel image updated to version 0.6.1.

Logging improvement

  • Disabled debug logging by default.

  • Default logging includes minimum viable info for commands.

  • --log-debug and --log-verbose options are avaiable.

  • More info in --log-debug mode.

Store managed config images in stages storage

Images that were built by werf will be remained in stages storage. For each such image managed image record created as werf-managed-images/PROJECT:IMAGE_NAME.

During cleanup procedure werf will preserve stages cache of images that are defined in the current werf.yaml config and images from managed images list. This prevents images defined only in custom git branches from being cleaned up, when running werf cleanup procedure main (master) branch.

Werf automatically creates records for managed images during build procedure.

Managed images list could be manually viewed and changed using commands:

  • werf images managed -s :local ls

  • werf images managed -s :local add IMAGE_NAME

  • werf images managed -s :local rm [IMAGE_NAME, ...]

Small fixes and changes

  • Fix publishing of only specified in cli images by names.

  • Renamed --stages-storage-lock param to --synchronization: address of synchronizer for multiple werf processes to work with a single stages storage (:local by default).

  • Update kubedog: load more kubernetes client-go auth plugins: azure, exec, oidc, openstack.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.0-beta.4
25.02.2020, 21:32 +0300

Optimize imports: rsync import server

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.0-beta.3
20.02.2020, 16:49 +0300

Fixes release (INCOMPATIBLE — more info belo

)

Small fixes and additions

  • Add –log-verbose, –log-quiet options, use –log-debug=true by default for werf v1.1 for now.
  • Fixed and enabled cleanup procedure.
  • Do not publish artifacts fix.
  • Fix: cleanup dockerfile builder tmp img on conveyor termination.
  • Fix helm release name slugify: should be a valid DNS-1123 subdomain and be maximum 53 chars.

Fix import stage logic and stages cleanup

The import stage image has the specific label value that is used during stages cleanup procedure. In this commit, related image/artifact signature which stored in the label is replaced on image ID.

The signature does not identify the stage since we started to use not only signature in an image tag. From v1.1, werf is building stages consistently so related image/artifact image ID is available when werf is preparing import stage.

INCOMPATIBLE change, because signature of import stage has been changed. Already built images should be rebuilt with this version of werf.

Also prevented possible bug, which may occur when artifacts are used and there are empty stages.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.0-beta.2
20.02.2020, 16:47 +0300

Fixes related to the “Resource already exists” deploy error

  • fix “resource already exists” error on redeploy when new resource with an error has been added to the chart,
    refs https://github.com/flant/helm/pull/40
  • fix “resource already exists” error message when creating a helm.sh/hook that already exists,
    refs https://github.com/flant/helm/pull/41
  • do not allow resource adoption during initial release installation, fix error messages,
    refs https://github.com/flant/helm/pull/42

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.0-beta.3
20.02.2020, 16:17 +0300

Fixes release (INCOMPATIBLE — more info belo

)

Small fixes and additions

  • Add –log-verbose, –log-quiet options, use –log-debug=true by default for werf v1.1 for now.
  • Fixed and enabled cleanup procedure.
  • Do not publish artifacts fix.
  • Fix: cleanup dockerfile builder tmp img on conveyor termination.
  • Fix helm release name slugify: should be a valid DNS-1123 subdomain and be maximum 53 chars.

Fix import stage logic and stages cleanup

The import stage image has the specific label value that is used during stages cleanup procedure. In this commit, related image/artifact signature which stored in the label is replaced on image ID.

The signature does not identify the stage since we started to use not only signature in an image tag. From v1.1, werf is building stages consistently so related image/artifact image ID is available when werf is preparing import stage.

INCOMPATIBLE change, because signature of import stage has been changed. Already built images should be rebuilt with this version of werf.

Also prevented possible bug, which may occur when artifacts are used and there are empty stages.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.0-beta.2
19.02.2020, 17:26 +0300

Fixes related to the “Resource already exists” deploy error

  • fix “resource already exists” error on redeploy when new resource with an error has been added to the chart,
    refs https://github.com/flant/helm/pull/40
  • fix “resource already exists” error message when creating a helm.sh/hook that already exists,
    refs https://github.com/flant/helm/pull/41
  • do not allow resource adoption during initial release installation, fix error messages,
    refs https://github.com/flant/helm/pull/42

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.0-beta.1
17.02.2020, 16:08 +0300

First Werf v1.1 beta release!

Main changes since v1.0:

  1. Fully reworked build process, new incompatible stages storage format (new build cache).
  • Improved performance of idle builds (from cache) nearly by one order of magnitude when git repo of the project is big.

  • Build cache isolation based on the git history. Build cache of different branches without same base is not overlapped. No more “rebase” related problems.

  • Also improved performance of stage-dependencies calculation (using git ls-tree mechanix) when large folders are specified as stage dependencies.

  1. Content based tagging using werf publish --tag-by-stages-signature option or werf ci-env --tagging-strategy=stages-signature tagging strategy.

    The default tagging strategy is stages-signature, werf ci-env parameter --tagging-strategy may be omitted to use default strategy.

Not supported in this version

IMPORTANT Following feature are not supported in the current beta version and will be repaired in the following releases very soon!

  • Building Dockerfile-based images. This version of werf v1.1 beta should not be used to build dockerfile-based images.

  • werf cleanup command will not actually clean stages, only images, due to the bug in the cleaning procedure. werf cleanup command can and should be used already now and will be fixed soon by automatic releases updater for 1.1 beta channel.

Fully reworked build process

  • Stage image name format changed: werf-stages-storage/PROJECT_NAME:SIGNATURE-UNIX_TIMESTAMP_MILLISECS.

  • UNIX_TIMESTAMP_MILLISECS is the unique part of stage image name.

  • There may be multiple stages with the same SIGNATURE part. Signature is based on the content of the image, while timestamp is added to keep separately built images separate.

  • IMPORTANT! Multiple processes may build the same stage by the same signature simultaneously at the same time. The first builder that builds the stage will store the stage in the stages storage. Other builders will discard build results when saving newly built image into stages storage if stages storage already contains suitable image built by the other process.

  • There may be multiple stages with the same SIGNATURE for different git branches. Stage selection algorithm will make sure that stage is suitable for your branch.

Compatibility notes

Incompatibilities with v1.0:

  • Werf v1.1 will generate new stages for stages storage.

  • Removed legacy ruby dapp secret-key format support.

  • Removed –insecure-repo option, use –skip-tls-verify-registry option instead.

  • “helm.sh/hook-delete-policy=before-hook-creation” by default for all kinds of hooks (not only Jobs as in v1.0).

  • Strict yaml parsing which does not allow duplicate keys in yaml docs (affects werf.yaml, .helm/templates/**, .helm/values.yaml etc.).

It is OK to use v1.0 and v1.1 simultaneously:

  • v1.1 and v1.0 may exists on the same host system, without any restrictions;

  • v1.1 and v1.0 may be used in the different branches of the same project without any restrictions;

  • cleanup procedure of v1.0 will not affect v1.1 and vice versa;

  • build cache (stages in the stages-storage) of v1.0 and v1.0 is fully separated.

How to enable v1.1

  1. Change multiwerf use command:

      
    type multiwerf && source <(multiwerf use 1.1 beta)
      
    
  2. (Optional) To use content based tagging change ci-env command:

      
    type werf && source <(werf ci-env gitlab)
      
    

Installation

Linux amd64

Darwin amd64

Windows amd64

Наименее стабильный канал обновлений

Версии этого канала обновлений могут содержать новые возможности, а также быть нестабильными, иметь ошибки. Мы не гарантируем обратную совместимость между версиями канала обновлений Alpha.

v1.1.22-alpha6
11.08.2020, 20:04 +0300

Enable git history based cleanup by default

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.22-alpha5
11.08.2020, 19:11 +0300

Docs fixes

  • [docs] Configuration/Introduction: fix adding file with shell example
  • [docs] Configuration/Cleanup: add directives overview
  • [readme] Hide code coverage badge

Fix managed images records with capital letters

Ignore image names with capital letters for managed-images records.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.22-alpha4
10.08.2020, 16:20 +0300

More helm 3 support

Support kubedog-based –wait for ‘werf helm-v3 *’ commands.

For example, run install/upgrade with the following command to get kubedog output:

werf helm-v3 upgrade --namespace myproj myproj . --install --create-namespace --wait  

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.22-alpha2
10.08.2020, 12:55 +0300

Fixes

  • Fix deploy error: at <.Values.global.env>: nil pointer evaluating interface {}.env.
  • Fix docs vulnerability warning: update ruby jekyll and kramdown.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.21+fix22
8.08.2020, 23:31 +0300

Fix helm release name not slugged by default anymore

Fix deploy meta config templates defaults.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.22-alpha1
7.08.2020, 21:02 +0300

[helm-v3] Initial helm v3 support

  • Added “werf helm-v3 *” cli commands to access helm-v3 directly.
  • Added pkg/deploy/helm_v3 package with basic helm-v3 operations.
  • werf helm deploy-chart will use v3 when WERF_HELM3=1 is set.

refs https://github.com/werf/helm/pull/47
refs https://github.com/werf/werf/issues/1606

NOTE: helm v2 and v3 are avaiable at the same time in v1.1.22.

Updated golang dependencies and golang

  • K8s deps updated to v0.18.6.
  • Other updates related to usage of helm v3.
  • Use 1.14 golang.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.21+fix22
7.08.2020, 16:21 +0300

Fix helm release name not slugged by default anymore

Fix deploy meta config templates defaults.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.21+fix20
5.08.2020, 15:27 +0300

Fix ‘patch does not apply’ error in github actions

"virtual-merge-commit": "true" label in the docker image of the stage was not reset to false when building a new image for regular commit (not virtual merge commit).

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.21+fix18
27.07.2020, 18:55 +0300

Fix werf cleanup slow deletion of images

[cleanup] Gitlab registry implementation: use deleting a tag method instead of an image

More details in gitlab-org/container-registry documentation:

  • https://gitlab.com/gitlab-org/container-registry/-/blob/release/2.9-gitlab/docs/spec/api.md#deleting-a-tag
  • https://gitlab.com/gitlab-org/container-registry/-/blob/release/2.9-gitlab/docs/spec/api.md#deleting-an-image

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.21+fix15
27.07.2020, 11:08 +0300

Synchronization fixes

  • Http server main page landing with some info.
  • Added http synchronization server docs.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.21+fix16
27.07.2020, 10:04 +0300

Public http synchronization server by default in distributed mode

Use https://synchronization.werf.io by default when stages-storage not :local.

Fixes

Fix manifest-cache not filled by manifests of newly built stages. Store manifest of newly built stage into manifest stage immediately after building, before storing this stage into stages storage.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.21+fix15
23.07.2020, 22:02 +0300

Synchronization fixes

  • Http server main page landing with some info.
  • Added http synchronization server docs.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.21+fix14
23.07.2020, 18:45 +0300

Synchronization server basic health check procedure

  • GET /health gives {"err":"","echo":"","status":"OK"}.
  • POST /heath + body {"echo": "HEY!"} gives: {"err":"","echo":"HEY!","status":"OK"}.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.21+fix13
23.07.2020, 15:50 +0300

Http synchronization server rework

Autogenerate persisntent clientID and store in the stages-storage for each project.

Docs translation

Git history based cleanup related doc articles has been translated.

Other fixes

  • Use kubernetes locker in cm/werf-synchronization in the namespace of the release to lock releases by release-name. Note that cm/werf-synchronization will be automatically created in the namespace of the release.
  • Fix werf converge command: do not require stages-storage and images-repo params when no images has been defined in the werf.yaml.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.21+fix12
22.07.2020, 10:18 +0300

Doc CI/CD integration fixes

  • Updating supported CI systems + a few corrections.
  • Fixed intro for unsupported CI systems.
  • Renaming generic CI/CD integration doc.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.21+fix11
20.07.2020, 13:54 +0300

New implementation of distributed locking http server: use new version of lockgate

https://github.com/werf/lockgate/pull/26

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.21+fix10
17.07.2020, 17:33 +0300

Do origin fetch only when git shallow clone is detected

The complete commit history is enough for all commands except images cleanup

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.21+fix9
16.07.2020, 22:42 +0300

Optimistic git shallow clone handling

  • Ignore git shallow clone when it is possible
  • Force using git shallow clone despite restrictions with option –allow-git-shallow-clone

The new cleanup algorithm: config syntax updates and fixes

[cleanup] Change configuration syntax: replace createdIn/publishedIn with in
[docs] Configuration/Cleanup: replace createdIn/publishedIn with in
[tests] Cleanup Suite: update syntax
[tests] Cleanup Suite: fix checks are not compatible with monorepo implementations
[cleanup] UNAUTHORIZED error should not be ignored

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.21+fix8
15.07.2020, 15:25 +0300

Docs and small fixes

[docs] Reference/Cleanup: more details for git history based cleanup
[managed images] Ignore artifact names
[docs] Adding href rels to topnav.html
[docs] Adding rels to slack_popup.html links for security

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.21+fix7
13.07.2020, 21:14 +0300

Fix dockerfile ONBUILD

[dockerfile] Take into account ONBUILD instructions from base image

The new cleanup algorithm updates

[tests] Cleanup Suite: fix commit commiter when overriding
[cleanup] Improve logging: shortify commit and content signature
[cleanup] Disable meta images fetching by default

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.21+fix6
13.07.2020, 17:11 +0300

The new cleanup algorithm updates

[cleanup] Update default cleanup policies
[docs] Git history based cleanup

Fix AWS ECR build and publish

Fix AWS ECR build/publish problem ‘Image has to have at least 1 layer’

Create empty zero-bytes layer for manifest-only images: managed images records and image metadata by commit id records.

Other

[docs] Reference/Publish process: fix typo

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.21+fix5
10.07.2020, 12:44 +0300

Deploy updates and fixes

  • Update Helm core: 2.16.1 => 2.16.9.
  • Fix support –kube-config-base64 for helm subsystem (fix deploy command failure when –kube-config-base64 option used).

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.21+fix4
9.07.2020, 16:20 +0300

Rework syncrhonization kubernetes param

  • Rework –syncrhonization param (WERF_SYNCHRONIZATION env var): specify all kube-related params in the URI-like string:
    • kubernetes://NAMESPACE[:CONTEXT][@(base64:BASE64_CONFIG_DATA) CONFIG_PATH]
  • Added –kube-config-base64 param (or WERF_KUBECONFIG_BASE64, or WERF_KUBE_CONFIG_BASE64, or KUBECONFIG_BASE64 env var) support.
    • Werf does not generate config file and unpacks specified base64 yaml config into memory.
  • Improve validation of kube-connection params validation for synchronization components
    • Check KUBECONFIG env var setting and print warnings.

The new cleanup algorithm improvements and fixes

[cleanup] Git history based cleanup: improve algorithm

  • Add opportunity to keep images by publishing period.
  • Update default policies
  • Update cleanup section configuration:
cleanup:  
    keepPolicies:  
    - references:  
        branch: /.*/  
        tag: /.*/  
        limit:  
        last: 10  
        createdIn: 168h  
        operator: And  
    imagesPerReference:  
        last: 10  
        publishedIn: 168h  
        operator: And  

[cleanup] Fail purge commands if deletion failed due to using by containers without the force option
[logging] Optimize verbose output
[tests] Cleanup Suite: git history based tests

Other: werf ci, tests, docs and small fixes

[ci] Enable GitHub Docker registry implementation tests
[ci] Fix shallow git clone makes several tests fail

[render] Fix stub env value ENV
Error: bad Helm release ‘project-ENV’ rendered by template ‘[[ project ]]-[[ env ]]’: helm release name should be a valid DNS-1123 subdomain and be maximum 53 chars: a DNS-1123 subdomain must consist of lower case alphanumeric characters, ‘-‘ or ‘.’, and must start and end with an alphanumeric character (e.g. ‘example.com’, regex used for validation is a-z0-9?(.a-z0-9?)*’)

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.21+fix3
7.07.2020, 21:34 +0300

Added separate kube-connection for synchronization components (part 2, fixes)

Fix –synchronization-kube-context param not working.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.21+fix2
7.07.2020, 21:09 +0300

Added separate kube-connection for synchronization components (lock-manager and stages-storage-cache)

Also print warnings when user explicitly specified –kube-config or context, but not specified –synchronization-kube-config or context.

Fixes

Git history synchronization: sync tags only with git >=2.17.0.
[ci_env] GitHub: skip defaults for images repo and stages storage if werf.yaml is not found.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.21+fix1
3.07.2020, 18:04 +0300

Cleanup fixes

[cleanup] Fix UNAUTHORIZED: authentication required error with gitlab.com
[cleanup] Policy priority
[cleanup] Fix default policy
[docker_registry] Autodetect gitlab.com implementation

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.21
3.07.2020, 02:15 +0300

New synchronization http server

  • werf synchronization command
  • Implement LockManagerHttpClient LockManager interface compatible.
  • Implement LockManagerHttpHandler which respond to corresponding methods of LockManager interface.
  • Implement StagesStorageCacheHttpClient StagesStorageCache interface compatible.
  • Implement StagesStorageCacheHttpHandler which respond to corresponding methods of StagesStorageCache interface.
  • Http handlers can be initialized with arbitrary lock-manager or stages-storage-cache implementation by interface param.
    • werf synchronization –local –local-lock-manager-base-dir –local-stages-storage-cache-base-dir (store locks and cache in local filesystem, this server will not keep data on restarts).
    • werf synchronization –kubernetes –kubernetes-namespace-prefix=”werf-synchronization-“ (store locks and cache in the kubernetes)
  • Implemented syncrhonization server with clientID support.

Not implemented yet:

  • –ttl param for werf synchronization command: should set ttl for locks and cache records;
  • /new-client-id command for werf-synchronization server to generate new unique clientID.

The new cleanup algorithm

[docs] Reference/Git history based cleanup.
[cleanup] Use creation date for annotated tags instead of head commit date.

Other

[docs] Improve stapel git directive and stapel assembly instructions reference pages grammar and wording.
[docs] Fix broken links
[completion] Improve zsh completion

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.20+fix7
2.07.2020, 14:20 +0300

[dismiss] Env support for –with-namespace / –with-hooks options

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.20+fix6
2.07.2020, 12:48 +0300

The new cleanup algorithm improvements

[cleanup] Keep old repo images (without meta images)
[cleanup] Skip image with warning if deletion fails
[logging] More details, small fixes and improvements

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.20+fix5
26.06.2020, 19:56 +0300

Fix ‘Stage is no longer available in the repo stages storage’ on cleanup

  • Only enable strict checking of stage manifest existance when getting stage from stages-storage-cache.
  • Ignore bad stages without manifests otherwise
    • Print warning for these stages

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.20+fix3
25.06.2020, 17:54 +0300

Git history synchronization option and shallow clone validation

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.20+fix2
25.06.2020, 17:15 +0300

The new cleanup

[cleanup] Fix deployed docker images are not logged by default

Fix distributed werf hangs sometimes

The hanging case was in the lockgate library, described in the https://github.com/werf/lockgate/pull/24.

Other

[tests] Cleanup Suite: update test
[ci] Tests Workflow: update go modules caching
[logging] Small improvements and fix
Cleanup legacy: dapp rolling-versions file :tada:

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.20+fix1
23.06.2020, 14:25 +0300

Fix ‘UNAUTHORIZED: authentication required;’ when saving managed-images and image-metadata-by-commit

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.19+fix6
23.06.2020, 11:05 +0300

[git] Do not use ‘git worktree add –no-checkout’ option

This option is not avaiable in the v2.17.1 version of git, which is the latest avaiable version for 18.04 lts ubuntu.

Specify target commit instead (which is by the way a faster and more precise approach).

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.20
23.06.2020, 09:46 +0300

New cleanup git-history based algorithm

  • [cleanup] Implement git history based cleanup
  • [cleanup] Git shallow clone validation
  • [cleanup] Syncing git branches and tags
  • Refine publish procedure: check already existing image by content signature
  • Rework publish procedure for cleanup
    • Store metadata for images in the stages storage: map stages-signature by commit-id and image-name.
    • Store project repository commit in the separate dedicated label: werf-project-repo-commit.
  • [publish-for-cleanup] Add image.WerfContentSignatureLabel=werf-content-signature label to all published images
  • Set content-signature for all stages into label

Other

  • [docs] Reference/Configuration: small style fixes
  • [docs] CSS: fix extra padding in lists
  • [docs] Guides/GitLab CI/CD integration: update multiwerf installation part
  • Init local git repo independently of werf.yaml config git directive usage

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.19+fix6
18.06.2020, 17:00 +0300

[git] Do not use ‘git worktree add –no-checkout’ option

This option is not avaiable in the v2.17.1 version of git, which is the latest avaiable version for 18.04 lts ubuntu.

Specify target commit instead (which is by the way a faster and more precise approach).

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.19+fix5
18.06.2020, 16:02 +0300

Enable ‘Waiting for locked …’ log messages for kubernetes locker in distributed werf mode

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.19+fix3
16.06.2020, 13:26 +0300

Distributed mode fix

  • Use locker-with-retry for all kubernetes locks in werf (10 attempts for acquire/release operations are configured).
  • Log all failed attempts to the stderr.

More fixes for werf.io landing

  • Fix grammar and rephrase sentences.
  • Added extra step to introduction presentation.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.19+fix2
12.06.2020, 11:52 +0300

Move to werf org

Rename flant to werf in docs and all references.

Other

[docs] Configuration/Running assembly instructions: actualize

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.19+fix1
11.06.2020, 15:14 +0300

Fix release

[git] Change git repo and worktree cache version to fix compatibility issues

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.16+fix7
8.06.2020, 13:41 +0300

[config] Add .Files.Glob Go template function

{{ range $path, $content := .Files.Glob ".werf/files/**" }}  
{{ $path }}: |  
{{ $content | indent 2 }}  
{{ end }}  
  • Process symlinks with .Files.Glob
    .Files.Glob returns the hash of regular files and their contents for the paths that are matched pattern. This function follows only symlinks pointed to a regular file (not to a directory).

  • .Files.Glob: has an ability to merge results
    The function supports shell pattern matching + **. Results can be merged with merge sprig function (e.g {{ $filesDict := merge (.Files.Glob "*/*.txt") (.Files.Glob "app/ **/*.txt") }})

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.16+fix6
8.06.2020, 13:28 +0300

[config] Add tpl function to evaluate strings as templates inside a template

Project file wih template:

{{ tpl (.Files.Get "service/werf_partial.yaml") . }}  

Environment variable with template:

{{ tpl (env "EXTERNAL_TEMPLATE") . }}  

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.16+fix5
8.06.2020, 12:55 +0300

Fix publish performance for --tag-by-stages-signature

Do not check published docker-image-ID for images being published with content-based stages-signature.

Ability to write published images report json to the file

Write publish report when --publish-report-path PATH option has been given.

There is --publish-report-format options which accepts only json for now.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.16+fix2
6.06.2020, 14:42 +0300

Fixes

[ci_env] GitHub: fix typo os.Getenv(“IMAGES REPO”)
[cli] Fix –release and –namespace params: add WERF_RELEASE and WERF_NAMESPACE options

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.18+fix10
4.06.2020, 01:31 +0300

Fix virtual merge commits creation

  • Set user.email and user.name when creating a temporal detached merge commits.
  • Fix detached merge commit creation condition.
    • Do not create detached merge commit for the previous built image when previously built image contains latest commit.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.18+fix9
3.06.2020, 21:06 +0300

[git] Hotfix remote git mapping patch creation procedure

Will fix errors like:

  
  
1.505684042s status 128  
1.505687944s unrecognized output:  
1.505692711s fatal: bad object 07bd04e9e2ad4fb03136943a2bbcb8aa50ff7471  

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.18+fix8
3.06.2020, 14:16 +0300

Fix git worktree switch and optimize working with remote git-mappings

[git] Refine git worktree switch procedure, fix remote git-mapping clone on every build if token has been specified

  • do not write excess files werf_work_tree_cache_dir in the git-repo dir;
    • new work tree validation procedure: check work tree list of the repo;
    • this procedure is needed to check if repo has been recreated to recreate a related work tree in this case;
  • store cloned repos in the cache dirs like: ~/.werf/local_cache/git_repos/2/protocol-https/mydomain.mygitlab.com/grp/proj.git.
  • store worktrees in the dirs like: ~/.werf/local_cache/git_worktrees/5/protocol-git/mydomain.mygitlab.com:22/grp/proj.git.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.18+fix7
2.06.2020, 16:09 +0300

Fixes

[docs] Guides/GitHub CI/CD Integration: open code snippets by default
[docs] Fix russian switch-to-distributed-mode guide: lost switch-from-local command example
[docs] Cli docs regen: added –virtual-merge-* options
[docs] Adding source code from git repositories sidebar: documentation: hide irrelevant documentation
Commit message with “[werf reset]” is no longer supported, but documentation section might be reused in the nearest future

[ci_env] GitHub: fix typo os.Getenv(“IMAGES REPO”)
[cli] Fix –release and –namespace params: add WERF_RELEASE and WERF_NAMESPACE options

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.18+fix6
2.06.2020, 11:54 +0300

Fix publish performance for --tag-by-stages-signature

Do not check published docker-image-ID for images being published with content-based stages-signature.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.18+fix5
1.06.2020, 18:04 +0300

[config] .Files.Glob: add ability to merge results

The function supports shell pattern matching + **. Results can be merged with merge sprig function (e.g {{ $filesDict := merge (.Files.Glob "*/*.txt") (.Files.Glob "app/**/*.txt") }})

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.18+fix4
29.05.2020, 10:14 +0300

[config] Add tpl function to evaluate strings as templates inside a template

Project file wih template:

{{ tpl (.Files.Get "service/werf_partial.yaml") . }}  

Environment variable with template:

{{ tpl (env "EXTERNAL_TEMPLATE") . }}  

Experimental virtual/ephemeral merge commit support for GitHub Actions

Werf stages related commands accepts following args:

  • --virtual-merge;
  • --virtual-merge-from-commit;
  • --virtual-merge-into-commit.

In virtual merge mode werf will try to reuse stages built for virtual merge commits.

Cli fixes

Implement env support for some options:

  • WERF_DRY_RUN: –dry-run (run / cleanup commands)
  • WERF_DOCKER_OPTIONS: –docker-options (run)
  • WERF_KUBE_CONFIG: –kube-config
  • WERF_PUBLISH_REPORT_PATH: –publish-report-path

Docs

Translated Guides/GitHub CI/CD integration guide.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.18+fix3
28.05.2020, 13:04 +0300

Docs updates for GitHub Actions

[docs] Guides/GitHub CI/CD Integration: Up configurations and add note for weak workflows
[ci_env] GitHub: Reorganize cleanup section in env-file

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.18+fix2
27.05.2020, 12:28 +0300

Fixes and small changes

[docs] Update activesupport in werf.io due to vunlerability alert
[docs] Guides/GitHub CI/CD integration: add werf-actions
[dismiss] Return exit code 0 when release is not found

[cli] Add envs support for string array flags

  • WERF_SSH_KEY* for –ssh-key
  • WERF_SET* for –set
  • WERF_SET_STRING* for –set-string
  • WERF_VALUES* for –values
  • WERF_SECRET_VALUES* for –secret-values

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.18+fix1
26.05.2020, 19:43 +0300

Fixes

  • [build] Fix remote git-mapping uses wrong commit-id for ls-tree when creating git-archive.
  • [config] Process symlinks with .Files.Glob.
    • .Files.Glob returns the hash of regular files and their contents for the paths that are matched pattern.
      This function follows only symlinks pointed to a regular file (not to a directory).
  • [docs] Add converge command and actualize some information.
  • [docs] Reference/CI/CD workflows overview: Align tables content
  • [docs] Sidebar: Add Организация CI/CD с помощью werf
  • [docs] Fix broken links
  • [docs] Regen cli docs: added converge command cli docs
  • [docs] Reference/Working with Docker registries: JFrog and Nexus note
  • [docs] Stapel Image/Running assembly instructions: actualize
  • [docs][readme_ru] Actualize
  • [ci_env] Fix redundant empty lines when using ci-env-file with verbose

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.18
25.05.2020, 17:32 +0300

Ability to write published images report json to the file

Write publish report when --publish-report-path PATH option has been given.

There is --publish-report-format option which accepts only json for now.

Example of publish report:

{  
  "Images": {  
    "one": {  
      "WerfImageName": "one",  
      "DockerRepo": "localhost:5000/alo/one",  
      "DockerTag": "a64687f43f31179cf069574a455e53d75937da81f82042fbfc7ad096",  
      "DockerImageID": "sha256:0151dda79c0c076aa00b4c90367d9e067e854fdb10027fc06e30ed0f1498016f"  
    },  
    "three": {  
      "WerfImageName": "three",  
      "DockerRepo": "localhost:5000/alo/three",  
      "DockerTag": "baff2bc90cf6c17e47e37e7b14ce0296ade95cbf35f7d33d3e72d0bb",  
      "DockerImageID": "sha256:c71998ef1916a6fddee0b334a28d2efa1f9f541fa0094c3f5f7aad6d2d98b44f"  
    },  
    "two": {  
      "WerfImageName": "two",  
      "DockerRepo": "localhost:5000/alo/two",  
      "DockerTag": "f5a8ee43e363925176e78230a467fa7e9e58324916f4be9e0b7ad6d7",  
      "DockerImageID": "sha256:1edd54ae5a18734a268ddeb9ea8eeb83137ac71dd8c0cf52afdc5c5039c0360d"  
    }  
  }  
}  

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.17
25.05.2020, 14:13 +0300

Docs

  • NEW! Translated to english Reference/CI/CD workflows overview.
  • NEW! Translated to english Guides/GitLab CI/CD integration.
  • Replaced external links to image with local links.
  • Reference/Configuration: .Files.Glob Go template function.
  • Guides/GitLab CI/CD integration: Update scheme image.

Add .Files.Glob Go template function

{{ range $path, $content := .Files.Glob ".werf/files/**" }}  
{{ $path }}: |  
{{ $content | indent 2 }}  
{{ end }}  

Allow storing of arbitrary docker images in the stages storage

Ignore stages storage tags not matching the expected format for the remote stages storage of the werf.

Virtual merge commit support for git_repo and true_git

  1. New way of creating worktree for git-worktree-cache: use “git worktree add” tool.
    • This way of creating worktrees is native for git and prevent main worktree corruption.
  2. New true_git.CreateDetachedMergeCommit function which operates within the git-worktree-cache, creates and returns some commit id, whic
    h can be used later until this commit is pruned (because it is detached).
  3. Playground demo cli tool which creates diff between two virtual-merge-commits: specify 4 commits on input, get a patch between virtual
    merge commits of 1 into 2 and 3 into 4.

Fix GetStageDescription when docker registry repo is not exist

Error: reading image “docker.pkg.github.com/user/repo/stages:de07eea0119baca706320aa6b7f32f887f5700b6fd82e1864867a1ee-1590064872402”: GET
https://docker.pkg.github.com/v2/user/repo/stages/manifests/de07eea0119baca706320aa6b7f32f887f5700b6fd82e1864867a1ee-1590064872402: NAME_U
NKNOWN: docker package “stages” does not exist under owner “user/repo”

Ci-env

  • GitHub: default WERF_REPO_GITHUB_TOKEN and optional werf config.
  • GitLab: improve stages storage/images repo auto-detection.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.16+fix1
20.05.2020, 17:20 +0300

Fix hard-coded images repo/stages storage implementation for ci-env

Automatically set gitlab docker registry implementation for stages storage and images repo.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.16
20.05.2020, 16:27 +0300

Ci-env mode option for github actions

Add –as-env-file / –output-file-path options.

Fixes

Add cli docs for ‘werf converge’ command.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.15
20.05.2020, 12:10 +0300

Added ‘werf converge’ command

Shortcut for ‘werf stages build’, ‘werf images publish’ and ‘werf deploy’ commands.

Command always builds all images defined in the werf.yaml and uses content-based-tagging and three-way-merge mode.

Command is supposed to bring your application git state into some environment of Kubernetes cluster in one shot: build and publish images defined in the werf.yaml, then release application chart.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.14+fix1
18.05.2020, 20:37 +0300

Added ability to use slash “/” and plus “+” signs in werf.yaml image names

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.14
18.05.2020, 19:07 +0300

Docs

  • Guides/GitHub CI/CD integration.
  • Add distributed-werf reference info and switch to distributed guide.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.13+fix3
17.05.2020, 15:01 +0300

Fixes

[dockerfile] Fix COPY –from arbitrary image (not only dockerfile stage)

Docs

Guides/GitLab CI/CD integration: added overview

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.13+fix2
14.05.2020, 23:41 +0300

Fixes

  • Fix kubernetes namespace slug: should not allow capital letters.
  • Fix git-related stages selection when multiple git-mappings by the same url used.
    https://github.com/flant/werf/issues/2407

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.13+fix1
14.05.2020, 16:35 +0300

Fix v1.1 stage selection algorithm

Fix for a case when two images of the same stage for two consecutive commits are building at the same time. This can lead to the bug, because werf uses oldest stage by creation timestamp and not oldest by save-into-stages-storage timestamp.

Use selection based on saving-into-stages-storage-timestamp instead of docker-image creation timestamp.

After this change stages-storage-cache will be invalidated automatically.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.13
12.05.2020, 22:34 +0300

Docs

New CI/CD articles in russian:

  • CI/CD workflows overview: https://ru.werf.io/v1.1-alpha/documentation/reference/ci_cd_workflows_overview.html
  • GitLab CI/CD guide: https://ru.werf.io/v1.1-alpha/documentation/guides/gitlab_ci_cd_integration.html.

English versions are coming soon.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.12+fix1
12.05.2020, 22:29 +0300

Fix “@ERROR: invalid gid nogroup” on imports stage

The error occurs when artifact image does not contain “nogroup” group, which was used by default when running rsync server. For example when using “maven:3.6.3-jdk-13” as artifact base image.

Fixed by running rsync server using root group.

Retry docker pull/push on internal server error

Werf automatically retries pull/push operations on internal server errors.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.13
12.05.2020, 22:28 +0300

Docs

New CI/CD articles in russian:

  • CI/CD workflows overview: https://ru.werf.io/v1.1-alpha/documentation/reference/ci_cd_workflows_overview.html
  • GitLab CI/CD guide: https://ru.werf.io/v1.1-alpha/documentation/guides/gitlab_ci_cd_integration.html.

English versions are coming soon.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.12+fix1
7.05.2020, 19:03 +0300

Fix “@ERROR: invalid gid nogroup” on imports stage

The error occurs when artifact image does not contain “nogroup” group, which was used by default when running rsync server. For example when using “maven:3.6.3-jdk-13” as artifact base image.

Fixed by running rsync server using root group.

Retry docker pull/push on internal server error

Werf automatically retries pull/push operations on internal server errors.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.12
6.05.2020, 20:24 +0300

[completion] Support zsh

# Load zsh completion  
source <(werf completion --shell=zsh)  

Fixes

Fixed panic during sub chart validation

  • https://github.com/flant/helm/pull/44
  • refs https://github.com/flant/werf/issues/2388

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.11
6.05.2020, 12:46 +0300

Custom helm chart directory (.helm) and werf configuration file (werf.yaml) options

  • Add –helm-chart-dir option.
  • Add –config / –config-templates-dir options to override default paths.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.10+fix3
29.04.2020, 22:35 +0300

Fix dockerInstructions stage not isolated when used after gitCache

After this release dockerInstructions signature will change if used after gitCache. Stage-not-exists in stages-storage errors may occur in this case.

Other

Detailed error messages for git submodules when submodule exists in the repo in the incorrect state.

[test] Test “Check broken links” hase been updated.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.10+fix2
28.04.2020, 12:26 +0300

Fix cleanup deletes stages that are related to deployed images

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.10+fix1
27.04.2020, 17:02 +0300

Fix cleanup fails to delete stages from repo stages storage

Automatically set gitlab repo implementation option (--stages-storage-repo-implementation=gitlab) in werf ci-env gitlab.

Other

[docs] Added three new publications about werf.
[docs] Publications on the site updated. Added three new publications about werf.

[docs] Fix README coming soon and features list

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.10
24.04.2020, 19:37 +0300

Introducing distributed builds

Werf now can store stages in the docker registry by specifying --stages-storage REPO instead of --stages-storage :local.

There is no more restriction that a single host should be used to run all werf commands for a project:

  • All werf commands that need an access to the stages should specify the same stages storage.
  • It is irrelevant on which host werf command is running as long as the same stages storage is used for the commands like: build, publish, cleanup and deploy.
  • Also all hosts which run werf should have a connection to the Kubernetes cluster, because werf uses Kubernetes to synchronize multiple build/publish/deploy processes running from different machines.

“werf ci-env gitlab” default mode now is to store stages by path CI_REGISTRY_IMAGE/stages. All existing werf installations will continue to use :local stages storage because --stages-storage :local param has explicitly been specified in all CI-configs. So to use distributed builds user needs to remove this param, see guided steps below about migrating to the distributed stages storage.

Synchronization, caches and cleanup

Introduced a new parameter named --synchronization, which controls how multiple werf processes are synchronized between each other. There is a stages-storage cache and locks components that werf needs to run. Stages storage cache is an internal component used to boost werf performance for idle builds when calculating stages. Locks are needed to organize correct publishing of new stages into stages-storage, publishing images into images-repo and for deploy process also.

When --synchronization :local used (which is factually by default in the previous versions < v1.1.10), then stages-storage cache reside in the local host file system (~/.werf/shared_context/storage/stages_storage_cache/1/PROJECT) and local file locks are used.

When --synchronization kubernetes://NAMESPACE is used, then werf creates a ConfigMap for project in this namespace, stores stages storage cache in this ConfigMap and uses distributed locking over this ConfigMap to synchronize multiple werf processes running from multiple hosts.

By default, when non local stages-storage is used werf automatically use kubernetes://werf-synchronization namespace and create a ConfigMap named werf-PROJECT in this namespace. User can specify arbitrary non-standard namespace on own needs.

What about local docker images cache on hosts where werf is running? — There is such a cache, which is cleared either by the werf itself or can freely be removed by other tools (docker rmi
.

New commands to sync and switch stages

  1. werf stages sync --from=:local|REPO --to=:local|REPO.
    • Command will copy stages from one stages-storage to another.
    • Command will copy only difference of stages from one stages-storage to another.
    • Furthermore command will copy multiple stages in parallel.
    • Command run result is idempotent: sync can be called multiple times, interrupted, then called again — the result will be the sam
      .
    • There are delete options: --remove-source and --cleanup-local-cache, which controls whether werf will delete synced stages from source stages-storage and wheter werf will cleanup localhost from temporary docker images created during sync process.
    • This command can be used to download project stages-storage to the localhost for development purpose as well as backuping and migrating purposes.
  2. werf stages switch-from-local --to=REPO
    • Command will automatically sync existing stages from :local stages storage to the specified REPO.
    • Command will block project from being used with :local stages-storage.
      • This means after werf stages switch-from-local is done, any werf command that specifies :local stages-storage for the project will fail preventing storing and using build results from different stages-storages.
      • Note that project is blocked after all existing stages has been synced.

How to migrate to distributed mode

Let’s say you have some project in Gitlab CI, that uses werf. Steps:

  1. Go to the directory where your project reside on the runner host.
  2. Create an MR in the project, that removes --stages-storage :local param from all werf invocations. There is no need to set this param explicitly anymore, because werf ci-env will automatically set it to CI_REGISTRY_IMAGE/stages.
  3. Run werf stages switch-from-local --to=CI_REGISTRY_IMAGE/stages where CI_REGISTRY_IMAGE is the address of container registry for your gitlab project. After this step all werf invocations from different git branches of the project that uses --stages-storage :local will refuse to work, because switch-from-local command sets a block to use :local.
  4. Merge your MR with correct stages-storage param.
  5. All git branches that need to run werf should rebase then onto the new changes to use new stages-storage, otherwise werf will refuse to use :local stages storage.

Other changes since last release v1.1.10-alpha.7

[docs] Remove –stages-storage :local from Gitlab CI docs
[ci] Cache GO modules
[tests] New tests
[tests] K8S/Cleanup Suite: test cleanup with deployed image
[tests] K8S/Guides Suite: actualize after each
Error: –stages-storage=ADDRESS param required
[tests] Helm/Render Suite: add extra annotations and labels check
[tests] Cleanup Suite: test stages storage repo

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.10-alpha.6
22.04.2020, 13:17 +0300

Github Actions support (alpha)

[ci-env] GitHub support.
[testing] CI-env Suite: add github.

werf ci-env github --as-file  

Remote storages support: fix lockgate ConfigMap data key invalid

https://github.com/flant/lockgate/pull/12

Refactor and fix kubernetes cm key name

  • Renamed LockHandle.ID to LockHandle.UUID to be more clear.
  • Use “lockgate.io/SHA3_224(lock-name)” for ConfigMap key names due to ConfigMap names restrictions.

Other

Fix provided shell ‘WERF_SHELL’ not supported.
Retry docker pull/push when specific errors occur.

[logging] Turn off Docker Registry API debug messages by default.

[ci] Fix Cleanup Docker Hub test repositories.
[ci] Split test workflow into two independent workflows.
[ci] Disable GitHub Packages in cleanup test suite.

[docs] Regen commands cli documentation reference.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.10-alpha.4
22.04.2020, 01:39 +0300

Remote storages support

  1. Refactor –synchronization param:
    • -S shorthand;
    • synchronization=:local by default when –stages-storage=:local;
    • synchronization=kubernetes://werf-synchronization by default when stages-storage != :local;
    • ability to specify arbitrary namespace with --synchronization kubernetes://mynamespace.
  2. Auto reset stages-storage-cache and retry action when docker-image has been deleted from stages-storage, but exists in the stages-storage-cache.

Fixes

Fix gitLatestPatch signature not stable to index line in patches.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.10-alpha.5
21.04.2020, 21:32 +0300

Remote storages support: fix kubernetes locks

Distributed builds can be used now by specifying –stages-storage=REPO_ADDRESS.

  • Fixed bugs in kubernetes locks subsystem.
  • Fixed panic in ‘werf images purge’ due to missed synchronization param setup

Werf ci-env refactor

Added –as-file option, which is more portable way to use werf ci-env. Example:

. $(werf ci-env gitlab --as-file)  

Changed all docs and guides to use --as-file.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.10-alpha.4
20.04.2020, 20:55 +0300

Remote storages support

  1. Refactor –synchronization param:
    • -S shorthand;
    • synchronization=:local by default when –stages-storage=:local;
    • synchronization=kubernetes://werf-synchronization by default when stages-storage != :local;
    • ability to specify arbitrary namespace with --synchronization kubernetes://mynamespace.
  2. Auto reset stages-storage-cache and retry action when docker-image has been deleted from stages-storage, but exists in the stages-storage-cache.

Fixes

Fix gitLatestPatch signature not stable to index line in patches.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.10-alpha.3
17.04.2020, 22:44 +0300

Fix release

Fix problems related to changes introduced in v1.1.10-alpha.2: signatures has been accidentally changed in v1.1.10-alpha.2.

Fixes that were made in v1.1.10-alpha.2 are also available in this v1.1.10-alpha.3 release:

[cleanup] Skip images with MANIFEST_UNKNOWN error

[build][git] Handle “commits not present” line in git diffs

[build][git] Fix gitLatestPatch not built when previous stage has been discarded during build

  • remove git-building-stage map from Conveyor;
  • remove AfterSignatureCalculated Stage hook.

[dockerfile] Fix ONBUILD instruction processing

  • dockerfile stage signature should take into account ONBUILD value;
  • dockerfile stage that uses another one with ONBUILD instructions should calculate files checksum for COPY/ADD trigger instruction in addition to ONBUILD value.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.10-alpha.1
15.04.2020, 22:18 +0300

Fix dockerfile builder

[dockerfile] Fix checksum calculation algorithm does not count ignored files (.gitignore).

https://github.com/flant/werf/issues/2315

Remote storages support: distributed builds support

‘werf switch-from-local’ command implemented

werf switch-from-local –to registry.mycompany.com/mygroup/myproject

This command will:

  1. Sync existing local stages to the specified stages storage.
  2. Globally lock stages and images after sync.
  3. Set block to prevent any werf-command with –stages-storage=:local:
    user should change this param to the new stages-storage repo.
  4. Sync existing local stages to the specified stages storage second time.

Implemented stages-storage-cache in ConfigMap

  • Store stages-storage-cache in ns/werf-synchronization cm/werf-PROJECT_NAME
    when --synchronization=:kubernetes has been specified.
    • The same ConfigMap also used for kubernetes-based locks in annotations
      when --synchronization=:kubernetes has been specified.

Kubernetes based locks support

When --synchronization=:kubernetes werf will use kubernetes-locks in
ConfigMap for project: cm/werf-PROJECT_NAME.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.10-alpha.2
15.04.2020, 21:44 +0300

Fixes

[cleanup] Skip images with MANIFEST_UNKNOWN error

[build][git] Handle “commits not present” line in git diffs

[build][git] Fix gitLatestPatch not built when previous stage has been discarded during build

  • remove git-building-stage map from Conveyor;
  • remove AfterSignatureCalculated Stage hook.

[dockerfile] Fix ONBUILD instruction processing

  • dockerfile stage signature should take into account ONBUILD value;
  • dockerfile stage that uses another one with ONBUILD instructions should calculate files checksum for COPY/ADD trigger instruction in addition to ONBUILD value.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.9+fix3
15.04.2020, 16:13 +0300

Fix dockerfile builder

[dockerfile] Fix git status checksum algorithm does not count symlinks properly
[dockerfile] Skip outside the build context wildcard till fail on docker build
[dockerfile] Take into account ignored files by .gitignore files
[dockerfile] Change checksum calculation without git logic

  • Add relative file path and mode to checksum
  • Add symlink link to checksum instead of linked data
    [dockerfile] Fix git status with not initialized submodules

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.9+fix2
13.04.2020, 14:28 +0300

Remote storages support: safe switch between alpha and beta werf versions

Invalidate stages-storage-cache directory when old cache directory exists. Remove old and current stages-storage-cache directories in this case.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.9+fix1
10.04.2020, 17:36 +0300

Fixes and docs

  • Use 1.1 stable in README installation and docs.
  • Fix: change stages-storage-cache dir to ~/.werf/shared_context/storage/stages_storage_cache/1/.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.9
10.04.2020, 13:01 +0300

Support non-default docker registries implementations and dockerhub

  • AWS ECR, Azure CR, GCR, GitHub Packages, GitLab Registry, Harbor, Quay.
  • Documentation: https://werf.io/v1.1-beta/documentation/reference/working_with_docker_registries.html

Support stages-storage in docker registry

For now only when building from single host. Building from multiple hosts will be available soon in v1.1.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.9-alpha.9
8.04.2020, 16:22 +0300

New builder features ported from v1.1 beta to v1.1 alpha

  • build artifacts only by werf build -s :local ARTIFACT ARTIFACT;
  • import from certain artifact/image stage by specifying stage directive in imports.

Fixes

Fix gitLatestPatch signature differs in different worktrees: handle git-diff patch index line in v1.1 compatible manner.

Werf stages-storage commands and changes

  • improved ‘werf stages sync’ command: implemented –remove-source and –cleanup-local-cache options;
  • implemented restriction for project to use only single stages-storage at a time,
    use ‘werf stages switch’ command to switch stages-storage for the project.
  • removed ‘werf stages mv’ command, use ‘werf stages sync –remove-source’ + ‘werf stages switch’ instead.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.9-alpha.8
6.04.2020, 12:39 +0300

INCOMPATIBLE CHANGE Fix stages and images isolation problem for git-latest-patch and stages-signature

  • gitLatestPatch stage was not isolated between different branches when the same changes
    has been made in two different commits: added commits ancestry check when selecting
    suitable stage from cache for gitLatestPatch. The signature of gitLatestPatch stage
    has not been changed.

  • Stages-signature was not isolated between different branches when the same
    changes has been maed in two different commits. IMPORTANT stages-signature
    calculation algorithm has been changed, stages-signature will change for all projects
    that use stages-signature tagging strategy (content-based).

Remote storages support: more registries support, docs and fixes

  • Full support for Azure CR implementation.
  • Documented docker registry implementations.
  • Added separate stages docker images manifests cache in ~/.werf/local_cache/manifests/1/DOCKER_IMAGE_NAME_SHA256.
  • Added global locks for build, publish and images cleaning commands, to prevent collissions: only a single cleanup command
    can be active at one time, no build, publish or deploy command is allowed while cleanup command is wokring;
    but build, publish and deploy commands can work simultaneously.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.9-alpha.7
31.03.2020, 22:22 +0300

Fix cleanup-procedure that breaks builds and descriptive error in that case

  1. Cleanup procedure in the previous version was not cleaning stages-storage-cache ~/.werf/local_cache/stages_storage_v3, while deleting images from stages-storage. This behaviour lead to unexpected error during build-procedure, like: “Error response from daemon: No such image: sha256:69dcb14a44993b7…”.
  2. When image has been found in the stages-storage-cache and does not exists in the stages-storage werf will print descriptive error prompting to delete stages-storage-cache. In the future versions werf will reset build automatically in this case.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.9-alpha.5
31.03.2020, 12:51 +0300

Remote storages support: fix ‘error creating docker registry accessor for repo … registries must be valid RFC 3986 URI’

Support registry or Docker Hub account as –images-repo value.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.9-alpha.6
30.03.2020, 22:44 +0300

Fix extra annotations/labels are not added to k8s resources

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.9-alpha.5
30.03.2020, 22:01 +0300

Remote storages support: fix ‘error creating docker registry accessor for repo … registries must be valid RFC 3986 URI’

Support registry or Docker Hub account as –images-repo value.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.9-alpha.4
30.03.2020, 19:50 +0300

Remote storages support: distributed builds

  • optimized distributed builds by not cleaning up built and fetched stages from localhost — these will be reused as a cache on retrie
    ;
  • added ‘werf stages mv’ command prototype to move built stages from one stages storage to another.
  • fix panic ‘github.com/flant/werf/pkg/build/stage.(*BaseStage).getServiceMountsFromLabels’, which occured when base image has been pulled from the registry.

Remote storages support: more registries available and fixes

  • full support for AWS ECR implementation;
  • enabled cleanup for stages storage when docker registry is used as a stages storage;
  • fix “UNSUPPORTED: Invalid parameter at ‘maxResults’” when using ECR, by updating github.com/google/go-containerregistry, the issue: https://github.com/google/go-containerregistry/issues/681.
  • support registry/account as –images-repo value;
  • detailed error when user specifies incorrect credentials;
  • add options to specify Docker Hub token;
  • auto images repo mode: default repo mode for images repo implementation.

Other

  • fix lint and render panic: –insecure-registry, –skip-tls-verify-registry for images repo and stages repo by default, change stub “IMAGES_REPO” to “stub/repository”.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.9-alpha.3
25.03.2020, 10:47 +0300

More docker registries implementations support

  • harbor;
  • GitHub packages registry.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.9-alpha.2
24.03.2020, 23:49 +0300

Remote storages support: first working build with –stages-storage=REPO + fixes

  • fixed panic ‘should_be_built_phase.go:47 +0x45’;

  • working werf build --stages-storage=REPO command on the single host for now.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.9-alpha.1
24.03.2020, 11:37 +0300

Remote storages support (1): full dockerhub support

Added ability to cleanup images published into dockerhub.

Specify following params for werf build-and-publish or werf publish commands:

      --images-repo-docker-hub-password='':  
            Docker Hub password for images repo implementation (default $WERF_IMAGES_REPO_DOCKER_HUB_PASSWORD or                        
            $WERF_REPO_DOCKER_HUB_PASSWORD).  
      --images-repo-docker-hub-username='':  
            Docker Hub username for images repo implementation (default $WERF_IMAGES_REPO_DOCKER_HUB_USERNAME or                        
            $WERF_REPO_DOCKER_HUB_USERNAME).  
      --images-repo-implementation='':  
            Choose images repo implementation.  
            The following docker registry implementations are supported: ecr, default, dockerhub, gcr, github, gitlab, quay.  
            Default $WERF_IMAGES_REPO_IMPLEMENTATION, $WERF_REPO_IMPLEMENTATION or auto mode (detect implementation by a registry).  

For example:

source <(multiwerf use 1.1 alpha)  
...  
export WERF_IMAGES_REPO_DOCKER_HUB_USERNAME=myuser  
export WERF_IMAGES_REPO_DOCKER_HUB_PASSWORD=password  
export WERF_IMAGES_REPO_IMPLEMENTATION=dockerhub  
source <(werf ci-env gitlab)  
werf build-and-publish -s :local  

It is better to define WERF_IMAGES_REPO_DOCKER_HUB_USERNAME, WERF_IMAGES_REPO_DOCKER_HUB_PASSWORD and WERF_IMAGES_REPO_IMPLEMENTATION variables as gitlab secret environment variables.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.8
23.03.2020, 22:05 +0300

An option to enable cleanup for stages-signature tagging strategy

When running werf in ci with werf ci-env command, then either:

  • create cleanup config for the host:

    mkdir ~/.werf/config  
    echo "stagesSignatureStrategyExpiryDays: 30" >> ~/.werf/config/cleanup.yaml  
    echo "stagesSignatureStrategyLimit: 50" >> ~/.werf/config/cleanup.yaml  
    
  • export environment variables in your CI/CD system: WERF_STAGES_SIGNATURE_STRATEGY_LIMIT=50 and WERF_STAGES_SIGNATURE_STRATEGY_EXPIRY_DAYS=30.

By default werf will not cleanup images published with stages-signature tagging strategy and related stages.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.7
23.03.2020, 12:17 +0300

[deploy] Hotfix werf helm render: fix problem with ‘|’ rendered as ‘|-‘

Change gopkg.in/yaml.v2 to github.com/ghodss/yaml in custom werf templates engine,
as github.com/ghodss/yaml is used everywhere in the helm 2.

In the helm 3 sigs.k8s.io/yaml is used, but it is not possible for now to switch to sigs.k8s.io/yaml before switching to helm 3 codebase.
https://github.com/helm/helm/blob/master/pkg/engine/funcs.go#L27

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.6
23.03.2020, 10:24 +0300

Secret unsafe option to disable git minimum version constraint

Set WERF_DISABLE_GIT_MIN_VERSION_CONSTRAINT=1 to disable min git version constraint.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.5
20.03.2020, 11:38 +0300

Docs

Added rss feeds for werf releases.

Fixes

[dockerfile] Fail build if dockerfile COPY instruction refers to nonexistent stage.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.4
19.03.2020, 22:50 +0300

[dockerfile] Fix dockerfile stage name from “COPY –from” is not detected

Docker parser coverts dockerfile stage name (AS) to lowercase but in places of the name usage (COPY –from) does not.
This affected dockerfile stage signature calculation and occurred false warning messages.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.3
19.03.2020, 11:12 +0300

Fix release

[dockerfile] Fix calculating context files checksum when submodule is used

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.2
12.03.2020, 10:25 +0300

Fix git problems release

Fix creating an archive fails when nested submodules is used

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.1
11.03.2020, 13:51 +0300

Fix git problem release

Fix creating an archive fails when submodule dir/file is specified in git.add

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.0
6.03.2020, 18:06 +0300

Official v1.1 beta

Implemented content based tagging and new stages storage architecture as a big step toward distributed and concurrent builds.

New stages format and cache selection algorithm

New stage name generation rule. Every build of the stage generates uniq stage-cache image name, which consists of 2 parts: signature (as in v1.0) plus unique identifier.

For example, full stage image name will look like:

  
werf-stages-storage/myproject:d2c5ad3d2c9fcd9e57b50edd9cb26c32d156165eb355318cebc3412b-1582656767835
  
werf-stages-storage/PROJECT:SIGNATURE-TIMESTAMP_MILLISEC
  

Signature identifier of the stage represents content of the stage and depends on git history which lead to this content.

Werf stage selection algorithm is based on the git commits ancestry detection:

  1. Werf calculates a stage signature for some stage.

  2. There may be multiple stages in the stages storage by this signature, werf selects all suitable stages by the signature.

  3. If current stage is related to git (git-archive, user stage with git patch or git latest patch), then werf selects only

    those stages which are relaed to the commit that is ancestor of current git commit.

  4. Select from the remaining stages the oldest by the creation timestamp.

There may be multiple built images for a single signature.

Stage for different git branches can have the same signature, but werf will prevent cache of different git branches from

being reused for totally different branch.

For more info see documentation: https://werf.io/v1.1-beta/documentation/reference/stages_and_images.html#stage-naming.

New stage building and saving algorithm

If suitable stage has not been found during stage selection, werf starts building a new image for stage.

Note that multiple processes (on a single or multiple hosts) may start building the same stage at the same time. Werf uses optimistic locking when saving newly built image into the stages storage: when a new stage has been built werf locks stages storage and saves newly built stage image into storage stages cache only if there are no suitable already existing stages exists. Newly saved image will have a guaranteed unique identifier

by TIMESTAMP_MILLISEC. In the case when already existing stage has been found in the stages storage werf will discard newly built image and

use already existing one as a cache.

In other words: the first process which finishes the build (the fastest one) will have a chance to save newly built stage into the stages storage. The slow build process will not block faster processes from saving build results and building next stages.

For more info see documentation: https://werf.io/v1.1-beta/documentation/reference/stages_and_images.html#stage-building-and-saving.

Benefits of new stages storage architecture

This new stages storage architecture opens up an opportunities to build stages concurrently and even distributely

from multiple build machines. For now there are no theoretical limitations of current werf architecture to implement

distributed or concurrent builds. So we consider this release as a big step towards distributed and concurrent builds.

Werf have an --stages-storage and --synchronization parameters which specify addresses of the stages storage and

synchronization lock manager. For now there is only :local implementations of both primitives. By changing these implementations to docker-registry for the stages storage and Redis or Kubernetes server based synchronization lock manager, werf will implement distributed builds out of the box.

Content based tagging

Werf v1.1 supports so called content based tagging. Tags of resulting docker images depend on the content of these images.

When using werf publish --tags-by-stages-signature or werf ci-env --tagging-strategy=stages-signature werf will tag result images by so called image stages signature. Each image tagged by own stages signature which calculated by the same rules as regular signature of image stage.

Image stages signature depends on content of the image and depends on the git history which lead to this content.

There may be dummy commits into the git repo that do not change resulting images. For example empty commits, merge commits or commits which change files that are not imported into the resulting image.

When using tagging by git-commits these dummy commits will cause werf to create new images names even if content of these images is the same. New images names in turn will cause restarts of application Pods in Kubernetes which is totally not a desired behaviour. All in all this is the reason preventing storing multiple application services in the single git repo.

Stages signature on the countrary will not change on dummy commits, so these commits will not cause restarts of application Pods in kubernetes, yet it similarly to commit-id relates to the git history of edits and depends on the content of the files.

Also tagging by stages signatures is more realiable tagging method than tagging by a git-branch for example, because resulting images content does not depend on order of pipelines execution. Stages signature leads to stable immutable images names which represent the address of the certain image content.

NOTE From now and on stages-signature is the default tagging strategy and the only recommended one for usage.

For more info see documentation: https://werf.io/v1.1-beta/documentation/reference/publish_process.html#content-based-tagging.

Improved performance of stages selection and verification

Idle builds when all stages are exist in the stages storage are really fast now (in the most cases build retry will run under 1sec).

Stages verification performance during werf deploy and werf run commands also improved a lot.

Improved performance of Dockerfile builder

Werf Dockerfile builder signature calculation performance is improved due to using git ls-tree checksums

for docker context files. Signature calculation does not depend on the docker context size.

Improved performance of artifact/image imports

Werf uses rsync server to import files from artifacts and images.

MacOS imports performance does not depend on docker implementation of volumes now. MacOS imports performance is the same as in Linux and Windows.

Other changes

  • Added --log-debug, --log-verbose and --log-quiet modes.

  • Removed legacy params and code (dapp secret key legacy support removed; --insecure-repo legacy option removed, only –skip-tls-verify-registry is available).

  • Eliminated werf.io/recreate annotation, werf uses helm.sh/hook-delete-policy=before-hook-creation mode by default (as in helm 3).

  • Improved werf cleanup procedure not to clean images from werf.yaml defined in the different git branches,

    those are not exist in the werf.yaml config of the master branch. Added new commands to control managed images: werf managed-images ls|add|rm.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.0-beta.7
6.03.2020, 11:41 +0300

Docs

  • New stages storage architecture documented.

  • Content based tagging documented.

Other fixes

  • fromLatest/git.Branch params could be used only with herebyIAdmitThatBranchMightBreakReproducibility and herebyIAdmitThatFromLatestMightBreakReproducibility params;

  • werf images managed subcommand renamed to werf managed-images;

  • tiny logging improvements:

    • hide docker container output in silent mode;

    • initialize stapel container before preparing of stage run args.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.0-beta.6
4.03.2020, 19:09 +0300

Fix logs in default mode

Remove ‘Switch work tree to commit …’ messages in default mode (will be printed in –log-verbose or –log-debug).

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.0-beta.5
4.03.2020, 13:14 +0300

WARNING: incompatible release

Stages signatures was changed, pipelines that were already build will use new signatures on retry, so rebuild needed.

Dockerfile builder support for v1.1!

Calculate docker build context files checksum with git ls-tree and status.

Fixed imports: allow merging of directories

  
import:
  
- artifact: myartifact
  
  add: /mydir
  
  to: /my/existing/dir
  
  after: install
  

Werf will automatically merge content of /mydir into /my/existing/dir.

This case was broken in v1.1.0-beta.4 due to imports optimization rework: the specified config will create my/existing/dir/mydir instead of merging directories.

v1.1.0-beta.3 was not affected by this bug.

Fixed logging performance

Fixed logboek library logging performance when processing large output, e.g. from make build command. Logging performance affects build time.

Stapel image updated to version 0.6.1.

Logging improvement

  • Disabled debug logging by default.

  • Default logging includes minimum viable info for commands.

  • --log-debug and --log-verbose options are avaiable.

  • More info in --log-debug mode.

Store managed config images in stages storage

Images that were built by werf will be remained in stages storage. For each such image managed image record created as werf-managed-images/PROJECT:IMAGE_NAME.

During cleanup procedure werf will preserve stages cache of images that are defined in the current werf.yaml config and images from managed images list. This prevents images defined only in custom git branches from being cleaned up, when running werf cleanup procedure main (master) branch.

Werf automatically creates records for managed images during build procedure.

Managed images list could be manually viewed and changed using commands:

  • werf images managed -s :local ls

  • werf images managed -s :local add IMAGE_NAME

  • werf images managed -s :local rm [IMAGE_NAME, ...]

Small fixes and changes

  • Fix publishing of only specified in cli images by names.

  • Renamed --stages-storage-lock param to --synchronization: address of synchronizer for multiple werf processes to work with a single stages storage (:local by default).

  • Update kubedog: load more kubernetes client-go auth plugins: azure, exec, oidc, openstack.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.0-beta.4
25.02.2020, 21:32 +0300

Optimize imports: rsync import server

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.0-beta.3
20.02.2020, 16:49 +0300

Fixes release (INCOMPATIBLE — more info belo

)

Small fixes and additions

  • Add –log-verbose, –log-quiet options, use –log-debug=true by default for werf v1.1 for now.
  • Fixed and enabled cleanup procedure.
  • Do not publish artifacts fix.
  • Fix: cleanup dockerfile builder tmp img on conveyor termination.
  • Fix helm release name slugify: should be a valid DNS-1123 subdomain and be maximum 53 chars.

Fix import stage logic and stages cleanup

The import stage image has the specific label value that is used during stages cleanup procedure. In this commit, related image/artifact signature which stored in the label is replaced on image ID.

The signature does not identify the stage since we started to use not only signature in an image tag. From v1.1, werf is building stages consistently so related image/artifact image ID is available when werf is preparing import stage.

INCOMPATIBLE change, because signature of import stage has been changed. Already built images should be rebuilt with this version of werf.

Also prevented possible bug, which may occur when artifacts are used and there are empty stages.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.0-beta.2
20.02.2020, 16:47 +0300

Fixes related to the “Resource already exists” deploy error

  • fix “resource already exists” error on redeploy when new resource with an error has been added to the chart,
    refs https://github.com/flant/helm/pull/40
  • fix “resource already exists” error message when creating a helm.sh/hook that already exists,
    refs https://github.com/flant/helm/pull/41
  • do not allow resource adoption during initial release installation, fix error messages,
    refs https://github.com/flant/helm/pull/42

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.0-beta.3
20.02.2020, 16:17 +0300

Fixes release (INCOMPATIBLE — more info belo

)

Small fixes and additions

  • Add –log-verbose, –log-quiet options, use –log-debug=true by default for werf v1.1 for now.
  • Fixed and enabled cleanup procedure.
  • Do not publish artifacts fix.
  • Fix: cleanup dockerfile builder tmp img on conveyor termination.
  • Fix helm release name slugify: should be a valid DNS-1123 subdomain and be maximum 53 chars.

Fix import stage logic and stages cleanup

The import stage image has the specific label value that is used during stages cleanup procedure. In this commit, related image/artifact signature which stored in the label is replaced on image ID.

The signature does not identify the stage since we started to use not only signature in an image tag. From v1.1, werf is building stages consistently so related image/artifact image ID is available when werf is preparing import stage.

INCOMPATIBLE change, because signature of import stage has been changed. Already built images should be rebuilt with this version of werf.

Also prevented possible bug, which may occur when artifacts are used and there are empty stages.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.0-beta.2
19.02.2020, 17:26 +0300

Fixes related to the “Resource already exists” deploy error

  • fix “resource already exists” error on redeploy when new resource with an error has been added to the chart,
    refs https://github.com/flant/helm/pull/40
  • fix “resource already exists” error message when creating a helm.sh/hook that already exists,
    refs https://github.com/flant/helm/pull/41
  • do not allow resource adoption during initial release installation, fix error messages,
    refs https://github.com/flant/helm/pull/42

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.0-beta.1
17.02.2020, 16:08 +0300

First Werf v1.1 beta release!

Main changes since v1.0:

  1. Fully reworked build process, new incompatible stages storage format (new build cache).
  • Improved performance of idle builds (from cache) nearly by one order of magnitude when git repo of the project is big.

  • Build cache isolation based on the git history. Build cache of different branches without same base is not overlapped. No more “rebase” related problems.

  • Also improved performance of stage-dependencies calculation (using git ls-tree mechanix) when large folders are specified as stage dependencies.

  1. Content based tagging using werf publish --tag-by-stages-signature option or werf ci-env --tagging-strategy=stages-signature tagging strategy.

    The default tagging strategy is stages-signature, werf ci-env parameter --tagging-strategy may be omitted to use default strategy.

Not supported in this version

IMPORTANT Following feature are not supported in the current beta version and will be repaired in the following releases very soon!

  • Building Dockerfile-based images. This version of werf v1.1 beta should not be used to build dockerfile-based images.

  • werf cleanup command will not actually clean stages, only images, due to the bug in the cleaning procedure. werf cleanup command can and should be used already now and will be fixed soon by automatic releases updater for 1.1 beta channel.

Fully reworked build process

  • Stage image name format changed: werf-stages-storage/PROJECT_NAME:SIGNATURE-UNIX_TIMESTAMP_MILLISECS.

  • UNIX_TIMESTAMP_MILLISECS is the unique part of stage image name.

  • There may be multiple stages with the same SIGNATURE part. Signature is based on the content of the image, while timestamp is added to keep separately built images separate.

  • IMPORTANT! Multiple processes may build the same stage by the same signature simultaneously at the same time. The first builder that builds the stage will store the stage in the stages storage. Other builders will discard build results when saving newly built image into stages storage if stages storage already contains suitable image built by the other process.

  • There may be multiple stages with the same SIGNATURE for different git branches. Stage selection algorithm will make sure that stage is suitable for your branch.

Compatibility notes

Incompatibilities with v1.0:

  • Werf v1.1 will generate new stages for stages storage.

  • Removed legacy ruby dapp secret-key format support.

  • Removed –insecure-repo option, use –skip-tls-verify-registry option instead.

  • “helm.sh/hook-delete-policy=before-hook-creation” by default for all kinds of hooks (not only Jobs as in v1.0).

  • Strict yaml parsing which does not allow duplicate keys in yaml docs (affects werf.yaml, .helm/templates/**, .helm/values.yaml etc.).

It is OK to use v1.0 and v1.1 simultaneously:

  • v1.1 and v1.0 may exists on the same host system, without any restrictions;

  • v1.1 and v1.0 may be used in the different branches of the same project without any restrictions;

  • cleanup procedure of v1.0 will not affect v1.1 and vice versa;

  • build cache (stages in the stages-storage) of v1.0 and v1.0 is fully separated.

How to enable v1.1

  1. Change multiwerf use command:

      
    type multiwerf && source <(multiwerf use 1.1 beta)
      
    
  2. (Optional) To use content based tagging change ci-env command:

      
    type werf && source <(werf ci-env gitlab)
      
    

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.0-alpha.19
17.02.2020, 14:45 +0300

Remove legacy unstrict yaml parser

Use yaml strict unmarshal everywhere

  • Update flant/helm to the version with strict unmarshal.
  • Update gopkg/yaml to v3.
  • Update github.com/ghodss/yaml to v1.0.
  • Use yaml.UnmarshalStrict everywhere in the werf codebase.

This change may broke existing 1.0 installations with bad yaml-configs.

Temporarily disable stages cleanup by default due to the bug

Dry-run mode is forced by default for stages-cleanup procedure in commands: werf stages cleanup, werf cleanup.

Images cleanup is not affected and enabled as always in werf cleanup.

To enable stages-cleanup forcefully set: WERF_STAGES_CLEANUP_ENABLED=1.

Dry-run by default will be disabled when stages-cleanup procedure bug is fixed.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.0-alpha.18
14.02.2020, 14:30 +0300

Fix release

  • Fix ssh-agent not adding default keys and keys passed by the --ssh-key option.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.0-alpha.17
13.02.2020, 23:00 +0300

Experimental stages cache rework (17)

  • Optimize more stage dependencies checksum calculation (update go-git library).

  • Cleanup legacy code that breaks backward compatibility, update library dependencies:
    • Eliminate werf.io/recreate annotation, use helm.sh/hook-delete-policy=before-hook-creation by default.
    • Remove git-mapping legacy cwd param, change paramshash.
      Git-mapping paramshash include ‘add’ parameter as is without leading slash sign. This will change signature for git-archive stage and need cache rebuild.
    • Remove “legacy” comments for code that is not really legacy.
    • Remove –insecure-repo legacy option: only –skip-tls-verify-registry is available.
    • [werf secret key] Remove dapp secret key legacy support.
    • [go.mod] Update flant/helm, kubernetes lib dependencies to v0.16.7, logboek=origin/debug_functions and kubedog
  • Content based tagging by signatures fix, param renamed: werf publish --tag-by-stages-signature and werf ci-env --tagging-strategy=stages-signature.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.0-alpha.14
12.02.2020, 11:36 +0300

Git stage dependencies optimization

Calculate stage dependencies checksum with git ls-tree.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.0-alpha.13
11.02.2020, 21:44 +0300

Experimental stages cache rework (13)

  • fix gitCache and user-stages with git should select suitable images based on git ancestry;
  • publish with optimistic locks and content based tagging
    • werf ci-env –tagging-strategy=content-based option value, which is default;
    • gitLatestPatch stage signature does not include current git-commit, but include a patch content up to current git-commit.
    • werf publish –tag-by-signatures=true false option to tag images by last stage signatures, which is current method of content-based tagging.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.0-alpha.12
10.02.2020, 00:55 +0300

Experimental stages cache rework (12)

  • Refactor signature calculation, stage signature should depend on stage name.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.0-alpha.11
7.02.2020, 20:21 +0300

Experimental stages cache rework (11)

Fix panic

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.0-alpha.10
7.02.2020, 20:08 +0300

Experimental stages cache rework (10)

  • Fix invalid build cache: fix dockerInstructions signature does not depend on prev stage signature.
  • Optimization: do not create excess git archives before signatures calculation.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.0-alpha.9
7.02.2020, 10:37 +0300

Experimental stages cache rework (9)

  • Fix merge-base error handling for ‘Not a valid commit name’.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.0-alpha.8
6.02.2020, 18:01 +0300

Experimental stages cache rework (8)

  • Fix panic when discarding newly built image.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.0-alpha.7
6.02.2020, 16:15 +0300

Experimental stages cache rework (7)

Fix case when stages storage cache has been invalidated:

  • By manual or accidental cleaning of docker image from stages storage while this image exists in stages storage cache.
    Werf will refresh this stage cache from stages storage in this case.

  • Always refresh stage cache in stages storage cache when this stage has been newly built.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.0-alpha.6
5.02.2020, 18:28 +0300

Experimental stages cache rework (6)

  • Coherent stages storage cache implemented.
  • werf –debug option to print debug logs.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.0-alpha.5
4.02.2020, 14:13 +0300

Experimental stages cache rework (5)

  • Log all stages storage operations with time spent.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.0-alpha.4
4.02.2020, 12:22 +0300

Experimental stages cache rework (4)

  • Select stages from stages storage by label with signature.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.0-alpha.3
4.02.2020, 11:03 +0300

Experimental stages cache rework (3)

  • Fix cannot build dockerfile image.
  • Fix panic when specific images for cli cmd has been used.
  • Reset image context in build-phase when processing next image.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.0-alpha.2
3.02.2020, 21:46 +0300

Experimental stages cache rework (2)

  • Commit affects next stages signatures.

  • Optimistic locking when saving stage into stages storage: discard already built temporary image when saving into stages storage if there is existing suitable image for this signature.

  • New build conveyor architecture.

  • Generate image id as: <sha-3-224>-<timestamp-up-to-millisecs>.

  • –stages-storage-cache renamed to –stages-storage-lock, only :local value is supported for now, :local is default value.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.0-alpha.1
29.01.2020, 00:26 +0300

Experimental stages cache rework

  • New stage name generation rule. Every build of the stage generates uniq stage-cache image name which consists of 2 parts: old signature and unique identifier.
  • New stages storage mechanics. There may be multiple built images for a single signature.
    Select the oldest available with related with the git commit which is an ancestor of current commit.
  • Removed git fsck usage to detected unreachable commits.
  • –stages-storage-cache param for future usage.

Installation

Linux amd64

Darwin amd64

Windows amd64

Канал:

Для критичных окружений с высоким SLA

Канал обновлений Rock-Solid рекомендуется использовать в критичных окружениях с высоким SLA. Мы гарантируем обратную совместимость между версиями канала обновлений Rock-Solid в пределах минорной версии (1.1.x). Мы гарантируем, что версия из канала обновлений Stable перейдет в канал обновлений Rock-Solid не ранее чем через 2 недели плотного тестирования.

v1.0.13
25.03.2020, 08:37 +0300

Load more kubernetes client auth plugins

  • azure;
  • exec;
  • oidc;
  • openstack.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.0.12
13.03.2020, 11:51 +0300

[1.0] Fixes related to the “Resource already exists” deploy error

  • fix “resource already exists” error on redeploy when new resource with an error has been added to the chart,
    refs https://github.com/flant/helm/pull/40
  • fix “resource already exists” error message when creating a helm.sh/hook that already exists,
    refs https://github.com/flant/helm/pull/41
  • do not allow resource adoption during initial release installation, fix error messages,
    refs https://github.com/flant/helm/pull/42

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.0.10
20.02.2020, 16:17 +0300

Isolate v1.0 and v1.1 cache for cleanup commands

werf purge, werf cleanup, werf stages purge, werf stages cleanup commands will delete images only by current build cache version.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.0.8
20.02.2020, 13:57 +0300

Speed up signatures calculation and stages invalidation phases

This release optimizes usage of git fsck command for the local repository: run only once for all images and artifacts instead of for each as before.

werf users could face this issue when having images and/or artifacts that used local git mappings.

During signatures calculation and stages invalidation phases werf uses commits that are stored in labels of existing stages images and validate them. The commit must not be unreachable to invalidate stages correctly and to prevent conflicts between parallel runs. We use git fsck command for getting an unreachable commit list. The command might take significant time for a large git repository.

Fix Docker on windows does not support mount with short filename

https://github.com/docker/for-win/issues/1560#issuecomment-577371228

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.0.6
14.01.2020, 09:35 +0300

Stable 1.0 version

Werf is an Open Source GitOps CLI utility for building and delivering applications to Kubernetes. Werf supports building application images from Dockerfiles or via its custom advanced image builder (it has YAML syntax, supports Ansible as well as Git-based incremental rebuilding). For application delivery, it uses the Helm-compatible configuration format. Werf stores the application code, the configuration of compiled images, and the deployment configuration in the single Git repository.

The long-awaited stable release of werf 1.0 is a full-fledged basic version of the tool. In this version, werf supports the full life cycle for containerized applications. It includes building application images, deploying them to Kubernetes, deleting unused images.

Please note that in version 1.0, all operations (i.e. build, deploy, cleanup) for a single project must be performed on the same host. In other words, you have to use a constant worker in your CI system. At the same time, there are no restrictions on the parallelism of tasks: werf fully addresses this issue. You can also bind different projects to different workers.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.0.6-ea.1
10.01.2020, 20:35 +0300

[docs] Website version menu updates

[docs] Removed telegram channel for English speaking users

The telegram channel for English speaking users could be misleading, and we decided to delete it.

It will be more convenient to communicate in one place - CNCF slack. Please join!

Badges were also updated.

More helm commands

  • werf helm ls

  • werf helm rm

  • werf helm rollback

  • werf helm history

  • werf helm get

Ci and tests

Werf ci and tests infrustructure changes

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.0.6-rc.6
19.12.2019, 17:21 +0300

[deploy] Fix sts hangs on warning ‘POST operation against Pod could not be completed at this time’

Print sts warning only once in status progress table.

Other

Docs orthography fixes.

Installation

Linux amd64

Darwin amd64

Windows amd64

Рекомендуемый канал обновлений, если вы не уверены в выборе

Канал обновлений Stable можно безопасно использовать и мы рекомендуем этот канал обновлений везде. Мы гарантируем обратную совместимость между версиями канала обновлений Stable в пределах минорной версии (1.1.x). Мы гарантируем, что версия канала обновлений Early-Access перейдет в канал обновлений Stable не ранее чем через неделю после внутреннего тестирования.

v1.0.13
17.03.2020, 14:46 +0300

Load more kubernetes client auth plugins

  • azure;
  • exec;
  • oidc;
  • openstack.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.0.12
28.02.2020, 10:18 +0300

[1.0] Fixes related to the “Resource already exists” deploy error

  • fix “resource already exists” error on redeploy when new resource with an error has been added to the chart,
    refs https://github.com/flant/helm/pull/40
  • fix “resource already exists” error message when creating a helm.sh/hook that already exists,
    refs https://github.com/flant/helm/pull/41
  • do not allow resource adoption during initial release installation, fix error messages,
    refs https://github.com/flant/helm/pull/42

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.0.10
14.02.2020, 12:56 +0300

Isolate v1.0 and v1.1 cache for cleanup commands

werf purge, werf cleanup, werf stages purge, werf stages cleanup commands will delete images only by current build cache version.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.0.8
6.02.2020, 18:31 +0300

Speed up signatures calculation and stages invalidation phases

This release optimizes usage of git fsck command for the local repository: run only once for all images and artifacts instead of for each as before.

werf users could face this issue when having images and/or artifacts that used local git mappings.

During signatures calculation and stages invalidation phases werf uses commits that are stored in labels of existing stages images and validate them. The commit must not be unreachable to invalidate stages correctly and to prevent conflicts between parallel runs. We use git fsck command for getting an unreachable commit list. The command might take significant time for a large git repository.

Fix Docker on windows does not support mount with short filename

https://github.com/docker/for-win/issues/1560#issuecomment-577371228

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.0.6
14.01.2020, 09:35 +0300

Stable 1.0 version

Werf is an Open Source GitOps CLI utility for building and delivering applications to Kubernetes. Werf supports building application images from Dockerfiles or via its custom advanced image builder (it has YAML syntax, supports Ansible as well as Git-based incremental rebuilding). For application delivery, it uses the Helm-compatible configuration format. Werf stores the application code, the configuration of compiled images, and the deployment configuration in the single Git repository.

The long-awaited stable release of werf 1.0 is a full-fledged basic version of the tool. In this version, werf supports the full life cycle for containerized applications. It includes building application images, deploying them to Kubernetes, deleting unused images.

Please note that in version 1.0, all operations (i.e. build, deploy, cleanup) for a single project must be performed on the same host. In other words, you have to use a constant worker in your CI system. At the same time, there are no restrictions on the parallelism of tasks: werf fully addresses this issue. You can also bind different projects to different workers.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.0.6-ea.1
10.01.2020, 20:35 +0300

[docs] Website version menu updates

[docs] Removed telegram channel for English speaking users

The telegram channel for English speaking users could be misleading, and we decided to delete it.

It will be more convenient to communicate in one place - CNCF slack. Please join!

Badges were also updated.

More helm commands

  • werf helm ls

  • werf helm rm

  • werf helm rollback

  • werf helm history

  • werf helm get

Ci and tests

Werf ci and tests infrustructure changes

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.0.6-rc.6
12.12.2019, 15:25 +0300

[deploy] Fix sts hangs on warning ‘POST operation against Pod could not be completed at this time’

Print sts warning only once in status progress table.

Other

Docs orthography fixes.

Installation

Linux amd64

Darwin amd64

Windows amd64

Для некритичных окружений или локальной разработки

Версии этого канала обновлений обычно безопасно использовать в некритичных окружениях или при локальной разработке. Мы не гарантируем обратную совместимость между версиями канала обновлений Early-Access.

v1.0.13
10.03.2020, 13:35 +0300

Load more kubernetes client auth plugins

  • azure;
  • exec;
  • oidc;
  • openstack.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.0.12
20.02.2020, 16:17 +0300

[1.0] Fixes related to the “Resource already exists” deploy error

  • fix “resource already exists” error on redeploy when new resource with an error has been added to the chart,
    refs https://github.com/flant/helm/pull/40
  • fix “resource already exists” error message when creating a helm.sh/hook that already exists,
    refs https://github.com/flant/helm/pull/41
  • do not allow resource adoption during initial release installation, fix error messages,
    refs https://github.com/flant/helm/pull/42

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.0.11
19.02.2020, 17:26 +0300

Docs

[docs] Fixed broken links. Links autotest.
[docs] Releases page refactoring. Added buttons to switch between maj.min versions and update channels.
[docs] Dropdown version menu on the sidebar shows version, grouped by maj.min
[docs] Updated footer. Fixed heart icon :)

Bugfixes

Fix werf helm render prints wrong data when printf-like format strings used in the helm templates text.

Werf CI and tests

[ci] Documentation validation workflow: tiny improvements
[ci] Refresh site deployment workflow: remove unused events

[tests] Fix python_encoding_repo/yarn_repo not a git repository
Remove _repo suffixed dir before test. This dir may exist if previous tests has been killed for some reason.
[tests] Fix ‘find: unrecognized: -xtype’ in stapel_image/git tests: use ubuntu base image instead of alpine
[tests] Enable docs suite for macOS
[tests] Enable resources adopter tests
[tests] Disable a few git suite tests for windows

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.0.10
6.02.2020, 18:31 +0300

Isolate v1.0 and v1.1 cache for cleanup commands

werf purge, werf cleanup, werf stages purge, werf stages cleanup commands will delete images only by current build cache version.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.0.8
31.01.2020, 15:33 +0300

Speed up signatures calculation and stages invalidation phases

This release optimizes usage of git fsck command for the local repository: run only once for all images and artifacts instead of for each as before.

werf users could face this issue when having images and/or artifacts that used local git mappings.

During signatures calculation and stages invalidation phases werf uses commits that are stored in labels of existing stages images and validate them. The commit must not be unreachable to invalidate stages correctly and to prevent conflicts between parallel runs. We use git fsck command for getting an unreachable commit list. The command might take significant time for a large git repository.

Fix Docker on windows does not support mount with short filename

https://github.com/docker/for-win/issues/1560#issuecomment-577371228

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.0.6
14.01.2020, 09:35 +0300

Stable 1.0 version

Werf is an Open Source GitOps CLI utility for building and delivering applications to Kubernetes. Werf supports building application images from Dockerfiles or via its custom advanced image builder (it has YAML syntax, supports Ansible as well as Git-based incremental rebuilding). For application delivery, it uses the Helm-compatible configuration format. Werf stores the application code, the configuration of compiled images, and the deployment configuration in the single Git repository.

The long-awaited stable release of werf 1.0 is a full-fledged basic version of the tool. In this version, werf supports the full life cycle for containerized applications. It includes building application images, deploying them to Kubernetes, deleting unused images.

Please note that in version 1.0, all operations (i.e. build, deploy, cleanup) for a single project must be performed on the same host. In other words, you have to use a constant worker in your CI system. At the same time, there are no restrictions on the parallelism of tasks: werf fully addresses this issue. You can also bind different projects to different workers.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.0.6-ea.1
10.01.2020, 20:29 +0300

[docs] Website version menu updates

[docs] Removed telegram channel for English speaking users

The telegram channel for English speaking users could be misleading, and we decided to delete it.

It will be more convenient to communicate in one place - CNCF slack. Please join!

Badges were also updated.

More helm commands

  • werf helm ls

  • werf helm rm

  • werf helm rollback

  • werf helm history

  • werf helm get

Ci and tests

Werf ci and tests infrustructure changes

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.0.6-rc.6
12.12.2019, 15:25 +0300

[deploy] Fix sts hangs on warning ‘POST operation against Pod could not be completed at this time’

Print sts warning only once in status progress table.

Other

Docs orthography fixes.

Installation

Linux amd64

Darwin amd64

Windows amd64

Для более глубокого тестирования новых возможностей

Версии этого канала обновлений предназначены для более глубокого тестирования новых возможностей. Мы не гарантируем обратную совместимость между версиями канала обновлений Beta.

v1.0.13
10.03.2020, 13:35 +0300

Load more kubernetes client auth plugins

  • azure;
  • exec;
  • oidc;
  • openstack.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.0.12
19.02.2020, 17:26 +0300

[1.0] Fixes related to the “Resource already exists” deploy error

  • fix “resource already exists” error on redeploy when new resource with an error has been added to the chart,
    refs https://github.com/flant/helm/pull/40
  • fix “resource already exists” error message when creating a helm.sh/hook that already exists,
    refs https://github.com/flant/helm/pull/41
  • do not allow resource adoption during initial release installation, fix error messages,
    refs https://github.com/flant/helm/pull/42

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.0.11
18.02.2020, 14:52 +0300

Docs

[docs] Fixed broken links. Links autotest.
[docs] Releases page refactoring. Added buttons to switch between maj.min versions and update channels.
[docs] Dropdown version menu on the sidebar shows version, grouped by maj.min
[docs] Updated footer. Fixed heart icon :)

Bugfixes

Fix werf helm render prints wrong data when printf-like format strings used in the helm templates text.

Werf CI and tests

[ci] Documentation validation workflow: tiny improvements
[ci] Refresh site deployment workflow: remove unused events

[tests] Fix python_encoding_repo/yarn_repo not a git repository
Remove _repo suffixed dir before test. This dir may exist if previous tests has been killed for some reason.
[tests] Fix ‘find: unrecognized: -xtype’ in stapel_image/git tests: use ubuntu base image instead of alpine
[tests] Enable docs suite for macOS
[tests] Enable resources adopter tests
[tests] Disable a few git suite tests for windows

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.0.10
4.02.2020, 11:03 +0300

Isolate v1.0 and v1.1 cache for cleanup commands

werf purge, werf cleanup, werf stages purge, werf stages cleanup commands will delete images only by current build cache version.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.0.9
3.02.2020, 21:46 +0300

Minor changes and fixes

  • Retry docker pull and push if timeout error has occurred.
  • Retry docker push when Client.Timeout exceeded while awaiting headers error occurred.
  • Rename werf helm ls command to werf helm list.
  • Fix werf.io/failures-allowed-per-replica does not affect Job tracking during deploy.
    fixes https://github.com/flant/werf/issues/2071
    refs https://github.com/flant/werf/pull/2072

Docs

  • Added two publications.
  • Code inspection, spell checking and site fixes.
  • Bump anchorjs version and fix its load. Adding HTML anchors on a page was too late and didn’t work in Chrome and some other browsers
  • Code inspection and spell checking.

Other

[tests] Refuse to get free TCP host port manually.
[tests] Own docker registry image without host volume.
[tests] Rename suites.
[tests] Add package name to temporary test project name.
[tests] Use flant/werf-test images in tests.
[tests] Fix git suite cleanup procedure after test.
[tests] Enable auto gc on macOS.
[ci] Fix repository_dispatch event for deploying site.
[ci] Add scripts to send repository dispatch events.
[ci] Retry docker login 5 times if error occurred.

Werf ci and tests changes.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.0.8
23.01.2020, 19:22 +0300

Speed up signatures calculation and stages invalidation phases

This release optimizes usage of git fsck command for the local repository: run only once for all images and artifacts instead of for each as before.

werf users could face this issue when having images and/or artifacts that used local git mappings.

During signatures calculation and stages invalidation phases werf uses commits that are stored in labels of existing stages images and validate them. The commit must not be unreachable to invalidate stages correctly and to prevent conflicts between parallel runs. We use git fsck command for getting an unreachable commit list. The command might take significant time for a large git repository.

Fix Docker on windows does not support mount with short filename

https://github.com/docker/for-win/issues/1560#issuecomment-577371228

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.0.7
22.01.2020, 20:04 +0300

Add werf host project list/purge commands

$ werf host project list  
NAME      	CREATED           	MODIFIED            
project1	5 seconds ago     	3 seconds ago       
project2	About a minute ago	About a minute ago  
project3	4 days ago              42 seconds ago  
$ werf host project purge project1 project2  

DISABLE_GIT_ARCHIVE_RESET_COMMIT

Tests, CI and documentation

  • improvements and fixes
  • new publications

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.0.6
14.01.2020, 09:35 +0300

Stable 1.0 version

Werf is an Open Source GitOps CLI utility for building and delivering applications to Kubernetes. Werf supports building application images from Dockerfiles or via its custom advanced image builder (it has YAML syntax, supports Ansible as well as Git-based incremental rebuilding). For application delivery, it uses the Helm-compatible configuration format. Werf stores the application code, the configuration of compiled images, and the deployment configuration in the single Git repository.

The long-awaited stable release of werf 1.0 is a full-fledged basic version of the tool. In this version, werf supports the full life cycle for containerized applications. It includes building application images, deploying them to Kubernetes, deleting unused images.

Please note that in version 1.0, all operations (i.e. build, deploy, cleanup) for a single project must be performed on the same host. In other words, you have to use a constant worker in your CI system. At the same time, there are no restrictions on the parallelism of tasks: werf fully addresses this issue. You can also bind different projects to different workers.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.0.6-ea.1
10.01.2020, 20:29 +0300

[docs] Website version menu updates

[docs] Removed telegram channel for English speaking users

The telegram channel for English speaking users could be misleading, and we decided to delete it.

It will be more convenient to communicate in one place - CNCF slack. Please join!

Badges were also updated.

More helm commands

  • werf helm ls

  • werf helm rm

  • werf helm rollback

  • werf helm history

  • werf helm get

Ci and tests

Werf ci and tests infrustructure changes

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.0.6-rc.11
27.12.2019, 19:23 +0300

Docs and werf ci improvements

[docs] Assets generation improvement
[docs] Werf -> werf
[docs] Tiny fixes
[github actions] Run tests and review docs by specific labels
[docs] reviewed index.md, documentation.md, readme.md
[docs] Fixed incorrect markup in the Rock-solid channel description.
[docs] [review] updated ssh.md
[readme] Installation section
[readme_ru] Installation section
[docs] Backward Compatibility Promise
[docs] multiwerf use –as-file and stable channel
[docs] ./docs/regen.sh and tiny improvements
[docs] Use shell syntax highlighting everywhere

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.0.6-rc.10
26.12.2019, 15:56 +0300

Small fixes

[cleanup] Fix ‘cannot get DaemonSets/ReplicaSets images: the server could not find the requested resource’

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.0.6-rc.7
20.12.2019, 15:04 +0300

Docs and site

  • improvements and fixes;
  • new releases page.

Other

  • Fix EDITOR with args.
  • Multiple werf processes now uses locks under windows.
  • Fix slug max size check.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.0.6-rc.6
12.12.2019, 15:25 +0300

[deploy] Fix sts hangs on warning ‘POST operation against Pod could not be completed at this time’

Print sts warning only once in status progress table.

Other

Docs orthography fixes.

Installation

Linux amd64

Darwin amd64

Windows amd64

Наименее стабильный канал обновлений

Версии этого канала обновлений могут содержать новые возможности, а также быть нестабильными, иметь ошибки. Мы не гарантируем обратную совместимость между версиями канала обновлений Alpha.

v1.0.13
28.02.2020, 17:57 +0300

Load more kubernetes client auth plugins

  • azure;
  • exec;
  • oidc;
  • openstack.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.0.12
19.02.2020, 17:26 +0300

[1.0] Fixes related to the “Resource already exists” deploy error

  • fix “resource already exists” error on redeploy when new resource with an error has been added to the chart,
    refs https://github.com/flant/helm/pull/40
  • fix “resource already exists” error message when creating a helm.sh/hook that already exists,
    refs https://github.com/flant/helm/pull/41
  • do not allow resource adoption during initial release installation, fix error messages,
    refs https://github.com/flant/helm/pull/42

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.0.11
17.02.2020, 14:45 +0300

Docs

[docs] Fixed broken links. Links autotest.
[docs] Releases page refactoring. Added buttons to switch between maj.min versions and update channels.
[docs] Dropdown version menu on the sidebar shows version, grouped by maj.min
[docs] Updated footer. Fixed heart icon :)

Bugfixes

Fix werf helm render prints wrong data when printf-like format strings used in the helm templates text.

Werf CI and tests

[ci] Documentation validation workflow: tiny improvements
[ci] Refresh site deployment workflow: remove unused events

[tests] Fix python_encoding_repo/yarn_repo not a git repository
Remove _repo suffixed dir before test. This dir may exist if previous tests has been killed for some reason.
[tests] Fix ‘find: unrecognized: -xtype’ in stapel_image/git tests: use ubuntu base image instead of alpine
[tests] Enable docs suite for macOS
[tests] Enable resources adopter tests
[tests] Disable a few git suite tests for windows

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.0.10
3.02.2020, 21:46 +0300

Isolate v1.0 and v1.1 cache for cleanup commands

werf purge, werf cleanup, werf stages purge, werf stages cleanup commands will delete images only by current build cache version.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.0.9
31.01.2020, 17:57 +0300

Minor changes and fixes

  • Retry docker pull and push if timeout error has occurred.
  • Retry docker push when Client.Timeout exceeded while awaiting headers error occurred.
  • Rename werf helm ls command to werf helm list.
  • Fix werf.io/failures-allowed-per-replica does not affect Job tracking during deploy.
    fixes https://github.com/flant/werf/issues/2071
    refs https://github.com/flant/werf/pull/2072

Docs

  • Added two publications.
  • Code inspection, spell checking and site fixes.
  • Bump anchorjs version and fix its load. Adding HTML anchors on a page was too late and didn’t work in Chrome and some other browsers
  • Code inspection and spell checking.

Other

[tests] Refuse to get free TCP host port manually.
[tests] Own docker registry image without host volume.
[tests] Rename suites.
[tests] Add package name to temporary test project name.
[tests] Use flant/werf-test images in tests.
[tests] Fix git suite cleanup procedure after test.
[tests] Enable auto gc on macOS.
[ci] Fix repository_dispatch event for deploying site.
[ci] Add scripts to send repository dispatch events.
[ci] Retry docker login 5 times if error occurred.

Werf ci and tests changes.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.0.8
23.01.2020, 19:22 +0300

Speed up signatures calculation and stages invalidation phases

This release optimizes usage of git fsck command for the local repository: run only once for all images and artifacts instead of for each as before.

werf users could face this issue when having images and/or artifacts that used local git mappings.

During signatures calculation and stages invalidation phases werf uses commits that are stored in labels of existing stages images and validate them. The commit must not be unreachable to invalidate stages correctly and to prevent conflicts between parallel runs. We use git fsck command for getting an unreachable commit list. The command might take significant time for a large git repository.

Fix Docker on windows does not support mount with short filename

https://github.com/docker/for-win/issues/1560#issuecomment-577371228

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.0.7
22.01.2020, 20:04 +0300

Add werf host project list/purge commands

$ werf host project list  
NAME      	CREATED           	MODIFIED            
project1	5 seconds ago     	3 seconds ago       
project2	About a minute ago	About a minute ago  
project3	4 days ago              42 seconds ago  
$ werf host project purge project1 project2  

DISABLE_GIT_ARCHIVE_RESET_COMMIT

Tests, CI and documentation

  • improvements and fixes
  • new publications

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.0.6
14.01.2020, 09:35 +0300

Stable 1.0 version

Werf is an Open Source GitOps CLI utility for building and delivering applications to Kubernetes. Werf supports building application images from Dockerfiles or via its custom advanced image builder (it has YAML syntax, supports Ansible as well as Git-based incremental rebuilding). For application delivery, it uses the Helm-compatible configuration format. Werf stores the application code, the configuration of compiled images, and the deployment configuration in the single Git repository.

The long-awaited stable release of werf 1.0 is a full-fledged basic version of the tool. In this version, werf supports the full life cycle for containerized applications. It includes building application images, deploying them to Kubernetes, deleting unused images.

Please note that in version 1.0, all operations (i.e. build, deploy, cleanup) for a single project must be performed on the same host. In other words, you have to use a constant worker in your CI system. At the same time, there are no restrictions on the parallelism of tasks: werf fully addresses this issue. You can also bind different projects to different workers.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.0.6-ea.1
10.01.2020, 20:29 +0300

[docs] Website version menu updates

[docs] Removed telegram channel for English speaking users

The telegram channel for English speaking users could be misleading, and we decided to delete it.

It will be more convenient to communicate in one place - CNCF slack. Please join!

Badges were also updated.

More helm commands

  • werf helm ls

  • werf helm rm

  • werf helm rollback

  • werf helm history

  • werf helm get

Ci and tests

Werf ci and tests infrustructure changes

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.0.6-rc.11
27.12.2019, 19:23 +0300

Docs and werf ci improvements

[docs] Assets generation improvement
[docs] Werf -> werf
[docs] Tiny fixes
[github actions] Run tests and review docs by specific labels
[docs] reviewed index.md, documentation.md, readme.md
[docs] Fixed incorrect markup in the Rock-solid channel description.
[docs] [review] updated ssh.md
[readme] Installation section
[readme_ru] Installation section
[docs] Backward Compatibility Promise
[docs] multiwerf use –as-file and stable channel
[docs] ./docs/regen.sh and tiny improvements
[docs] Use shell syntax highlighting everywhere

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.0.6-rc.10
26.12.2019, 15:56 +0300

Small fixes

[cleanup] Fix ‘cannot get DaemonSets/ReplicaSets images: the server could not find the requested resource’

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.0.6-rc.7
20.12.2019, 15:04 +0300

Docs and site

  • improvements and fixes;
  • new releases page.

Other

  • Fix EDITOR with args.
  • Multiple werf processes now uses locks under windows.
  • Fix slug max size check.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.0.6-rc.6
12.12.2019, 15:25 +0300

[deploy] Fix sts hangs on warning ‘POST operation against Pod could not be completed at this time’

Print sts warning only once in status progress table.

Other

Docs orthography fixes.

Installation

Linux amd64

Darwin amd64

Windows amd64