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

werf - werf v1.1.23+fix12

Published by flant-team-sysdev over 3 years ago

Experimental debug

Ignore image-metadata-by-commit BLOB_UNKNOWN errors when WERF_EXPERIMENTAL_IGNORE_IMAGE_METADATA_BY_COMMIT_BLOB_UNKNOWN=1 is set

Installation

Linux amd64

Darwin amd64

Windows amd64

werf - werf v1.2.5+fix2

Published by flant-team-sysdev over 3 years ago

Support setting initial number of replicas when HPA is active for Deployment

Set "werf.io/replicas-on-creation": NUM annotation, do not set spec.replicas field in templates explicitly.

Integration test and docs included.

Configuration go-templates changes

[config] The required function to declare a variable as required

The required function gives developers the ability to declare a value entry as required for config rendering. If the value is empty, the config will not render and will return an error message supplied by the developer.

{{ required "A valid <anything> value required!" <anything> }}

[config] the env function requires the set environment variable

  • The used environment variable can be empty but must be set (ENV_NAME="").
  • Otherwise, an error executing "werfConfig" at <env "test">: error calling env: the environment variable "<ENV_NAME>" must be set will be returned

Fixes and other

[logging] logboek v0.5.0

  • Migrate to gookit/color
  • Support for colors in WIN cmd.exe
    [win] Fix swith-work-tree occurs on every run due to backslash-slash issues

Internals

[tests] Cleanup old three_way_merge_patches_creator_* fixtures
[tests] Docs Suite: fix and add to default set

Installation

Linux amd64

Darwin amd64

Windows amd64

werf - werf v1.2.5+fix1

Published by flant-team-sysdev over 3 years ago

Giterminism refinements: full git-submodules support, better custom project dir support

[giterminism] Improve feedback if a related submodule is not clean or has changes

  • Ignore user work tree submodule directory if a submodule ".git" directory not found

  • Return a detailed error if a work tree submodule directory is not clean:

    the submodule "<submodule path>" is not clean and must be committed. Do not forget to push the current commit to the submodule remote If this commit exists only locally
    
    Details:
        commit:                 "0000000000000000000000000000000000000000"
        currentWorktreeCommit:  "d9243a9a45b10e6b7d985322b8108897626a25a6"
        expectedWorktreeCommit: "d9243a9a45b10e6b7d985322b8108897626a25a6"
    
    You might also be interested in developer mode (activated with --dev option) that allows you to work with staged changes without doing redundant commits. Just use "git add <file>..." to include the changes that should be used.
    
  • Return a detailed error if a work tree submodule directory has changes:

    the submodule "<submodule path>" has modified files and these changes must be committed (do not forget to push new changes to the submodule remote) or discarded:
    
        - file1
        - file2
    

[giterminism] Support for configuration files outside the project directory

Internals:

  • [tests] Giterminism Suite: test custom project directory
  • [giterminism] Refactor symlink check code

Docs

[doc] Add Rails guide

Internals

[tests] Fix daily tests, not compiling and failing tests, refactor tests precompile

Installation

Linux amd64

Darwin amd64

Windows amd64