|
|
@@ -16,7 +16,6 @@ import (
|
|
|
"context"
|
|
|
|
|
|
// nolint
|
|
|
- "github.com/Azure/azure-sdk-for-go/services/keyvault/v7.0/keyvault"
|
|
|
. "github.com/onsi/ginkgo"
|
|
|
|
|
|
// nolint
|
|
|
@@ -25,118 +24,102 @@ import (
|
|
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
|
|
utilpointer "k8s.io/utils/pointer"
|
|
|
|
|
|
+ "github.com/oracle/oci-go-sdk/v45/common"
|
|
|
+ vault "github.com/oracle/oci-go-sdk/v45/vault"
|
|
|
+
|
|
|
esv1alpha1 "github.com/external-secrets/external-secrets/apis/externalsecrets/v1alpha1"
|
|
|
esmeta "github.com/external-secrets/external-secrets/apis/meta/v1"
|
|
|
"github.com/external-secrets/external-secrets/e2e/framework"
|
|
|
)
|
|
|
|
|
|
type oracleProvider struct {
|
|
|
- clientID string
|
|
|
- clientSecret string
|
|
|
- tenantID string
|
|
|
- vaultURL string
|
|
|
- client *keyvault.BaseClient
|
|
|
- framework *framework.Framework
|
|
|
+ tenancy string
|
|
|
+ user string
|
|
|
+ region string
|
|
|
+ fingerprint string
|
|
|
+ privateKey string
|
|
|
+ framework *framework.Framework
|
|
|
+ ctx context.Context
|
|
|
}
|
|
|
|
|
|
-func newOracleProvider(f *framework.Framework) *oracleProvider {
|
|
|
+const (
|
|
|
+ secretName = "secretName"
|
|
|
+)
|
|
|
+
|
|
|
+func newOracleProvider(f *framework.Framework, tenancy, user, region, fingerprint, privateKey string) *oracleProvider {
|
|
|
prov := &oracleProvider{
|
|
|
- framework: f,
|
|
|
+ tenancy: tenancy,
|
|
|
+ user: user,
|
|
|
+ region: region,
|
|
|
+ fingerprint: fingerprint,
|
|
|
+ privateKey: privateKey,
|
|
|
+ framework: f,
|
|
|
}
|
|
|
BeforeEach(prov.BeforeEach)
|
|
|
return prov
|
|
|
}
|
|
|
|
|
|
-func (p *oracleProvider) CreateSecret(key, val string) {}
|
|
|
-
|
|
|
-func (p *oracleProvider) DeleteSecret(key string) {}
|
|
|
-
|
|
|
-func BeforeEach() {
|
|
|
-
|
|
|
-}
|
|
|
-
|
|
|
-// func neworacleProvider(f *framework.Framework) *oracleProvider {
|
|
|
-
|
|
|
-// clientCredentialsConfig := kvauth.NewClientCredentialsConfig(clientID, clientSecret, tenantID)
|
|
|
-// clientCredentialsConfig.Resource = "https://vault.azure.net"
|
|
|
-// authorizer, err := clientCredentialsConfig.Authorizer()
|
|
|
-// Expect(err).ToNot(HaveOccurred())
|
|
|
-// basicClient := keyvault.New()
|
|
|
-// basicClient.Authorizer = authorizer
|
|
|
-
|
|
|
-// prov := &azureProvider{
|
|
|
-// framework: f,
|
|
|
-// clientID: clientID,
|
|
|
-// clientSecret: clientSecret,
|
|
|
-// tenantID: tenantID,
|
|
|
-// vaultURL: vaultURL,
|
|
|
-// client: &basicClient,
|
|
|
-// }
|
|
|
-// BeforeEach(prov.BeforeEach)
|
|
|
-// return prov
|
|
|
-// }
|
|
|
-
|
|
|
-func (s *azureProvider) CreateSecret(key, val string) {
|
|
|
- _, err := s.client.SetSecret(
|
|
|
- context.Background(),
|
|
|
- s.vaultURL,
|
|
|
- key,
|
|
|
- keyvault.SecretSetParameters{
|
|
|
- Value: &val,
|
|
|
- SecretAttributes: &keyvault.SecretAttributes{
|
|
|
- RecoveryLevel: keyvault.Purgeable,
|
|
|
- Enabled: utilpointer.BoolPtr(true),
|
|
|
- },
|
|
|
- })
|
|
|
+func (p *oracleProvider) CreateSecret(key, val string) {
|
|
|
+ configurationProvider := common.NewRawConfigurationProvider(p.tenancy, p.user, p.region, p.fingerprint, p.privateKey, nil)
|
|
|
+ client, err := vault.NewVaultsClientWithConfigurationProvider(configurationProvider)
|
|
|
+ Expect(err).ToNot(HaveOccurred())
|
|
|
+ kmssecretrequest := vault.CreateSecretRequest(vault.CreateSecretRequest{})
|
|
|
+ kmssecretrequest.SecretName = utilpointer.StringPtr(secretName)
|
|
|
+ kmssecretrequest.SecretContent = vault.Base64SecretContentDetails{
|
|
|
+ Name: utilpointer.StringPtr("secretName"),
|
|
|
+ Content: utilpointer.StringPtr("secretContent"),
|
|
|
+ }
|
|
|
+ _, err = client.CreateSecret(p.ctx, kmssecretrequest)
|
|
|
Expect(err).ToNot(HaveOccurred())
|
|
|
}
|
|
|
|
|
|
-func (s *azureProvider) DeleteSecret(key string) {
|
|
|
- _, err := s.client.DeleteSecret(
|
|
|
- context.Background(),
|
|
|
- s.vaultURL,
|
|
|
- key)
|
|
|
+func (p *oracleProvider) DeleteSecret(key string) {
|
|
|
+ configurationProvider := common.NewRawConfigurationProvider(p.tenancy, p.user, p.region, p.fingerprint, p.privateKey, nil)
|
|
|
+ client, err := vault.NewVaultsClientWithConfigurationProvider(configurationProvider)
|
|
|
+ Expect(err).ToNot(HaveOccurred())
|
|
|
+ kmssecretrequest := vault.ScheduleSecretDeletionRequest(vault.ScheduleSecretDeletionRequest{})
|
|
|
+ kmssecretrequest.SecretId = utilpointer.StringPtr(secretName)
|
|
|
+ _, err = client.ScheduleSecretDeletion(p.ctx, kmssecretrequest)
|
|
|
Expect(err).ToNot(HaveOccurred())
|
|
|
}
|
|
|
|
|
|
-func (s *azureProvider) BeforeEach() {
|
|
|
- azureCreds := &v1.Secret{
|
|
|
+func (p *oracleProvider) BeforeEach() {
|
|
|
+ OracleCreds := &v1.Secret{
|
|
|
ObjectMeta: metav1.ObjectMeta{
|
|
|
- Name: "provider-secret",
|
|
|
- Namespace: s.framework.Namespace.Name,
|
|
|
+ Name: secretName,
|
|
|
+ Namespace: p.framework.Namespace.Name,
|
|
|
},
|
|
|
StringData: map[string]string{
|
|
|
- "client-id": s.clientID,
|
|
|
- "client-secret": s.clientSecret,
|
|
|
+ secretName: "value",
|
|
|
},
|
|
|
}
|
|
|
- err := s.framework.CRClient.Create(context.Background(), azureCreds)
|
|
|
+ err := p.framework.CRClient.Create(context.Background(), OracleCreds)
|
|
|
Expect(err).ToNot(HaveOccurred())
|
|
|
|
|
|
secretStore := &esv1alpha1.SecretStore{
|
|
|
ObjectMeta: metav1.ObjectMeta{
|
|
|
- Name: s.framework.Namespace.Name,
|
|
|
- Namespace: s.framework.Namespace.Name,
|
|
|
+ Name: p.framework.Namespace.Name,
|
|
|
+ Namespace: p.framework.Namespace.Name,
|
|
|
},
|
|
|
Spec: esv1alpha1.SecretStoreSpec{
|
|
|
Provider: &esv1alpha1.SecretStoreProvider{
|
|
|
- AzureKV: &esv1alpha1.AzureKVProvider{
|
|
|
- TenantID: &s.tenantID,
|
|
|
- VaultURL: &s.vaultURL,
|
|
|
- AuthSecretRef: &esv1alpha1.AzureKVAuth{
|
|
|
- ClientID: &esmeta.SecretKeySelector{
|
|
|
- Name: "provider-secret",
|
|
|
- Key: "client-id",
|
|
|
- },
|
|
|
- ClientSecret: &esmeta.SecretKeySelector{
|
|
|
- Name: "provider-secret",
|
|
|
- Key: "client-secret",
|
|
|
+ Oracle: &esv1alpha1.OracleProvider{
|
|
|
+ Auth: esv1alpha1.OracleAuth{
|
|
|
+ SecretRef: esv1alpha1.OracleSecretRef{
|
|
|
+ Fingerprint: esmeta.SecretKeySelector{
|
|
|
+ Name: "kms-secret",
|
|
|
+ Key: "keyid",
|
|
|
+ },
|
|
|
+ PrivateKey: esmeta.SecretKeySelector{
|
|
|
+ Name: "kms-secret",
|
|
|
+ Key: "accesskey",
|
|
|
+ },
|
|
|
},
|
|
|
},
|
|
|
},
|
|
|
},
|
|
|
},
|
|
|
}
|
|
|
- err = s.framework.CRClient.Create(context.Background(), secretStore)
|
|
|
+ err = p.framework.CRClient.Create(context.Background(), secretStore)
|
|
|
Expect(err).ToNot(HaveOccurred())
|
|
|
}
|