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.16+fix8

Published by distorhead over 4 years ago

Changed https://werf.io and https://ru.werf.io landing pages!

Backport change for v1.1.16.

  • [doc] Added animated presentation, introduction to werf became more comprehensible
  • [doc] Added three new publications

Installation

Linux amd64

Darwin amd64

Windows amd64

werf - werf v1.1.19+fix1

Published by distorhead over 4 years ago

Fix release

[git] Change git repo and worktree cache version to fix compatibility issues

Installation

Linux amd64

Darwin amd64

Windows amd64

werf - werf v1.1.19

Published by distorhead over 4 years ago

Changed https://werf.io and https://ru.werf.io landing pages!

  • [doc] Added animated presentation, introduction to werf became more comprehensible
  • [doc] Added three new publications
  • [license] Update copyright

Important fixes

  • [dockerfile] Fix handling of absolute in ADD/COPY instructions.
  • [git] Update go-git: fix "submodule not initialized" errors when recusive submodules are being used
    Using distorhead/go-git with the following pending PR: https://github.com/go-git/go-git/pull/88
  • [ls_tree] Raise git submodule error when something is wrong with submodules in the git repo instead of silent bypass.
  • [ls-tree] More verbose error messages when something went wrong with gitArchive stage creation.

Installation

Linux amd64

Darwin amd64

Windows amd64

werf - werf v1.1.16+fix7

Published by flant-team-sysdev over 4 years ago

[config] Add .Files.Glob Go template function

{{ range $path, $content := .Files.Glob ".werf/files/**" }}
{{ $path }}: |
{{ $content | indent 2 }}
{{ end }}
  • Process symlinks with .Files.Glob
    .Files.Glob returns the hash of regular files and their contents for the paths that are matched pattern. This function follows only symlinks pointed to a regular file (not to a directory).

  • .Files.Glob: has an ability to merge results
    The function supports shell pattern matching + **. Results can be merged with merge sprig function (e.g {{ $filesDict := merge (.Files.Glob "*/*.txt") (.Files.Glob "app/ **/*.txt") }})

Installation

Linux amd64

Darwin amd64

Windows amd64

werf - werf v1.1.16+fix6

Published by flant-team-sysdev over 4 years ago

[config] Add tpl function to evaluate strings as templates inside a template

Project file wih template:

{{ tpl (.Files.Get "service/werf_partial.yaml") . }}

Environment variable with template:

{{ tpl (env "EXTERNAL_TEMPLATE") . }}

Installation

Linux amd64

Darwin amd64

Windows amd64

werf - werf v1.1.16+fix5

Published by distorhead over 4 years ago

Fix publish performance for --tag-by-stages-signature

Do not check published docker-image-ID for images being published with content-based stages-signature.

Ability to write published images report json to the file

Write publish report when --publish-report-path PATH option has been given.

There is --publish-report-format options which accepts only json for now.

Installation

Linux amd64

Darwin amd64

Windows amd64

werf - werf v1.1.18+fix10

Published by flant-team-sysdev over 4 years ago

Fix virtual merge commits creation

  • Set user.email and user.name when creating a temporal detached merge commits.
  • Fix detached merge commit creation condition.
    • Do not create detached merge commit for the previous built image when previously built image contains latest commit.

Installation

Linux amd64

Darwin amd64

Windows amd64

werf - werf v1.1.18+fix9

Published by flant-team-sysdev over 4 years ago

[git] Hotfix remote git mapping patch creation procedure

Will fix errors like:

1.505658243s Error: phase build on image one stage gitLatestPatch handler failed: error preparing stage gitLatestPatch: error creating patch      ↵
1.505670515s between `07bd04e9e2ad4fb03136943a2bbcb8aa50ff7471` and `07bd04e9e2ad4fb03136943a2bbcb8aa50ff7471` commits: git diff error: exit      ↵
1.505684042s status 128
1.505687944s unrecognized output:
1.505692711s fatal: bad object 07bd04e9e2ad4fb03136943a2bbcb8aa50ff7471

Installation

Linux amd64

Darwin amd64

Windows amd64

werf - werf v1.1.18+fix8

Published by flant-team-sysdev over 4 years ago

Fix git worktree switch and optimize working with remote git-mappings

