You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: hull/doc/development.md
+29-2Lines changed: 29 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -9,7 +9,7 @@
9
9
-`_objects_base_pod.tpl`: objects that internally use a pod template
10
10
-`_objects_xyz.tpl`: any other more complex object with array structures that should be converted to dictionaries requires a custom template
11
11
12
-
[PriorityClass](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.20/#priorityclass-v1-scheduling-k8s-io) is a very simple structure so it can use `_objects_base_plain.tpl`
12
+
[PriorityClass](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.21/#priorityclass-v1-scheduling-k8s-io) is a very simple structure so it can use `_objects_base_plain.tpl`
13
13
14
14
### Add to the handled objects in `hull.yaml`
15
15
@@ -181,7 +181,34 @@ Create a new matching JSON schema in the `kubernetes-json-schema` folder with th
181
181
182
182
### Adapt the JSON schema
183
183
184
-
Copy the `_definition.json` from the newly created schema folder to `values.schema.json` in the `hull` charts root library overwriting the existing content. Compare the `values.schema.json` content with that of the previous release version branch and adapt as need (the complicated part). Consider copying the changes related to the objects that HULL deals with and leave other API changes alone.
184
+
Copy the `_definition.json` from the newly created schema folder to `values.schema.json` in the `hull` charts root library overwriting the existing content. Compare the `values.schema.json` content with that of the previous release version branch and adapt as needed (the complicated part). Consider copying the changes related to the objects that HULL deals with and leave other API changes alone.
185
+
Use a side-by-side tool such as BeyondCompare to do the comparison.
186
+
187
+
General hints for doing this when starting comparing top to bottom:
188
+
- any block that ends with `.Names` and before that matches one of the Kubernetes API schema elements (typically right below such a block) you copy the block over to the new JSON schema. These blocks are used in the HULL schema to create valid union between K8S properties and HULL properties. For example this block:
189
+
190
+
```yaml
191
+
"io.k8s.api.apps.v1.StatefulSetSpec.Names": {
192
+
"enum": [
193
+
"podManagementPolicy",
194
+
"replicas",
195
+
"revisionHistoryLimit",
196
+
"updateStrategy",
197
+
"serviceName",
198
+
"volumeClaimTemplates"
199
+
]
200
+
},
201
+
```
202
+
203
+
-`selector` and `template` elements for top level K8S objects need to be removed from the schema. HULL creates these elements automatically under the hood. If `selector` and `template` are listed under `required` elements remove them from the list as well
204
+
- remove the `"additionalProperties": false` property from the top-level object schema
205
+
- other properties which are part of the merged HULL JSON schema object need to be removed from the Kubernetes object schema, eg. `name`, `env`, `envFrom`, `volumeMounts` and `ports` from the `Container` spec
206
+
- keep text-only changes to descriptions in the new schema
207
+
- keep properties that are added to objects in the new schema which are not handled explicitly by HULL
208
+
- if properties are added to an object which is handled by HULL and has a matching `.Names` block the new property name needs to be added to the `.Names` block
209
+
- added `staticName` properties to objects need to be copied over to the new schema
210
+
- if a top-level object migrates to a new version, you can create an incremented HULL schema object for the new version and reference it in the schema
Copy file name to clipboardExpand all lines: hull/doc/objects_horizontalpodautoscaler.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,7 +6,7 @@ The HULL HorizontalPodAutoscaler object allows to reference a chart internal wor
6
6
7
7
### The `hull.HorizontalPodAutoscaler.v1` properties
8
8
9
-
Properties can be set as they are defined in the [Kubernetes API's horizontalpodautoscalerspec spec](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.20/#horizontalpodautoscalerspec-v1-autoscaling).
9
+
Properties can be set as they are defined in the [Kubernetes API's horizontalpodautoscalerspec spec](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.21/#horizontalpodautoscalerspec-v1-autoscaling).
10
10
11
11
However the properties listed below are overwritten or added by HULL:
Copy file name to clipboardExpand all lines: hull/doc/objects_ingress.md
+4-4Lines changed: 4 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,7 +6,7 @@ The HULL Ingress object offers some comfort features for specifying ingress obje
6
6
7
7
### The `hull.Ingress.v1` properties
8
8
9
-
Properties can be set as they are defined in the [Kubernetes API's ingressspec spec](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.20/#ingressspec-v1-networking-k8s-io).
9
+
Properties can be set as they are defined in the [Kubernetes API's ingressspec spec](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.21/#ingressspec-v1-networking-k8s-io).
10
10
11
11
However the properties listed below are overwritten or added by HULL:
12
12
@@ -19,7 +19,7 @@ However the properties listed below are overwritten or added by HULL:
19
19
20
20
> The key-value pairs of value type `hull.Ingress.Rule.v1` are converted to an array on rendering
21
21
22
-
Properties can be set as they are defined in the [Kubernetes API's ingressrule spec](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.20/#ingressrule-v1-networking-k8s-io).
22
+
Properties can be set as they are defined in the [Kubernetes API's ingressrule spec](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.21/#ingressrule-v1-networking-k8s-io).
23
23
24
24
However the properties listed below are overwritten or added by HULL:
25
25
@@ -31,13 +31,13 @@ However the properties listed below are overwritten or added by HULL:
31
31
32
32
> The key-value pairs of value type `hull.Ingress.Rule.v1` are converted to an array on rendering
33
33
34
-
Properties can be set as they are defined in the [Kubernetes API's httpingresspath spec](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.20/#httpingresspath-v1-networking-k8s-io).
34
+
Properties can be set as they are defined in the [Kubernetes API's httpingresspath spec](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.21/#httpingresspath-v1-networking-k8s-io).
35
35
36
36
### The `hull.Ingress.Tls.v1` properties
37
37
38
38
> The key-value pairs of value type `hull.Ingress.Tls.v1` are converted to an array on rendering
39
39
40
-
Properties can be set as they are defined in the [Kubernetes API's ingresstls spec](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.20/#ingresstls-v1-networking-k8s-io).
40
+
Properties can be set as they are defined in the [Kubernetes API's ingresstls spec](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.21/#ingresstls-v1-networking-k8s-io).
41
41
42
42
However the properties listed below are overwritten or added by HULL:
Copy file name to clipboardExpand all lines: hull/doc/objects_pod.md
+7-7Lines changed: 7 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -18,7 +18,7 @@ So for all HULL based objects, the pod specific information is wrapped like this
18
18
19
19
### The `hull.Pod.v1` properties
20
20
21
-
Properties can be set as they are defined in the [Kubernetes API's pod spec](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.20/#podspec-v1-core).
21
+
Properties can be set as they are defined in the [Kubernetes API's pod spec](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.21/#podspec-v1-core).
22
22
23
23
However the properties listed below are overwritten or added by HULL:
24
24
@@ -34,7 +34,7 @@ However the properties listed below are overwritten or added by HULL:
34
34
35
35
> The `name` property of the container is derived from the key.
36
36
37
-
Properties can be set as they are defined in the [Kubernetes API's container spec](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.20/#container-v1-core).
37
+
Properties can be set as they are defined in the [Kubernetes API's container spec](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.21/#container-v1-core).
38
38
39
39
However the properties listed below are overwritten or added by HULL:
40
40
@@ -62,7 +62,7 @@ Definition of container images is split into multiple parts to allow better supp
62
62
63
63
> The `name` property of the environment variable is derived from the key.
64
64
65
-
Properties can be set as they are defined in the [Kubernetes API's envvar spec](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.20/#envvar-v1-core).
65
+
Properties can be set as they are defined in the [Kubernetes API's envvar spec](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.21/#envvar-v1-core).
66
66
67
67
However the properties listed below are overwritten or added by HULL:
68
68
@@ -75,7 +75,7 @@ However the properties listed below are overwritten or added by HULL:
75
75
76
76
> The key-value pairs of value type `hull.EnvFrom.v1` are converted to an array on rendering
77
77
78
-
Properties can be set as they are defined in the [Kubernetes API's envfromsource spec](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.20/#envfromsource-v1-core).
78
+
Properties can be set as they are defined in the [Kubernetes API's envfromsource spec](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.21/#envfromsource-v1-core).
79
79
80
80
However the properties listed below are overwritten or added by HULL:
81
81
@@ -90,21 +90,21 @@ However the properties listed below are overwritten or added by HULL:
90
90
91
91
> The `name` property of the container's port is derived from the key.
92
92
93
-
Properties can be set as they are defined in the [Kubernetes API's containerport spec](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.20/#containerport-v1-core).
93
+
Properties can be set as they are defined in the [Kubernetes API's containerport spec](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.21/#containerport-v1-core).
94
94
95
95
### The `hull.VolumeMount.v1` properties
96
96
97
97
> The key-value pairs of value type `hull.VolumeMount.v1` are converted to an array on rendering
98
98
99
-
Properties can be set as they are defined in the [Kubernetes API's volumemount spec](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.20/#volumemount-v1-core).
99
+
Properties can be set as they are defined in the [Kubernetes API's volumemount spec](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.21/#volumemount-v1-core).
100
100
101
101
### The `hull.Volume.v1` properties
102
102
103
103
> The key-value pairs of value type `hull.Volume.v1` are converted to an array on rendering
104
104
105
105
> The `name` property of the volume is derived from the key.
106
106
107
-
Properties can be set as they are defined in the [Kubernetes API's volume spec](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.20/#volume-v1-core).
107
+
Properties can be set as they are defined in the [Kubernetes API's volume spec](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.21/#volume-v1-core).
108
108
109
109
However the properties listed below are overwritten or added by HULL:
Copy file name to clipboardExpand all lines: hull/doc/objects_service.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,7 +6,7 @@ The HULL Service object is a thin wrapper around the Kubernetes Service providin
6
6
7
7
### The `hull.Service.v1` properties
8
8
9
-
Properties can be set as they are defined in the [Kubernetes API's service spec](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.20/#service-v1-core).
9
+
Properties can be set as they are defined in the [Kubernetes API's service spec](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.21/#service-v1-core).
10
10
11
11
However the properties listed below are overwritten or added by HULL:
Copy file name to clipboardExpand all lines: hull/doc/objects_webhook.md
+4-4Lines changed: 4 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,7 +6,7 @@ The HULL Webhook objects allows to reference a chart internal webhook by simple
6
6
7
7
### The `hull.MutatingWebhook.v1` properties
8
8
9
-
Properties can be set as they are defined in the [Kubernetes API's mutatingwebhookconfiguration spec](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.20/#mutatingwebhookconfiguration-v1-admissionregistration-k8s-io).
9
+
Properties can be set as they are defined in the [Kubernetes API's mutatingwebhookconfiguration spec](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.21/#mutatingwebhookconfiguration-v1-admissionregistration-k8s-io).
10
10
11
11
However the properties listed below are overwritten or added by HULL:
12
12
@@ -18,12 +18,12 @@ However the properties listed below are overwritten or added by HULL:
18
18
19
19
> The key-value pairs of value type `hull.MutatingWebhook.Webhook.v1` are converted to an array on rendering
20
20
21
-
Properties can be set as they are defined in the [Kubernetes API's mutatingwebhook spec](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.20/#mutatingwebhook-v1-admissionregistration-k8s-io).
21
+
Properties can be set as they are defined in the [Kubernetes API's mutatingwebhook spec](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.21/#mutatingwebhook-v1-admissionregistration-k8s-io).
22
22
23
23
24
24
### The `hull.ValidatingWebhook.v1` properties
25
25
26
-
Properties can be set as they are defined in the [Kubernetes API's validatingwebhookconfiguration spec](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.20/#validatingwebhookconfiguration-v1-admissionregistration-k8s-io).
26
+
Properties can be set as they are defined in the [Kubernetes API's validatingwebhookconfiguration spec](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.21/#validatingwebhookconfiguration-v1-admissionregistration-k8s-io).
27
27
28
28
However the properties listed below are overwritten or added by HULL:
29
29
@@ -35,7 +35,7 @@ However the properties listed below are overwritten or added by HULL:
35
35
36
36
> The key-value pairs of value type `hull.ValidatingWebhook.Webhook.v1` are converted to an array on rendering
37
37
38
-
Properties can be set as they are defined in the [Kubernetes API's validatingwebhook spec](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.20/#validatingwebhook-v1-admissionregistration-k8s-io).
38
+
Properties can be set as they are defined in the [Kubernetes API's validatingwebhook spec](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.21/#validatingwebhook-v1-admissionregistration-k8s-io).
0 commit comments