Skip to content

Commit ff22700

Browse files
authored
Merge pull request #396 from vidispine/release-1.35
Release 1.35
2 parents dbd150f + d6a875b commit ff22700

68 files changed

Lines changed: 4023 additions & 625 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

azure-pipelines-gated.yml

Lines changed: 20 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -21,17 +21,29 @@ jobs:
2121
strategy:
2222
maxParallel: 5
2323
matrix:
24-
Helm_3_19_2_single:
25-
HelmVersion: "3.19.2"
24+
Helm_3_19_5_single:
25+
HelmVersion: "3.19.5"
2626
TestType: single
27-
Helm_3_19_2_multi:
28-
HelmVersion: "3.19.2"
27+
Helm_3_19_5_multi:
28+
HelmVersion: "3.19.5"
2929
TestType: multi
30-
Helm_4_0_1_single:
31-
HelmVersion: "4.0.1"
30+
Helm_3_20_0_single:
31+
HelmVersion: "3.20.0"
3232
TestType: single
33-
Helm_4_0_1_multi:
34-
HelmVersion: "4.0.1"
33+
Helm_3_20_0_multi:
34+
HelmVersion: "3.20.0"
35+
TestType: multi
36+
Helm_4_0_5_single:
37+
HelmVersion: "4.0.5"
38+
TestType: single
39+
Helm_4_0_5_multi:
40+
HelmVersion: "4.0.5"
41+
TestType: multi
42+
Helm_4_1_0_single:
43+
HelmVersion: "4.1.0"
44+
TestType: single
45+
Helm_4_1_0_multi:
46+
HelmVersion: "4.1.0"
3547
TestType: multi
3648

3749
steps:

azure-pipelines.yml

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,30 @@ jobs:
3737
Helm_3_19_2_multi:
3838
HelmVersion: "3.19.2"
3939
TestType: multi
40+
Helm_3_19_3_single:
41+
HelmVersion: "3.19.3"
42+
TestType: single
43+
Helm_3_19_3_multi:
44+
HelmVersion: "3.19.3"
45+
TestType: multi
46+
Helm_3_19_4_single:
47+
HelmVersion: "3.19.4"
48+
TestType: single
49+
Helm_3_19_4_multi:
50+
HelmVersion: "3.19.4"
51+
TestType: multi
52+
Helm_3_19_5_single:
53+
HelmVersion: "3.19.5"
54+
TestType: single
55+
Helm_3_19_5_multi:
56+
HelmVersion: "3.19.5"
57+
TestType: multi
58+
Helm_3_20_0_single:
59+
HelmVersion: "3.20.0"
60+
TestType: single
61+
Helm_3_20_0_multi:
62+
HelmVersion: "3.20.0"
63+
TestType: multi
4064
Helm_4_0_0_single:
4165
HelmVersion: "4.0.0"
4266
TestType: single
@@ -49,6 +73,36 @@ jobs:
4973
Helm_4_0_1_multi:
5074
HelmVersion: "4.0.1"
5175
TestType: multi
76+
Helm_4_0_2_single:
77+
HelmVersion: "4.0.2"
78+
TestType: single
79+
Helm_4_0_2_multi:
80+
HelmVersion: "4.0.2"
81+
TestType: multi
82+
Helm_4_0_3_single:
83+
HelmVersion: "4.0.3"
84+
TestType: single
85+
Helm_4_0_3_multi:
86+
HelmVersion: "4.0.3"
87+
TestType: multi
88+
Helm_4_0_4_single:
89+
HelmVersion: "4.0.4"
90+
TestType: single
91+
Helm_4_0_4_multi:
92+
HelmVersion: "4.0.4"
93+
TestType: multi
94+
Helm_4_0_5_single:
95+
HelmVersion: "4.0.5"
96+
TestType: single
97+
Helm_4_0_5_multi:
98+
HelmVersion: "4.0.5"
99+
TestType: multi
100+
Helm_4_1_0_single:
101+
HelmVersion: "4.1.0"
102+
TestType: single
103+
Helm_4_1_0_multi:
104+
HelmVersion: "4.1.0"
105+
TestType: multi
52106
steps:
53107
- template: azure-pipelines-test.yml # Template reference
54108
parameters:

hull/CHANGELOG.md

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
11
# Changelog
22

3-
## [1.35.0]
3+
## [1.35.1]
44

55
CHANGES:
66

