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

werf - werf v1.1.23+fix16

Published by flant-team-sysdev over 3 years ago

[config] Add fromYaml function

  • 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

Installation

Linux amd64

Darwin amd64

Windows amd64

werf - werf v1.2.6+fix3

Published by flant-team-sysdev over 3 years ago

Giterminism internals improvements and fixes

Added support for .gitignore into giterminism subsystem.

[giterminism] Optimize listing fs files

Skip file if:

  • not accepted by giterminism config
  • not changed locally
  • ignored by .gitignore
  • not inside an unclean submodule repository

[giterminism] Use pathMatcher for matching paths

[path_matcher] Implement StubPathMatcher that always returns false

[git_repo] ListCommitFilesWithGlob: small improvement

The file path does not get into the result if the glob is the file path without patterns

Installation

Linux amd64

Darwin amd64

Windows amd64

werf - werf v1.2.6+fix2

Published by flant-team-sysdev over 3 years ago

Fixes

[win][git] Fix CRLF issues and patch-does-not-apply errors

The root of the issue: werf have added file converted from LF to CRLF into built image under windows due to some local git autocrlf settings. Then werf cannot apply patch to the file with CRLF's inside the build container.

  1. Fix werf to always add files into image from git without any conversions from LF to CRLF, or from CRLF to LF. Take files from the git as-is.
  2. Fix patches applier for files with CRLF already added into the built images for some reason (images built with an older werf version with this bug).

Installation

Linux amd64

Darwin amd64

Windows amd64

werf - werf v1.2.5+fix12

Published by flant-team-sysdev over 3 years ago

Fixes

[win][git] Fix CRLF issues and patch-does-not-apply errors

The root of the issue: werf have added file converted from LF to CRLF into built image under windows due to some local git autocrlf settings. Then werf cannot apply patch to the file with CRLF's inside the build container.

  1. Fix werf to always add files into image from git without any conversions from LF to CRLF, or from CRLF to LF. Take files from the git as-is.
  2. Fix patches applier for files with CRLF already added into the built images for some reason (images built with an older werf version with this bug).

[docs] Fix incorrect link to Go guide

Installation

Linux amd64

Darwin amd64

Windows amd64

werf - werf v1.2.6+fix1

Published by flant-team-sysdev over 3 years ago

Fixes

[helm 2 to 3] Fix werf helm migrate2to3 command: create helm 3 release in the first place
- Migration command should create helm 3 release object because it contains managed fields of all resources.
- It is better not lost this information about managed fields, because werf-converge will not delete fields, which has been deleted for some resource in the current repo .helm/templates in such case.

[bundles] Fix "unable to create bundle: unable to write ... no such file or directory"
[giterminism] Fix broken symlinks are processed incorrectly
[stapel, git] Fix adding a broken symlink does not work
[docs] Fix incorrect link to Go guide
[docs] Updating Telegram links
[docs] Fix incorrect Liquid syntax
[werf.io landing] Index page update: new intro slides
[helm][giterminism] Cache chart dependencies by hashsum of the whole .helm/Chart.lock, not digest

Other

  • Temporarily revert custom docker images tags.

  • Added global .Values.global.werf.name value.

  • [config] .Files.Glob fails with an error instead of a warning message if no matches found

    Error: unable to load werf config: template: werfConfig:8:9: executing "werfConfig" at <.Files.Glob>: error calling Glob: {{ .Files.Glob "path" }}: no matches found
    
  • [giterminism] Optimize listing files with glob

    • Check each file path for the possibility of matching child files
    • Get glob prefix without patterns and use it as start directory

Internals

[tests] Giterminism Suite: disable log color
[giterminism] Refactor: WalkConfigurationFilesWithGlob returns paths relative to dir

Installation

Linux amd64

Darwin amd64

Windows amd64

werf - werf v1.2.5+fix11

Published by flant-team-sysdev over 3 years ago

Fixes

[bundles] Fix "unable to create bundle: unable to write ... no such file or directory"
[giterminism] Fix broken symlinks are processed incorrectly
[stapel, git] Fix adding a broken symlink does not work

Installation

Linux amd64

Darwin amd64

Windows amd64

werf - werf v1.2.5+fix10

Published by flant-team-sysdev over 3 years ago

Fixes

[doc] Fix incorrect Liquid syntax

Installation

Linux amd64

Darwin amd64

Windows amd64

werf - werf v1.2.5+fix9

Published by flant-team-sysdev over 3 years ago

Giterminism and helm fixes

Cache chart dependencies by hashsum of the whole .helm/Chart.lock, not digest. This allows usage of update chart dependency when digest has not been changed.

Installation

Linux amd64

Darwin amd64

Windows amd64

werf - werf v1.2.6

Published by flant-team-sysdev over 3 years ago

