MCPcopy Index your code
hub / github.com/databus23/helm-diff / template

Method template

cmd/helm.go:186–425  ·  view source on GitHub ↗
(isUpgrade bool)

Source from the content-addressed store, hash-verified

184}
185
186func (d *diffCmd) template(isUpgrade bool) ([]byte, error) {
187 flags := []string{}
188 if d.devel {
189 flags = append(flags, "--devel")
190 }
191 if d.noHooks && !d.useUpgradeDryRun {
192 flags = append(flags, "--no-hooks")
193 }
194 if d.includeCRDs {
195 flags = append(flags, "--include-crds")
196 }
197 if d.chartVersion != "" {
198 flags = append(flags, "--version", d.chartVersion)
199 }
200 if d.chartRepo != "" {
201 flags = append(flags, "--repo", d.chartRepo)
202 }
203 if d.namespace != "" {
204 flags = append(flags, "--namespace", d.namespace)
205 }
206 if d.kubeContext != "" {
207 flags = append(flags, "--kube-context", d.kubeContext)
208 }
209 if d.postRenderer != "" {
210 flags = append(flags, "--post-renderer", d.postRenderer)
211 }
212 for _, arg := range d.postRendererArgs {
213 flags = append(flags, "--post-renderer-args", arg)
214 }
215 if d.insecureSkipTLSVerify {
216 flags = append(flags, "--insecure-skip-tls-verify")
217 }
218 // Helm automatically enable --reuse-values when there's no --set, --set-string, --set-json, --set-values, --set-file present.
219 // Let's simulate that in helm-diff.
220 // See https://medium.com/@kcatstack/understand-helm-upgrade-flags-reset-values-reuse-values-6e58ac8f127e
221 shouldDefaultReusingValues := isUpgrade && len(d.values) == 0 && len(d.stringValues) == 0 && len(d.stringLiteralValues) == 0 && len(d.jsonValues) == 0 && len(d.valueFiles) == 0 && len(d.fileValues) == 0
222 if (d.reuseValues || d.resetThenReuseValues || shouldDefaultReusingValues) && !d.resetValues && d.clusterAccessAllowed() {
223 tmpfile, err := os.CreateTemp("", "existing-values")
224 if err != nil {
225 return nil, err
226 }
227 defer func() {
228 _ = os.Remove(tmpfile.Name())
229 }()
230 // In the presence of --reuse-values (or --reset-values), --reset-then-reuse-values is ignored.
231 if d.resetThenReuseValues && !d.reuseValues {
232 var supported bool
233 supported, err = isHelmVersionAtLeast(minHelmVersionWithResetThenReuseValues)
234 if err != nil {
235 return nil, err
236 }
237 if !supported {
238 return nil, fmt.Errorf("Using --reset-then-reuse-values requires at least helm version %s", minHelmVersionWithResetThenReuseValues.String())
239 }
240 err = d.writeExistingValues(tmpfile, false)
241 } else {
242 err = d.writeExistingValues(tmpfile, true)
243 }

Callers 1

runHelm3Method · 0.95

Calls 9

clusterAccessAllowedMethod · 0.95
writeExistingValuesMethod · 0.95
isAllowUnreleasedMethod · 0.95
isHelmVersionAtLeastFunction · 0.85
serverSideFlagsFunction · 0.85
outputWithRichErrorFunction · 0.85
StringMethod · 0.45

Tested by

no test coverage detected