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 visible (Hide)

werf - werf v1.2.9+fix1

Published by flant-team-sysdev over 3 years ago

Developer mode change for follow mode and docs

[docs] Actualize the developer mode references

[dev] Update the --dev option description

[follow] New following logic in development mode
The mode allows restarting the command on a new commit.
In development mode (--dev), it additionally tracks changes in the index state of the git repository, regardless of whether simple or strict development mode (--dev-mode) is used.

[dev] Change the cache logic in simple development mode
Create a single commit for changes in the worktree instead of two separate commits for index and worktree changes.

Installation

Linux amd64

Darwin amd64

Windows amd64

werf - werf v1.2.8+fix8

Published by flant-team-sysdev over 3 years ago

Add WERF_DISABLE_RESOURCES_WAITER=1 support

Specify env var to fully disable kubedog waiter.

Installation

Linux amd64

Darwin amd64

Windows amd64

werf - werf v1.2.9

Published by flant-team-sysdev over 3 years ago

Support for modified/tracked files for the dev mode

  • Introduced --dev-mode simple|strict option.
  • --dev-mode simple — default mode when --dev option has been specified, to use strict mode specify --dev-mode strict.
  • In simple dev mode werf will use only files which are staged for commit (files which has been added with the git add command) and also modified files changes, which has not been staged for commit.
  • In strict mode werf will use only files which are staged for commit (files which has been added with the git add command).

Fix glob DIR/** not working in stage-dependencies

[path_matcher] Fix Simple/GitMappingPathMatcher.IsMatched method logic

Several sets of globes are used when comparing paths:

  • The globes as they are.
  • The globes without asterisks on the right (path//dir/**/, path//dir/**, path//dir///** -> path/*/dir).
  • The globes from the previous set with the universal part **/* (path//dir/**/).

Installation

Linux amd64

Darwin amd64

Windows amd64

werf - werf v1.2.8+fix7

Published by flant-team-sysdev over 3 years ago

Fix "Error: unable to locate chart directory: the directory ".helm" not found in the project git repository"

Installation

Linux amd64

Darwin amd64

Windows amd64

werf - werf v1.2.8+fix6

Published by flant-team-sysdev over 3 years ago

Docs

[docs] Translate to russian and refine advanced/helm chapter
https://ru.werf.io/v1.2-alpha/documentation/advanced/helm/overview.html (ссылка начнёт работать в ближайшее время)

[docs] Introduction: add a reference to giterminism

[docs] Advanced/Giterminism: add dev mode note

[docs] Internals/Build Process

  • More details about dockerfile image
  • Parallel builds

[docs] Internals/Stages and storage: sync

[docs] Reference/werf.yaml template engine: the .Env variable

[docs] Advanced/Giterminism: small improvement

[docs] Reference/werf.yaml template engine: the template directory

[docs] Reference/werf.yaml template engine: update the tpl function

Fix stageDependencies dir/** does to work

[path_matcher] Update Simple/GitMappingPathMatcher.IsMatched method logic

Several sets of globes are used when comparing paths:

  • The universal part */ is added to all globes (as before).
  • From all globes all asterisks to the right are cut off.

Internals

[ci] Daily Tests: fix "Prepare coverage file" step
[ci] Daily Tests: disable self-hosted runners
[ci] Fix directory integration/ci_suites/default/docs/_fixtures/cli/docs/backend is outside main module

Installation

Linux amd64

Darwin amd64

Windows amd64

werf - werf v1.2.8+fix5

Published by flant-team-sysdev over 3 years ago

Docs

[docs] "What's new in v1.2 / How to migrate from v1.1 to v1.2" guide

[docs] Advanced/Stapel/Mount: add giterminism note
[docs] Reference/werf.yaml: contextAddFile
[docs] Reference: rearrange menu items

Internal fixes

Fixes for new CI and new site infra.

[web] Fix topnav
[web] Fix RSS feeds and installation page
[ci] Fix web converge
[web] Fix version menu

Installation

Linux amd64

Darwin amd64

Windows amd64

werf - werf v1.2.8+fix2

Published by flant-team-sysdev over 3 years ago