Introduce custom build tags and migration from helm2 to helm3

  1. Custom build tags.

    • Add --add-custom-tag that can be used multiple times for build command.
    • Add --use-custom-tag for helm commands.
    • It is necessary to use the image name shortcut %image% or %image_slug% in the tag format if there is more than one image in the werf config.
    • [giterminism] Inspect custom tags: the tags should be accepted by cli.AllowCustomTags directive.
    • Should be built check: an image for a specified custom tag must exist and be the same as an image for related content-based tag.
  2. Migration from helm 2 to helm 3.

    • werf converge command will fail if it detects existing helm 2 command;
    • start a migration process with the "werf helm migrate2to3 --release HELM2_RELEASE --target-namespace TARGET_HELM3_NAMESPACE" command;
    • finish a migration process with "werf converge" command into specified release and namespace;
    • more docs are coming soon.

Installation

Linux amd64

Darwin amd64

Windows amd64

werf - werf v1.2.5+fix8

Published by flant-team-sysdev over 3 years ago

Fixes

Fix interactive werf run session (--shell/--bash) works not properly

  • Fix proxy stream data formatting enabled mode

Installation

Linux amd64

Darwin amd64

Windows amd64

werf - werf v1.1.23+fix15

Published by flant-team-sysdev over 3 years ago

[werf.yaml] Mix Sprig V2 and V3 functions for werf.yaml templating

Introduce the following list of sprig v3 functions which was not previously avaialable in the sprig v2:

add1f
addf
all
any
bcrypt
chunk
concat
decryptAES
deepCopy
deepEqual
dig
divf
duration
durationRound
encryptAES
fromJson
genCAWithKey
genSelfSignedCertWithKey
genSignedCertWithKey
get
getHostByName
htpasswd
maxf
minf
mulf
mustAppend
mustChunk
mustCompact
mustDateModify
mustDeepCopy
mustFirst
mustFromJson
mustHas
mustInitial
mustLast
mustMerge
mustMergeOverwrite
mustPrepend
mustPush
mustRegexFind
mustRegexFindAll
mustRegexMatch
mustRegexReplaceAll
mustRegexReplaceAllLiteral
mustRegexSplit
mustRest
mustReverse
mustSlice
mustToDate
mustToJson
mustToPrettyJson
mustToRawJson
mustUniq
mustWithout
must_date_modify
osBase
osClean
osDir
osExt
osIsAbs
randBytes
randInt
regexQuoteMeta
seq
subf
toDecimal
toRawJson
urlJoin
urlParse

https://github.com/werf/werf/pull/3220

Installation

Linux amd64

Darwin amd64

Windows amd64

werf - werf v1.1.23+fix14

Published by flant-team-sysdev over 3 years ago

Fixes

Do not print warnings for MANIFEST_UNKNOWN and BLOB_UNKNOWN registry errors until werf-cleanup does not delete these images automatically.

Installation

Linux amd64

Darwin amd64

Windows amd64

werf - werf v1.2.5+fix7

Published by flant-team-sysdev over 3 years ago

Fixes

Ignore BLOB_UNKNOWN registry errors. Ignore silently without warnings until werf-cleanup does not delete these broken images.

Installation

Linux amd64

Darwin amd64

Windows amd64

werf - werf v1.2.5+fix6

Published by flant-team-sysdev over 3 years ago

Fixes

[git repo] Move cache and change checksum calculation lock logic
[status] Do not cache repository and submodules repositories in the result
[docs] Fix custom helm release name template docs example
[refactor] Container runtime pkg: remove unused code and small fixes
[ls_tree] Do not cache repository and submodule repositories in the result
[docs] Fix a single quote in flag description breaks styles on cli command page

  • [cli] Automatic replacement of single quotes (') with accent graves (`) in a flag description

Installation

Linux amd64

Darwin amd64

Windows amd64

werf - werf v1.2.5+fix4

Published by flant-team-sysdev over 3 years ago

Fixes

[giterminism] Fix processing of an invalid submodule state

Installation

Linux amd64

Darwin amd64

Windows amd64

werf - werf v1.2.5+fix3

Published by flant-team-sysdev over 3 years ago

Fixes

Fix logging issues in the v1.2.5+fix2.

Installation

Linux amd64

Darwin amd64

Windows amd64

werf - werf v1.1.23+fix13

Published by flant-team-sysdev over 3 years ago

Fixes

[BLOB_UNKNOWN] Completely ignore images with BLOB_UNKNOWN errors from the standard docker registry

  • Consider image is not exists in that case.
  • Log warnings on BLOB_UNKNOWN and MANIFEST_UNKNOWN for default docker registry impl.
  • Removed experimental WERF_EXPERIMENTAL_IGNORE_IMAGE_METADATA_BY_COMMIT_BLOB_UNKNOWN env variable.

Installation

Linux amd64

Darwin amd64

Windows amd64