Release channels
Each werf release progresses through all release channels, starting with Alpha → Beta → Early-Access → Stable → Rock-Solid. You can think of each release on a lower channel as a release-candidate for the higher one. Once a release is considered bug-free, it is promoted to the next channel.
This is the most stable channel and recommended for usage in critical environments with tight SLA. We guarantee backward compatibility between Rock-Solid releases within minor branch (1.1.x). We guarantee that Stable release should become a Rock-Solid release not earlier than 2 weeks of broad testing.
Stable channel releases are mostly safe to use and we encourage to use this channel everywhere. We guarantee backward compatibility between Early-Access releases within minor branch (1.1.x). We guarantee that Early-Access release should become Stable not earlier than 1 week after internal tests
These releases are mostly safe to use and can even be used in non critical environments or for local development. We do not guarantee backward compatibility between Early-Access releases.
These releases are for more broad testing of new features to catch regressions. We do not guarantee backward compatibility between Beta releases.
These releases can bring new features, but are unstable. We do not guarantee backward compatibility between Alpha releases.
Changelog history of releases within channels
Release:
Channel:

For usage in critical environments with tight SLA

This is the most stable channel and recommended for usage in critical environments with tight SLA. We guarantee backward compatibility between Rock-Solid releases within minor branch (1.1.x). We guarantee that Stable release should become a Rock-Solid release not earlier than 2 weeks of broad testing.

v1.1.14+fix1
Jul 3, 2020 at 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
May 14, 2020 at 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
May 14, 2020 at 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
Apr 30, 2020 at 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
Apr 23, 2020 at 13:55 +0300

Fixes

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

Installation

Linux amd64

Darwin amd64

Windows amd64

Recommended channel

Stable channel releases are mostly safe to use and we encourage to use this channel everywhere. We guarantee backward compatibility between Early-Access releases within minor branch (1.1.x). We guarantee that Early-Access release should become Stable not earlier than 1 week after internal tests

v1.1.19+fix8
Jul 9, 2020 at 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
Jun 16, 2020 at 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
Jun 11, 2020 at 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
May 21, 2020 at 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
May 15, 2020 at 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
May 14, 2020 at 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
May 14, 2020 at 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
May 14, 2020 at 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
Apr 29, 2020 at 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
Apr 20, 2020 at 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
Apr 20, 2020 at 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
Apr 17, 2020 at 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
Apr 17, 2020 at 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
Apr 15, 2020 at 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
Apr 10, 2020 at 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
Apr 10, 2020 at 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

For use in non critical environments or local development

These releases are mostly safe to use and can even be used in non critical environments or for local development. We do not guarantee backward compatibility between Early-Access releases.

v1.1.19+fix8
Jul 3, 2020 at 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
Jun 26, 2020 at 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
Jun 23, 2020 at 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
Jun 16, 2020 at 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
Jun 11, 2020 at 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
Jun 11, 2020 at 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
Jun 2, 2020 at 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
Jun 2, 2020 at 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
May 21, 2020 at 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
May 18, 2020 at 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
May 17, 2020 at 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
May 14, 2020 at 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
May 14, 2020 at 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
May 14, 2020 at 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
May 12, 2020 at 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
Apr 29, 2020 at 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
Apr 28, 2020 at 12:26 +0300

Fix cleanup deletes stages that are related to deployed images

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.9+fix6
Apr 23, 2020 at 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
Apr 20, 2020 at 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
Apr 17, 2020 at 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
Apr 17, 2020 at 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
Apr 17, 2020 at 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
Apr 15, 2020 at 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
Apr 10, 2020 at 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
Apr 10, 2020 at 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

Apr 6, 2020 at 19:11 +0300
Mar 23, 2020 at 12:17 +0300

For more broad testing of new features

These releases are for more broad testing of new features to catch regressions. We do not guarantee backward compatibility between Beta releases.

v1.1.20+fix12
Jul 15, 2020 at 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
Jul 13, 2020 at 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
Jul 13, 2020 at 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
Jul 13, 2020 at 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
Jul 13, 2020 at 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
Jul 3, 2020 at 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
Jul 3, 2020 at 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
Jul 3, 2020 at 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
Jun 25, 2020 at 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
Jun 19, 2020 at 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
Jun 18, 2020 at 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
Jun 16, 2020 at 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
Jun 16, 2020 at 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
Jun 11, 2020 at 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
Jun 8, 2020 at 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
Jun 2, 2020 at 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
May 25, 2020 at 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
May 20, 2020 at 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
May 18, 2020 at 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
May 17, 2020 at 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
May 17, 2020 at 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
May 14, 2020 at 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
May 14, 2020 at 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
May 14, 2020 at 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
May 7, 2020 at 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
May 6, 2020 at 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
May 6, 2020 at 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
Apr 29, 2020 at 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
Apr 28, 2020 at 12:26 +0300

