Extracts release options from either CLI flags, values.yaml, or name of containing directory
(chart *chart.Chart, vals map[string]interface{}, opt chartutil.ReleaseOptions, dirName string)
| 29 | |
| 30 | // Extracts release options from either CLI flags, values.yaml, or name of containing directory |
| 31 | func getReleaseOptions(chart *chart.Chart, vals map[string]interface{}, opt chartutil.ReleaseOptions, dirName string) (chartutil.Values, error) { |
| 32 | // Extract release options from values |
| 33 | var options chartutil.ReleaseOptions |
| 34 | if opt.Name != "" && opt.Namespace != "" { |
| 35 | options = opt |
| 36 | } else { |
| 37 | var releaseName string |
| 38 | var releaseNamespace string |
| 39 | if opt.Name != "" { |
| 40 | releaseName = opt.Name |
| 41 | } else { |
| 42 | rName, ok := vals["releaseName"].(string) |
| 43 | if !ok || rName == "" { |
| 44 | releaseName = dirName |
| 45 | } else { |
| 46 | releaseName = rName |
| 47 | } |
| 48 | } |
| 49 | if opt.Namespace != "" { |
| 50 | releaseNamespace = opt.Namespace |
| 51 | } else { |
| 52 | rNamespace, ok := vals["releaseNamespace"].(string) |
| 53 | if !ok || rNamespace == "" { |
| 54 | releaseNamespace = dirName |
| 55 | } else { |
| 56 | releaseNamespace = rNamespace |
| 57 | } |
| 58 | } |
| 59 | |
| 60 | options = chartutil.ReleaseOptions{ |
| 61 | Name: releaseName, |
| 62 | Namespace: releaseNamespace, |
| 63 | } |
| 64 | } |
| 65 | |
| 66 | // Combine chart values with release options |
| 67 | config := chartutil.Values(vals) |
| 68 | mergedValues, err := chartutil.ToRenderValues(chart, config, options, nil) |
| 69 | if err != nil { |
| 70 | return nil, fmt.Errorf("failed to merge values: %s", err) |
| 71 | } |
| 72 | |
| 73 | return mergedValues, nil |
| 74 | } |
| 75 | |
| 76 | // IsYAML determines if a file is of the YAML extension or not |
| 77 | func IsYAML(path string) bool { |