Commit graph

420 commits

Author SHA1 Message Date
Matt Farina
5a1475ee36
Merge pull request #11294 from Juneezee/test/t.TempDir
test: replace `ensure.TempDir` with `t.TempDir`
2023-09-14 09:55:51 -04:00
Tim Chaplin
479be0c36b
Use labels instead of selectorLabels for pod labels
Signed-off-by: Tim Chaplin <tim.chaplin@datadoghq.com>
2023-08-24 09:43:08 -04:00
Joe Julian
0be8ac35ab
Merge pull request #11927 from AdamKorcz/fix2
pkg/chartutil: fix nil-dereference
2023-08-10 17:37:27 -07:00
Joe Julian
e19c6cf199
Merge pull request #11644 from jcpunk/automountServiceAccountToken
Seed a default switch to control `automountServiceAccountToken`
2023-08-10 17:32:58 -07:00
Joe Julian
67096285c2
Merge remote-tracking branch 'upstream/main' into automountServiceAccountToken 2023-08-10 17:25:21 -07:00
Joe Julian
a10626cdf0
Merge remote-tracking branch 'upstream/main' into patch-1 2023-08-10 17:20:42 -07:00
guoguangwu
bf543d94e9 fix: precedence typo
Signed-off-by: guoguangwu <guoguangwu@magic-shield.com>
2023-08-10 14:38:08 +08:00
Joe Julian
bc8bef4c15
Merge remote-tracking branch 'upstream/main' into fix2 2023-08-08 23:05:53 -07:00
Joe Julian
617db7b9d1
Merge pull request #11670 from zhekazuev/feature/volumes-in-chartutil
[helm/pkg] add volumes and volumeMounts in chartutil
2023-08-01 16:16:26 -07:00
Eng Zer Jun
2ceebffc77
test: replace ensure.TempDir with t.TempDir
This commit replaces `ensure.TempDir` with `t.TempDir` in tests. The
directory created by `t.TempDir` is automatically removed when the test
and all its subtests complete.

Prior to this commit, temporary directory created using `ensure.TempDir`
needs to be removed manually by calling `os.RemoveAll`, which is omitted
in some tests. The error handling boilerplate e.g.
	defer func() {
		if err := os.RemoveAll(dir); err != nil {
			t.Fatal(err)
		}
	}
is also tedious, but `t.TempDir` handles this for us nicely.

Reference: https://pkg.go.dev/testing#T.TempDir
Signed-off-by: Eng Zer Jun <engzerjun@gmail.com>
2023-07-29 16:11:22 +08:00
Matt Farina
343389856b
Merge pull request #12162 from mattfarina/fix-merge-values-ugh
Fix multiple bugs in values handling
2023-07-26 09:30:09 -04:00
Matt Farina
e8a748d300
Updated per feedback from gjenkins8
Signed-off-by: Matt Farina <matt.farina@suse.com>
2023-07-25 09:52:46 -04:00
Matt Farina
03911aeab7
Merge pull request #12036 from mattfarina/bump-version-3.12 2023-06-27 22:27:56 -04:00
Matt Farina
0a5148faff
Fix multiple bugs in values handling
First, some notes about priority and how some code flow works.

For Helm handling values, the expected order of precidence is:
1. User specified values (e.g CLI)
2. Imported values
3. Parent chart values
4. Subchart values

Helm handles dependency values slightly differently. If there are dependencies
in the charts folder that are not marked as dependencies all of the values,
including nil values, are pulled in. If those charts are listed as a
dependency in the Chart.yaml file than they are processed for import handling.
Prior to the changes here, it caused nil values at the top level to NOT remove
values specified.

The changes:

1. The order of priority was chagned from the list above. Parnet chart values
would override specifically imported values. This is due to a change from
just over a year ago that introduced a bug. That was undone by changing the
precidence when maps were merged.

2. To handle merging while retaining the nil values, which was causing
inconsistent behavior, a new set of Merge functions were introduced. These
functions are just like coalesce except that they DO NOT remove nil/null values.
The new functions are used in a backward compatible manner meaning some new
functions were introduced that called them.

Specific issues fixed (that are known):

Closes #9027

Can now delete subkeys from charts when specified in the parent. This behavior
was previously inconsistent. Sometimes they could be deleted and other times
it did not work. Now it is consistent.

Closes #10899

Imported values (from library or other subcharts) are now used following the
order above.

The previous behavior was inconsistent. import-values using just a string
would import them. When named with a child/parent it did not work if the
parent already had a value. If string and named were mixed the imports
worked if the string happened first but just for the string not the named.
If the named parent/child went first then none of them worked for cases
where the parent already had a value. It was inconsistent and the tests
sometimes mirrored the functionality rather than expected behavior.

