mirror of https://github.com/fluxcd/flux2.git
				
				
				
			Merge pull request #2829 from SomtochiAma/update-valuesFrom
Accept multiple values for `flux create hr --values-from`pull/2844/head
						commit
						874b05c5da
					
				| @ -1,72 +0,0 @@ | |||||||
| /* |  | ||||||
| Copyright 2020 The Flux authors |  | ||||||
| 
 |  | ||||||
| Licensed under the Apache License, Version 2.0 (the "License"); |  | ||||||
| you may not use this file except in compliance with the License. |  | ||||||
| You may obtain a copy of the License at |  | ||||||
| 
 |  | ||||||
|     http://www.apache.org/licenses/LICENSE-2.0
 |  | ||||||
| 
 |  | ||||||
| Unless required by applicable law or agreed to in writing, software |  | ||||||
| distributed under the License is distributed on an "AS IS" BASIS, |  | ||||||
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |  | ||||||
| See the License for the specific language governing permissions and |  | ||||||
| limitations under the License. |  | ||||||
| */ |  | ||||||
| 
 |  | ||||||
| package flags |  | ||||||
| 
 |  | ||||||
| import ( |  | ||||||
| 	"fmt" |  | ||||||
| 	"strings" |  | ||||||
| 
 |  | ||||||
| 	"github.com/fluxcd/flux2/internal/utils" |  | ||||||
| ) |  | ||||||
| 
 |  | ||||||
| var supportedHelmReleaseValuesFromKinds = []string{"Secret", "ConfigMap"} |  | ||||||
| 
 |  | ||||||
| type HelmReleaseValuesFrom struct { |  | ||||||
| 	Kind string |  | ||||||
| 	Name string |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| func (v *HelmReleaseValuesFrom) String() string { |  | ||||||
| 	if v.Name == "" { |  | ||||||
| 		return "" |  | ||||||
| 	} |  | ||||||
| 	return fmt.Sprintf("%s/%s", v.Kind, v.Name) |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| func (v *HelmReleaseValuesFrom) Set(str string) error { |  | ||||||
| 	if strings.TrimSpace(str) == "" { |  | ||||||
| 		return fmt.Errorf("no values given, please specify %s", |  | ||||||
| 			v.Description()) |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	sourceKind, sourceName := utils.ParseObjectKindName(str) |  | ||||||
| 	if sourceKind == "" { |  | ||||||
| 		return fmt.Errorf("invalid Kubernetes object reference '%s', must be in format <kind>/<name>", str) |  | ||||||
| 	} |  | ||||||
| 	cleanSourceKind, ok := utils.ContainsEqualFoldItemString(supportedHelmReleaseValuesFromKinds, sourceKind) |  | ||||||
| 	if !ok { |  | ||||||
| 		return fmt.Errorf("reference kind '%s' is not supported, must be one of: %s", |  | ||||||
| 			sourceKind, strings.Join(supportedHelmReleaseValuesFromKinds, ", ")) |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	v.Name = sourceName |  | ||||||
| 	v.Kind = cleanSourceKind |  | ||||||
| 
 |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| func (v *HelmReleaseValuesFrom) Type() string { |  | ||||||
| 	return "helmReleaseValuesFrom" |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| func (v *HelmReleaseValuesFrom) Description() string { |  | ||||||
| 	return fmt.Sprintf( |  | ||||||
| 		"Kubernetes object reference that contains the values.yaml data key in the format '<kind>/<name>', "+ |  | ||||||
| 			"where kind must be one of: (%s)", |  | ||||||
| 		strings.Join(supportedHelmReleaseValuesFromKinds, ", "), |  | ||||||
| 	) |  | ||||||
| } |  | ||||||
| @ -1,50 +0,0 @@ | |||||||
| //go:build !e2e
 |  | ||||||
| // +build !e2e
 |  | ||||||
| 
 |  | ||||||
| /* |  | ||||||
| Copyright 2020 The Flux authors |  | ||||||
| 
 |  | ||||||
| Licensed under the Apache License, Version 2.0 (the "License"); |  | ||||||
| you may not use this file except in compliance with the License. |  | ||||||
| You may obtain a copy of the License at |  | ||||||
| 
 |  | ||||||
|     http://www.apache.org/licenses/LICENSE-2.0
 |  | ||||||
| 
 |  | ||||||
| Unless required by applicable law or agreed to in writing, software |  | ||||||
| distributed under the License is distributed on an "AS IS" BASIS, |  | ||||||
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |  | ||||||
| See the License for the specific language governing permissions and |  | ||||||
| limitations under the License. |  | ||||||
| */ |  | ||||||
| 
 |  | ||||||
| package flags |  | ||||||
| 
 |  | ||||||
| import ( |  | ||||||
| 	"testing" |  | ||||||
| ) |  | ||||||
| 
 |  | ||||||
| func TestHelmReleaseValuesFrom_Set(t *testing.T) { |  | ||||||
| 	tests := []struct { |  | ||||||
| 		name      string |  | ||||||
| 		str       string |  | ||||||
| 		expect    string |  | ||||||
| 		expectErr bool |  | ||||||
| 	}{ |  | ||||||
| 		{"supported", "Secret/foo", "Secret/foo", false}, |  | ||||||
| 		{"lower case kind", "secret/foo", "Secret/foo", false}, |  | ||||||
| 		{"unsupported", "Unsupported/kind", "", true}, |  | ||||||
| 		{"invalid format", "Secret", "", true}, |  | ||||||
| 		{"empty", "", "", true}, |  | ||||||
| 	} |  | ||||||
| 	for _, tt := range tests { |  | ||||||
| 		t.Run(tt.name, func(t *testing.T) { |  | ||||||
| 			var h HelmReleaseValuesFrom |  | ||||||
| 			if err := h.Set(tt.str); (err != nil) != tt.expectErr { |  | ||||||
| 				t.Errorf("Set() error = %v, expectErr %v", err, tt.expectErr) |  | ||||||
| 			} |  | ||||||
| 			if str := h.String(); str != tt.expect { |  | ||||||
| 				t.Errorf("Set() = %v, expect %v", str, tt.expect) |  | ||||||
| 			} |  | ||||||
| 		}) |  | ||||||
| 	} |  | ||||||
| } |  | ||||||
					Loading…
					
					
				
		Reference in New Issue