@@ -14,11 +14,19 @@ import (
14
14
)
15
15
16
16
const defaultDocumentationTemplate = `{{ template "chart.header" . }}
17
+ {{ template "chart.deprecationWarning" . }}
18
+
19
+ {{ template "chart.versionBadge" . }}
20
+ {{ template "chart.typeBadge" . }}
21
+ {{ template "chart.appVersionBadge" . }}
22
+
17
23
{{ template "chart.description" . }}
18
24
19
- {{ template "chart.versionLine " . }}
25
+ {{ template "chart.homepage " . }}
20
26
21
- {{ template "chart.sourceLinkLine" . }}
27
+ {{ template "chart.maintainersSection" . }}
28
+
29
+ {{ template "chart.sourcesSection" . }}
22
30
23
31
{{ template "chart.requirementsSection" . }}
24
32
@@ -28,20 +36,32 @@ const defaultDocumentationTemplate = `{{ template "chart.header" . }}
28
36
func getHeaderTemplate () string {
29
37
headerTemplateBuilder := strings.Builder {}
30
38
headerTemplateBuilder .WriteString (`{{ define "chart.header" }}` )
31
- headerTemplateBuilder .WriteString ("{{ .Name }}\n " )
32
- headerTemplateBuilder .WriteString (`{{ repeat (len .Name) "=" }}` )
39
+ headerTemplateBuilder .WriteString ("# {{ .Name }}\n " )
33
40
headerTemplateBuilder .WriteString ("{{ end }}" )
34
41
35
42
return headerTemplateBuilder .String ()
36
43
}
37
44
38
- func getDescriptionTemplate () string {
39
- descriptionBuilder := strings.Builder {}
40
- descriptionBuilder .WriteString (`{{ define "chart.description " }}` )
41
- descriptionBuilder .WriteString ("{{ if .Description }}{{ .Description }} {{ end }}" )
42
- descriptionBuilder .WriteString ("{{ end }}" )
45
+ func getDeprecatedTemplate () string {
46
+ deprecatedTemplateBuilder := strings.Builder {}
47
+ deprecatedTemplateBuilder .WriteString (`{{ define "chart.deprecationWarning " }}` )
48
+ deprecatedTemplateBuilder .WriteString ("{{ if .Deprecated }}> **:exclamation: This Helm Chart is deprecated!** {{ end }}" )
49
+ deprecatedTemplateBuilder .WriteString ("{{ end }}" )
43
50
44
- return descriptionBuilder .String ()
51
+ return deprecatedTemplateBuilder .String ()
52
+ }
53
+
54
+ func getVersionTemplates () string {
55
+ versionBuilder := strings.Builder {}
56
+ versionBuilder .WriteString (`{{ define "chart.version" }}{{ .Version }}{{ end }}\n` )
57
+ versionBuilder .WriteString (`{{ define "chart.versionLine" }}` )
58
+ versionBuilder .WriteString ("Current chart version is `{{ .Version }}`" )
59
+ versionBuilder .WriteString ("{{ end }}" )
60
+ versionBuilder .WriteString (`{{ define "chart.versionBadge" }}` )
61
+ versionBuilder .WriteString ("" )
62
+ versionBuilder .WriteString ("{{ end }}" )
63
+
64
+ return versionBuilder .String ()
45
65
}
46
66
47
67
func getTypeTemplate () string {
@@ -50,18 +70,61 @@ func getTypeTemplate() string {
50
70
typeBuilder .WriteString (`{{ define "chart.typeLine" }}` )
51
71
typeBuilder .WriteString ("Current chart type is `{{ .Type }}`" )
52
72
typeBuilder .WriteString ("{{ end }}" )
73
+ typeBuilder .WriteString (`{{ define "chart.typeBadge" }}` )
74
+ typeBuilder .WriteString ("{{ if .Type }}{{ end }}" )
75
+ typeBuilder .WriteString ("{{ end }}" )
53
76
54
77
return typeBuilder .String ()
55
78
}
56
79
57
- func getVersionTemplates () string {
58
- versionBuilder := strings.Builder {}
59
- versionBuilder .WriteString (`{{ define "chart.version" }}{{ .Version }}{{ end }}\n` )
60
- versionBuilder .WriteString (`{{ define "chart.versionLine" }}` )
61
- versionBuilder .WriteString ("Current chart version is `{{ .Version }}`" )
62
- versionBuilder .WriteString ("{{ end }}" )
80
+ func getAppVersionTemplate () string {
81
+ appVersionBuilder := strings.Builder {}
82
+ appVersionBuilder .WriteString (`{{ define "chart.appVersionBadge" }}` )
83
+ appVersionBuilder .WriteString ("{{ if .AppVersion }}{{ end }}" )
84
+ appVersionBuilder .WriteString ("{{ end }}" )
63
85
64
- return versionBuilder .String ()
86
+ return appVersionBuilder .String ()
87
+ }
88
+
89
+ func getDescriptionTemplate () string {
90
+ descriptionBuilder := strings.Builder {}
91
+ descriptionBuilder .WriteString (`{{ define "chart.description" }}` )
92
+ descriptionBuilder .WriteString ("{{ if .Description }}{{ .Description }}{{ end }}" )
93
+ descriptionBuilder .WriteString ("{{ end }}" )
94
+
95
+ return descriptionBuilder .String ()
96
+ }
97
+
98
+ func getHomepageTemplate () string {
99
+ homepageBuilder := strings.Builder {}
100
+ homepageBuilder .WriteString (`{{ define "chart.homepage" }}` )
101
+ homepageBuilder .WriteString ("{{ if .Home }}**Homepage:** <{{ .Home }}>{{ end }}" )
102
+ homepageBuilder .WriteString ("{{ end }}" )
103
+
104
+ return homepageBuilder .String ()
105
+ }
106
+
107
+ func getMaintainersTemplate () string {
108
+ maintainerBuilder := strings.Builder {}
109
+ maintainerBuilder .WriteString (`{{ define "chart.maintainersHeader" }}## Maintainers{{ end }}` )
110
+
111
+ maintainerBuilder .WriteString (`{{ define "chart.maintainersTable" }}` )
112
+ maintainerBuilder .WriteString ("| Name | Email | Url |\n " )
113
+ maintainerBuilder .WriteString ("| ---- | ------ | --- |\n " )
114
+ maintainerBuilder .WriteString (" {{- range .Maintainers }}" )
115
+ maintainerBuilder .WriteString ("\n | {{ .Name }} | {{ .Email }} | {{ .Url }} |" )
116
+ maintainerBuilder .WriteString (" {{- end }}" )
117
+ maintainerBuilder .WriteString ("{{ end }}" )
118
+
119
+ maintainerBuilder .WriteString (`{{ define "chart.maintainersSection" }}` )
120
+ maintainerBuilder .WriteString ("{{ if .Maintainers }}" )
121
+ maintainerBuilder .WriteString (`{{ template "chart.maintainersHeader" . }}` )
122
+ maintainerBuilder .WriteString ("\n \n " )
123
+ maintainerBuilder .WriteString (`{{ template "chart.maintainersTable" . }}` )
124
+ maintainerBuilder .WriteString ("{{ end }}" )
125
+ maintainerBuilder .WriteString ("{{ end }}" )
126
+
127
+ return maintainerBuilder .String ()
65
128
}
66
129
67
130
func getSourceLinkTemplates () string {
@@ -74,12 +137,32 @@ func getSourceLinkTemplates() string {
74
137
sourceLinkBuilder .WriteString ("{{ if .Home }}Source code can be found [here]({{ .Home }}){{ end }}" )
75
138
sourceLinkBuilder .WriteString ("{{ end }}" )
76
139
140
+ sourceLinkBuilder .WriteString (`{{ define "chart.sourcesHeader" }}## Source Code{{ end}}` )
141
+
142
+ sourceLinkBuilder .WriteString (`{{ define "chart.sources" }}` )
143
+ sourceLinkBuilder .WriteString ("{{- range .Sources }}" )
144
+ sourceLinkBuilder .WriteString ("\n * <{{ . }}>" )
145
+ sourceLinkBuilder .WriteString ("{{- end }}" )
146
+ sourceLinkBuilder .WriteString ("{{ end }}" )
147
+
148
+ sourceLinkBuilder .WriteString (`{{ define "chart.sourcesSection" }}` )
149
+ sourceLinkBuilder .WriteString ("{{ if .Sources }}" )
150
+ sourceLinkBuilder .WriteString (`{{ template "chart.sourcesHeader" . }}` )
151
+ sourceLinkBuilder .WriteString ("\n " )
152
+ sourceLinkBuilder .WriteString (`{{ template "chart.sources" . }}` )
153
+ sourceLinkBuilder .WriteString ("{{ end }}" )
154
+ sourceLinkBuilder .WriteString ("{{ end }}" )
155
+
77
156
return sourceLinkBuilder .String ()
78
157
}
79
158
80
159
func getRequirementsTableTemplates () string {
81
160
requirementsSectionBuilder := strings.Builder {}
82
- requirementsSectionBuilder .WriteString (`{{ define "chart.requirementsHeader" }}## Chart Requirements{{ end }}` )
161
+ requirementsSectionBuilder .WriteString (`{{ define "chart.requirementsHeader" }}## Requirements{{ end }}` )
162
+
163
+ requirementsSectionBuilder .WriteString (`{{ define "chart.kubeVersion" }}` )
164
+ requirementsSectionBuilder .WriteString ("{{ if .KubeVersion }}Kubernetes: `{{ .KubeVersion }}`{{ end }}" )
165
+ requirementsSectionBuilder .WriteString ("{{ end }}" )
83
166
84
167
requirementsSectionBuilder .WriteString (`{{ define "chart.requirementsTable" }}` )
85
168
requirementsSectionBuilder .WriteString ("| Repository | Name | Version |\n " )
@@ -90,19 +173,25 @@ func getRequirementsTableTemplates() string {
90
173
requirementsSectionBuilder .WriteString ("{{ end }}" )
91
174
92
175
requirementsSectionBuilder .WriteString (`{{ define "chart.requirementsSection" }}` )
93
- requirementsSectionBuilder .WriteString ("{{ if .Dependencies }}" )
176
+ requirementsSectionBuilder .WriteString ("{{ if or .Dependencies .KubeVersion }}" )
94
177
requirementsSectionBuilder .WriteString (`{{ template "chart.requirementsHeader" . }}` )
95
178
requirementsSectionBuilder .WriteString ("\n \n " )
179
+ requirementsSectionBuilder .WriteString ("{{ if .KubeVersion }}" )
180
+ requirementsSectionBuilder .WriteString (`{{ template "chart.kubeVersion" . }}` )
181
+ requirementsSectionBuilder .WriteString ("\n \n " )
182
+ requirementsSectionBuilder .WriteString ("{{ end }}" )
183
+ requirementsSectionBuilder .WriteString ("{{ if .Dependencies }}" )
96
184
requirementsSectionBuilder .WriteString (`{{ template "chart.requirementsTable" . }}` )
97
185
requirementsSectionBuilder .WriteString ("{{ end }}" )
98
186
requirementsSectionBuilder .WriteString ("{{ end }}" )
187
+ requirementsSectionBuilder .WriteString ("{{ end }}" )
99
188
100
189
return requirementsSectionBuilder .String ()
101
190
}
102
191
103
192
func getValuesTableTemplates () string {
104
193
valuesSectionBuilder := strings.Builder {}
105
- valuesSectionBuilder .WriteString (`{{ define "chart.valuesHeader" }}## Chart Values{{ end }}` )
194
+ valuesSectionBuilder .WriteString (`{{ define "chart.valuesHeader" }}## Values{{ end }}` )
106
195
107
196
valuesSectionBuilder .WriteString (`{{ define "chart.valuesTable" }}` )
108
197
valuesSectionBuilder .WriteString ("| Key | Type | Default | Description |\n " )
@@ -151,12 +240,16 @@ func getDocumentationTemplates(chartDirectory string) ([]string, error) {
151
240
152
241
return []string {
153
242
getHeaderTemplate (),
243
+ getDeprecatedTemplate (),
244
+ getAppVersionTemplate (),
154
245
getDescriptionTemplate (),
155
246
getVersionTemplates (),
156
247
getTypeTemplate (),
157
248
getSourceLinkTemplates (),
158
249
getRequirementsTableTemplates (),
159
250
getValuesTableTemplates (),
251
+ getHomepageTemplate (),
252
+ getMaintainersTemplate (),
160
253
documentationTemplate ,
161
254
}, nil
162
255
}
0 commit comments