werf

A solution for implementing efficient and consistent software delivery to Kubernetes facilitating best practices.

APACHE-2.0 License

Stars
4.2K
Committers
64

Bot releases are hidden (Show)

werf - Werf v1.0.4-beta.7

Published by flant-team-sysdev about 5 years ago

[dockerfile] Fix BuildKit RUN --mount flag does not work

Installation

Linux amd64

Darwin amd64

Windows amd64

werf - Werf v1.0.5-alpha.1

Published by flant-team-sysdev about 5 years ago

Deploy process improvements

Enable environment access functions in chart templates

Now user can fetch env variables in the helm templates with the following function:

{{ env "ENVIRONMENT_VARIABLE_NAME" }}

Refuse temporary helm chart generation

Temporary helm chart was an obsolete way to extend standard helm chart derived from dapp tool. Werf uses enchanced version of helm and does not need to generate temporal chart files.

Also this change fixed https://github.com/flant/werf/issues/1580.

Remove werf helm generate chart command

Use werf helm render instead

Update chart templates werf helpers

  • werf_container_image: add imagePullPolicy: Always for custom tag strategy.
  • werf_container_env: set DOCKER_IMAGE_ID only for git branch and custom tag strategies.

Git work tree switch strikes back: rework and speedup git work tree cache

  • One work tree belongs only to one git repo on localhost.
    Multiple repos (as in gitlab with parallel builds) will
    have multiple uniq work trees, one per repo.
  • Optimized work tree switch procedure in the case when
    work tree is already in the desired commit state.
  • New cache files structure:
~/.werf/local_cache/git_worktrees/2/local/REPO_ID_HASH/
  COMMIT # actual work tree directory in the state corresponding to COMMIT
  current # symlink to the current COMMIT directory

REPO_ID is unique per each local repo clone.

During switch from OLD_COMMIT to NEW_COMMIT procedure
OLD_COMMIT dir will be renamed to ~/.werf/local_cache/git_worktrees/2/local/REPO_ID_HASH/UUID temporary dir,
then state switched, then UUID will be renamed to NEW_COMMIT dir. In the case of switch error,
UUID temporary dir will be leaved for the inspection.

Only a single process can work with ~/.werf/local_cache/git_worktrees/2/local/REPO_ID_HASH cache at the same time.

Other fixes

  • [lint] Actualize werf anno validation.
  • [docs] Fix of copying file with ansible.
  • [cleanup commands] Skip broken tags (known as "MANIFEST_UNKNOWN" error during cleanup).
  • [render] Optional variables and saving the rendered chart to the file.

Installation

Linux amd64

Darwin amd64

Windows amd64

werf - Werf v1.0.4-beta.6

Published by flant-team-sysdev about 5 years ago

Fixes and docs improvements

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

Installation

Linux amd64

Darwin amd64

Windows amd64

werf - Werf v1.0.4-beta.5

Published by flant-team-sysdev about 5 years ago

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

werf - Werf v1.0.4-beta.4

Published by flant-team-sysdev about 5 years ago

[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

werf - Werf v1.0.4-beta.3

Published by flant-team-sysdev about 5 years ago

Revert experimental git worktree switch procedure to fix errors

Installation

Linux amd64

Darwin amd64

Windows amd64

werf - Werf v1.0.4-beta.2

Published by flant-team-sysdev about 5 years ago

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

werf - Werf v1.0.4-beta.1

Published by flant-team-sysdev about 5 years ago

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

werf - Werf v1.0.3-beta.19

Published by flant-team-sysdev about 5 years ago

[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

werf - Werf v1.0.4-alpha.11

Published by flant-team-sysdev about 5 years ago

Rename image-repo-mode option values

  • multirep to multirepo
  • monorep to monorepo

Installation

Linux amd64

Darwin amd64

Windows amd64

werf - Werf v1.0.4-alpha.10

Published by flant-team-sysdev about 5 years ago

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

werf - Werf v1.0.3-beta.18

Published by flant-team-sysdev about 5 years ago

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

Installation

Linux amd64

Darwin amd64

Windows amd64

werf - Werf v1.0.4-alpha.9

Published by flant-team-sysdev about 5 years ago

Merge pull request #1724 from flant/fix_macos_tmp_mount

[macOS] Fix mount tmp problem

werf - Werf v1.0.3-beta.17

Published by flant-team-sysdev about 5 years ago

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:

Installation

Linux amd64

Darwin amd64

Windows amd64

werf - Werf v1.0.4-alpha.8

Published by flant-team-sysdev about 5 years ago

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

Installation

Linux amd64

Darwin amd64

Windows amd64

werf - Werf v1.0.3-beta.16

Published by flant-team-sysdev about 5 years ago

Fix panic in 'werf config render' command.

[config] Disable auto GC for config commands.

Installation

Linux amd64

Darwin amd64

Windows amd64

werf - Werf v1.0.4-alpha.7

Published by flant-team-sysdev about 5 years ago

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

werf - Werf v1.0.4-alpha.6

Published by flant-team-sysdev about 5 years ago

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

werf - Werf v1.0.3-beta.15

Published by flant-team-sysdev about 5 years ago

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

werf - Werf v1.0.3-beta.14

Published by flant-team-sysdev about 5 years ago

More docs for beta

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

Installation

Linux amd64

Darwin amd64

Windows amd64