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.
Rock-Solid
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
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 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.8.5
Apr 6, 2020 at 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
Mar 23, 2020 at 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

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.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

v1.1.8.7
Apr 8, 2020 at 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
Apr 7, 2020 at 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
Apr 6, 2020 at 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
Apr 1, 2020 at 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
Mar 31, 2020 at 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
Mar 31, 2020 at 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
Mar 30, 2020 at 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
Mar 30, 2020 at 22:44 +0300

Fix extra annotations/labels are not added to k8s resources

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.8.1
Mar 30, 2020 at 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
Mar 30, 2020 at 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

Mar 30, 2020 at 18:59 +0300
v1.1.8
Mar 23, 2020 at 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
Mar 23, 2020 at 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
Mar 20, 2020 at 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
Mar 19, 2020 at 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
Mar 19, 2020 at 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
Mar 12, 2020 at 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
Mar 11, 2020 at 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
Mar 6, 2020 at 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
Mar 6, 2020 at 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
Mar 4, 2020 at 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
Mar 4, 2020 at 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
Feb 25, 2020 at 21:32 +0300

Optimize imports: rsync import server

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.0-beta.3
Feb 20, 2020 at 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
Feb 20, 2020 at 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
Feb 20, 2020 at 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
Feb 19, 2020 at 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
Feb 17, 2020 at 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

Least stable update channel

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

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

v1.1.9-alpha.8
Apr 6, 2020 at 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
Mar 31, 2020 at 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
Mar 31, 2020 at 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
Mar 30, 2020 at 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
Mar 30, 2020 at 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
Mar 30, 2020 at 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
Mar 25, 2020 at 10:47 +0300

More docker registries implementations support

  • harbor;
  • GitHub packages registry.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.9-alpha.2
Mar 24, 2020 at 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
Mar 24, 2020 at 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
Mar 23, 2020 at 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
Mar 23, 2020 at 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
Mar 23, 2020 at 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
Mar 20, 2020 at 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
Mar 19, 2020 at 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
Mar 19, 2020 at 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
Mar 12, 2020 at 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
Mar 11, 2020 at 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
Mar 6, 2020 at 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
Mar 6, 2020 at 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
Mar 4, 2020 at 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
Mar 4, 2020 at 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
Feb 25, 2020 at 21:32 +0300

Optimize imports: rsync import server

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.0-beta.3
Feb 20, 2020 at 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
Feb 20, 2020 at 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
Feb 20, 2020 at 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
Feb 19, 2020 at 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
Feb 17, 2020 at 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
Feb 17, 2020 at 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
Feb 14, 2020 at 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
Feb 13, 2020 at 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
Feb 12, 2020 at 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
Feb 11, 2020 at 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
Feb 10, 2020 at 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
Feb 7, 2020 at 20:21 +0300

Experimental stages cache rework (11)

Fix panic

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.1.0-alpha.10
Feb 7, 2020 at 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
Feb 7, 2020 at 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
Feb 6, 2020 at 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
Feb 6, 2020 at 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
Feb 5, 2020 at 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
Feb 4, 2020 at 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
Feb 4, 2020 at 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
Feb 4, 2020 at 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
Feb 3, 2020 at 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
Jan 29, 2020 at 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

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.0.13
Mar 25, 2020 at 08:37 +0300

Load more kubernetes client auth plugins

  • azure;
  • exec;
  • oidc;
  • openstack.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.0.12
Mar 13, 2020 at 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
Feb 20, 2020 at 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
Feb 20, 2020 at 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
Jan 14, 2020 at 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
Jan 10, 2020 at 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
Dec 19, 2019 at 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

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.0.13
Mar 17, 2020 at 14:46 +0300

Load more kubernetes client auth plugins

  • azure;
  • exec;
  • oidc;
  • openstack.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.0.12
Feb 28, 2020 at 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
Feb 14, 2020 at 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
Feb 6, 2020 at 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
Jan 14, 2020 at 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
Jan 10, 2020 at 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
Dec 12, 2019 at 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

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.0.13
Mar 10, 2020 at 13:35 +0300

Load more kubernetes client auth plugins

  • azure;
  • exec;
  • oidc;
  • openstack.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.0.12
Feb 20, 2020 at 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
Feb 19, 2020 at 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
Feb 6, 2020 at 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
Jan 31, 2020 at 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
Jan 14, 2020 at 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
Jan 10, 2020 at 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
Dec 12, 2019 at 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

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.0.13
Mar 10, 2020 at 13:35 +0300

Load more kubernetes client auth plugins

  • azure;
  • exec;
  • oidc;
  • openstack.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.0.12
Feb 19, 2020 at 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
Feb 18, 2020 at 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
Feb 4, 2020 at 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
Feb 3, 2020 at 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
Jan 23, 2020 at 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
Jan 22, 2020 at 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
Jan 14, 2020 at 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
Jan 10, 2020 at 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
Dec 27, 2019 at 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
Dec 26, 2019 at 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
Dec 20, 2019 at 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
Dec 12, 2019 at 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

Least stable update channel

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

v1.0.13
Feb 28, 2020 at 17:57 +0300

Load more kubernetes client auth plugins

  • azure;
  • exec;
  • oidc;
  • openstack.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.0.12
Feb 19, 2020 at 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
Feb 17, 2020 at 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
Feb 3, 2020 at 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
Jan 31, 2020 at 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
Jan 23, 2020 at 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
Jan 22, 2020 at 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
Jan 14, 2020 at 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
Jan 10, 2020 at 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
Dec 27, 2019 at 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
Dec 26, 2019 at 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
Dec 20, 2019 at 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
Dec 12, 2019 at 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