|
|
@@ -161,6 +161,80 @@ spec:
|
|
|
err: errors.New("unable to get dynamic secret: empty response from Vault"),
|
|
|
},
|
|
|
},
|
|
|
+ "AllowEmptyVaultPOST": {
|
|
|
+ reason: "Allow empty response from Vault POST.",
|
|
|
+ args: args{
|
|
|
+ corev1: utilfake.NewCreateTokenMock().WithToken("ok"),
|
|
|
+ jsonSpec: &apiextensions.JSON{
|
|
|
+ Raw: []byte(`apiVersion: generators.external-secrets.io/v1alpha1
|
|
|
+kind: VaultDynamicSecret
|
|
|
+spec:
|
|
|
+ provider:
|
|
|
+ auth:
|
|
|
+ kubernetes:
|
|
|
+ role: test
|
|
|
+ serviceAccountRef:
|
|
|
+ name: "testing"
|
|
|
+ method: POST
|
|
|
+ parameters:
|
|
|
+ foo: "bar"
|
|
|
+ path: "github/token/example"
|
|
|
+ allowEmptyResponse: true`),
|
|
|
+ },
|
|
|
+ kube: clientfake.NewClientBuilder().WithObjects(&corev1.ServiceAccount{
|
|
|
+ ObjectMeta: metav1.ObjectMeta{
|
|
|
+ Name: "testing",
|
|
|
+ Namespace: "testing",
|
|
|
+ },
|
|
|
+ Secrets: []corev1.ObjectReference{
|
|
|
+ {
|
|
|
+ Name: "test",
|
|
|
+ },
|
|
|
+ },
|
|
|
+ }).Build(),
|
|
|
+ },
|
|
|
+ want: want{
|
|
|
+ err: nil,
|
|
|
+ val: nil,
|
|
|
+ },
|
|
|
+ },
|
|
|
+ "AllowEmptyVaultGET": {
|
|
|
+ reason: "Allow empty response from Vault GET.",
|
|
|
+ args: args{
|
|
|
+ corev1: utilfake.NewCreateTokenMock().WithToken("ok"),
|
|
|
+ jsonSpec: &apiextensions.JSON{
|
|
|
+ Raw: []byte(`apiVersion: generators.external-secrets.io/v1alpha1
|
|
|
+kind: VaultDynamicSecret
|
|
|
+spec:
|
|
|
+ provider:
|
|
|
+ auth:
|
|
|
+ kubernetes:
|
|
|
+ role: test
|
|
|
+ serviceAccountRef:
|
|
|
+ name: "testing"
|
|
|
+ method: GET
|
|
|
+ parameters:
|
|
|
+ foo: "bar"
|
|
|
+ path: "github/token/example"
|
|
|
+ allowEmptyResponse: true`),
|
|
|
+ },
|
|
|
+ kube: clientfake.NewClientBuilder().WithObjects(&corev1.ServiceAccount{
|
|
|
+ ObjectMeta: metav1.ObjectMeta{
|
|
|
+ Name: "testing",
|
|
|
+ Namespace: "testing",
|
|
|
+ },
|
|
|
+ Secrets: []corev1.ObjectReference{
|
|
|
+ {
|
|
|
+ Name: "test",
|
|
|
+ },
|
|
|
+ },
|
|
|
+ }).Build(),
|
|
|
+ },
|
|
|
+ want: want{
|
|
|
+ err: nil,
|
|
|
+ val: nil,
|
|
|
+ },
|
|
|
+ },
|
|
|
}
|
|
|
|
|
|
for name, tc := range cases {
|
|
|
@@ -168,8 +242,10 @@ spec:
|
|
|
c := &provider.Provider{NewVaultClient: fake.ClientWithLoginMock}
|
|
|
gen := &Generator{}
|
|
|
val, err := gen.generate(context.Background(), c, tc.args.jsonSpec, tc.args.kube, tc.args.corev1, "testing")
|
|
|
- if diff := cmp.Diff(tc.want.err.Error(), err.Error()); diff != "" {
|
|
|
- t.Errorf("\n%s\nvault.GetSecret(...): -want error, +got error:\n%s", tc.reason, diff)
|
|
|
+ if err != nil || tc.want.err != nil {
|
|
|
+ if diff := cmp.Diff(tc.want.err.Error(), err.Error()); diff != "" {
|
|
|
+ t.Errorf("\n%s\nvault.GetSecret(...): -want error, +got error:\n%s", tc.reason, diff)
|
|
|
+ }
|
|
|
}
|
|
|
if diff := cmp.Diff(tc.want.val, val); diff != "" {
|
|
|
t.Errorf("\n%s\nvault.GetSecret(...): -want val, +got val:\n%s", tc.reason, diff)
|