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

werf - werf v1.1.23+fix18

Published by flant-team-sysdev over 3 years ago

Debug release

Disable resources waiter debug env WERF_DISABLE_RESOURCES_WAITER=1

Installation

Linux amd64

Darwin amd64

Windows amd64

werf - werf v1.2.6+fix4

Published by flant-team-sysdev over 3 years ago

Automigration to helm 3 in werf converge command

When werf-converge command detects existing helm 2 release with the same name it will try to render current release using helm 3 with full validation,

Then if render has been succeeded werf will migrate helm 2 release to a newly created helm 3 release. Old helm 2 release will be removed.

CAUTION!

This operation cannot be undone.

Once werf v1.2 has converted your project to helm 3, it cannot be deployed by werf v1.1 anymore. Werf v1.1 will refuse to deploy your project once helm 3 release has been created.

[config] Add fromYaml function

Available in the werf.yaml and .werf/**/*.tmpl configs.

  • fromYAML(str string) (map[string]interface{}, error)
  • return error if unmarshalling failed

werf.yaml

...
{{- $values := .Files.Get "werf_values.yaml" | fromYaml -}} // or fromYaml (.Files.Get "werf_values.yaml")
from: {{- $values.image.from }}

werf_values.yaml

image:
    from: alpine

Internals and fixes

[git_repo, status] Fix no error handling.

[git_repo, status] Fix the use of service work tree when the repository contains submodules
Status should always be taken for the user's work tree

Installation

Linux amd64

Darwin amd64

Windows amd64

werf - werf v1.1.23+fix17

Published by flant-team-sysdev over 3 years ago

[1.1] Helm 3 release existence check

werf-converge and werf-deploy commands will refuse to work when helm 3 release with the same name as target helm 2 release exists in the current namespace.

This check protects existing helm 3 release when your project has already been migrated from helm 2 to helm 3, but for some reason werf v1.1 tries to redeploy this release.

Installation

Linux amd64

Darwin amd64

Windows amd64