Skip to content

Commit

Permalink
Merge pull request #449 from kube-tarian/preaction-vaultstore
Browse files Browse the repository at this point in the history
Preaction vaultstore
  • Loading branch information
vramk23 authored Apr 11, 2024
2 parents a9ab99b + 72f68ee commit 95942d5
Show file tree
Hide file tree
Showing 21 changed files with 223 additions and 109 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -74,8 +74,9 @@ func setupPostgresDatabase(log logging.Logger, req *captensdkpb.DBSetupRequest)
UserName: conf.DBServiceUsername,
Password: conf.Password,
AdditionalData: map[string]string{
"db-url": conf.DBAddress,
"db-name": conf.DBName,
"db-url": conf.DBAddress,
"db-name": conf.DBName,
"service-user": req.ServiceUserName,
},
})
return fmt.Sprintf("%s/%s/%s", credentials.CertCredentialType, req.PluginName, conf.EntityName),
Expand Down
4 changes: 2 additions & 2 deletions capten/agent/internal/pb/captenpluginspb/capten_plugins.pb.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions capten/common-pkg/agentpb/agent.pb.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion capten/common-pkg/agentpb/agent_grpc.pb.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions capten/common-pkg/capten-sdk/captensdkpb/capten_sdk.pb.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

5 changes: 2 additions & 3 deletions capten/common-pkg/credential/client.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@ const (
oauthClientSecretKey = "CLIENT_SECRET"
captenConfigEntityName = "capten-config"
globalValuesCredIdentifier = "global-values"
PluginCredentialType = "plugin"
)