Fix cleanup deletes stages that are related to deployed images

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.10
Apr 24, 2020 at 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
Apr 20, 2020 at 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
Apr 17, 2020 at 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
Apr 17, 2020 at 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
Apr 17, 2020 at 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
Apr 16, 2020 at 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
Apr 15, 2020 at 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
Apr 15, 2020 at 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
Apr 15, 2020 at 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
Apr 13, 2020 at 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
Apr 10, 2020 at 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
Apr 10, 2020 at 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
Apr 10, 2020 at 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
Apr 10, 2020 at 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
Apr 8, 2020 at 16:22 +0300

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

Installation

Linux amd64

Darwin amd64

Windows amd64

Apr 8, 2020 at 01:05 +0300
Apr 7, 2020 at 20:30 +0300
Apr 6, 2020 at 12:39 +0300
Apr 1, 2020 at 12:51 +0300
Mar 31, 2020 at 11:43 +0300
Mar 31, 2020 at 11:17 +0300
Mar 30, 2020 at 23:32 +0300
Mar 30, 2020 at 22:44 +0300
Mar 30, 2020 at 19:16 +0300
Mar 30, 2020 at 19:05 +0300
v1.1.9
Mar 30, 2020 at 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

Mar 23, 2020 at 22:05 +0300
Mar 23, 2020 at 12:17 +0300
Mar 20, 2020 at 11:38 +0300
Mar 19, 2020 at 22:50 +0300
Mar 19, 2020 at 11:12 +0300
Mar 12, 2020 at 10:25 +0300
Mar 11, 2020 at 13:51 +0300
Mar 6, 2020 at 18:06 +0300
Mar 6, 2020 at 11:41 +0300
Mar 4, 2020 at 19:09 +0300
Mar 4, 2020 at 13:14 +0300
Feb 25, 2020 at 21:32 +0300
Feb 20, 2020 at 16:49 +0300
Feb 20, 2020 at 16:47 +0300
Feb 20, 2020 at 16:17 +0300
Feb 19, 2020 at 17:26 +0300
Feb 17, 2020 at 16:08 +0300

Least stable update channel

These releases can bring new features, but are unstable. We do not guarantee backward compatibility between Alpha releases.

v1.1.21+fix8
Jul 15, 2020 at 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
Jul 13, 2020 at 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
Jul 13, 2020 at 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
Jul 10, 2020 at 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
Jul 9, 2020 at 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
Jul 7, 2020 at 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
Jul 7, 2020 at 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
Jul 3, 2020 at 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
Jul 3, 2020 at 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
Jul 2, 2020 at 14:20 +0300

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

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.20+fix6
Jul 2, 2020 at 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
Jun 26, 2020 at 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
Jun 25, 2020 at 17:54 +0300

Git history synchronization option and shallow clone validation

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.20+fix2
Jun 25, 2020 at 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
Jun 23, 2020 at 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
Jun 23, 2020 at 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
Jun 23, 2020 at 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
Jun 18, 2020 at 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
Jun 18, 2020 at 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
Jun 16, 2020 at 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
Jun 12, 2020 at 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
Jun 11, 2020 at 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
Jun 8, 2020 at 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
Jun 8, 2020 at 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
Jun 8, 2020 at 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
Jun 6, 2020 at 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
Jun 4, 2020 at 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
Jun 3, 2020 at 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
Jun 3, 2020 at 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
Jun 2, 2020 at 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
Jun 2, 2020 at 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
Jun 1, 2020 at 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
May 29, 2020 at 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
May 28, 2020 at 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
May 27, 2020 at 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
May 26, 2020 at 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
May 25, 2020 at 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
May 25, 2020 at 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
May 20, 2020 at 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
May 20, 2020 at 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
May 20, 2020 at 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
May 18, 2020 at 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
May 18, 2020 at 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
May 17, 2020 at 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
May 14, 2020 at 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
May 14, 2020 at 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
May 12, 2020 at 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
May 12, 2020 at 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
May 12, 2020 at 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
May 7, 2020 at 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
May 6, 2020 at 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
May 6, 2020 at 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
Apr 29, 2020 at 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
Apr 28, 2020 at 12:26 +0300

Fix cleanup deletes stages that are related to deployed images

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.10+fix1
Apr 27, 2020 at 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
Apr 24, 2020 at 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
Apr 22, 2020 at 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
Apr 22, 2020 at 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
Apr 21, 2020 at 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
Apr 20, 2020 at 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
Apr 17, 2020 at 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
Apr 15, 2020 at 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
Apr 15, 2020 at 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
Apr 15, 2020 at 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
Apr 13, 2020 at 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
Apr 10, 2020 at 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
Apr 10, 2020 at 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
Apr 8, 2020 at 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