[git] Refine git worktree switch procedure, fix remote git-mapping clone on every build if token has been specified

  • do not write excess files werf_work_tree_cache_dir in the git-repo dir;
    • new work tree validation procedure: check work tree list of the repo;
    • this procedure is needed to check if repo has been recreated to recreate a related work tree in this case;
  • store cloned repos in the cache dirs like: ~/.werf/local_cache/git_repos/2/protocol-https/mydomain.mygitlab.com/grp/proj.git.
  • store worktrees in the dirs like: ~/.werf/local_cache/git_worktrees/5/protocol-git/mydomain.mygitlab.com:22/grp/proj.git.

Installation

Linux amd64

Darwin amd64

Windows amd64

werf - werf v1.1.18+fix7

Published by flant-team-sysdev over 4 years ago

Fixes

[docs] Guides/GitHub CI/CD Integration: open code snippets by default
[docs] Fix russian switch-to-distributed-mode guide: lost switch-from-local command example
[docs] Cli docs regen: added --virtual-merge-* options
[docs] Adding source code from git repositories sidebar: documentation: hide irrelevant documentation
Commit message with "[werf reset]" is no longer supported, but documentation section might be reused in the nearest future

[ci_env] GitHub: fix typo os.Getenv("IMAGES REPO")
[cli] Fix --release and --namespace params: add WERF_RELEASE and WERF_NAMESPACE options

Installation

Linux amd64

Darwin amd64

Windows amd64

werf - werf v1.1.16+fix2

Published by flant-team-sysdev over 4 years ago

Fixes

[ci_env] GitHub: fix typo os.Getenv("IMAGES REPO")
[cli] Fix --release and --namespace params: add WERF_RELEASE and WERF_NAMESPACE options

Installation

Linux amd64

Darwin amd64

Windows amd64

werf - werf v1.1.18+fix6

Published by flant-team-sysdev over 4 years ago

Fix publish performance for --tag-by-stages-signature

Do not check published docker-image-ID for images being published with content-based stages-signature.

Installation

Linux amd64

Darwin amd64

Windows amd64

werf - werf v1.1.18+fix5

Published by flant-team-sysdev over 4 years ago

[config] .Files.Glob: add ability to merge results

The function supports shell pattern matching + **. Results can be merged with merge sprig function (e.g {{ $filesDict := merge (.Files.Glob "*/*.txt") (.Files.Glob "app/**/*.txt") }})

Installation

Linux amd64

Darwin amd64

Windows amd64

werf - werf v1.1.18+fix4

Published by flant-team-sysdev over 4 years ago

[config] Add tpl function to evaluate strings as templates inside a template

Project file wih template:

{{ tpl (.Files.Get "service/werf_partial.yaml") . }}

Environment variable with template:

{{ tpl (env "EXTERNAL_TEMPLATE") . }}

Experimental virtual/ephemeral merge commit support for GitHub Actions

Werf stages related commands accepts following args:

  • --virtual-merge;
  • --virtual-merge-from-commit;
  • --virtual-merge-into-commit.

In virtual merge mode werf will try to reuse stages built for virtual merge commits.

Cli fixes

Implement env support for some options:

  • WERF_DRY_RUN: --dry-run (run / cleanup commands)
  • WERF_DOCKER_OPTIONS: --docker-options (run)
  • WERF_KUBE_CONFIG: --kube-config
  • WERF_PUBLISH_REPORT_PATH: --publish-report-path

Docs

Translated Guides/GitHub CI/CD integration guide.

Installation

Linux amd64

Darwin amd64

Windows amd64

werf - werf v1.1.18+fix3

Published by flant-team-sysdev over 4 years ago

Docs updates for GitHub Actions

[docs] Guides/GitHub CI/CD Integration: Up configurations and add note for weak workflows
[ci_env] GitHub: Reorganize cleanup section in env-file

Installation

Linux amd64

Darwin amd64

Windows amd64

werf - werf v1.1.18+fix2

Published by flant-team-sysdev over 4 years ago

Fixes and small changes

[docs] Update activesupport in werf.io due to vunlerability alert
[docs] Guides/GitHub CI/CD integration: add werf-actions
[dismiss] Return exit code 0 when release is not found

[cli] Add envs support for string array flags

  • WERF_SSH_KEY* for --ssh-key
  • WERF_SET* for --set
  • WERF_SET_STRING* for --set-string
  • WERF_VALUES* for --values
  • WERF_SECRET_VALUES* for --secret-values

Installation

Linux amd64

Darwin amd64

Windows amd64

werf - werf v1.1.18+fix1

Published by flant-team-sysdev over 4 years ago

