From a69dc902c467e02781a23661d2743b57af824caa Mon Sep 17 00:00:00 2001 From: justinsb Date: Fri, 23 Dec 2022 10:47:48 -0500 Subject: [PATCH] Add context to GetOrCreateSecret Continuing the wiring as needed. --- cmd/kops/create_secret_ciliumpassword.go | 2 +- cmd/kops/create_secret_dockerconfig.go | 2 +- cmd/kops/create_secret_encryptionconfig.go | 2 +- cmd/kops/create_secret_weavepassword.go | 2 +- pkg/configserver/secretstore.go | 2 +- upup/pkg/fi/fitasks/secret.go | 4 +++- upup/pkg/fi/secrets.go | 2 +- upup/pkg/fi/secrets/clientset_secretstore.go | 4 +--- upup/pkg/fi/secrets/vfs_secretstore.go | 4 +--- 9 files changed, 11 insertions(+), 13 deletions(-) diff --git a/cmd/kops/create_secret_ciliumpassword.go b/cmd/kops/create_secret_ciliumpassword.go index edc4375678..972031e74a 100644 --- a/cmd/kops/create_secret_ciliumpassword.go +++ b/cmd/kops/create_secret_ciliumpassword.go @@ -125,7 +125,7 @@ func RunCreateSecretCiliumEncryptionConfig(ctx context.Context, f commandutils.F } if !options.Force { - _, created, err := secretStore.GetOrCreateSecret("ciliumpassword", secret) + _, created, err := secretStore.GetOrCreateSecret(ctx, "ciliumpassword", secret) if err != nil { return fmt.Errorf("error adding Cilium IPSec secret: %v", err) } diff --git a/cmd/kops/create_secret_dockerconfig.go b/cmd/kops/create_secret_dockerconfig.go index 5f0a038ca6..de803c5336 100644 --- a/cmd/kops/create_secret_dockerconfig.go +++ b/cmd/kops/create_secret_dockerconfig.go @@ -130,7 +130,7 @@ func RunCreateSecretDockerConfig(ctx context.Context, f commandutils.Factory, ou } if !options.Force { - _, created, err := secretStore.GetOrCreateSecret("dockerconfig", secret) + _, created, err := secretStore.GetOrCreateSecret(ctx, "dockerconfig", secret) if err != nil { return fmt.Errorf("adding dockerconfig secret: %v", err) } diff --git a/cmd/kops/create_secret_encryptionconfig.go b/cmd/kops/create_secret_encryptionconfig.go index c306d623af..2d7c13167e 100644 --- a/cmd/kops/create_secret_encryptionconfig.go +++ b/cmd/kops/create_secret_encryptionconfig.go @@ -123,7 +123,7 @@ func RunCreateSecretEncryptionConfig(ctx context.Context, f commandutils.Factory } if !options.Force { - _, created, err := secretStore.GetOrCreateSecret("encryptionconfig", secret) + _, created, err := secretStore.GetOrCreateSecret(ctx, "encryptionconfig", secret) if err != nil { return fmt.Errorf("adding encryptionconfig secret: %v", err) } diff --git a/cmd/kops/create_secret_weavepassword.go b/cmd/kops/create_secret_weavepassword.go index c2aeebc968..e9281b36de 100644 --- a/cmd/kops/create_secret_weavepassword.go +++ b/cmd/kops/create_secret_weavepassword.go @@ -127,7 +127,7 @@ func RunCreateSecretWeavePassword(ctx context.Context, f commandutils.Factory, o } if !options.Force { - _, created, err := secretStore.GetOrCreateSecret("weavepassword", secret) + _, created, err := secretStore.GetOrCreateSecret(ctx, "weavepassword", secret) if err != nil { return fmt.Errorf("adding weavepassword secret: %v", err) } diff --git a/pkg/configserver/secretstore.go b/pkg/configserver/secretstore.go index 093fcdbb17..641717995b 100644 --- a/pkg/configserver/secretstore.go +++ b/pkg/configserver/secretstore.go @@ -65,7 +65,7 @@ func (s *configserverSecretStore) FindSecret(id string) (*fi.Secret, error) { } // GetOrCreateSecret implements fi.SecretStore -func (s *configserverSecretStore) GetOrCreateSecret(id string, secret *fi.Secret) (current *fi.Secret, created bool, err error) { +func (s *configserverSecretStore) GetOrCreateSecret(ctx context.Context, id string, secret *fi.Secret) (current *fi.Secret, created bool, err error) { return nil, false, fmt.Errorf("GetOrCreateSecret not supported by configserverSecretStore") } diff --git a/upup/pkg/fi/fitasks/secret.go b/upup/pkg/fi/fitasks/secret.go index 33b02e9004..69f1c70a71 100644 --- a/upup/pkg/fi/fitasks/secret.go +++ b/upup/pkg/fi/fitasks/secret.go @@ -75,6 +75,8 @@ func (s *Secret) CheckChanges(a, e, changes *Secret) error { } func (_ *Secret) Render(c *fi.CloudupContext, a, e, changes *Secret) error { + ctx := c.Context() + name := fi.ValueOf(e.Name) if name == "" { return fi.RequiredField("Name") @@ -87,7 +89,7 @@ func (_ *Secret) Render(c *fi.CloudupContext, a, e, changes *Secret) error { return fmt.Errorf("error creating secret %q: %v", name, err) } - _, _, err = secrets.GetOrCreateSecret(name, secret) + _, _, err = secrets.GetOrCreateSecret(ctx, name, secret) if err != nil { return fmt.Errorf("error creating secret %q: %v", name, err) } diff --git a/upup/pkg/fi/secrets.go b/upup/pkg/fi/secrets.go index 8d7d22ec77..38f8976557 100644 --- a/upup/pkg/fi/secrets.go +++ b/upup/pkg/fi/secrets.go @@ -34,7 +34,7 @@ type SecretStore interface { // FindSecret finds a secret, if exists. Returns nil,nil if not found FindSecret(id string) (*Secret, error) // GetOrCreateSecret creates a secret - GetOrCreateSecret(id string, secret *Secret) (current *Secret, created bool, err error) + GetOrCreateSecret(ctx context.Context, id string, secret *Secret) (current *Secret, created bool, err error) // ReplaceSecret will forcefully update an existing secret if it exists ReplaceSecret(id string, secret *Secret) (current *Secret, err error) // ListSecrets lists the ids of all known secrets diff --git a/upup/pkg/fi/secrets/clientset_secretstore.go b/upup/pkg/fi/secrets/clientset_secretstore.go index 0f48096db8..631b79daff 100644 --- a/upup/pkg/fi/secrets/clientset_secretstore.go +++ b/upup/pkg/fi/secrets/clientset_secretstore.go @@ -171,9 +171,7 @@ func (c *ClientsetSecretStore) DeleteSecret(name string) error { } // GetOrCreateSecret implements fi.SecretStore::GetOrCreateSecret -func (c *ClientsetSecretStore) GetOrCreateSecret(name string, secret *fi.Secret) (*fi.Secret, bool, error) { - ctx := context.TODO() - +func (c *ClientsetSecretStore) GetOrCreateSecret(ctx context.Context, name string, secret *fi.Secret) (*fi.Secret, bool, error) { for i := 0; i < 2; i++ { s, err := c.FindSecret(name) if err != nil { diff --git a/upup/pkg/fi/secrets/vfs_secretstore.go b/upup/pkg/fi/secrets/vfs_secretstore.go index d3130a2440..eb1ae9515d 100644 --- a/upup/pkg/fi/secrets/vfs_secretstore.go +++ b/upup/pkg/fi/secrets/vfs_secretstore.go @@ -139,9 +139,7 @@ func (c *VFSSecretStore) Secret(id string) (*fi.Secret, error) { return s, nil } -func (c *VFSSecretStore) GetOrCreateSecret(id string, secret *fi.Secret) (*fi.Secret, bool, error) { - ctx := context.TODO() - +func (c *VFSSecretStore) GetOrCreateSecret(ctx context.Context, id string, secret *fi.Secret) (*fi.Secret, bool, error) { p := c.buildSecretPath(id) for i := 0; i < 2; i++ {