Tests for this fall into the sub-packages and are in the template tests
to verify it's happening in the output. Including having values passed
at the CLI as the ultimate highest priority to be used.

This relates to a fix that went in for #9940. The expected values there don't
fit the precedence above where the parent value would override the imported
value. That fix/change introduced more bugs.

Closes #10052

This is the case where imported values using the parent/child designation
just didn't work right. That has been fixed and there are tests. The underlying
issue had to do with the precedence order handling.

Note, a lot of tests were added. Hope we got it more right this time.

Signed-off-by: Matt Farina <matt.farina@suse.com>
2023-06-26 11:37:21 -04:00
Dmitry Kamenskikh
b4a4c7a9d4 update autoscaling/v2beta1 to autoscaling/v2 in skeleton chart
Signed-off-by: Dmitry Kamenskikh <kupnu4x@gmail.com>
2023-05-05 13:59:11 +08:00
Matt Farina
1800554452
bump version to v3.12.0
(cherry picked from commit 54a0fac9b5e243d9922dbfb412bff17eb161e361)
Signed-off-by: Matt Farina <matt.farina@suse.com>
2023-05-01 14:08:09 -04:00
wujunwei
878e962b23 fix: failed testcase on windows
Signed-off-by: wujunwei <wjw3323@live.com>
2023-03-29 10:27:44 +08:00
Matt Farina
4e7e939f19
Updating the Go version in go.mod
At this time both Go 1.19 and 1.20 are supported. The version
specified in the go.mod file is the minimum version we expect Helm
to be compiled against. This is the oldest supported version to
support environments where others compile Helm. The Helm project
is using Go 1.20 to build Helm itself.

Updating to Go 1.19 also includes dealing with io/ioutil
deprecation and some additional linting issues around staticcheck.
All the staticcheck issues were in test files so linting was
skipped for those.

Signed-off-by: Matt Farina <matt.farina@suse.com>
2023-03-22 11:52:30 -04:00
Matt Farina
50c22ed7f9
Bump the Go version
Needed to gofmt source to meet changes in style

Signed-off-by: Matt Farina <matt.farina@suse.com>
2023-03-22 11:29:26 -04:00
AdamKorcz
2f13355e40 pkg/chartutil: fix nil-dereference
Signed-off-by: AdamKorcz <adam@adalogics.com>
2023-03-22 14:56:41 +00:00
genofire
b441f5341d
fix: add podLabels
Signed-off-by: genofire <geno+dev@fireorbit.de>
2023-02-01 14:10:10 +01:00
Matt Farina
6facbada26
bump version to v3.11.0
Signed-off-by: Matt Farina <matt.farina@suse.com>
(cherry picked from commit 9d8fee155b)
2023-01-09 21:23:22 -05:00
Eugene Zuev
fc1a5a1123
fix typo: mountPath
Signed-off-by: Eugene Zuev <zhekazuev@gmail.com>
2022-12-25 19:06:59 +01:00
Eugene Zuev
fd44c0fc14
add volumes and volumeMounts in chartutil
add:
- volumes in defaultValues
- volumes in defaultDeployment
- volumeMounts in defaultValues
- volumeMounts in defaultDeployment

Signed-off-by: Eugene Zuev <zhekazuev@gmail.com>
2022-12-25 19:06:59 +01:00
Pat Riehecky
4f353439fa Seed a default switch to control automountServiceAccountToken
Signed-off-by: Pat Riehecky <riehecky@fnal.gov>
2022-12-19 08:33:05 -06:00
Martin Hickey
bafafa8bb1
Merge pull request from GHSA-67fx-wx78-jx33
Update schema validation handling
2022-12-14 13:54:39 +00:00
Peter Leong
9d027eaac8
Readiness & liveness probes correct port
Port number now comes from values.yaml

Signed-off-by: Peter Leong <1179301+p33t@users.noreply.github.com>
2022-10-21 12:52:30 -07:00
Martin Hickey
775af2a0ce Update schema validation handling
Signed-off-by: Martin Hickey <martin.hickey@ie.ibm.com>
2022-10-21 18:04:05 +01:00
Matt Farina
cd809f9b19
bump version to v3.10.0
Signed-off-by: Matt Farina <matt.farina@suse.com>
(cherry picked from commit ce66412a72)
2022-09-12 15:29:41 -04:00
yxxhero
39b0a82365 bump Go 1.18
Signed-off-by: yxxhero <aiopsclub@163.com>
2022-07-03 10:19:15 +08:00
Matt Farina
1db28a2311
bump version to v3.9.0
Signed-off-by: Matt Farina <matt.farina@suse.com>
(cherry picked from commit 7ceeda6c58)
2022-05-09 15:20:33 -04:00
Matt Farina
3fdb7cac01
Merge pull request #10110 from zegerius/main
Fix value precedence
2022-04-12 11:08:33 -04:00
Eng Zer Jun
2e3e22a003
test: use T.TempDir to create temporary test directory
The directory created by `T.TempDir` is automatically removed when the
test and all its subtests complete.