New site infra

Fix CI.

Installation

Linux amd64

Darwin amd64

Windows amd64

werf - werf v1.2.8+fix1

Published by flant-team-sysdev over 3 years ago

New site infra

Fix CI.

Installation

Linux amd64

Darwin amd64

Windows amd64

werf - werf v1.2.8

Published by flant-team-sysdev over 3 years ago

New site infra

Fully reworked site internals:

  • Backend deployment component, which handles logic of landing page and other site parts common for all versions.
  • Deployments for each version to handle versioned documentation part of the site.

Installation

Linux amd64

Darwin amd64

Windows amd64

werf - werf v1.2.7+fix7

Published by flant-team-sysdev over 3 years ago

Docs

[docs] Added new animation for intro scheme

[docs] Better releache channel switcher

[docs] "What's new in v1.2" documentation chapter (part 1/2)

Chapter consists of 2 articles:

  1. Changelog — full descriptive list of key changes since v1.1, explaining what and why.
  2. How to migrate from v1.1 to v1.2 — fast guide to migrate your project from v1.1 to v1.2 without excess explanations.'

This change is part 1 of the following changes:

  1. english version of changelog;
  2. english and russian version of migration guide and russian version of changelog (will be available in next releases).

Installation

Linux amd64

Darwin amd64

Windows amd64

werf - werf v1.2.7+fix6

Published by flant-team-sysdev over 3 years ago

Docs

[docs] Fix version menu

Installation

Linux amd64

Darwin amd64

Windows amd64

werf - werf v1.2.7+fix5

Published by flant-team-sysdev over 3 years ago

Docs

[docs] Basic bundles article in advanced documentation section

https://werf.io/v1.2-alpha/documentation/advanced/bundles.html

Internals

Rework ls tree and path matcher interface

[ls_tree] Change the LsTree function interface

// LsTree returns the Result with tree entries that satisfy the passed pathMatcher.
// The function works lazily and does not go through a tree directory unnecessarily.
// If the result should contain only regular files (without directories and submodules), you should use the allFiles parameter.
LsTree(ctx context.Context, repository *git.Repository, commit string, pathMatcher path_matcher.PathMatcher) (*Result, error) -> LsTree(ctx context.
Context, repository *git.Repository, commit string, pathMatcher path_matcher.PathMatcher, allFiles bool) (*Result, error)

[path_matcher] Remove the greedySearch parameter and change interface

There are the following changes in the PathMatcher interface:

  • Rename the MatchPath method to IsPathMatched
  • Split the ProcessDirOrSubmodulePath method into ShouldGoThrough and IsDirOrSubmodulePathMatched methods
// IsPathMatched checks for a complete matching of the path
IsPathMatched(string) bool

// ShouldGoThrough indicates that the directory or submodule path is not completely matched but may include matching files among the child files.
// The method returns false if the path is completely matched.
ShouldGoThrough(string) bool

// IsDirOrSubmodulePathMatched returns true if IsPathMatched or ShouldGoThrough.
// The method returns true if there is a possibility of containing the matching files among the child files.
IsDirOrSubmodulePathMatched(string) bool

[ls_tree] Remove the strict option in LsTree function

The option allowed to run ls tree for work tree with uninitialized submodules. In current versions, we always work with the service work tree, where the submodules must be initialized.

Installation

Linux amd64

Darwin amd64

Windows amd64

werf - werf v1.2.7+fix4

Published by flant-team-sysdev over 3 years ago

Docs: rework advanced/helm chapter (part 1/3)

This change include only part 1 of the following steps:

  1. English version of advanced/helm chapter.
  2. Refinements for advanced/helm and new reference/helm chapter.
  3. Russian version of advanced/helm and reference/helm.

Advanced/helm chapter contains multiple sections:

  • configuration;
  • deploy process;
  • releases;

— each of which contains multiple articles, structured in sidebar.

Added giterminism article into configuration section.

Installation

Linux amd64

Darwin amd64

Windows amd64

werf - werf v1.2.7+fix3

Published by flant-team-sysdev over 3 years ago

Fixes: giterminism and color output in CI/CD

