|
|
@@ -60,13 +60,14 @@ func TestValidateStore(t *testing.T) {
|
|
|
}
|
|
|
|
|
|
tests := []struct {
|
|
|
- name string
|
|
|
- fields fields
|
|
|
- store esv1.GenericStore
|
|
|
- wantErr bool
|
|
|
+ name string
|
|
|
+ fields fields
|
|
|
+ store esv1.GenericStore
|
|
|
+ wantErr bool
|
|
|
+ wantWarning bool
|
|
|
}{
|
|
|
{
|
|
|
- name: "empty ca",
|
|
|
+ name: "empty ca returns warning for system roots",
|
|
|
store: &esv1.SecretStore{
|
|
|
Spec: esv1.SecretStoreSpec{
|
|
|
Provider: &esv1.SecretStoreProvider{
|
|
|
@@ -74,7 +75,66 @@ func TestValidateStore(t *testing.T) {
|
|
|
},
|
|
|
},
|
|
|
},
|
|
|
- wantErr: true,
|
|
|
+ wantErr: false,
|
|
|
+ wantWarning: true,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: "authRef suppresses no-ca warning",
|
|
|
+ store: &esv1.SecretStore{
|
|
|
+ Spec: esv1.SecretStoreSpec{
|
|
|
+ Provider: &esv1.SecretStoreProvider{
|
|
|
+ Kubernetes: &esv1.KubernetesProvider{
|
|
|
+ AuthRef: &v1.SecretKeySelector{
|
|
|
+ Name: "my-kubeconfig",
|
|
|
+ Key: "config",
|
|
|
+ },
|
|
|
+ },
|
|
|
+ },
|
|
|
+ },
|
|
|
+ },
|
|
|
+ wantErr: false,
|
|
|
+ wantWarning: false,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: "token auth without ca returns warning only",
|
|
|
+ store: &esv1.SecretStore{
|
|
|
+ Spec: esv1.SecretStoreSpec{
|
|
|
+ Provider: &esv1.SecretStoreProvider{
|
|
|
+ Kubernetes: &esv1.KubernetesProvider{
|
|
|
+ Auth: &esv1.KubernetesAuth{
|
|
|
+ Token: &esv1.TokenAuth{
|
|
|
+ BearerToken: v1.SecretKeySelector{
|
|
|
+ Name: "my-token",
|
|
|
+ Key: "token",
|
|
|
+ },
|
|
|
+ },
|
|
|
+ },
|
|
|
+ },
|
|
|
+ },
|
|
|
+ },
|
|
|
+ },
|
|
|
+ wantErr: false,
|
|
|
+ wantWarning: true,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: "no ca with other validation error still returns warning",
|
|
|
+ store: &esv1.SecretStore{
|
|
|
+ Spec: esv1.SecretStoreSpec{
|
|
|
+ Provider: &esv1.SecretStoreProvider{
|
|
|
+ Kubernetes: &esv1.KubernetesProvider{
|
|
|
+ Auth: &esv1.KubernetesAuth{
|
|
|
+ Cert: &esv1.CertAuth{
|
|
|
+ ClientCert: v1.SecretKeySelector{
|
|
|
+ Name: "",
|
|
|
+ },
|
|
|
+ },
|
|
|
+ },
|
|
|
+ },
|
|
|
+ },
|
|
|
+ },
|
|
|
+ },
|
|
|
+ wantErr: true,
|
|
|
+ wantWarning: true,
|
|
|
},
|
|
|
{
|
|
|
name: "invalid client cert name",
|
|
|
@@ -300,9 +360,20 @@ func TestValidateStore(t *testing.T) {
|
|
|
for _, tt := range tests {
|
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
|
k := &Provider{}
|
|
|
- if _, err := k.ValidateStore(tt.store); (err != nil) != tt.wantErr {
|
|
|
+ warnings, err := k.ValidateStore(tt.store)
|
|
|
+ if (err != nil) != tt.wantErr {
|
|
|
t.Errorf("ProviderKubernetes.ValidateStore() error = %v, wantErr %v", err, tt.wantErr)
|
|
|
}
|
|
|
+ if tt.wantWarning {
|
|
|
+ if len(warnings) != 1 {
|
|
|
+ t.Fatalf("ProviderKubernetes.ValidateStore() expected exactly 1 warning, got %d: %v", len(warnings), warnings)
|
|
|
+ }
|
|
|
+ if warnings[0] != warnNoCAConfigured {
|
|
|
+ t.Errorf("ProviderKubernetes.ValidateStore() warning = %q, want %q", warnings[0], warnNoCAConfigured)
|
|
|
+ }
|
|
|
+ } else if len(warnings) > 0 {
|
|
|
+ t.Errorf("ProviderKubernetes.ValidateStore() unexpected warnings: %v", warnings)
|
|
|
+ }
|
|
|
})
|
|
|
}
|
|
|
}
|