7-
- initial K8S 1.35 release
8-
- deprecating 1.32 release
7+
- support subchart usecases with HULL. First, the parsing of HULL relevant fields for transformations has been extended to all of `.Values` instead of `.Values.hull`. This means that HULL transformations in sections outside of `.Values.hull`, such as subchart configurations and `.Values.global`, are now also handled and the result is available for further processing. When adding the `hull.yaml` to a subcharts `templates/zzz` folder in a HULL based parent chart, it becomes possible to use transformations that involve shared data under `.Values.global` and make the result available to parent and sub charts.
8+
9+
FIXES:
10+
11+
- due to [changes made to Helm 3 versions](https://github.com/helm/helm/issues/30587), the behavior for accessing undefined values has changed for specific Helm 3 versions starting with 3.19.5+ and 3.20+. The named versions (and potentially all following Helm 3 patches) exhibit the Helm 4 behavior which leads to an error if an undefined field is accessed. Tests were adapted to differentiate concrete Helm 3 versions and set correct expectations.

hull/Chart.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
apiVersion: v2
22
name: hull
3-
version: "1.35.0"
3+
version: "1.35.1"
44
description: HULL - Helm Uniform Layer Library
55
type: library
66
keywords:

hull/HISTORY.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,15 @@
11
# History
22

3+
## [1.35.1]
4+
5+
CHANGES:
6+
7+
- support subchart usecases with HULL. First, the parsing of HULL relevant fields for transformations has been extended to all of `.Values` instead of `.Values.hull`. This means that HULL transformations in sections outside of `.Values.hull`, such as subchart configurations and `.Values.global`, are now also handled and the result is available for further processing. When adding the `hull.yaml` to a subcharts `templates/zzz` folder in a HULL based parent chart, it becomes possible to use transformations that involve shared data under `.Values.global` and make the result available to parent and sub charts.
8+
9+
FIXES:
10+
11+
- due to [changes made to Helm 3 versions](https://github.com/helm/helm/issues/30587), the behavior for accessing undefined values has changed for specific Helm 3 versions starting with 3.19.5+ and 3.20+. The named versions (and potentially all following Helm 3 patches) exhibit the Helm 4 behavior which leads to an error if an undefined field is accessed. Tests were adapted to differentiate concrete Helm 3 versions and set correct expectations.
12+
313
## [1.35.0]
414

515
CHANGES:

hull/README.md

Lines changed: 16 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -30,19 +30,18 @@ However, note that minor (however potentially chart-breaking) differences were i
3030
field_string: "some_text" # string text
3131
field_int: 123 # number
3232
field_bool: true # boolean
33-
field_unset:
34-
field_dict:
33+
field_unset:
34+
field_dict:
3535
key_1: value_1
3636
```
3737
38-
The behavior of Helm 3, when accessing such a field's property value, was to treat it as an empty string value from observation. This means, the key value pair exists in the `.Values` object tree and it's value is empty and of string type. With Helm 4 on the other hand, the field is absent from the object tree and accessing it will lead to an error.
38+
The behavior of Helm 3, when accessing such a field's property value, was to treat it as an empty string value from observation. This means, the key value pair exists in the `.Values` object tree and it's value is empty and of string type. With Helm 4 on the other hand, the field is absent from the object tree and accessing it will lead to an error.
3939

4040
Both aspects should typically be less relevant for HULL based charts, however it shall be documented here to avoid confusion. More detailed information can be found in the [related Helm issue](https://github.com/helm/helm/issues/31344).
4141

4242
**Your feedback on this project is valued, hence please comment or start a discussion in the `Issues` section or create feature wishes and bug reports. Thank you!**
4343

44-
The HULL library chart idea is partly inspired by the [common](
45-
https://github.com/helm/charts/tree/master/incubator/common) Helm chart concept and for testing
44+
The HULL library chart idea is partly inspired by the [common](https://github.com/helm/charts/tree/master/incubator/common) Helm chart concept and for testing
4645

4746
[![Gauge Badge](https://gauge.org/Gauge_Badge.svg)](https://gauge.org).
4847

@@ -155,7 +154,7 @@ hull: # HULL is configured via subchart key 'hull'
155154

156155
This is the example constituting as `hull-demo`'s `values.yaml`, if you download the latest `hull-demo` release and execute:
157156

158-
```bash
157+
```yaml
159158
helm template hull-demo-<version>.tgz
160159
```
161160

@@ -195,7 +194,7 @@ Concentrate on what is needed to specify Kubernetes objects without having to ad
195194

196195
For all Kubernetes object types supported by HULL, **full configurational access to the Kubernetes object types properties is directly available**. This relieves chart maintainers from having to add missing configuration options one by one and the Helm chart users from forking the Helm chart to add just the properties they need for their configuration. Only updating the HULL chart to a newer version with matching Kubernetes API version is required to enable configuration of properties added to Kubernetes objects meanwhile in newer API versions. The HULL charts are versioned to reflect the minimal Kubernetes API versions supported by them.
197196

198-
For more details refer to the documentation on [Architecture Overview](/hull/files/doc/architecture.md).
197+
For more details refer to the documentation on [Architecture Overview](/hull/files/doc/architecture.md).
199198

200199
### Unified interface for defining and configuring Helm charts backed by JSON schema
201200

@@ -207,14 +206,16 @@ The single interface of the HULL library is used to both create and configure ob
207206

208207
**Uniform and rich metadata is automatically attached to all objects created by the HULL library.**
209208

210-
- Kubernetes standard labels as defined for [Kubernetes](https://kubernetes.io/docs/concepts/overview/working-with-objects/common-labels/) and [Helm](https://helm.sh/docs/chart_best_practices/labels/#standard-labels) are added to all objects metadata automatically.
211-
- Additional custom labels and annotations metadata can be set hierarchically for:
212-
- all created Kubernetes objects or
213-
- all created Kubernetes objects of a given type or
214-
- a group of objects of different object types or
215-
- any individual Kubernetes object.
209+
Kubernetes standard labels as defined for [Kubernetes](https://kubernetes.io/docs/concepts/overview/working-with-objects/common-labels/) and [Helm](https://helm.sh/docs/chart_best_practices/labels/#standard-labels) are added to all objects metadata automatically.
210+
211+
Additional custom labels and annotations metadata can be set hierarchically for:
212+
213+
- all created Kubernetes objects or
214+
- all created Kubernetes objects of a given type or
215+
- a group of objects of different object types or
216+
- any individual Kubernetes object.
216217

217-
For more details on metadata overwriting refer to the advanced example below.
218+
For more details on metadata overwriting refer to the advanced example below.
218219

219220
### Flexible and comfortable integration of ConfigMaps and Secrets into your Helm chart
220221

@@ -280,7 +281,7 @@ Installing or upgrading a chart using HULL follows the standard procedures for e
280281

281282
## First Examples
282283

283-
Using the nginx deployment example from the [Kubernetes documentation](https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#creating-a-deployment) as something we want to create with our HULL based Helm chart:
284+
Using the nginx deployment example from the Kubernetes documentation [for nginx](https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#creating-a-deployment) as something we want to create with our HULL based Helm chart:
284285

285286
```yaml
286287
apiVersion: apps/v1

hull/files/doc/setup.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@ To manually add the HULL library chart to an existing Helm chart:
2525

2626
- copy all the files from the folder `/files/templates` to your parent charts `/templates` folder.
2727

28+
⚠️ **If you plan on combining HULL with generic Helm template files, it is advised to put the `hull.yaml` into a subfolder named `zzz`. Due to the order in which Helm reads and processes templates, the `hull.yaml` in a folder with the highest alphanumerical name will be processed first and the modifications to the `.Values` are active afterwards. This will allow external templates to use HULL processed `values.yaml` fields. See [Subcharts and generic Helm templates](subcharts_generic_templates.md) for details** ⚠️
29+
2830
⚠️ **Generally it is required to have the single `hull.yaml` or the individual files from `/files/templates` HULL library functions render the objects specified under the key `hull.objects` in the parent charts `/templates` folder! As of this moment Helm only considers files in the parent charts `/templates` folder for rendering. Consider adding this step to your build pipeline when creating releases of your Helm chart which include HULL.** ⚠️
2931

3032
⚠️ **There are indications that when a single file in the parent Helm charts `/templates` folder contains many objects to render this impacts performance negatively when run against a real Kubernetes cluster. The time it takes to `helm template`, `helm update` or `helm install` appears to be significantly longer when using one instead of several files. The reason for this is unclear and the behavior looks unneeded and fixable in Helm, it should not matter for processing if objects are read from many or a single template. But right now this would require a fix in Helm itself which is currently out of scope. To workaround this problem (or if you anyway like to have multiple files per object type for rendering) you can alternatively select to use the multiple files per object type from `/files/templates` instead of `hull.yaml` from the HULL charts root folder for rendering!** ⚠️

0 commit comments

Comments
 (0)