fix: context handling
This commit is contained in:
parent
3c562f3d63
commit
ac1d5014f0
3 changed files with 10 additions and 8 deletions
7
main.go
7
main.go
|
|
@ -1,6 +1,7 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"log"
|
||||
"os"
|
||||
|
|
@ -19,6 +20,8 @@ func main() {
|
|||
log.Println(".env file not found, using regular environment variables")
|
||||
}
|
||||
|
||||
ctx := context.TODO()
|
||||
|
||||
var cfg config.Config
|
||||
err = env.Parse(&cfg)
|
||||
if err != nil {
|
||||
|
|
@ -26,11 +29,11 @@ func main() {
|
|||
}
|
||||
cfg = config.ValidateConfig(cfg)
|
||||
|
||||
s, err := secretsmanager.New(cfg)
|
||||
s, err := secretsmanager.New(ctx, cfg)
|
||||
if err != nil {
|
||||
log.Fatalf("Error initializing secrets manager client: %s", err)
|
||||
}
|
||||
data, err := s.GetSecrets(cfg)
|
||||
data, err := s.GetSecrets(ctx, cfg)
|
||||
if err != nil {
|
||||
log.Fatalf("Error retrieving secrets: %s", err)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -12,13 +12,11 @@ import (
|
|||
)
|
||||
|
||||
type SecretsManager struct {
|
||||
Ctx context.Context
|
||||
Client *vault.Client
|
||||
}
|
||||
|
||||
func New(cfg config.Config) (*SecretsManager, error) {
|
||||
func New(ctx context.Context, cfg config.Config) (*SecretsManager, error) {
|
||||
s := SecretsManager{}
|
||||
s.Ctx = context.Background()
|
||||
client, err := vault.New(
|
||||
vault.WithAddress(cfg.VaultAddr),
|
||||
vault.WithRequestTimeout(30*time.Second),
|
||||
|
|
@ -32,7 +30,7 @@ func New(cfg config.Config) (*SecretsManager, error) {
|
|||
s.Client = client
|
||||
|
||||
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})
|
||||
loginResp, err := s.Client.Auth.UserpassLogin(ctx, cfg.VaultUsername, schema.UserpassLoginRequest{Password: cfg.VaultPassword})
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("vault login request failed: %w", err)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,15 +1,16 @@
|
|||
package secretsmanager
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"secretsmanager/config"
|
||||
|
||||
"github.com/hashicorp/vault-client-go"
|
||||
)
|
||||
|
||||
func (s *SecretsManager) GetSecrets(cfg config.Config) (map[string]interface{}, error) {
|
||||
func (s *SecretsManager) GetSecrets(ctx context.Context, cfg config.Config) (map[string]interface{}, error) {
|
||||
config.InfoLog("Attempting to read secret from mount '%s' at path '%s'", cfg.VaultSecretsManagerID, cfg.VaultPath)
|
||||
secret, err := s.Client.Secrets.KvV2Read(s.Ctx, cfg.VaultPath, vault.WithMountPath(cfg.VaultSecretsManagerID))
|
||||
secret, err := s.Client.Secrets.KvV2Read(ctx, cfg.VaultPath, vault.WithMountPath(cfg.VaultSecretsManagerID))
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("failed to read secret from vault: %w", err)
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue