Fixes and docs improvements

  • Kubernetes 1.16.0 support.
  • Rework werf.io and README intro text.

Installation

Linux amd64

Darwin amd64

Windows amd64

Fixes

  1. Suppress klog INFO and WARNING streams to disable excess messages from client-go

refs https://github.com/flant/kubedog/issues/134 closes #1703

  1. Revert breaking change to fix git error:

[speedup git] Optimize git worktree switch procedure

Installation

Linux amd64

Darwin amd64

Windows amd64

[speedup git] Optimize git worktree switch procedure

[ci-env] Fix typo in environment name of extra anno

  • WERF_ADD_ANNOTATION_GILAB_CI_PIPELINE_URL -> WERF_ADD_ANNOTATION_GITLAB_CI_PIPELINE_URL

Installation

Linux amd64

Darwin amd64

Windows amd64

Revert experimental git worktree switch procedure to fix errors

Installation

Linux amd64

Darwin amd64

Windows amd64

Optimize idle werf build!

  • Speedup git worktree switch procedure (https://github.com/flant/werf/issues/1644).
  • Do not fetch latest id for image specified in from directive on each run.
  • Cache git operations (checksum, archive and patch) in a single werf run.

Other fixes and improvements

  • [dockerfile] Fix resolving FROM with ARG does not work properly.
  • [dockerfile] Fix dockerfile stage is not cleaned up.
  • [dockerfile] Fix resolve symlink logic.
  • [cleanup] Log kubernetes context names.

Installation

Linux amd64

Darwin amd64

Windows amd64

v1.0.4-alpha becomes v1.0.4 beta!

Helm chart dependencies commands

Docs available at: https://werf.io/documentation/reference/deploy_process/working_with_chart_dependencies.html

Also ability to install helm charts from official helm repo using werf helm deploy-chart CHART_REFERENCE RELEASE_NAME command, like:

werf helm deploy-chart stable/nginx-ingress myrelease

Configurable status-progress table period

Set --status-progress-period=N in seconds (5 seconds by default), set -1 to disable periodical status-progress-table. Works only for release resources.

Set --hooks-status-progress-period=N in seconds (5 seconds by default), set -1 to disable periodical status-progress-table. Works only for release hooks.

Other fixes

  • Fixed terminal width in gitlab-ci env to 95 chars, fixed kubedog status-progress table to fit into width.
  • Fix ‘werf run –docker-opts=”–rm”’ does not remove container on SIGINT.

Installation

Linux amd64

Darwin amd64

Windows amd64

[ci-env] Modify GitLab extra annotations

  • Add annotations
    • ci.werf.io/commit
    • gitlab.ci.werf.io/job-url
    • gitlab.ci.werf.io/pipeline-url
  • Rename annotation:
    • project.werf.io/gitlab-url to project.werf.io/git

Support Monorepo and multirepo

Store images in one or several Docker repositories by the following patterns:

  • IMAGES_REPO:[IMAGE_NAME-]TAG using monorepo mode.
  • IMAGES_REPO[/IMAGE_NAME]:TAG using multirepo mode.

[stapel builder] Improve git cache stage logic

  • Stage is empty if patch size is lower than patch size step (1MB)
  • Patch size is 0 if any git mapping commit from previous built image is not exists

[dockerfile image] addHost directive

Other

  • [docs] Reference/Publish process: images-repo-mode
  • [docs] Stapel Image/Adding source code from git repositories: add note about submodules
  • [docs] Configuration/Deploy into kubernetes: note about using Go templates functions in TEMPLATE
  • [docs] Publications: add articles about Dockerfiles
  • [logging] Up deploy
  • [tags] Specify –tag-custom values using environments WERF_TAG_CUSTOM*
  • [stapel image] Expand tilde to home directory for custom mount
  • [deploy] Default helm render engine

Installation

Linux amd64

Darwin amd64

Windows amd64

Rename image-repo-mode option values

  • multirep to multirepo
  • monorep to monorepo

Installation

Linux amd64

Darwin amd64

Windows amd64

werf helm repo/dependency commands

werf helm repo

add         Add a chart repository
fetch       Download a chart from a repository and (optionally) unpack it in local directory
init        Init default chart repositories configuration
list        List chart repositories
remove      Remove a chart repository
search      Search for a keyword in charts
update      Update information of available charts locally from chart repositories

werf helm dependency

build       Rebuild the charts/ directory based on the requirements.lock file
list        List the dependencies
update      Update charts/ based on the contents of requirements.yaml

Deploy chart by CHART_REFERENCE

$ werf helm deploy-chart stable/nginx-ingress myrelease 

[ci-env] Modify GitLab extra annotations

  • Add annotations
    • ci.werf.io/commit
    • gitlab.ci.werf.io/job-url
    • gitlab.ci.werf.io/pipeline-url
  • Rename annotation:
    • project.werf.io/gitlab-url to project.werf.io/git

[stapel image] Expand tilde to home directory for custom mount

mount:
- fromPath: ~/go-cache 
  to: /app/go-cache

Other

  • [deploy] Default helm render engine
  • [docs] Stapel Image/Adding source code from git repositories: add note about submodules
  • [docs] Configuration/Deploy into kubernetes: note about using Go templates functions in TEMPLATE
  • [docs] Publications: add articles about Dockerfiles
  • [logging] Up deploy
  • [ci-env] Defaults log terminal width to 95
  • [logging] Update status progress and log chunks view

Installation

Linux amd64

Darwin amd64

Windows amd64

  • [macOS] Fix mount tmp problem
  • [docs] Tiny fixes

Installation

Linux amd64

Darwin amd64

Windows amd64

Merge pull request #1724 from flant/fix_macos_tmp_mount

[macOS] Fix mount tmp problem

Helm updated: 2.13.1->2.14.3

3-way-merge annotations mode enabled

Werf writes 3-way-merge repair patch to annotations:

debug.werf.io/repair-patch
debug.werf.io/repair-patch-errors

Repair patch is a 3-way-merge kubectl-apply-like patch between current live resource state and desired chart state. User should apply this patch manually when live resource state is out of sync with the chart configuration resource state.

A warning message will be written to the screen during deploy process when repair patch is not empty.

Docs is available at pages:

  • https://github.com/flant/werf/blob/master/docs/pages/reference/deploy_process/experimental_three_way_merge.md
  • https://werf.io/documentation/reference/deploy_process/experimental_three_way_merge.html

Installation

Linux amd64

Darwin amd64

Windows amd64

[doc] fix YAML in sidebar and the Three-way merge article

Installation

Linux amd64

Darwin amd64

Windows amd64

Fix panic in ‘werf config render’ command.

[config] Disable auto GC for config commands.

Installation

Linux amd64

Darwin amd64

Windows amd64

3-way-merge: annotations mode

Werf writes 3-way-merge repair patch to annotations:

debug.werf.io/repair-patch
debug.werf.io/repair-patch-errors

Repair patch is a 3-way-merge kubectl-apply-like patch between current live resource state and desired chart state. User should apply this patch manually when live resource state is out of sync with the chart configuration resource state.

A warning message will be written to the screen during deploy process when repair patch is not empty.

Doc available at page: https://github.com/flant/werf/blob/master/docs/pages/reference/deploy_process/experimental_three_way_merge.md

Other fixes

[config] Disable auto GC for config commands.

Fix panic in ‘werf config render’ command.

Installation

Linux amd64

Darwin amd64

Windows amd64

Reject deploy post-apply hooks

Unnecessary hooks, added for experiment, finally decided to remove.

Fixes

[deploy] Ignore ‘POST operation could not be complete’ sts error.

[ci-env] Fix Gitlab 12.1.4+ output: turn off color mode

[docs] ci-env and tag slug

[docs] Gemfile.lock vulnerability update fix

[stapel image] Fix CMD and ENTRYPOINT logic

  • force reset CMD if a user specifies ENTRYPOINT (to ignore inherited CMD value from base image)
  • reset CMD only with “[]” for all docker versions
  • skip auto-resetting CMD if ENTRYPOINT is inherited or specified

[dockerignore] Fix pattern with starting double asterisks does not work properly

  • The pattern does not check root files

New commands

[config] werf config list command [config] werf config render command

Installation

Linux amd64

Darwin amd64

Windows amd64

Fixes

[deploy] Ignore ‘POST operation could not be complete’ sts error.

[ci-env] Fix Gitlab 12.1.4+ output: turn off color mode

[docs] ci-env and tag slug

[stapel image] Fix CMD and ENTRYPOINT logic

  • force reset CMD if a user specifies ENTRYPOINT (to ignore inherited CMD value from base image)
  • reset CMD only with “[]” for all docker versions
  • skip auto-resetting CMD if ENTRYPOINT is inherited or specified

New commands

[config] werf config list command [config] werf config render command

Installation

Linux amd64

Darwin amd64

Windows amd64

More docs for beta

  • Added one new publication (ru);
  • Publications year hotfix.

Installation

Linux amd64

Darwin amd64

Windows amd64

Small fixes and improvements

[dockerignore] Fix pattern with starting double asterisks does not work properly

  • The pattern does not check root files

[docs] Gemfile.lock vulnerability update fix

Installation

Linux amd64

Darwin amd64

Windows amd64

[deploy] Fix “runtime error: invalid memory address or nil pointer dereference”

Error occurs during deployment without werf images.

Installation

Linux amd64

Darwin amd64

Windows amd64

Helm upgrade

Helm+tiller has been upgraded to 2.14.3.

Experimental 3-way-merge support for deploy

Set WERF_3_WAY_MERGE_MODE_ENABLED=1 to enable 3 way merge during deploy.

Implement post-apply-on-install, post-apply-on-upgrade hooks

New hooks run after resources manifests have been applied, before waiting for resources readiness.

Configurable Status-Progress table period

--status-progress-period and --hooks-status-progress-period options.

Docs

Added one new publication (ru): https://habr.com/ru/company/flant/blog/460351/.

Publications year hotfix.

Other fixes and improvements

[tags] Specify –tag-custom values using environments WERF_TAG_CUSTOM*.

[stapel builder] Improve git cache stage logic.

Installation

Linux amd64

Darwin amd64

Windows amd64

New features

  • [dockerfile image] –add-host support: pass parameter using addHost werf.yaml directive (see docs for more info: https://werf.io/documentation/configuration/dockerfile_image.html).

Fixes and small changes

  • [deploy] Fix “runtime error: invalid memory address or nil pointer dereference”
    • Error occurs during deployment without werf images.
  • [docs] Development and Debug/Stage Introspection: introspect-stage usage

Installation

Linux amd64

Darwin amd64

Windows amd64