Fixes

  • [build] Fix remote git-mapping uses wrong commit-id for ls-tree when creating git-archive.
  • [config] Process symlinks with .Files.Glob.
    • .Files.Glob returns the hash of regular files and their contents for the paths that are matched pattern.
      This function follows only symlinks pointed to a regular file (not to a directory).
  • [docs] Add converge command and actualize some information.
  • [docs] Reference/CI/CD workflows overview: Align tables content
  • [docs] Sidebar: Add Организация CI/CD с помощью werf
  • [docs] Fix broken links
  • [docs] Regen cli docs: added converge command cli docs
  • [docs] Reference/Working with Docker registries: JFrog and Nexus note
  • [docs] Stapel Image/Running assembly instructions: actualize
  • [docs][readme_ru] Actualize
  • [ci_env] Fix redundant empty lines when using ci-env-file with verbose

Installation

Linux amd64

Darwin amd64

Windows amd64

werf - werf v1.1.18

Published by flant-team-sysdev over 4 years ago

Ability to write published images report json to the file

Write publish report when --publish-report-path PATH option has been given.

There is --publish-report-format option which accepts only json for now.

Example of publish report:

{
  "Images": {
    "one": {
      "WerfImageName": "one",
      "DockerRepo": "localhost:5000/alo/one",
      "DockerTag": "a64687f43f31179cf069574a455e53d75937da81f82042fbfc7ad096",
      "DockerImageID": "sha256:0151dda79c0c076aa00b4c90367d9e067e854fdb10027fc06e30ed0f1498016f"
    },
    "three": {
      "WerfImageName": "three",
      "DockerRepo": "localhost:5000/alo/three",
      "DockerTag": "baff2bc90cf6c17e47e37e7b14ce0296ade95cbf35f7d33d3e72d0bb",
      "DockerImageID": "sha256:c71998ef1916a6fddee0b334a28d2efa1f9f541fa0094c3f5f7aad6d2d98b44f"
    },
    "two": {
      "WerfImageName": "two",
      "DockerRepo": "localhost:5000/alo/two",
      "DockerTag": "f5a8ee43e363925176e78230a467fa7e9e58324916f4be9e0b7ad6d7",
      "DockerImageID": "sha256:1edd54ae5a18734a268ddeb9ea8eeb83137ac71dd8c0cf52afdc5c5039c0360d"
    }
  }
}

Installation

Linux amd64

Darwin amd64

Windows amd64

werf - werf v1.1.17

Published by flant-team-sysdev over 4 years ago

Docs

  • NEW! Translated to english Reference/CI/CD workflows overview.
  • NEW! Translated to english Guides/GitLab CI/CD integration.
  • Replaced external links to image with local links.
  • Reference/Configuration: .Files.Glob Go template function.
  • Guides/GitLab CI/CD integration: Update scheme image.

Add .Files.Glob Go template function

{{ range $path, $content := .Files.Glob ".werf/files/**" }}
{{ $path }}: |
{{ $content | indent 2 }}
{{ end }}

Allow storing of arbitrary docker images in the stages storage

Ignore stages storage tags not matching the expected format for the remote stages storage of the werf.

Virtual merge commit support for git_repo and true_git

  1. New way of creating worktree for git-worktree-cache: use "git worktree add" tool.
  • This way of creating worktrees is native for git and prevent main worktree corruption.
  1. New true_git.CreateDetachedMergeCommit function which operates within the git-worktree-cache, creates and returns some commit id, whic
    h can be used later until this commit is pruned (because it is detached).
  2. Playground demo cli tool which creates diff between two virtual-merge-commits: specify 4 commits on input, get a patch between virtual
    merge commits of 1 into 2 and 3 into 4.

Fix GetStageDescription when docker registry repo is not exist

Error: reading image "docker.pkg.github.com/user/repo/stages:de07eea0119baca706320aa6b7f32f887f5700b6fd82e1864867a1ee-1590064872402": GET
https://docker.pkg.github.com/v2/user/repo/stages/manifests/de07eea0119baca706320aa6b7f32f887f5700b6fd82e1864867a1ee-1590064872402: NAME_U
NKNOWN: docker package "stages" does not exist under owner "user/repo"

Ci-env

  • GitHub: default WERF_REPO_GITHUB_TOKEN and optional werf config.
  • GitLab: improve stages storage/images repo auto-detection.

Installation

Linux amd64

Darwin amd64

Windows amd64

werf - werf v1.1.16+fix1

Published by flant-team-sysdev over 4 years ago

Fix hard-coded images repo/stages storage implementation for ci-env

Automatically set gitlab docker registry implementation for stages storage and images repo.

Installation

Linux amd64

Darwin amd64

Windows amd64