Skip to content

Commit 7c1bc1b

Browse files
Helm ref doc improvements (#458)
* Update helm_values.go * formatting * Update helm_values.go * Update helm_values.go * Update name_override_chart_reference.md * cl * period
1 parent cb41245 commit 7c1bc1b

File tree

7 files changed

+66
-39
lines changed

7 files changed

+66
-39
lines changed
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
changelog:
2+
- type: NON_USER_FACING
3+
issueLink: https://github.com/solo-io/gloo-mesh-enterprise/issues/7838
4+
description: Removes duplicate rows in Helm ref docs & alphabetizes table rows

codegen/cmd_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -237,7 +237,7 @@ var _ = Describe("Cmd", func() {
237237

238238
painterNode := node.Content[0].Content[1]
239239
enabledMapField := painterNode.Content[0]
240-
Expect(enabledMapField.HeadComment).To(Equal("# Arbitrary overrides for the component's [deployment\n# template](https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/deployment-v1/)"))
240+
Expect(enabledMapField.HeadComment).To(Equal("# Arbitrary overrides for the component's [deployment\n# template](https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/deployment-v1/)."))
241241
envMapField := painterNode.Content[2]
242242
Expect(envMapField.HeadComment).To(Equal("# Enable creation of the deployment/service."))
243243
})

codegen/doc/helm_values.go

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,12 +46,29 @@ type HelmValue struct {
4646
type HelmValues []HelmValue
4747

4848
func (v HelmValues) ToMarkdown(title string) string {
49+
// format values as md table rows
50+
list := []string{}
51+
for _, value := range v {
52+
list = append(list, fmt.Sprintf("|%s|%s|%s|%s|\n", value.Key, value.Type, value.Description, value.DefaultValue))
53+
}
54+
55+
// remove any duplicates
56+
bucket := make(map[string]bool)
57+
uniques := []string{}
58+
for _, row := range list {
59+
if _, value := bucket[row]; !value {
60+
bucket[row] = true
61+
uniques = append(uniques, row)
62+
}
63+
}
64+
65+
// build md table from unique rows
4966
result := new(strings.Builder)
5067
fmt.Fprintln(result, fmt.Sprintf(header, title))
51-
fmt.Fprintln(result, "|Option|Type|Default Value|Description|")
68+
fmt.Fprintln(result, "|Option|Type|Description|Default Value|")
5269
fmt.Fprintln(result, "|------|----|-----------|-------------|")
53-
for _, value := range v {
54-
fmt.Fprintf(result, "|%s|%s|%s|%s|\n", value.Key, value.Type, value.DefaultValue, value.Description)
70+
for _, uniqueRow := range uniques {
71+
fmt.Fprintf(result, uniqueRow)
5572
}
5673
return result.String()
5774
}

codegen/model/chart.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package model
33
import (
44
"fmt"
55
"reflect"
6+
"sort"
67

78
"github.com/solo-io/skv2/codegen/model/values"
89

@@ -251,5 +252,10 @@ func (c Chart) GenerateHelmDoc() string {
251252
helmValuesForDoc = append(helmValuesForDoc, doc.GenerateHelmValuesDoc(values, keyPath, fmt.Sprintf("Configuration for the %s deployment.", name))...)
252253
}
253254

255+
// alphabetize all values
256+
sort.Slice(helmValuesForDoc, func(i, j int) bool {
257+
return helmValuesForDoc[i].Key < helmValuesForDoc[j].Key
258+
})
259+
254260
return helmValuesForDoc.ToMarkdown(c.ValuesReferenceDocs.Title)
255261
}

codegen/model/values/helm_chart_values.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ type UserValues struct {
6363
ServicePorts map[string]uint32 `json:"ports" desc:"Service ports as a map from port name to port number."`
6464

6565
// Overrides which can be set by the user
66-
DeploymentOverrides *appsv1.Deployment `json:"deploymentOverrides" desc:"Arbitrary overrides for the component's [deployment template](https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/deployment-v1/)" omitChildren:"true"`
66+
DeploymentOverrides *appsv1.Deployment `json:"deploymentOverrides" desc:"Arbitrary overrides for the component's [deployment template](https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/deployment-v1/)." omitChildren:"true"`
6767
ServiceOverrides *v1.Service `json:"serviceOverrides" desc:"Arbitrary overrides for the component's [service template](https://kubernetes.io/docs/reference/kubernetes-api/service-resources/service-v1/)." omitChildren:"true"`
6868

6969
Enabled bool `json:"enabled" desc:"Enable creation of the deployment/service."`

codegen/test/name_override_chart/name_override_chart_reference.md

Lines changed: 33 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -5,37 +5,37 @@ description: Reference for Helm values.
55
weight: 2
66
---
77

8-
|Option|Type|Default Value|Description|
8+
|Option|Type|Description|Default Value|
99
|------|----|-----------|-------------|
10-
|overrideName|struct| |Configuration for the overrideName deployment.|
11-
|overrideName|struct| ||
12-
|overrideName.image|struct| |Container image.|
13-
|overrideName.image.tag|string| |Version tag for the container image.|
14-
|overrideName.image.repository|string|painter|Image name (repository).|
15-
|overrideName.image.registry|string|quay.io/solo-io|Image registry.|
16-
|overrideName.image.pullPolicy|string|IfNotPresent|Image pull policy.|
17-
|overrideName.image.pullSecret|string| |Image pull secret.|
18-
|overrideName.env[]|slice|null|Environment variables for the container. For more info, see the [Kubernetes documentation](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#envvarsource-v1-core).|
19-
|overrideName.extraEnvs|struct| |Extra environment variables for the container|
20-
|overrideName.resources|struct| |Container resource requirements. For more info, see the [Kubernetes documentation](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#resourcerequirements-v1-core).|
21-
|overrideName.securityContext|struct| |Container security context. Set to 'false' to omit the security context entirely. For more info, see the [Kubernetes documentation](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#securitycontext-v1-core).|
22-
|overrideName.sidecars|map[string, struct]|{}|Optional configuration for the deployed containers.|
23-
|overrideName.sidecars.<MAP_KEY>|struct| |Optional configuration for the deployed containers.|
24-
|overrideName.sidecars.<MAP_KEY>.image|struct| |Container image.|
25-
|overrideName.sidecars.<MAP_KEY>.image.tag|string| |Version tag for the container image.|
26-
|overrideName.sidecars.<MAP_KEY>.image.repository|string| |Image name (repository).|
27-
|overrideName.sidecars.<MAP_KEY>.image.registry|string| |Image registry.|
28-
|overrideName.sidecars.<MAP_KEY>.image.pullPolicy|string| |Image pull policy.|
29-
|overrideName.sidecars.<MAP_KEY>.image.pullSecret|string| |Image pull secret.|
30-
|overrideName.sidecars.<MAP_KEY>.env[]|slice| |Environment variables for the container. For more info, see the [Kubernetes documentation](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#envvarsource-v1-core).|
31-
|overrideName.sidecars.<MAP_KEY>.extraEnvs|struct| |Extra environment variables for the container|
32-
|overrideName.sidecars.<MAP_KEY>.resources|struct| |Container resource requirements. For more info, see the [Kubernetes documentation](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#resourcerequirements-v1-core).|
33-
|overrideName.sidecars.<MAP_KEY>.securityContext|struct| |Container security context. Set to 'false' to omit the security context entirely. For more info, see the [Kubernetes documentation](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#securitycontext-v1-core).|
34-
|overrideName.floatingUserId|bool|false|Allow the pod to be assigned a dynamic user ID. Required for OpenShift installations.|
35-
|overrideName.runAsUser|uint32|10101|Static user ID to run the containers as. Unused if floatingUserId is 'true'.|
36-
|overrideName.serviceType|string| |Kubernetes service type. Can be either "ClusterIP", "NodePort", "LoadBalancer", or "ExternalName".|
37-
|overrideName.ports|map[string, uint32]|{}|Service ports as a map from port name to port number.|
38-
|overrideName.ports.<MAP_KEY>|uint32| |Service ports as a map from port name to port number.|
39-
|overrideName.deploymentOverrides|struct| |Arbitrary overrides for the component's [deployment template](https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/deployment-v1/)|
40-
|overrideName.serviceOverrides|struct| |Arbitrary overrides for the component's [service template](https://kubernetes.io/docs/reference/kubernetes-api/service-resources/service-v1/).|
41-
|overrideName.enabled|bool|true|Enable creation of the deployment/service.|
10+
|overrideName|struct|| |
11+
|overrideName|struct|Configuration for the overrideName deployment.| |
12+
|overrideName.deploymentOverrides|struct|Arbitrary overrides for the component's [deployment template](https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/deployment-v1/).| |
13+
|overrideName.enabled|bool|Enable creation of the deployment/service.|true|
14+
|overrideName.env[]|slice|Environment variables for the container. For more info, see the [Kubernetes documentation](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#envvarsource-v1-core).|null|
15+
|overrideName.extraEnvs|struct|Extra environment variables for the container| |
16+
|overrideName.floatingUserId|bool|Allow the pod to be assigned a dynamic user ID. Required for OpenShift installations.|false|
17+
|overrideName.image|struct|Container image.| |
18+
|overrideName.image.pullPolicy|string|Image pull policy.|IfNotPresent|
19+
|overrideName.image.pullSecret|string|Image pull secret.| |
20+
|overrideName.image.registry|string|Image registry.|quay.io/solo-io|
21+
|overrideName.image.repository|string|Image name (repository).|painter|
22+
|overrideName.image.tag|string|Version tag for the container image.| |
23+
|overrideName.ports|map[string, uint32]|Service ports as a map from port name to port number.|{}|
24+
|overrideName.ports.<MAP_KEY>|uint32|Service ports as a map from port name to port number.| |
25+
|overrideName.resources|struct|Container resource requirements. For more info, see the [Kubernetes documentation](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#resourcerequirements-v1-core).| |
26+
|overrideName.runAsUser|uint32|Static user ID to run the containers as. Unused if floatingUserId is 'true'.|10101|
27+
|overrideName.securityContext|struct|Container security context. Set to 'false' to omit the security context entirely. For more info, see the [Kubernetes documentation](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#securitycontext-v1-core).| |
28+
|overrideName.serviceOverrides|struct|Arbitrary overrides for the component's [service template](https://kubernetes.io/docs/reference/kubernetes-api/service-resources/service-v1/).| |
29+
|overrideName.serviceType|string|Kubernetes service type. Can be either "ClusterIP", "NodePort", "LoadBalancer", or "ExternalName".| |
30+
|overrideName.sidecars|map[string, struct]|Optional configuration for the deployed containers.|{}|
31+
|overrideName.sidecars.<MAP_KEY>|struct|Optional configuration for the deployed containers.| |
32+
|overrideName.sidecars.<MAP_KEY>.env[]|slice|Environment variables for the container. For more info, see the [Kubernetes documentation](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#envvarsource-v1-core).| |
33+
|overrideName.sidecars.<MAP_KEY>.extraEnvs|struct|Extra environment variables for the container| |
34+
|overrideName.sidecars.<MAP_KEY>.image|struct|Container image.| |
35+
|overrideName.sidecars.<MAP_KEY>.image.pullPolicy|string|Image pull policy.| |
36+
|overrideName.sidecars.<MAP_KEY>.image.pullSecret|string|Image pull secret.| |
37+
|overrideName.sidecars.<MAP_KEY>.image.registry|string|Image registry.| |
38+
|overrideName.sidecars.<MAP_KEY>.image.repository|string|Image name (repository).| |
39+
|overrideName.sidecars.<MAP_KEY>.image.tag|string|Version tag for the container image.| |
40+
|overrideName.sidecars.<MAP_KEY>.resources|struct|Container resource requirements. For more info, see the [Kubernetes documentation](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#resourcerequirements-v1-core).| |
41+
|overrideName.sidecars.<MAP_KEY>.securityContext|struct|Container security context. Set to 'false' to omit the security context entirely. For more info, see the [Kubernetes documentation](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#securitycontext-v1-core).| |

codegen/test/name_override_chart/values.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
overrideName:
44
# Arbitrary overrides for the component's [deployment
5-
# template](https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/deployment-v1/)
5+
# template](https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/deployment-v1/).
66
deploymentOverrides: null
77
# Enable creation of the deployment/service.
88
enabled: true

0 commit comments

Comments
 (0)