|
|
@@ -131,7 +131,7 @@ func TestGetSecretForAllEntries(t *testing.T) {
|
|
|
})
|
|
|
secretsClient, err := provider.NewClient(ctx, store, k8sClient, namespace)
|
|
|
tassert.Nil(t, err)
|
|
|
- data, err := secretsClient.GetSecret(ctx, getRemoteDef(secretID, "", ""))
|
|
|
+ data, err := secretsClient.GetSecret(ctx, esv1alpha1.ExternalSecretDataRemoteRef{Key: secretID})
|
|
|
tassert.Nil(t, err)
|
|
|
|
|
|
tassert.Equal(
|
|
|
@@ -169,7 +169,7 @@ func TestGetSecretForTextEntry(t *testing.T) {
|
|
|
})
|
|
|
secretsClient, err := provider.NewClient(ctx, store, k8sClient, namespace)
|
|
|
tassert.Nil(t, err)
|
|
|
- data, err := secretsClient.GetSecret(ctx, getRemoteDef(secretID, k1, ""))
|
|
|
+ data, err := secretsClient.GetSecret(ctx, esv1alpha1.ExternalSecretDataRemoteRef{Key: secretID, Property: k1})
|
|
|
tassert.Nil(t, err)
|
|
|
|
|
|
tassert.Equal(t, v1, string(data))
|
|
|
@@ -200,7 +200,7 @@ func TestGetSecretForBinaryEntry(t *testing.T) {
|
|
|
})
|
|
|
secretsClient, err := provider.NewClient(ctx, store, k8sClient, namespace)
|
|
|
tassert.Nil(t, err)
|
|
|
- data, err := secretsClient.GetSecret(ctx, getRemoteDef(secretID, k2, ""))
|
|
|
+ data, err := secretsClient.GetSecret(ctx, esv1alpha1.ExternalSecretDataRemoteRef{Key: secretID, Property: k2})
|
|
|
tassert.Nil(t, err)
|
|
|
|
|
|
tassert.Equal(t, v2, data)
|
|
|
@@ -229,7 +229,7 @@ func TestGetSecretByVersionID(t *testing.T) {
|
|
|
})
|
|
|
secretsClient, err := provider.NewClient(ctx, store, k8sClient, namespace)
|
|
|
tassert.Nil(t, err)
|
|
|
- data, err := secretsClient.GetSecret(ctx, getRemoteDef(secretID, "", oldVersionID))
|
|
|
+ data, err := secretsClient.GetSecret(ctx, esv1alpha1.ExternalSecretDataRemoteRef{Key: secretID, Version: oldVersionID})
|
|
|
tassert.Nil(t, err)
|
|
|
|
|
|
tassert.Equal(t, map[string]string{oldKey: oldVal}, unmarshalStringMap(t, data))
|
|
|
@@ -239,11 +239,11 @@ func TestGetSecretByVersionID(t *testing.T) {
|
|
|
textEntry(newKey, newVal),
|
|
|
)
|
|
|
|
|
|
- data, err = secretsClient.GetSecret(ctx, getRemoteDef(secretID, "", oldVersionID))
|
|
|
+ data, err = secretsClient.GetSecret(ctx, esv1alpha1.ExternalSecretDataRemoteRef{Key: secretID, Version: oldVersionID})
|
|
|
tassert.Nil(t, err)
|
|
|
tassert.Equal(t, map[string]string{oldKey: oldVal}, unmarshalStringMap(t, data))
|
|
|
|
|
|
- data, err = secretsClient.GetSecret(ctx, getRemoteDef(secretID, "", newVersionID))
|
|
|
+ data, err = secretsClient.GetSecret(ctx, esv1alpha1.ExternalSecretDataRemoteRef{Key: secretID, Version: newVersionID})
|
|
|
tassert.Nil(t, err)
|
|
|
tassert.Equal(t, map[string]string{newKey: newVal}, unmarshalStringMap(t, data))
|
|
|
}
|
|
|
@@ -271,7 +271,7 @@ func TestGetSecretUnauthorized(t *testing.T) {
|
|
|
})
|
|
|
secretsClient, err := provider.NewClient(ctx, store, k8sClient, namespace)
|
|
|
tassert.Nil(t, err)
|
|
|
- _, err = secretsClient.GetSecret(ctx, getRemoteDef(secretID, "", ""))
|
|
|
+ _, err = secretsClient.GetSecret(ctx, esv1alpha1.ExternalSecretDataRemoteRef{Key: secretID})
|
|
|
tassert.EqualError(t, err, errSecretPayloadPermissionDenied)
|
|
|
}
|
|
|
|
|
|
@@ -294,13 +294,13 @@ func TestGetSecretNotFound(t *testing.T) {
|
|
|
})
|
|
|
secretsClient, err := provider.NewClient(ctx, store, k8sClient, namespace)
|
|
|
tassert.Nil(t, err)
|
|
|
- _, err = secretsClient.GetSecret(ctx, getRemoteDef("no-secret-with-this-id", "", ""))
|
|
|
+ _, err = secretsClient.GetSecret(ctx, esv1alpha1.ExternalSecretDataRemoteRef{Key: "no-secret-with-this-id"})
|
|
|
tassert.EqualError(t, err, errSecretPayloadNotFound)
|
|
|
|
|
|
secretID, _ := lockboxBackend.CreateSecret(authorizedKey,
|
|
|
textEntry("k1", "v1"),
|
|
|
)
|
|
|
- _, err = secretsClient.GetSecret(ctx, getRemoteDef(secretID, "", "no-version-with-this-id"))
|
|
|
+ _, err = secretsClient.GetSecret(ctx, esv1alpha1.ExternalSecretDataRemoteRef{Key: secretID, Version: "no-version-with-this-id"})
|
|
|
tassert.EqualError(t, err, "unable to request secret payload to get secret: version not found")
|
|
|
}
|
|
|
|
|
|
@@ -339,17 +339,17 @@ func TestGetSecretWithTwoNamespaces(t *testing.T) {
|
|
|
secretsClient2, err := provider.NewClient(ctx, store2, k8sClient, namespace2)
|
|
|
tassert.Nil(t, err)
|
|
|
|
|
|
- data, err := secretsClient1.GetSecret(ctx, getRemoteDef(secretID1, k1, ""))
|
|
|
+ data, err := secretsClient1.GetSecret(ctx, esv1alpha1.ExternalSecretDataRemoteRef{Key: secretID1, Property: k1})
|
|
|
tassert.Equal(t, v1, string(data))
|
|
|
tassert.Nil(t, err)
|
|
|
- data, err = secretsClient1.GetSecret(ctx, getRemoteDef(secretID2, k2, ""))
|
|
|
+ data, err = secretsClient1.GetSecret(ctx, esv1alpha1.ExternalSecretDataRemoteRef{Key: secretID2, Property: k2})
|
|
|
tassert.Nil(t, data)
|
|
|
tassert.EqualError(t, err, errSecretPayloadPermissionDenied)
|
|
|
|
|
|
- data, err = secretsClient2.GetSecret(ctx, getRemoteDef(secretID1, k1, ""))
|
|
|
+ data, err = secretsClient2.GetSecret(ctx, esv1alpha1.ExternalSecretDataRemoteRef{Key: secretID1, Property: k1})
|
|
|
tassert.Nil(t, data)
|
|
|
tassert.EqualError(t, err, errSecretPayloadPermissionDenied)
|
|
|
- data, err = secretsClient2.GetSecret(ctx, getRemoteDef(secretID2, k2, ""))
|
|
|
+ data, err = secretsClient2.GetSecret(ctx, esv1alpha1.ExternalSecretDataRemoteRef{Key: secretID2, Property: k2})
|
|
|
tassert.Equal(t, v2, string(data))
|
|
|
tassert.Nil(t, err)
|
|
|
}
|
|
|
@@ -400,17 +400,17 @@ func TestGetSecretWithTwoApiEndpoints(t *testing.T) {
|
|
|
|
|
|
var data []byte
|
|
|
|
|
|
- data, err = secretsClient1.GetSecret(ctx, getRemoteDef(secretID1, k1, ""))
|
|
|
+ data, err = secretsClient1.GetSecret(ctx, esv1alpha1.ExternalSecretDataRemoteRef{Key: secretID1, Property: k1})
|
|
|
tassert.Equal(t, v1, string(data))
|
|
|
tassert.Nil(t, err)
|
|
|
- data, err = secretsClient1.GetSecret(ctx, getRemoteDef(secretID2, k2, ""))
|
|
|
+ data, err = secretsClient1.GetSecret(ctx, esv1alpha1.ExternalSecretDataRemoteRef{Key: secretID2, Property: k2})
|
|
|
tassert.Nil(t, data)
|
|
|
tassert.EqualError(t, err, errSecretPayloadNotFound)
|
|
|
|
|
|
- data, err = secretsClient2.GetSecret(ctx, getRemoteDef(secretID1, k1, ""))
|
|
|
+ data, err = secretsClient2.GetSecret(ctx, esv1alpha1.ExternalSecretDataRemoteRef{Key: secretID1, Property: k1})
|
|
|
tassert.Nil(t, data)
|
|
|
tassert.EqualError(t, err, errSecretPayloadNotFound)
|
|
|
- data, err = secretsClient2.GetSecret(ctx, getRemoteDef(secretID2, k2, ""))
|
|
|
+ data, err = secretsClient2.GetSecret(ctx, esv1alpha1.ExternalSecretDataRemoteRef{Key: secretID2, Property: k2})
|
|
|
tassert.Equal(t, v2, string(data))
|
|
|
tassert.Nil(t, err)
|
|
|
}
|
|
|
@@ -442,19 +442,19 @@ func TestGetSecretWithIamTokenExpiration(t *testing.T) {
|
|
|
|
|
|
oldSecretsClient, err := provider.NewClient(ctx, store, k8sClient, namespace)
|
|
|
tassert.Nil(t, err)
|
|
|
- data, err = oldSecretsClient.GetSecret(ctx, getRemoteDef(secretID, k1, ""))
|
|
|
+ data, err = oldSecretsClient.GetSecret(ctx, esv1alpha1.ExternalSecretDataRemoteRef{Key: secretID, Property: k1})
|
|
|
tassert.Equal(t, v1, string(data))
|
|
|
tassert.Nil(t, err)
|
|
|
|
|
|
lockboxBackend.AdvanceClock(2 * tokenExpirationTime)
|
|
|
|
|
|
- data, err = oldSecretsClient.GetSecret(ctx, getRemoteDef(secretID, k1, ""))
|
|
|
+ data, err = oldSecretsClient.GetSecret(ctx, esv1alpha1.ExternalSecretDataRemoteRef{Key: secretID, Property: k1})
|
|
|
tassert.Nil(t, data)
|
|
|
tassert.EqualError(t, err, "unable to request secret payload to get secret: iam token expired")
|
|
|
|
|
|
newSecretsClient, err := provider.NewClient(ctx, store, k8sClient, namespace)
|
|
|
tassert.Nil(t, err)
|
|
|
- data, err = newSecretsClient.GetSecret(ctx, getRemoteDef(secretID, k1, ""))
|
|
|
+ data, err = newSecretsClient.GetSecret(ctx, esv1alpha1.ExternalSecretDataRemoteRef{Key: secretID, Property: k1})
|
|
|
tassert.Equal(t, v1, string(data))
|
|
|
tassert.Nil(t, err)
|
|
|
}
|
|
|
@@ -499,7 +499,7 @@ func TestGetSecretWithIamTokenCleanup(t *testing.T) {
|
|
|
// Access secretID1 with authorizedKey1, IAM token for authorizedKey1 should be cached
|
|
|
secretsClient, err := provider.NewClient(ctx, store1, k8sClient, namespace)
|
|
|
tassert.Nil(t, err)
|
|
|
- _, err = secretsClient.GetSecret(ctx, getRemoteDef(secretID1, "", ""))
|
|
|
+ _, err = secretsClient.GetSecret(ctx, esv1alpha1.ExternalSecretDataRemoteRef{Key: secretID1})
|
|
|
tassert.Nil(t, err)
|
|
|
|
|
|
tassert.True(t, provider.isIamTokenCached(authorizedKey1))
|
|
|
@@ -510,7 +510,7 @@ func TestGetSecretWithIamTokenCleanup(t *testing.T) {
|
|
|
// Access secretID2 with authorizedKey2, IAM token for authorizedKey2 should be cached
|
|
|
secretsClient, err = provider.NewClient(ctx, store2, k8sClient, namespace)
|
|
|
tassert.Nil(t, err)
|
|
|
- _, err = secretsClient.GetSecret(ctx, getRemoteDef(secretID2, "", ""))
|
|
|
+ _, err = secretsClient.GetSecret(ctx, esv1alpha1.ExternalSecretDataRemoteRef{Key: secretID2})
|
|
|
tassert.Nil(t, err)
|
|
|
|
|
|
tassert.True(t, provider.isIamTokenCached(authorizedKey1))
|
|
|
@@ -562,7 +562,7 @@ func TestGetSecretMap(t *testing.T) {
|
|
|
})
|
|
|
secretsClient, err := provider.NewClient(ctx, store, k8sClient, namespace)
|
|
|
tassert.Nil(t, err)
|
|
|
- data, err := secretsClient.GetSecretMap(ctx, getRemoteFromDef(secretID, "", ""))
|
|
|
+ data, err := secretsClient.GetSecretMap(ctx, esv1alpha1.ExternalSecretDataRemoteRef{Key: secretID})
|
|
|
tassert.Nil(t, err)
|
|
|
|
|
|
tassert.Equal(
|
|
|
@@ -598,7 +598,7 @@ func TestGetSecretMapByVersionID(t *testing.T) {
|
|
|
})
|
|
|
secretsClient, err := provider.NewClient(ctx, store, k8sClient, namespace)
|
|
|
tassert.Nil(t, err)
|
|
|
- data, err := secretsClient.GetSecretMap(ctx, getRemoteFromDef(secretID, "", oldVersionID))
|
|
|
+ data, err := secretsClient.GetSecretMap(ctx, esv1alpha1.ExternalSecretDataRemoteRef{Key: secretID, Version: oldVersionID})
|
|
|
tassert.Nil(t, err)
|
|
|
|
|
|
tassert.Equal(t, map[string][]byte{oldKey: []byte(oldVal)}, data)
|
|
|
@@ -608,11 +608,11 @@ func TestGetSecretMapByVersionID(t *testing.T) {
|
|
|
textEntry(newKey, newVal),
|
|
|
)
|
|
|
|
|
|
- data, err = secretsClient.GetSecretMap(ctx, getRemoteFromDef(secretID, "", oldVersionID))
|
|
|
+ data, err = secretsClient.GetSecretMap(ctx, esv1alpha1.ExternalSecretDataRemoteRef{Key: secretID, Version: oldVersionID})
|
|
|
tassert.Nil(t, err)
|
|
|
tassert.Equal(t, map[string][]byte{oldKey: []byte(oldVal)}, data)
|
|
|
|
|
|
- data, err = secretsClient.GetSecretMap(ctx, getRemoteFromDef(secretID, "", newVersionID))
|
|
|
+ data, err = secretsClient.GetSecretMap(ctx, esv1alpha1.ExternalSecretDataRemoteRef{Key: secretID, Version: newVersionID})
|
|
|
tassert.Nil(t, err)
|
|
|
tassert.Equal(t, map[string][]byte{newKey: []byte(newVal)}, data)
|
|
|
}
|
|
|
@@ -640,24 +640,6 @@ func newYandexLockboxSecretStore(apiEndpoint, namespace, authorizedKeySecretName
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-func getRemoteDef(key, property, version string) esv1alpha1.ExternalSecretDataRemoteRef {
|
|
|
- return esv1alpha1.ExternalSecretDataRemoteRef{
|
|
|
- Key: key,
|
|
|
- Property: property,
|
|
|
- Version: version,
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-func getRemoteFromDef(key, property, version string) esv1alpha1.ExternalSecretDataFromRemoteRef {
|
|
|
- return esv1alpha1.ExternalSecretDataFromRemoteRef{
|
|
|
- Extract: esv1alpha1.ExternalSecretExtract{
|
|
|
- Key: key,
|
|
|
- Property: property,
|
|
|
- Version: version,
|
|
|
- },
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
func createK8sSecret(ctx context.Context, k8sClient client.Client, namespace, secretName, secretKey string, secretContent interface{}) error {
|
|
|
data, err := json.Marshal(secretContent)
|
|
|
if err != nil {
|