Reference: https://pkg.go.dev/testing#T.TempDir
Signed-off-by: Eng Zer Jun <engzerjun@gmail.com>
2022-02-12 13:54:54 +08:00
Martin Hickey
f0fd37d2c5 Replace golint with revive
golint which is used as one of the sublinters in golangci-lint is deprecated.
It is replaced with revive which is a drop-in replacement.

Signed-off-by: Martin Hickey <martin.hickey@ie.ibm.com>

Co-authored-by: Martin Mulholland <mmulholl@redhat.com>
2022-01-20 15:19:40 +00:00
Matt Farina
0c8320b685
bump version to v3.8.0
Signed-off-by: Matt Farina <matt.farina@suse.com>
(cherry picked from commit d493f29c32)
2022-01-13 10:09:43 -05:00
mengjiao.liu
160da867d0 validate release name during install
Signed-off-by: mengjiao.liu <mengjiao.liu@daocloud.io>
2021-12-29 14:45:05 +08:00
Matt Farina
7838fb769d
Fix specifying of Kubernetes version from build scripts
This bug came about because of three issues that this change
corrects:
- The CI scripts run on a pull request did not test building
  Helm. This means that a failure to set a variable using LDFLAGS
  had no opportunity to be caught.
- #8608 provided a means to match the k8s version used in linting
  and chartutil with the version of the package we pull in. With
  one problem. It attempts to set a const as if it were a string.
  This is ignored and everyone missed it.
- #10325 moved those constants to vars so it could be set. This
  looked good and passed tests but missed that you can't set an
  int as if it were a string. See first bullet.

This change fixes this by moved the internal representation to
be a string. These are internal variables not exposed in the public
API which makes this change non-breaking to the API.

Closes #10367

Signed-off-by: Matt Farina <matt.farina@suse.com>
2021-11-18 11:48:02 -05:00
Sverre Boschman
81a373ead5 allow ldflags to overwrite k8s version
Signed-off-by: Sverre Boschman <1142569+sboschman@users.noreply.github.com>
2021-11-09 14:18:07 +01:00
Aram Zegerius
752aa6d462 Simplify testdata charts
Signed-off-by: Aram Zegerius <aram@zegeri.us>
Signed-off-by: Ankita Bhopatkar <ankitabhopatkar13@gmail.com>
2021-09-14 10:34:35 +02:00
Aram Zegerius
3fd4a11b18 Simplify testdata charts
Signed-off-by: Aram Zegerius <aram@zegeri.us>
Signed-off-by: Ankita Bhopatkar <ankitabhopatkar13@gmail.com>
2021-09-14 10:27:50 +02:00
Damien Nozay
65ec3d6fd6 Make validation errors easier to fix
Problem: the warnings don't give enough details about which
values are problematic, only the name of the leaf key. This is
all the more annoying when you have a chart depending on other charts.

```
mainchart
 |
 +- subchart1
 +- subchart2
 +- subchart3
```

Here are some warnings I get before the change:
```
coalesce.go:199: warning: destination for credentials is a table. Ignoring non-table value
coalesce.go:160: warning: skipped value for resources: Not a table.
coalesce.go:160: warning: skipped value for googleSheetsServiceAccount: Not a table.
coalesce.go:199: warning: destination for googleSheetsServiceAccount is a table. Ignoring non-table value
coalesce.go:199: warning: destination for resources is a table. Ignoring non-table value []
coalesce.go:199: warning: destination for credentials is a table. Ignoring non-table value
coalesce.go:199: warning: destination for credentials is a table. Ignoring non-table value
coalesce.go:160: warning: skipped value for resources: Not a table.
coalesce.go:160: warning: skipped value for googleSheetsServiceAccount: Not a table.
```

with fix:
```
coalesce.go:162: warning: skipped value for subchart1.resources: Not a table.
coalesce.go:162: warning: skipped value for subchart2.googleSheetsServiceAccount: Not a table.
coalesce.go:211: warning: destination for subchart3.aws.credentials is a table. Ignoring non-table value ()
coalesce.go:211: warning: destination for mainchart.subchart3.aws.credentials is a table. Ignoring non-table value ()
coalesce.go:211: warning: destination for mainchart.subchart2.googleSheetsServiceAccount is a table. Ignoring non-table value ()
coalesce.go:211: warning: destination for mainchart.subchart1.resources is a table. Ignoring non-table value ([])
coalesce.go:162: warning: skipped value for subchart1.resources: Not a table.
coalesce.go:162: warning: skipped value for subchart2.googleSheetsServiceAccount: Not a table.
coalesce.go:211: warning: destination for subchart3.aws.credentials is a table. Ignoring non-table value ()
```