[giterminism] Fix loose giterminism mode

Error:

unable to locate chart directory: the directory ".helm" not found in the project git repository

[tests] Giterminism Suite: actualize tests

[go.mod] github.com/werf/logboek v0.5.3

  • Fix color output in CI jobs
  • Update github.com/gookit/color v1.3.5 -> v1.3.7

Installation

Linux amd64

Darwin amd64

Windows amd64

werf - werf v1.2.7+fix2

Published by flant-team-sysdev over 3 years ago

Automigration helm 2 to 3 fixes

[helm 2 to 3] Fix: ignore resources from helm 2 release which do not exist in kubernetes

Changed order of migration steps: first set annotations and labels, then create helm 3 release.

Installation

Linux amd64

Darwin amd64

Windows amd64

werf - werf v1.2.7+fix1

Published by flant-team-sysdev over 3 years ago

Automigration helm 2 to 3 fixes

[helm 2 to 3] Change migration mechanics from PATCH to REPLACE

Do not patch resources to add annotations and labels, because not all resources kinds supports strategic-merge-patch.
Use simple GET, client-side merge, then REPLACE operation (as kubectl edit use).

[migrate 2 to 3] Print warning when helm 2 and helm 3 releases exists at the same time

If for some unknown and unexpected by werf migration workflow reason there is helm 2 and helm 3 releases at the moment,
then ignore helm 2 release and continue deploy process into helm 3 release, but print a WARNING about existing helm 2 release.

To disable this warning user should possible cleanup helm 2 metadata by kubectl -n kube-system delete cm RELEASE.VERSION.

Installation

Linux amd64

Darwin amd64

Windows amd64

werf - werf v1.2.7

Published by flant-team-sysdev over 3 years ago

New giterminism documentation!

[docs] Overview: giterminism

[docs] Advanced/Configuration/Template engine: move to reference

[giterminism] Update error messages

[docs] Advanced/Giterminism

[docs] Reference/werf-giterminism.yaml

[docs] Advanced/Configuration/Template engine

[docs] Reference/werf.yaml: refactor and update

  • change the structure of werf yaml data file
  • add get_lang_field_or_raise_error filter to work effectively with new data structure
  • update directives descriptions

[ci] Fix Documentation Validation

There was an error while trying to write to `/__w/werf/werf/docs/Gemfile.lock`.
It is likely that you need to grant write permissions for that path.

[docs] Fix table line counter does not work properly

Installation

Linux amd64

Darwin amd64

Windows amd64

werf - werf v1.1.23+fix20

Published by flant-team-sysdev over 3 years ago

[v1.1] Helm 3 release existence checker

Add support for custom kube-context and kube-config-base64.

Installation

Linux amd64

Darwin amd64

Windows amd64

werf - werf v1.2.6+fix6

Published by flant-team-sysdev over 3 years ago

Added support for --kube-config-base64

Ability to pass kube config in base64 encoded form using cli --kube-config-base64 or $WERF_KUBE_CONFIG_BASE64, or $WERF_KUBECONFIG_BASE64 or $KUBE_CONFIG_BASE64 or $KUBECONFIG_BASE64.

Installation

Linux amd64

Darwin amd64

Windows amd64

werf - werf v1.2.6+fix5

Published by flant-team-sysdev over 3 years ago

Docs

[docs] Advanced/Configuration: shell examples take precedence over ansible

Fixes and other

[ci_env] Ignore the non-existent --tagging-strategy option

Ignore only if the old form of the command call is used: source <(werf ci-env gitlab --tagging-strategy=...)

[ci_env] Fix unable to create tmp docker config based on the user's one

Error: unable to create tmp docker config: unable to copy /home/user/.docker to /tmp/werf-docker-config-780142139: open /home/user/.docker/run/docker-cli-api.sock: no such device or address

[bundles] Do not render published chart in werf-publish and bundle-export commands

Render cmd was used only to initiate loading of chart configuration.
Eliminated render cmd, use loader directly instead.

[render] Add --validate and include-crds opts for werf-render cmd

Installation

Linux amd64

Darwin amd64

Windows amd64