Commit Graph

51 Commits

Author SHA1 Message Date
Quan TRAN 700a89f3ff
add integration tests for helm v3.8.0 (#2085) 2022-02-15 09:37:09 +09:00
Quan TRAN 170e29a558
bump to go 1.17.3 with alpine 3.13 (#2024)
* bump to go 1.17.5

* bump to go 1.17.3 for circleci

* use alping 3.15 & helm 3.7.2

* use golang 1.17.3 and alpine 3.13 instead

because of this issue: https://wiki.alpinelinux.org/wiki/Release_Notes_for_Alpine_3.14.0#faccessat2
2022-01-07 08:58:54 +09:00
Aditya Menon 9a0ce53608
Support Helm 3.7.0's reworked OCI support (#1970)
Signed-off-by: Aditya Menon <aditya.menon@spin.pm>
2021-10-04 09:19:15 +09:00
Yusuke Kuoka 7845cccd23
Stop integration test for Helm 2.17.0 (#1961)
It turned out the Helm 2.17.0 binary is nowhere now. I considered a bit about checking for a newer Helm 2.x releases as an alternative but I resisted as it is almost a year since EoL of Helm 2. Thanks Helm 2. Long live Helm 3!
2021-09-14 05:19:53 +09:00
Jake Hill ad2f8e87e6
Add debian docker image, drop helm2, upgrade packages. (#1956)
- Add debian image based on `stable-slim`, desire for this is largely
  around my use case using Azure DevOps which makes it challenging to
  use images which are not glibc based.
- Drop support for helm2 in the docker images. This is a tricky one but
  given that I was having errors during the docker build for helm2 and
  the fact that it has been EoL for a long time now made me think that
  this was the correct move.
- As a "while I'm in here" I've upgraded kubectl and helm. I've popped
  on the most current patch of the last release (v1.20.3) to give a
  slightly broader support for different Kubernetes versions.
- Reworked CI to support pushing a debian and alpine base, and dropped
  support for the helm2 versions.
2021-09-14 04:30:32 +09:00
Yusuke Kuoka ccd81de77e Set longer no_output_timeout for release
Ref https://support.circleci.com/hc/en-us/articles/360007188574-Build-has-hit-timeout-limit
2021-07-26 00:04:11 +00:00
Quan TRAN e39a0b3639
bump Go to 1.16.3 and cover helm 3.5.4 (#1825)
* bump go to 1.16.3

* add helm 3.5.4 to integration tests
2021-05-08 17:37:58 +09:00
Philipp Hossner 85accf7330
Add helm-secrets-encrypted values template file (#1701)
Secret files ending with .gotmpl are now also rendered as a gotemplate.

```
releases:
- name: myapp
  secrets:
  - secrets.yaml.gotmpl
```

Note that currently, .gotmpl files must be valid YAML files as well.

The expected use-case of this feature is to compose a YAML array from values and encrypted secrets.

Without this feature, you would have tried to do something like the below, which didn't work.

**Example (doesn't work!)**

`values.yaml.gotmpl`:

```
environment:
  -   name: MY_EXTERNAL_IP
      value: |
          {{ exec "./get-external-ip.sh" (list "") }}
```

`secrets.yaml`:
```
_sops:
  #...
environment:
  - name: MY_SECRET_VALUE
    value: (encrypted by sops)
```

`helmfile.yaml`:

```
releases:
- name: foo
  values:
  - values.yaml
  secrets:
  - secrets.yaml
```

This doesn't work because `values.yaml` and the decrypted `secrets.yaml` are passed to `helm` to be merged, and helm overrides the array instead of merging or concatenating the arrays.

**Example (works!)**

Instead of `values.yaml` and `secrets.yaml`, you provide a single `secrets.yaml.gotmpl` that is a valid YAML and encrypted by sops:

```
_sops:
  #...
environment:
  -   name: MY_EXTERNAL_IP
      value: |
          {{ exec "./get-external-ip.sh" (list "") }}
  - name: MY_SECRET_VALUE
    value: (encrypted by sops)
```

`helmfile.yaml`:

```
releases:
- name: foo
  secrets:
  - secrets.yaml.gotmpl
```

Helmfile decrypts the gotmpl by handing it over to helm-secrets and then renders the result as a gotmpl file. The end result is that you have a two-element array `environments` that can be just passed to helm.

Resolves #1700

Co-authored-by: Yusuke Kuoka <ykuoka@gmail.com>
2021-04-06 14:20:42 +09:00
astorath aafe74a3e1
Fix/secrets ordering (#1726)
Fixes issue introduced in #790: the order of secrets merged is not defined now, leading to unpredictable results in `helmfile apply`.
2021-03-23 18:00:57 +09:00
Andrey Tuzhilin 2983f5cd28 test: fix vault provisioning code 2021-03-23 17:19:40 +09:00
Andrey Tuzhilin 5cd853b773 test: add vault and sops for integration secret testing 2021-03-23 17:19:40 +09:00
Andrey Tuzhilin f1c07879ad ci: simplify integration tests ci code for helm2 2021-03-23 17:19:40 +09:00
Andrey Tuzhilin d1a2435ce1 ci: simplify integration tests ci code 2021-03-23 17:19:40 +09:00
Andrey Tuzhilin 17a969ce83 ci: verify new integration tests 2021-03-23 17:19:40 +09:00
Andrey Tuzhilin 42138d88bf test: vagrant for integration tests 2021-03-23 17:19:40 +09:00
Andrey Tuzhilin 2ef09d45ee test: sync HELM_VERSION and KUSTOMIZE_VERSION for tests 2021-03-23 16:58:56 +09:00
Yusuke Kuoka 9569d73e2f Bump helm versions in CI to deal with stable and incubator repositories change 2021-01-01 10:44:46 +09:00
Wi1dcard 988c218096
Support the latest Helm (>=v3.3.2) and bump the Helm version in Docker image. (#1488)
Changes:

* Bump Helm to v2.16.12 and v3.3.3.
* Add --force-update only when using Helm 3.
2020-09-21 09:41:49 +09:00
KUOKA Yusuke ab1c118022
Bump chartify to v0.4.0 (#1409)
* Bump chartify to v0.4.0

Should fix #1338

* Bump minimum Helm 3 version to v3.1.0 for `helm template --include-crds`
2020-08-12 09:52:51 +09:00
ento face92536c
Add integration test for Kustomize inetgration (#1288)
Summary of changes:

* Output any error from Mkdir in `helmfile template`

* Add failing test for .Release.Name interpolation

* Add golden files for testing

* Parse resources with kustomize to compare them structure by structure

* Decode resources into plain maps

The RNode type from kustomize uses yaml.Node under the hood,
which carries extra information like line numbers, which
become noisy when comparing with deep.Equal.
2020-06-16 09:06:52 +09:00
chenrui b89fba1cc2
Bump golang to v1.14.2 (#1132)
* Bump golang to v1.14.2

* Use gotest.tools/v3
2020-04-21 09:06:29 +09:00
chenrui 2579a876a6
Upgrade deps (#1100)
* Upgrade helm3 to v3.1.0

* Upgrade helm2 to v2.16.1

* Use golang v1.13.7
2020-02-17 08:43:14 +09:00
KUOKA Yusuke 45943f9306
Bump Helm to v3.0.0 (#965) 2019-11-15 08:40:20 +09:00
chenrui dad8e72bc5 chore(deps): upgrade to go v1.13.4 (#935) 2019-11-06 07:56:15 +09:00
KUOKA Yusuke d0dd4a29af
Build alternative container image for use with Helm v3 (#931)
Adds the Dockerfile for Helm v3(Dockerfile.helm3) that contains both Helmfile and Helm v3(currently 3.0.0-rc.2).

Changes the CircleCI workflow to include a job to build the v3 image on every PR. The release job is enhanced to build and push the image with a tag prefixed with `helm3-`. So the resulting image should be available via e.g. `quay.io/roboll/helmfile:helm3-v0.90.5`.
2019-11-02 16:30:18 +09:00
Yusuke Kuoka f47d8ea256 Integration tests with Helm v3.0.0-rc.2 2019-11-02 15:52:01 +09:00
chenrui e258052933 helm v2.15.2 (#924)
fix sha256

update sha256 again
2019-11-01 08:28:17 +09:00
KUOKA Yusuke 4c892edb7e
Fix docker-login error on docker-build test against PR from fork (#921) 2019-10-31 08:48:41 +09:00
Yusuke Kuoka 2c7810a623 Test the docker build on every PR 2019-10-28 13:04:11 +09:00
chenrui 730ae35c73 Bump to Helm 2.15.1 (#909)
* Bump to helm v2.15.1

* `go mod tidy` dependencies
2019-10-26 20:16:04 +09:00
chenrui 9990242d60 Upgrade to go v1.13.3 (#903) 2019-10-23 05:25:19 +09:00
chenrui 76b3a17427 Upgrade to go v1.13.1 (#880) 2019-10-10 16:51:52 +09:00
Yusuke KUOKA 59b254ee45 fix automated releases broken due to workspace location misconfig after go mod migration 2019-05-04 22:10:37 +09:00
KUOKA Yusuke 8f030d5eab
Bump go to 1.12.4 / Switch to go modules (#564)
* Bump go to 1.12.4 / Switch to go modules

Follow-up for https://github.com/roboll/helmfile/pull/560#issuecomment-486516109
2019-05-02 20:41:36 +09:00
sgandon a31077a1c0 feat(#502): display summary of upgraded, deleted and error releases (#560)
* feat(report): display summary of upgraded, deleted and error releases

* feat(#502): adds dep target in makefile

* feat(#502): removes vendor and fixes pristine in makefile
2019-04-25 13:33:34 +09:00
KUOKA Yusuke f53c66749e
Bump go to 1.12.1 (#542) 2019-04-08 20:47:36 +09:00
Mike Eves f2996e2452 Support --atomic as a first class directive in helmfile (#491)
Resolves #487
2019-03-19 19:17:26 +09:00
Matteo Gazzetta 4b22d4fc78 Update Dockerfile and CircleCI (#417) 2018-12-11 07:01:23 +09:00
KUOKA Yusuke 6f0dc6e069
bump go to 1.11 (#376)
In go 1.11, the code formatter seems to have changed its formatting rule a bit, that resulted in `make fmt` producing changes introduced in this commit/pr.
2018-09-28 10:48:07 +09:00
KUOKA Yusuke 89ca84fb21
Merge pull request #129 from cmeury/install-ghr
install ghr for releasing
2018-04-28 23:33:15 +09:00
Cedric Meury 763c5424b6 install ghr for releasing 2018-04-28 11:40:23 +02:00
Cedric Meury e4c016142d add unit tests and upgrade minikube, helm and k8s; set automountServiceAccountToken for 2.9.0 compatibility 2018-04-28 00:19:01 +02:00
Cedric Meury 151fe0716e keep it simple 2018-04-27 11:21:43 +02:00
Cedric Meury 5f9d3f818c build consistent statically linked binary for docker image
* use golang 1.10.1 images everywhere
* introduce a `static-linux` target to build a statically linked 64-bit binary only
* use that binary for the official image and the circle build and tests
* use a multi-stage dockerfile for a consistent build environment
2018-04-27 11:11:35 +02:00
KUOKA Yusuke 652e001d45
Fix failing automated release
Follow up for 71fa693 and #98
2018-04-26 19:51:01 +09:00
Shane Starcher 71fa693997 templating the entire helmfile and adding some documentation (#98)
* templating the entire helmfile and adding some documentation

* updating vendor and using dep

* update to golang 1.10

* updating docs
2018-04-10 20:19:43 +09:00
Yusuke KUOKA 35cb4d4032 Redo release automation via CircleCI
Resolves #91
2018-04-09 20:27:50 +09:00
Cedric Meury 627a09d272 clean out test dependency steps 2018-04-05 04:55:29 +02:00
Cedric Meury b485abf818 keep one single workflow 2018-04-05 04:50:10 +02:00
Cedric Meury 8912eef468 run integration tests against minikube on circleci 2018-04-05 04:44:35 +02:00