Skip to content

Commit a2c3e27

Browse files
committed
*: Add lots of Context and options arguments
Catching up with the vendored client library bump. There are a handful of context.TODO() where I have to wrap a modern function to fit into a legacy lister interface like: $ grep ^func vendor/github.com/openshift/client-go/config/listers/config/v1/clusterversion.go func NewClusterVersionLister(indexer cache.Indexer) ClusterVersionLister { func (s *clusterVersionLister) List(selector labels.Selector) (ret []*v1.ClusterVersion, err error) { func (s *clusterVersionLister) Get(name string) (*v1.ClusterVersion, error) { I imagine we'll be able to drop the TODO and dummyContextOperatorGetter and such in some future vendor bump.
1 parent fb84815 commit a2c3e27

29 files changed

+369
-296
lines changed

hack/test-prerequisites.go

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package main
22

33
import (
4+
"context"
45
"io/ioutil"
56
"log"
67
"time"
@@ -9,12 +10,14 @@ import (
910
v1beta1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1"
1011
apiext "k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset"
1112
"k8s.io/apimachinery/pkg/api/errors"
13+
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
1214
"k8s.io/apimachinery/pkg/util/wait"
1315
"k8s.io/client-go/tools/clientcmd"
1416
)
1517

1618
// main installs the CV CRD to a cluster for integration testing.
1719
func main() {
20+
ctx := context.Background()
1821
log.SetFlags(0)
1922
kcfg := clientcmd.NewNonInteractiveDeferredLoadingClientConfig(clientcmd.NewDefaultClientConfigLoadingRules(), &clientcmd.ConfigOverrides{})
2023
cfg, err := kcfg.ClientConfig()
@@ -38,7 +41,7 @@ func main() {
3841
log.Fatalf("Unable to parse CRD %s: %v", path, err)
3942
}
4043
name = crd.Name
41-
_, err = client.ApiextensionsV1beta1().CustomResourceDefinitions().Create(&crd)
44+
_, err = client.ApiextensionsV1beta1().CustomResourceDefinitions().Create(ctx, &crd, metav1.CreateOptions{})
4245
if errors.IsAlreadyExists(err) {
4346
return true, nil
4447
}

lib/resourceapply/apiext.go

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package resourceapply
22

33
import (
4+
"context"
5+
46
"github.com/openshift/cluster-version-operator/lib/resourcemerge"
57
apiextv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
68
apiextv1beta1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1"
@@ -12,10 +14,10 @@ import (
1214
"k8s.io/utils/pointer"
1315
)
1416

15-
func ApplyCustomResourceDefinitionV1beta1(client apiextclientv1beta1.CustomResourceDefinitionsGetter, required *apiextv1beta1.CustomResourceDefinition) (*apiextv1beta1.CustomResourceDefinition, bool, error) {
16-
existing, err := client.CustomResourceDefinitions().Get(required.Name, metav1.GetOptions{})
17+
func ApplyCustomResourceDefinitionV1beta1(ctx context.Context, client apiextclientv1beta1.CustomResourceDefinitionsGetter, required *apiextv1beta1.CustomResourceDefinition) (*apiextv1beta1.CustomResourceDefinition, bool, error) {
18+
existing, err := client.CustomResourceDefinitions().Get(ctx, required.Name, metav1.GetOptions{})
1719
if apierrors.IsNotFound(err) {
18-
actual, err := client.CustomResourceDefinitions().Create(required)
20+
actual, err := client.CustomResourceDefinitions().Create(ctx, required, metav1.CreateOptions{})
1921
return actual, true, err
2022
}
2123
if err != nil {
@@ -34,14 +36,14 @@ func ApplyCustomResourceDefinitionV1beta1(client apiextclientv1beta1.CustomResou
3436

3537
klog.V(2).Infof("Updating CRD %s", required.Name)
3638

37-
actual, err := client.CustomResourceDefinitions().Update(existing)
39+
actual, err := client.CustomResourceDefinitions().Update(ctx, existing, metav1.UpdateOptions{})
3840
return actual, true, err
3941
}
4042

41-
func ApplyCustomResourceDefinitionV1(client apiextclientv1.CustomResourceDefinitionsGetter, required *apiextv1.CustomResourceDefinition) (*apiextv1.CustomResourceDefinition, bool, error) {
42-
existing, err := client.CustomResourceDefinitions().Get(required.Name, metav1.GetOptions{})
43+
func ApplyCustomResourceDefinitionV1(ctx context.Context, client apiextclientv1.CustomResourceDefinitionsGetter, required *apiextv1.CustomResourceDefinition) (*apiextv1.CustomResourceDefinition, bool, error) {
44+
existing, err := client.CustomResourceDefinitions().Get(ctx, required.Name, metav1.GetOptions{})
4345
if apierrors.IsNotFound(err) {
44-
actual, err := client.CustomResourceDefinitions().Create(required)
46+
actual, err := client.CustomResourceDefinitions().Create(ctx, required, metav1.CreateOptions{})
4547
return actual, true, err
4648
}
4749
if err != nil {
@@ -60,6 +62,6 @@ func ApplyCustomResourceDefinitionV1(client apiextclientv1.CustomResourceDefinit
6062

6163
klog.V(2).Infof("Updating CRD %s", required.Name)
6264

63-
actual, err := client.CustomResourceDefinitions().Update(existing)
65+
actual, err := client.CustomResourceDefinitions().Update(ctx, existing, metav1.UpdateOptions{})
6466
return actual, true, err
6567
}

lib/resourceapply/apireg.go

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package resourceapply
22

33
import (
4+
"context"
5+
46
"github.com/openshift/cluster-version-operator/lib/resourcemerge"
57
apierrors "k8s.io/apimachinery/pkg/api/errors"
68
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
@@ -9,10 +11,10 @@ import (
911
"k8s.io/utils/pointer"
1012
)
1113

12-
func ApplyAPIService(client apiregclientv1.APIServicesGetter, required *apiregv1.APIService) (*apiregv1.APIService, bool, error) {
13-
existing, err := client.APIServices().Get(required.Name, metav1.GetOptions{})
14+
func ApplyAPIService(ctx context.Context, client apiregclientv1.APIServicesGetter, required *apiregv1.APIService) (*apiregv1.APIService, bool, error) {
15+
existing, err := client.APIServices().Get(ctx, required.Name, metav1.GetOptions{})
1416
if apierrors.IsNotFound(err) {
15-
actual, err := client.APIServices().Create(required)
17+
actual, err := client.APIServices().Create(ctx, required, metav1.CreateOptions{})
1618
return actual, true, err
1719
}
1820
if err != nil {
@@ -29,6 +31,6 @@ func ApplyAPIService(client apiregclientv1.APIServicesGetter, required *apiregv1
2931
return existing, false, nil
3032
}
3133

32-
actual, err := client.APIServices().Update(existing)
34+
actual, err := client.APIServices().Update(ctx, existing, metav1.UpdateOptions{})
3335
return actual, true, err
3436
}

lib/resourceapply/apps.go

Lines changed: 16 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package resourceapply
22

33
import (
4+
"context"
5+
46
"github.com/openshift/cluster-version-operator/lib/resourcemerge"
57
appsv1 "k8s.io/api/apps/v1"
68
apierrors "k8s.io/apimachinery/pkg/api/errors"
@@ -11,10 +13,10 @@ import (
1113
)
1214

1315
// ApplyDeployment applies the required deployment to the cluster.
14-
func ApplyDeployment(client appsclientv1.DeploymentsGetter, required *appsv1.Deployment) (*appsv1.Deployment, bool, error) {
15-
existing, err := client.Deployments(required.Namespace).Get(required.Name, metav1.GetOptions{})
16+
func ApplyDeployment(ctx context.Context, client appsclientv1.DeploymentsGetter, required *appsv1.Deployment) (*appsv1.Deployment, bool, error) {
17+
existing, err := client.Deployments(required.Namespace).Get(ctx, required.Name, metav1.GetOptions{})
1618
if apierrors.IsNotFound(err) {
17-
actual, err := client.Deployments(required.Namespace).Create(required)
19+
actual, err := client.Deployments(required.Namespace).Create(ctx, required, metav1.CreateOptions{})
1820
return actual, true, err
1921
}
2022
if err != nil {
@@ -31,15 +33,15 @@ func ApplyDeployment(client appsclientv1.DeploymentsGetter, required *appsv1.Dep
3133
return existing, false, nil
3234
}
3335

34-
actual, err := client.Deployments(required.Namespace).Update(existing)
36+
actual, err := client.Deployments(required.Namespace).Update(ctx, existing, metav1.UpdateOptions{})
3537
return actual, true, err
3638
}
3739

3840
// ApplyDeploymentFromCache applies the required deployment to the cluster.
39-
func ApplyDeploymentFromCache(lister appslisterv1.DeploymentLister, client appsclientv1.DeploymentsGetter, required *appsv1.Deployment) (*appsv1.Deployment, bool, error) {
41+
func ApplyDeploymentFromCache(ctx context.Context, lister appslisterv1.DeploymentLister, client appsclientv1.DeploymentsGetter, required *appsv1.Deployment) (*appsv1.Deployment, bool, error) {
4042
existing, err := lister.Deployments(required.Namespace).Get(required.Name)
4143
if apierrors.IsNotFound(err) {
42-
actual, err := client.Deployments(required.Namespace).Create(required)
44+
actual, err := client.Deployments(required.Namespace).Create(ctx, required, metav1.CreateOptions{})
4345
return actual, true, err
4446
}
4547
if err != nil {
@@ -57,15 +59,15 @@ func ApplyDeploymentFromCache(lister appslisterv1.DeploymentLister, client appsc
5759
return existing, false, nil
5860
}
5961

60-
actual, err := client.Deployments(required.Namespace).Update(existing)
62+
actual, err := client.Deployments(required.Namespace).Update(ctx, existing, metav1.UpdateOptions{})
6163
return actual, true, err
6264
}
6365

6466
// ApplyDaemonSet applies the required daemonset to the cluster.
65-
func ApplyDaemonSet(client appsclientv1.DaemonSetsGetter, required *appsv1.DaemonSet) (*appsv1.DaemonSet, bool, error) {
66-
existing, err := client.DaemonSets(required.Namespace).Get(required.Name, metav1.GetOptions{})
67+
func ApplyDaemonSet(ctx context.Context, client appsclientv1.DaemonSetsGetter, required *appsv1.DaemonSet) (*appsv1.DaemonSet, bool, error) {
68+
existing, err := client.DaemonSets(required.Namespace).Get(ctx, required.Name, metav1.GetOptions{})
6769
if apierrors.IsNotFound(err) {
68-
actual, err := client.DaemonSets(required.Namespace).Create(required)
70+
actual, err := client.DaemonSets(required.Namespace).Create(ctx, required, metav1.CreateOptions{})
6971
return actual, true, err
7072
}
7173
if err != nil {
@@ -82,15 +84,15 @@ func ApplyDaemonSet(client appsclientv1.DaemonSetsGetter, required *appsv1.Daemo
8284
return existing, false, nil
8385
}
8486

85-
actual, err := client.DaemonSets(required.Namespace).Update(existing)
87+
actual, err := client.DaemonSets(required.Namespace).Update(ctx, existing, metav1.UpdateOptions{})
8688
return actual, true, err
8789
}
8890

8991
// ApplyDaemonSetFromCache applies the required deployment to the cluster.
90-
func ApplyDaemonSetFromCache(lister appslisterv1.DaemonSetLister, client appsclientv1.DaemonSetsGetter, required *appsv1.DaemonSet) (*appsv1.DaemonSet, bool, error) {
92+
func ApplyDaemonSetFromCache(ctx context.Context, lister appslisterv1.DaemonSetLister, client appsclientv1.DaemonSetsGetter, required *appsv1.DaemonSet) (*appsv1.DaemonSet, bool, error) {
9193
existing, err := lister.DaemonSets(required.Namespace).Get(required.Name)
9294
if apierrors.IsNotFound(err) {
93-
actual, err := client.DaemonSets(required.Namespace).Create(required)
95+
actual, err := client.DaemonSets(required.Namespace).Create(ctx, required, metav1.CreateOptions{})
9496
return actual, true, err
9597
}
9698
if err != nil {
@@ -108,6 +110,6 @@ func ApplyDaemonSetFromCache(lister appslisterv1.DaemonSetLister, client appscli
108110
return existing, false, nil
109111
}
110112

111-
actual, err := client.DaemonSets(required.Namespace).Update(existing)
113+
actual, err := client.DaemonSets(required.Namespace).Update(ctx, existing, metav1.UpdateOptions{})
112114
return actual, true, err
113115
}

lib/resourceapply/batch.go

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package resourceapply
22

33
import (
4+
"context"
5+
46
"github.com/openshift/cluster-version-operator/lib/resourcemerge"
57
batchv1 "k8s.io/api/batch/v1"
68
apierrors "k8s.io/apimachinery/pkg/api/errors"
@@ -10,10 +12,10 @@ import (
1012
)
1113

1214
// ApplyJob applies the required Job to the cluster.
13-
func ApplyJob(client batchclientv1.JobsGetter, required *batchv1.Job) (*batchv1.Job, bool, error) {
14-
existing, err := client.Jobs(required.Namespace).Get(required.Name, metav1.GetOptions{})
15+
func ApplyJob(ctx context.Context, client batchclientv1.JobsGetter, required *batchv1.Job) (*batchv1.Job, bool, error) {
16+
existing, err := client.Jobs(required.Namespace).Get(ctx, required.Name, metav1.GetOptions{})
1517
if apierrors.IsNotFound(err) {
16-
actual, err := client.Jobs(required.Namespace).Create(required)
18+
actual, err := client.Jobs(required.Namespace).Create(ctx, required, metav1.CreateOptions{})
1719
return actual, true, err
1820
}
1921
if err != nil {
@@ -30,6 +32,6 @@ func ApplyJob(client batchclientv1.JobsGetter, required *batchv1.Job) (*batchv1.
3032
return existing, false, nil
3133
}
3234

33-
actual, err := client.Jobs(required.Namespace).Update(existing)
35+
actual, err := client.Jobs(required.Namespace).Update(ctx, existing, metav1.UpdateOptions{})
3436
return actual, true, err
3537
}

lib/resourceapply/core.go

Lines changed: 18 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package resourceapply
22

33
import (
4+
"context"
5+
46
corev1 "k8s.io/api/core/v1"
57
"k8s.io/apimachinery/pkg/api/equality"
68
apierrors "k8s.io/apimachinery/pkg/api/errors"
@@ -12,10 +14,10 @@ import (
1214
)
1315

1416
// ApplyNamespace merges objectmeta, does not worry about anything else
15-
func ApplyNamespace(client coreclientv1.NamespacesGetter, required *corev1.Namespace) (*corev1.Namespace, bool, error) {
16-
existing, err := client.Namespaces().Get(required.Name, metav1.GetOptions{})
17+
func ApplyNamespace(ctx context.Context, client coreclientv1.NamespacesGetter, required *corev1.Namespace) (*corev1.Namespace, bool, error) {
18+
existing, err := client.Namespaces().Get(ctx, required.Name, metav1.GetOptions{})
1719
if apierrors.IsNotFound(err) {
18-
actual, err := client.Namespaces().Create(required)
20+
actual, err := client.Namespaces().Create(ctx, required, metav1.CreateOptions{})
1921
return actual, true, err
2022
}
2123
if err != nil {
@@ -32,17 +34,17 @@ func ApplyNamespace(client coreclientv1.NamespacesGetter, required *corev1.Names
3234
return existing, false, nil
3335
}
3436

35-
actual, err := client.Namespaces().Update(existing)
37+
actual, err := client.Namespaces().Update(ctx, existing, metav1.UpdateOptions{})
3638
return actual, true, err
3739
}
3840

3941
// ApplyService merges objectmeta and requires
4042
// TODO, since this cannot determine whether changes are due to legitimate actors (api server) or illegitimate ones (users), we cannot update
4143
// TODO I've special cased the selector for now
42-
func ApplyService(client coreclientv1.ServicesGetter, required *corev1.Service) (*corev1.Service, bool, error) {
43-
existing, err := client.Services(required.Namespace).Get(required.Name, metav1.GetOptions{})
44+
func ApplyService(ctx context.Context, client coreclientv1.ServicesGetter, required *corev1.Service) (*corev1.Service, bool, error) {
45+
existing, err := client.Services(required.Namespace).Get(ctx, required.Name, metav1.GetOptions{})
4446
if apierrors.IsNotFound(err) {
45-
actual, err := client.Services(required.Namespace).Create(required)
47+
actual, err := client.Services(required.Namespace).Create(ctx, required, metav1.CreateOptions{})
4648
return actual, true, err
4749
}
4850
if err != nil {
@@ -65,15 +67,15 @@ func ApplyService(client coreclientv1.ServicesGetter, required *corev1.Service)
6567
existing.Spec.Selector = required.Spec.Selector
6668
existing.Spec.Type = required.Spec.Type // if this is different, the update will fail. Status will indicate it.
6769

68-
actual, err := client.Services(required.Namespace).Update(existing)
70+
actual, err := client.Services(required.Namespace).Update(ctx, existing, metav1.UpdateOptions{})
6971
return actual, true, err
7072
}
7173

7274
// ApplyServiceAccount applies the required serviceaccount to the cluster.
73-
func ApplyServiceAccount(client coreclientv1.ServiceAccountsGetter, required *corev1.ServiceAccount) (*corev1.ServiceAccount, bool, error) {
74-
existing, err := client.ServiceAccounts(required.Namespace).Get(required.Name, metav1.GetOptions{})
75+
func ApplyServiceAccount(ctx context.Context, client coreclientv1.ServiceAccountsGetter, required *corev1.ServiceAccount) (*corev1.ServiceAccount, bool, error) {
76+
existing, err := client.ServiceAccounts(required.Namespace).Get(ctx, required.Name, metav1.GetOptions{})
7577
if apierrors.IsNotFound(err) {
76-
actual, err := client.ServiceAccounts(required.Namespace).Create(required)
78+
actual, err := client.ServiceAccounts(required.Namespace).Create(ctx, required, metav1.CreateOptions{})
7779
return actual, true, err
7880
}
7981
if err != nil {
@@ -90,15 +92,15 @@ func ApplyServiceAccount(client coreclientv1.ServiceAccountsGetter, required *co
9092
return existing, false, nil
9193
}
9294

93-
actual, err := client.ServiceAccounts(required.Namespace).Update(existing)
95+
actual, err := client.ServiceAccounts(required.Namespace).Update(ctx, existing, metav1.UpdateOptions{})
9496
return actual, true, err
9597
}
9698

9799
// ApplyConfigMap applies the required serviceaccount to the cluster.
98-
func ApplyConfigMap(client coreclientv1.ConfigMapsGetter, required *corev1.ConfigMap) (*corev1.ConfigMap, bool, error) {
99-
existing, err := client.ConfigMaps(required.Namespace).Get(required.Name, metav1.GetOptions{})
100+
func ApplyConfigMap(ctx context.Context, client coreclientv1.ConfigMapsGetter, required *corev1.ConfigMap) (*corev1.ConfigMap, bool, error) {
101+
existing, err := client.ConfigMaps(required.Namespace).Get(ctx, required.Name, metav1.GetOptions{})
100102
if apierrors.IsNotFound(err) {
101-
actual, err := client.ConfigMaps(required.Namespace).Create(required)
103+
actual, err := client.ConfigMaps(required.Namespace).Create(ctx, required, metav1.CreateOptions{})
102104
return actual, true, err
103105
}
104106
if err != nil {
@@ -115,6 +117,6 @@ func ApplyConfigMap(client coreclientv1.ConfigMapsGetter, required *corev1.Confi
115117
return existing, false, nil
116118
}
117119

118-
actual, err := client.ConfigMaps(required.Namespace).Update(existing)
120+
actual, err := client.ConfigMaps(required.Namespace).Update(ctx, existing, metav1.UpdateOptions{})
119121
return actual, true, err
120122
}

lib/resourceapply/cv.go

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package resourceapply
22

33
import (
4+
"context"
5+
46
configv1 "github.com/openshift/api/config/v1"
57
configclientv1 "github.com/openshift/client-go/config/clientset/versioned/typed/config/v1"
68
configlistersv1 "github.com/openshift/client-go/config/listers/config/v1"
@@ -10,10 +12,10 @@ import (
1012
"k8s.io/utils/pointer"
1113
)
1214

13-
func ApplyClusterVersion(client configclientv1.ClusterVersionsGetter, required *configv1.ClusterVersion) (*configv1.ClusterVersion, bool, error) {
14-
existing, err := client.ClusterVersions().Get(required.Name, metav1.GetOptions{})
15+
func ApplyClusterVersion(ctx context.Context, client configclientv1.ClusterVersionsGetter, required *configv1.ClusterVersion) (*configv1.ClusterVersion, bool, error) {
16+
existing, err := client.ClusterVersions().Get(ctx, required.Name, metav1.GetOptions{})
1517
if errors.IsNotFound(err) {
16-
actual, err := client.ClusterVersions().Create(required)
18+
actual, err := client.ClusterVersions().Create(ctx, required, metav1.CreateOptions{})
1719
return actual, true, err
1820
}
1921
if err != nil {
@@ -30,14 +32,14 @@ func ApplyClusterVersion(client configclientv1.ClusterVersionsGetter, required *
3032
return existing, false, nil
3133
}
3234

33-
actual, err := client.ClusterVersions().Update(existing)
35+
actual, err := client.ClusterVersions().Update(ctx, existing, metav1.UpdateOptions{})
3436
return actual, true, err
3537
}
3638

37-
func ApplyClusterVersionFromCache(lister configlistersv1.ClusterVersionLister, client configclientv1.ClusterVersionsGetter, required *configv1.ClusterVersion) (*configv1.ClusterVersion, bool, error) {
39+
func ApplyClusterVersionFromCache(ctx context.Context, lister configlistersv1.ClusterVersionLister, client configclientv1.ClusterVersionsGetter, required *configv1.ClusterVersion) (*configv1.ClusterVersion, bool, error) {
3840
obj, err := lister.Get(required.Name)
3941
if errors.IsNotFound(err) {
40-
actual, err := client.ClusterVersions().Create(required)
42+
actual, err := client.ClusterVersions().Create(ctx, required, metav1.CreateOptions{})
4143
return actual, true, err
4244
}
4345
if err != nil {
@@ -56,6 +58,6 @@ func ApplyClusterVersionFromCache(lister configlistersv1.ClusterVersionLister, c
5658
return existing, false, nil
5759
}
5860

59-
actual, err := client.ClusterVersions().Update(existing)
61+
actual, err := client.ClusterVersions().Update(ctx, existing, metav1.UpdateOptions{})
6062
return actual, true, err
6163
}

0 commit comments

Comments
 (0)