From 61a580868017ca4749f4599b990e683d93c62242 Mon Sep 17 00:00:00 2001 From: Jared Ledvina Date: Fri, 7 May 2021 15:03:42 -0400 Subject: [PATCH] k8s-backend - Initial context support for library update Signed-off-by: Jared Ledvina --- .../remote-state/kubernetes/backend_state.go | 2 ++ .../remote-state/kubernetes/backend_test.go | 12 +++++---- .../backend/remote-state/kubernetes/client.go | 27 ++++++++++--------- 3 files changed, 24 insertions(+), 17 deletions(-) diff --git a/internal/backend/remote-state/kubernetes/backend_state.go b/internal/backend/remote-state/kubernetes/backend_state.go index e99b4c1be6..56aa089ff8 100644 --- a/internal/backend/remote-state/kubernetes/backend_state.go +++ b/internal/backend/remote-state/kubernetes/backend_state.go @@ -1,6 +1,7 @@ package kubernetes import ( + "context" "errors" "fmt" "sort" @@ -21,6 +22,7 @@ func (b *Backend) Workspaces() ([]string, error) { } secrets, err := secretClient.List( + context.Background(), metav1.ListOptions{ LabelSelector: tfstateKey + "=true", }, diff --git a/internal/backend/remote-state/kubernetes/backend_test.go b/internal/backend/remote-state/kubernetes/backend_test.go index 7f0786c72c..e24689f0fb 100644 --- a/internal/backend/remote-state/kubernetes/backend_test.go +++ b/internal/backend/remote-state/kubernetes/backend_test.go @@ -1,6 +1,7 @@ package kubernetes import ( + "context" "fmt" "math/rand" "os" @@ -124,6 +125,7 @@ func TestBackendLocksSoak(t *testing.T) { } func cleanupK8sResources(t *testing.T) { + ctx := context.Background() // Get a backend to use the k8s client b1 := backend.TestBackendConfig(t, New(), backend.TestWrapConfig(map[string]interface{}{ "secret_suffix": secretSuffix, @@ -138,13 +140,13 @@ func cleanupK8sResources(t *testing.T) { // Delete secrets opts := metav1.ListOptions{LabelSelector: tfstateKey + "=true"} - secrets, err := sClient.List(opts) + secrets, err := sClient.List(ctx, opts) if err != nil { t.Fatal(err) } delProp := metav1.DeletePropagationBackground - delOps := &metav1.DeleteOptions{PropagationPolicy: &delProp} + delOps := metav1.DeleteOptions{PropagationPolicy: &delProp} var errs []error for _, secret := range secrets.Items { @@ -155,7 +157,7 @@ func cleanupK8sResources(t *testing.T) { } if key == secretSuffix { - err = sClient.Delete(secret.GetName(), delOps) + err = sClient.Delete(ctx, secret.GetName(), delOps) if err != nil { errs = append(errs, err) } @@ -168,7 +170,7 @@ func cleanupK8sResources(t *testing.T) { } // Delete leases - leases, err := leaseClient.List(opts) + leases, err := leaseClient.List(ctx, opts) if err != nil { t.Fatal(err) } @@ -181,7 +183,7 @@ func cleanupK8sResources(t *testing.T) { } if key == secretSuffix { - err = leaseClient.Delete(lease.GetName(), delOps) + err = leaseClient.Delete(ctx, lease.GetName(), delOps) if err != nil { errs = append(errs, err) } diff --git a/internal/backend/remote-state/kubernetes/client.go b/internal/backend/remote-state/kubernetes/client.go index 137450c061..12447c36e0 100644 --- a/internal/backend/remote-state/kubernetes/client.go +++ b/internal/backend/remote-state/kubernetes/client.go @@ -3,6 +3,7 @@ package kubernetes import ( "bytes" "compress/gzip" + "context" "crypto/md5" "encoding/base64" "encoding/json" @@ -46,7 +47,7 @@ func (c *RemoteClient) Get() (payload *remote.Payload, err error) { if err != nil { return nil, err } - secret, err := c.kubernetesSecretClient.Get(secretName, metav1.GetOptions{}) + secret, err := c.kubernetesSecretClient.Get(context.Background(), secretName, metav1.GetOptions{}) if err != nil { if k8serrors.IsNotFound(err) { return nil, nil @@ -78,6 +79,7 @@ func (c *RemoteClient) Get() (payload *remote.Payload, err error) { } func (c *RemoteClient) Put(data []byte) error { + ctx := context.Background() secretName, err := c.createSecretName() if err != nil { return err @@ -105,14 +107,14 @@ func (c *RemoteClient) Put(data []byte) error { }, } - secret, err = c.kubernetesSecretClient.Create(secret, metav1.CreateOptions{}) + secret, err = c.kubernetesSecretClient.Create(ctx, secret, metav1.CreateOptions{}) if err != nil { return err } } setState(secret, payload) - _, err = c.kubernetesSecretClient.Update(secret, metav1.UpdateOptions{}) + _, err = c.kubernetesSecretClient.Update(ctx, secret, metav1.UpdateOptions{}) return err } @@ -145,6 +147,7 @@ func (c *RemoteClient) Delete() error { } func (c *RemoteClient) Lock(info *statemgr.LockInfo) (string, error) { + ctx := context.Background() leaseName, err := c.createLeaseName() if err != nil { return "", err @@ -170,7 +173,7 @@ func (c *RemoteClient) Lock(info *statemgr.LockInfo) (string, error) { }, } - _, err = c.kubernetesLeaseClient.Create(lease) + _, err = c.kubernetesLeaseClient.Create(ctx, lease, metav1.CreateOptions{}) if err != nil { return "", err } else { @@ -197,7 +200,7 @@ func (c *RemoteClient) Lock(info *statemgr.LockInfo) (string, error) { lease.Spec.HolderIdentity = pointer.StringPtr(info.ID) setLockInfo(lease, info.Marshal()) - _, err = c.kubernetesLeaseClient.Update(lease) + _, err = c.kubernetesLeaseClient.Update(ctx, lease, metav1.UpdateOptions{}) if err != nil { return "", err } @@ -234,7 +237,7 @@ func (c *RemoteClient) Unlock(id string) error { lease.Spec.HolderIdentity = nil removeLockInfo(lease) - _, err = c.kubernetesLeaseClient.Update(lease) + _, err = c.kubernetesLeaseClient.Update(context.Background(), lease, metav1.UpdateOptions{}) if err != nil { lockErr.Err = err return lockErr @@ -276,11 +279,11 @@ func (c *RemoteClient) getLabels() map[string]string { } func (c *RemoteClient) getSecret(name string) (*unstructured.Unstructured, error) { - return c.kubernetesSecretClient.Get(name, metav1.GetOptions{}) + return c.kubernetesSecretClient.Get(context.Background(), name, metav1.GetOptions{}) } func (c *RemoteClient) getLease(name string) (*coordinationv1.Lease, error) { - return c.kubernetesLeaseClient.Get(name, metav1.GetOptions{}) + return c.kubernetesLeaseClient.Get(context.Background(), name, metav1.GetOptions{}) } func (c *RemoteClient) deleteSecret(name string) error { @@ -296,8 +299,8 @@ func (c *RemoteClient) deleteSecret(name string) error { } delProp := metav1.DeletePropagationBackground - delOps := &metav1.DeleteOptions{PropagationPolicy: &delProp} - return c.kubernetesSecretClient.Delete(name, delOps) + delOps := metav1.DeleteOptions{PropagationPolicy: &delProp} + return c.kubernetesSecretClient.Delete(context.Background(), name, delOps) } func (c *RemoteClient) deleteLease(name string) error { @@ -313,8 +316,8 @@ func (c *RemoteClient) deleteLease(name string) error { } delProp := metav1.DeletePropagationBackground - delOps := &metav1.DeleteOptions{PropagationPolicy: &delProp} - return c.kubernetesLeaseClient.Delete(name, delOps) + delOps := metav1.DeleteOptions{PropagationPolicy: &delProp} + return c.kubernetesLeaseClient.Delete(context.Background(), name, delOps) } func (c *RemoteClient) createSecretName() (string, error) {