diff --git a/docs/content/en/docs-dev/user-guide/configuration-reference.md b/docs/content/en/docs-dev/user-guide/configuration-reference.md index 1681a689a3..02e2a67621 100644 --- a/docs/content/en/docs-dev/user-guide/configuration-reference.md +++ b/docs/content/en/docs-dev/user-guide/configuration-reference.md @@ -331,6 +331,7 @@ One of `yamlField` or `regex` is required. | Field | Type | Description | Required | |-|-|-|-| | releaseName | string | The release name of helm deployment. By default, the release name is equal to the application name. | No | +| setValues | map[string]string | List of values. | No | | valueFiles | []string | List of value files should be loaded. Only local files stored under the application directory or remote files served at the http(s) endpoint are allowed. | No | | setFiles | map[string]string | List of file path for values. | No | | apiVersions | []string | Kubernetes api versions used for Capabilities.APIVersions. | No | diff --git a/pkg/app/piped/platformprovider/kubernetes/helm.go b/pkg/app/piped/platformprovider/kubernetes/helm.go index 8b2d17803a..c4be57259b 100644 --- a/pkg/app/piped/platformprovider/kubernetes/helm.go +++ b/pkg/app/piped/platformprovider/kubernetes/helm.go @@ -68,6 +68,9 @@ func (h *Helm) TemplateLocalChart(ctx context.Context, appName, appDir, namespac } if opts != nil { + for k, v := range opts.SetValues { + args = append(args, "--set", fmt.Sprintf("%s=%s", k, v)) + } for _, v := range opts.ValueFiles { if err := verifyHelmValueFilePath(appDir, v); err != nil { h.logger.Error("failed to verify values file path", zap.Error(err)) @@ -163,6 +166,9 @@ func (h *Helm) TemplateRemoteChart(ctx context.Context, appName, appDir, namespa } if opts != nil { + for k, v := range opts.SetValues { + args = append(args, "--set", fmt.Sprintf("%s=%s", k, v)) + } for _, v := range opts.ValueFiles { if err := verifyHelmValueFilePath(appDir, v); err != nil { h.logger.Error("failed to verify values file path", zap.Error(err)) @@ -292,6 +298,9 @@ func (h *Helm) UpgradeLocalChart(ctx context.Context, appName, appDir, namespace } if opts != nil { + for k, v := range opts.SetValues { + args = append(args, "--set", fmt.Sprintf("%s=%s", k, v)) + } for _, v := range opts.ValueFiles { if err := verifyHelmValueFilePath(appDir, v); err != nil { h.logger.Error("failed to verify values file path", zap.Error(err)) @@ -365,6 +374,9 @@ func (h *Helm) UpgradeRemoteChart(ctx context.Context, appName, appDir, namespac } if opts != nil { + for k, v := range opts.SetValues { + args = append(args, "--set", fmt.Sprintf("%s=%s", k, v)) + } for _, v := range opts.ValueFiles { if err := verifyHelmValueFilePath(appDir, v); err != nil { h.logger.Error("failed to verify values file path", zap.Error(err)) diff --git a/pkg/config/application_kubernetes.go b/pkg/config/application_kubernetes.go index bdc316005e..6b59201fe6 100644 --- a/pkg/config/application_kubernetes.go +++ b/pkg/config/application_kubernetes.go @@ -122,10 +122,12 @@ type InputHelmOptions struct { // The release name of helm deployment. // By default the release name is equal to the application name. ReleaseName string `json:"releaseName"` + // List of values. + SetValues map[string]string `json:"setValues"` // List of value files should be loaded. ValueFiles []string `json:"valueFiles"` // List of file path for values. - SetFiles map[string]string + SetFiles map[string]string `json:"setFiles"` // Set of supported Kubernetes API versions. APIVersions []string `json:"apiVersions"` // Kubernetes version used for Capabilities.KubeVersion