Apr 6, 2020 at 12:39 +0300
Mar 31, 2020 at 22:22 +0300
Mar 31, 2020 at 12:51 +0300
Mar 30, 2020 at 22:44 +0300
Mar 30, 2020 at 22:01 +0300
Mar 30, 2020 at 19:50 +0300
Mar 25, 2020 at 10:47 +0300
Mar 24, 2020 at 23:49 +0300
Mar 24, 2020 at 11:37 +0300
Mar 23, 2020 at 22:05 +0300
Mar 23, 2020 at 12:17 +0300
Mar 23, 2020 at 10:24 +0300
Mar 20, 2020 at 11:38 +0300
Mar 19, 2020 at 22:50 +0300
Mar 19, 2020 at 11:12 +0300
Mar 12, 2020 at 10:25 +0300
Mar 11, 2020 at 13:51 +0300
Mar 6, 2020 at 18:06 +0300
Mar 6, 2020 at 11:41 +0300
Mar 4, 2020 at 19:09 +0300
Mar 4, 2020 at 13:14 +0300
Feb 25, 2020 at 21:32 +0300
Feb 20, 2020 at 16:49 +0300
Feb 20, 2020 at 16:47 +0300
Feb 20, 2020 at 16:17 +0300
Feb 19, 2020 at 17:26 +0300
Feb 17, 2020 at 16:08 +0300
Feb 17, 2020 at 14:45 +0300
Feb 14, 2020 at 14:30 +0300
Feb 13, 2020 at 23:00 +0300
Feb 12, 2020 at 11:36 +0300
Feb 11, 2020 at 21:44 +0300
Feb 10, 2020 at 00:55 +0300
Feb 7, 2020 at 20:21 +0300
Feb 7, 2020 at 20:08 +0300
Feb 7, 2020 at 10:37 +0300
Feb 6, 2020 at 18:01 +0300
Feb 6, 2020 at 16:15 +0300
Feb 5, 2020 at 18:28 +0300
Feb 4, 2020 at 14:13 +0300
Feb 4, 2020 at 12:22 +0300
Feb 4, 2020 at 11:03 +0300
Feb 3, 2020 at 21:46 +0300
Jan 29, 2020 at 00:26 +0300
Channel:

For usage in critical environments with tight SLA

This is the most stable channel and recommended for usage in critical environments with tight SLA. We guarantee backward compatibility between Rock-Solid releases within minor branch (1.1.x). We guarantee that Stable release should become a Rock-Solid release not earlier than 2 weeks of broad testing.

Mar 25, 2020 at 08:37 +0300
Mar 13, 2020 at 11:51 +0300
Feb 20, 2020 at 16:17 +0300
Feb 20, 2020 at 13:57 +0300
Jan 14, 2020 at 09:35 +0300
Jan 10, 2020 at 20:35 +0300
Dec 19, 2019 at 17:21 +0300

Recommended channel

Stable channel releases are mostly safe to use and we encourage to use this channel everywhere. We guarantee backward compatibility between Early-Access releases within minor branch (1.1.x). We guarantee that Early-Access release should become Stable not earlier than 1 week after internal tests

Mar 17, 2020 at 14:46 +0300
Feb 28, 2020 at 10:18 +0300
Feb 14, 2020 at 12:56 +0300
Feb 6, 2020 at 18:31 +0300
Jan 14, 2020 at 09:35 +0300
Jan 10, 2020 at 20:35 +0300
Dec 12, 2019 at 15:25 +0300

For use in non critical environments or local development

These releases are mostly safe to use and can even be used in non critical environments or for local development. We do not guarantee backward compatibility between Early-Access releases.

Mar 10, 2020 at 13:35 +0300
Feb 20, 2020 at 16:17 +0300
Feb 19, 2020 at 17:26 +0300
Feb 6, 2020 at 18:31 +0300
Jan 31, 2020 at 15:33 +0300
Jan 14, 2020 at 09:35 +0300
Jan 10, 2020 at 20:29 +0300
Dec 12, 2019 at 15:25 +0300

For more broad testing of new features

These releases are for more broad testing of new features to catch regressions. We do not guarantee backward compatibility between Beta releases.

Mar 10, 2020 at 13:35 +0300
Feb 19, 2020 at 17:26 +0300
Feb 18, 2020 at 14:52 +0300
Feb 4, 2020 at 11:03 +0300
Feb 3, 2020 at 21:46 +0300
Jan 23, 2020 at 19:22 +0300
Jan 22, 2020 at 20:04 +0300
Jan 14, 2020 at 09:35 +0300
Jan 10, 2020 at 20:29 +0300
Dec 27, 2019 at 19:23 +0300
Dec 26, 2019 at 15:56 +0300
Dec 20, 2019 at 15:04 +0300
Dec 12, 2019 at 15:25 +0300

Least stable update channel

These releases can bring new features, but are unstable. We do not guarantee backward compatibility between Alpha releases.

Feb 28, 2020 at 17:57 +0300
Feb 19, 2020 at 17:26 +0300
Feb 17, 2020 at 14:45 +0300
Feb 3, 2020 at 21:46 +0300
Jan 31, 2020 at 17:57 +0300
Jan 23, 2020 at 19:22 +0300
Jan 22, 2020 at 20:04 +0300
Jan 14, 2020 at 09:35 +0300
Jan 10, 2020 at 20:29 +0300
Dec 27, 2019 at 19:23 +0300
Dec 26, 2019 at 15:56 +0300
Dec 20, 2019 at 15:04 +0300
Dec 12, 2019 at 15:25 +0300