From 32f1863ee85a071300934f178ca68e9e3113b012 Mon Sep 17 00:00:00 2001 From: khhirani Date: Thu, 7 May 2020 17:35:02 -0700 Subject: [PATCH 1/3] Modify MergeArgs to verify args using ValueFrom --- utils/analysis/helpers.go | 14 +++++++++++--- utils/analysis/helpers_test.go | 26 +++++++++++++++++++++++++- 2 files changed, 36 insertions(+), 4 deletions(-) diff --git a/utils/analysis/helpers.go b/utils/analysis/helpers.go index 79c751c33a..152c7c89ef 100644 --- a/utils/analysis/helpers.go +++ b/utils/analysis/helpers.go @@ -141,12 +141,20 @@ func MergeArgs(incomingArgs, templateArgs []v1alpha1.Argument) ([]v1alpha1.Argum newArgs := append(templateArgs[:0:0], templateArgs...) for _, arg := range incomingArgs { i := findArg(arg.Name, newArgs) - if i >= 0 && arg.Value != nil { - newArgs[i].Value = arg.Value + //if i >= 0 && arg.Value != nil { + // newArgs[i].Value = arg.Value + if i >= 0 { + if arg.Value != nil { + newArgs[i].Value = arg.Value + } else if arg.ValueFrom != nil { + newArgs[i].ValueFrom = arg.ValueFrom + } } } for _, arg := range newArgs { - if arg.Value == nil { + + //if arg.Value == nil { + if arg.Value == nil && arg.ValueFrom == nil { return nil, fmt.Errorf("args.%s was not resolved", arg.Name) } } diff --git a/utils/analysis/helpers_test.go b/utils/analysis/helpers_test.go index 8df04eddf7..8c5daae7a9 100644 --- a/utils/analysis/helpers_test.go +++ b/utils/analysis/helpers_test.go @@ -454,6 +454,9 @@ func TestNewAnalysisRunFromTemplates(t *testing.T) { { Name: "my-arg", }, + { + Name: "my-secret", + }, }, }, }} @@ -462,6 +465,15 @@ func TestNewAnalysisRunFromTemplates(t *testing.T) { Name: "my-arg", Value: pointer.StringPtr("my-val"), }, + { + Name: "my-secret", + ValueFrom: &v1alpha1.ValueFrom{ + SecretKeyRef: &v1alpha1.SecretKeyRef{ + Name: "name", + Key: "key", + }, + }, + }, } run, err := NewAnalysisRunFromTemplates(templates, args, "foo-run", "foo-run-generate-", "my-ns") assert.NoError(t, err) @@ -470,6 +482,8 @@ func TestNewAnalysisRunFromTemplates(t *testing.T) { assert.Equal(t, "my-ns", run.Namespace) assert.Equal(t, "my-arg", run.Spec.Args[0].Name) assert.Equal(t, "my-val", *run.Spec.Args[0].Value) + assert.Equal(t, "my-secret", run.Spec.Args[1].Name) + assert.NotNil(t, *run.Spec.Args[1].ValueFrom.SecretKeyRef) // Fail Merge Args unresolvedArg := v1alpha1.Argument{Name: "unresolved"} @@ -513,11 +527,21 @@ func TestMergeArgs(t *testing.T) { Name: "foo", Value: pointer.StringPtr("bar"), }, + { + Name: "my-secret", + ValueFrom: &v1alpha1.ValueFrom{ + SecretKeyRef: &v1alpha1.SecretKeyRef{ + Name: "name", + Key: "key", + }, + }, + }, }) assert.NoError(t, err) - assert.Len(t, args, 1) + assert.Len(t, args, 2) assert.Equal(t, "foo", args[0].Name) assert.Equal(t, "bar", *args[0].Value) + assert.Equal(t, "my-secret", args[1].Name) } { // overwrite defaults From 339ae31220391f332d4de6efe2b8efa1bb728b6b Mon Sep 17 00:00:00 2001 From: khhirani Date: Thu, 7 May 2020 17:44:52 -0700 Subject: [PATCH 2/3] Removed comments --- utils/analysis/helpers.go | 4 ---- 1 file changed, 4 deletions(-) diff --git a/utils/analysis/helpers.go b/utils/analysis/helpers.go index 152c7c89ef..3c6a946c13 100644 --- a/utils/analysis/helpers.go +++ b/utils/analysis/helpers.go @@ -141,8 +141,6 @@ func MergeArgs(incomingArgs, templateArgs []v1alpha1.Argument) ([]v1alpha1.Argum newArgs := append(templateArgs[:0:0], templateArgs...) for _, arg := range incomingArgs { i := findArg(arg.Name, newArgs) - //if i >= 0 && arg.Value != nil { - // newArgs[i].Value = arg.Value if i >= 0 { if arg.Value != nil { newArgs[i].Value = arg.Value @@ -152,8 +150,6 @@ func MergeArgs(incomingArgs, templateArgs []v1alpha1.Argument) ([]v1alpha1.Argum } } for _, arg := range newArgs { - - //if arg.Value == nil { if arg.Value == nil && arg.ValueFrom == nil { return nil, fmt.Errorf("args.%s was not resolved", arg.Name) } From 5a4784312b8f89f96b62292424576a2bd4965e0a Mon Sep 17 00:00:00 2001 From: khhirani Date: Fri, 8 May 2020 11:21:09 -0700 Subject: [PATCH 3/3] Added nil check --- utils/analysis/helpers_test.go | 1 + 1 file changed, 1 insertion(+) diff --git a/utils/analysis/helpers_test.go b/utils/analysis/helpers_test.go index 8c5daae7a9..20227e2aee 100644 --- a/utils/analysis/helpers_test.go +++ b/utils/analysis/helpers_test.go @@ -542,6 +542,7 @@ func TestMergeArgs(t *testing.T) { assert.Equal(t, "foo", args[0].Name) assert.Equal(t, "bar", *args[0].Value) assert.Equal(t, "my-secret", args[1].Name) + assert.NotNil(t, args[1].ValueFrom) } { // overwrite defaults