func GetServiceUserCredential(ctx context.Context, svcEntity, userName string) (cred credentials.ServiceCredential, err error) {
Expand Down Expand Up @@ -202,7 +201,7 @@ func PutPluginCredential(ctx context.Context, pluginName, svcEntity string, cred
return errors.WithMessage(err, "error in initializing credential admin")
}

err = credAdmin.PutCredential(context.Background(), PluginCredentialType,
err = credAdmin.PutCredential(context.Background(), credentials.PluginCredentialType,
pluginName, svcEntity, cred)
if err != nil {
return errors.WithMessagef(err, "error in put generic cred for %s/%s", pluginName, svcEntity)
Expand All @@ -217,7 +216,7 @@ func GetPluginCredential(ctx context.Context, pluginName, svcEntity string) (cre
return
}

data, err := credReader.GetCredential(ctx, PluginCredentialType, pluginName, svcEntity)
data, err := credReader.GetCredential(ctx, credentials.PluginCredentialType, pluginName, svcEntity)
if err != nil {
err = errors.WithMessagef(err, "error while reading cluster global values %s/%s from the vault",
captenConfigEntityName, globalValuesCredIdentifier)
Expand Down
26 changes: 15 additions & 11 deletions capten/common-pkg/k8s/client.go
Original file line number Diff line number Diff line change
Expand Up @@ -113,9 +113,9 @@ func (k *K8SClient) ListPods(namespace string) ([]corev1.Pod, error) {
return pods.Items, nil
}

func (k *K8SClient) CreateConfigmap(namespace, cmName string, data map[string]string, annotation map[string]string) error {
func (k *K8SClient) CreateConfigmap(ctx context.Context, namespace, cmName string, data map[string]string, annotation map[string]string) error {
_, err := k.Clientset.CoreV1().ConfigMaps(namespace).Create(
context.TODO(),
ctx,
&v1.ConfigMap{
ObjectMeta: metav1.ObjectMeta{Name: cmName, Annotations: annotation},
Data: data,
Expand All @@ -124,9 +124,9 @@ func (k *K8SClient) CreateConfigmap(namespace, cmName string, data map[string]st
return err
}

func (k *K8SClient) UpdateConfigmap(namespace, cmName string, data map[string]string) error {
func (k *K8SClient) UpdateConfigmap(ctx context.Context, namespace, cmName string, data map[string]string) error {
_, err := k.Clientset.CoreV1().ConfigMaps(namespace).Update(
context.TODO(),
ctx,
&v1.ConfigMap{
ObjectMeta: metav1.ObjectMeta{Name: cmName},
Data: data,
Expand All @@ -135,16 +135,16 @@ func (k *K8SClient) UpdateConfigmap(namespace, cmName string, data map[string]st
return err
}

func (k *K8SClient) DeleteConfigmap(namespace, cmName string) error {
cm, _ := k.Clientset.CoreV1().ConfigMaps(namespace).Get(context.TODO(), cmName, metav1.GetOptions{})
func (k *K8SClient) DeleteConfigmap(ctx context.Context, namespace, cmName string) error {
cm, _ := k.Clientset.CoreV1().ConfigMaps(namespace).Get(ctx, cmName, metav1.GetOptions{})
if cm != nil {
return k.Clientset.CoreV1().ConfigMaps(namespace).Delete(context.TODO(), cmName, metav1.DeleteOptions{})
return k.Clientset.CoreV1().ConfigMaps(namespace).Delete(ctx, cmName, metav1.DeleteOptions{})
}
return nil
}

func (k *K8SClient) GetConfigmap(namespace, cmName string) (map[string]string, error) {
cm, err := k.Clientset.CoreV1().ConfigMaps(namespace).Get(context.TODO(), cmName, metav1.GetOptions{})
func (k *K8SClient) GetConfigmap(ctx context.Context, namespace, cmName string) (map[string]string, error) {
cm, err := k.Clientset.CoreV1().ConfigMaps(namespace).Get(ctx, cmName, metav1.GetOptions{})
if err != nil {
return nil, err
}
Expand Down Expand Up @@ -222,8 +222,8 @@ func (k *K8SClient) GetServiceData(namespace, serviceName string) (*ServiceData,
}, nil
}

func (k *K8SClient) CreateNamespace(namespace string) error {
_, err := k.Clientset.CoreV1().Namespaces().Create(context.TODO(), &v1.Namespace{
func (k *K8SClient) CreateNamespace(ctx context.Context, namespace string) error {
_, err := k.Clientset.CoreV1().Namespaces().Create(ctx, &v1.Namespace{
TypeMeta: metav1.TypeMeta{
Kind: "Namespace",
APIVersion: "v1",
Expand All @@ -238,3 +238,7 @@ func (k *K8SClient) CreateNamespace(namespace string) error {
}
return nil
}

func (k *K8SClient) DeleteNamespace(ctx context.Context, namespace string) error {
return k.Clientset.CoreV1().Namespaces().Delete(ctx, namespace, metav1.DeleteOptions{})
}
6 changes: 4 additions & 2 deletions capten/common-pkg/plugins/helm/delete.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,14 @@ package helm
import (
"encoding/json"
"fmt"
"time"

helmclient "github.com/kube-tarian/kad/capten/common-pkg/plugins/helm/go-helm-client"
"github.com/kube-tarian/kad/capten/model"
)

func (h *HelmCLient) Delete(req *model.DeleteRequestPayload) (json.RawMessage, error) {
h.logger.Infof("Helm client Install invoke started")
h.logger.Infof("Helm client Delete invoke started")

helmClient, err := h.getHelmClient(req.Namespace)
if err != nil {
Expand All @@ -22,6 +23,7 @@ func (h *HelmCLient) Delete(req *model.DeleteRequestPayload) (json.RawMessage, e
ReleaseName: req.ReleaseName,
Namespace: req.Namespace,
Wait: true,
Timeout: time.Duration(req.Timeout) * time.Minute,
}

// Uninstall the chart release.
Expand All @@ -33,6 +35,6 @@ func (h *HelmCLient) Delete(req *model.DeleteRequestPayload) (json.RawMessage, e
}

h.logger.Infof("helm uninstall of app %s successful in namespace: %v", req.ReleaseName, req.Namespace)
h.logger.Infof("Helm client Install invoke finished")
h.logger.Infof("Helm client Delete invoke finished")
return json.RawMessage(fmt.Sprintf("{\"status\": \"Application %s successful with helm client\"}", req.ReleaseName)), nil
}
1 change: 1 addition & 0 deletions capten/common-pkg/plugins/helm/go-helm-client/client.go
Original file line number Diff line number Diff line change
Expand Up @@ -908,4 +908,5 @@ func mergeUpgradeOptions(chartSpec *ChartSpec, upgradeOptions *action.Upgrade) {
func mergeUninstallReleaseOptions(chartSpec *ChartSpec, uninstallReleaseOptions *action.Uninstall) {
uninstallReleaseOptions.DisableHooks = chartSpec.DisableHooks
uninstallReleaseOptions.Timeout = chartSpec.Timeout
uninstallReleaseOptions.Wait = chartSpec.Wait
}
29 changes: 29 additions & 0 deletions capten/common-pkg/vault-cred/vault_cred_client.go
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,35 @@ func GetAppRoleToken(appRoleName string, credentialPaths []string) (string, erro
return tokenData.Token, nil
}

func DeleteAppRole(appRoleName string) error {
conf := &config{}
if err := envconfig.Process("", conf); err != nil {
return fmt.Errorf("vault cred config read failed, %v", err)
}

vc, err := grpc.Dial(conf.VaultCredAddress,
grpc.WithTransportCredentials(insecure.NewCredentials()),
grpc.WithUnaryInterceptor(timeout.UnaryClientInterceptor(60*time.Second)),
grpc.WithKeepaliveParams(keepalive.ClientParameters{
Time: 30, // seconds
Timeout: 10, // seconds
}))
if err != nil {
return fmt.Errorf("failed to connect vauld-cred server, %v", err)
}
vcClient := vaultcredpb.NewVaultCredClient(vc)

resp, err := vcClient.DeleteAppRole(context.Background(), &vaultcredpb.DeleteAppRoleRequest{
RoleName: appRoleName,
})
if err != nil {
return fmt.Errorf("failed to delete app role %s, reason %v", appRoleName, err)
} else if resp.Status != vaultcredpb.StatusCode_OK {
return fmt.Errorf("failed to delete app role %s, stauts %v, message: %v", appRoleName, resp.Status, resp.StatusMessage)
}
return nil
}

func RegisterClusterVaultAuth(clusterID, clusterName string) error {
conf := &config{}
if err := envconfig.Process("", conf); err != nil {
Expand Down
4 changes: 2 additions & 2 deletions capten/common-pkg/vault-cred/vaultcredpb/vault_cred.pb.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading

0 comments on commit 95942d5

Please sign in to comment.