secretsmanager/secretsmanager/client.go
Marcel S. Henselin aa77ad77e2 fix: some errorhandling corrections
chore: updated versions
2026-05-13 08:37:55 +02:00

44 lines
1 KiB
Go

package secretsmanager
import (
"context"
"time"
"secretsmanager/config"
"github.com/hashicorp/vault-client-go"
"github.com/hashicorp/vault-client-go/schema"
)
type SecretsManager struct {
Ctx context.Context
Client *vault.Client
}
func InitializeClient(
cfg config.Config,
) SecretsManager {
s := SecretsManager{}
s.Ctx = context.Background()
s.Client, _ = vault.New(
vault.WithAddress(cfg.VaultAddr),
vault.WithRequestTimeout(30*time.Second),
vault.WithTLS(vault.TLSConfiguration{
InsecureSkipVerify: false,
}),
)
config.InfoLog("Attempting to login with user %s", cfg.VaultUsername)
loginResp, err := s.Client.Auth.UserpassLogin(s.Ctx, cfg.VaultUsername, schema.UserpassLoginRequest{Password: cfg.VaultPassword})
if err != nil {
config.FatalLog("Vault login request failed: %s", err)
}
config.InfoLog("Login successful. Token received.")
err = s.Client.SetToken(loginResp.Auth.ClientToken)
if err != nil {
config.FatalLog("Vault login could not set token: %s", err)
}
return s
}