Signed-off-by: Damien Nozay <damiennozay+github@gmail.com>

add tests

Signed-off-by: Damien Nozay <damiennozay+github@gmail.com>
2021-09-14 10:07:26 +02:00
Aram Zegerius
4b49f356a9 Add tests for multi-level dependencies.
Closes #9940

Signed-off-by: Aram Zegerius <aram@zegeri.us>
Signed-off-by: Ankita Bhopatkar <ankitabhopatkar13@gmail.com>
2021-09-10 15:49:05 +02:00
Damien Nozay
9fa373e8be Make validation errors easier to fix
Problem: the warnings don't give enough details about which
values are problematic, only the name of the leaf key. This is
all the more annoying when you have a chart depending on other charts.

```
mainchart
 |
 +- subchart1
 +- subchart2
 +- subchart3
```

Here are some warnings I get before the change:
```
coalesce.go:199: warning: destination for credentials is a table. Ignoring non-table value
coalesce.go:160: warning: skipped value for resources: Not a table.
coalesce.go:160: warning: skipped value for googleSheetsServiceAccount: Not a table.
coalesce.go:199: warning: destination for googleSheetsServiceAccount is a table. Ignoring non-table value
coalesce.go:199: warning: destination for resources is a table. Ignoring non-table value []
coalesce.go:199: warning: destination for credentials is a table. Ignoring non-table value
coalesce.go:199: warning: destination for credentials is a table. Ignoring non-table value
coalesce.go:160: warning: skipped value for resources: Not a table.
coalesce.go:160: warning: skipped value for googleSheetsServiceAccount: Not a table.
```

with fix:
```
coalesce.go:162: warning: skipped value for subchart1.resources: Not a table.
coalesce.go:162: warning: skipped value for subchart2.googleSheetsServiceAccount: Not a table.
coalesce.go:211: warning: destination for subchart3.aws.credentials is a table. Ignoring non-table value ()
coalesce.go:211: warning: destination for mainchart.subchart3.aws.credentials is a table. Ignoring non-table value ()
coalesce.go:211: warning: destination for mainchart.subchart2.googleSheetsServiceAccount is a table. Ignoring non-table value ()
coalesce.go:211: warning: destination for mainchart.subchart1.resources is a table. Ignoring non-table value ([])
coalesce.go:162: warning: skipped value for subchart1.resources: Not a table.
coalesce.go:162: warning: skipped value for subchart2.googleSheetsServiceAccount: Not a table.
coalesce.go:211: warning: destination for subchart3.aws.credentials is a table. Ignoring non-table value ()
```

Signed-off-by: Damien Nozay <damiennozay+github@gmail.com>

add tests

Signed-off-by: Damien Nozay <damiennozay+github@gmail.com>
2021-09-09 11:47:00 -07:00
Aram Zegerius
c4952c9c8c
Fix value precedence
Fix value precedence when importing values from child. Closes https://github.com/helm/helm/issues/9940

Signed-off-by: Aram Zegerius <aram@zegeri.us>
2021-09-07 17:25:34 +02:00
Matt Farina
e6a92c4b62
bump version to 3.7
Signed-off-by: Matt Farina <matt.farina@suse.com>
(cherry picked from commit 7048ef6b30aa23abdcfcaf523cb4c42dff85add9)
2021-08-30 22:06:54 -04:00
Bernd Gutjahr
5cf9735a9d improved coalesce readability by getting rid of continue statements
Signed-off-by: Bernd Gutjahr <bernd.gutjahr@microfocus.com>
2021-08-26 06:34:37 +02:00
Bernd Gutjahr
1740e7f89b enhanced coelesce_test with some more test cases
Signed-off-by: Bernd Gutjahr <bernd.gutjahr@microfocus.com>
2021-08-26 06:34:37 +02:00
Giacomo Margaria
3b68afc1c8 Fix coalesce globals to prevent subchart globals to leak upstream
Signed-off-by: Giacomo Margaria <giacomo.margaria@gmail.com>
2021-05-31 00:19:19 +02:00
Matt Farina
3415b6e7b8
bump version to v3.6.0
Signed-off-by: Matt Farina <matt@mattfarina.com>
(cherry picked from commit af0feeddd91c729aa97327f33c9e3e3109b13561)
2021-05-18 11:05:59 -04:00
Matt Farina
d4cc130fa9
Merge pull request #9621 from sagikazarmark/ingress-v1
Ingress v1 template
2021-05-17 15:33:41 -07:00