Skip to content

Commit

Permalink
*: Add lots of Context and options arguments
Browse files Browse the repository at this point in the history
Catching up with the vendored client library bump.
  • Loading branch information
wking committed Jul 24, 2020
1 parent 7ed0c21 commit 71102d3
Show file tree
Hide file tree
Showing 29 changed files with 367 additions and 294 deletions.
5 changes: 4 additions & 1 deletion hack/test-prerequisites.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package main

import (
"context"
"io/ioutil"
"log"
"time"
Expand All @@ -9,12 +10,14 @@ import (
v1beta1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1"
apiext "k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset"
"k8s.io/apimachinery/pkg/api/errors"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/util/wait"
"k8s.io/client-go/tools/clientcmd"
)

// main installs the CV CRD to a cluster for integration testing.
func main() {
ctx := context.Background()
log.SetFlags(0)
kcfg := clientcmd.NewNonInteractiveDeferredLoadingClientConfig(clientcmd.NewDefaultClientConfigLoadingRules(), &clientcmd.ConfigOverrides{})
cfg, err := kcfg.ClientConfig()
Expand All @@ -38,7 +41,7 @@ func main() {
log.Fatalf("Unable to parse CRD %s: %v", path, err)
}
name = crd.Name
_, err = client.ApiextensionsV1beta1().CustomResourceDefinitions().Create(&crd)
_, err = client.ApiextensionsV1beta1().CustomResourceDefinitions().Create(ctx, &crd, metav1.CreateOptions{})
if errors.IsAlreadyExists(err) {
return true, nil
}
Expand Down
18 changes: 10 additions & 8 deletions lib/resourceapply/apiext.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
package resourceapply

import (
"context"

"github.com/openshift/cluster-version-operator/lib/resourcemerge"
apiextv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
apiextv1beta1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1"
Expand All @@ -12,10 +14,10 @@ import (
"k8s.io/utils/pointer"
)

func ApplyCustomResourceDefinitionV1beta1(client apiextclientv1beta1.CustomResourceDefinitionsGetter, required *apiextv1beta1.CustomResourceDefinition) (*apiextv1beta1.CustomResourceDefinition, bool, error) {
existing, err := client.CustomResourceDefinitions().Get(required.Name, metav1.GetOptions{})
func ApplyCustomResourceDefinitionV1beta1(ctx context.Context, client apiextclientv1beta1.CustomResourceDefinitionsGetter, required *apiextv1beta1.CustomResourceDefinition) (*apiextv1beta1.CustomResourceDefinition, bool, error) {
existing, err := client.CustomResourceDefinitions().Get(ctx, required.Name, metav1.GetOptions{})
if apierrors.IsNotFound(err) {
actual, err := client.CustomResourceDefinitions().Create(required)
actual, err := client.CustomResourceDefinitions().Create(ctx, required, metav1.CreateOptions{})
return actual, true, err
}
if err != nil {
Expand All @@ -34,14 +36,14 @@ func ApplyCustomResourceDefinitionV1beta1(client apiextclientv1beta1.CustomResou

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

actual, err := client.CustomResourceDefinitions().Update(existing)
actual, err := client.CustomResourceDefinitions().Update(ctx, existing, metav1.UpdateOptions{})
return actual, true, err
}

func ApplyCustomResourceDefinitionV1(client apiextclientv1.CustomResourceDefinitionsGetter, required *apiextv1.CustomResourceDefinition) (*apiextv1.CustomResourceDefinition, bool, error) {
existing, err := client.CustomResourceDefinitions().Get(required.Name, metav1.GetOptions{})
func ApplyCustomResourceDefinitionV1(ctx context.Context, client apiextclientv1.CustomResourceDefinitionsGetter, required *apiextv1.CustomResourceDefinition) (*apiextv1.CustomResourceDefinition, bool, error) {
existing, err := client.CustomResourceDefinitions().Get(ctx, required.Name, metav1.GetOptions{})
if apierrors.IsNotFound(err) {
actual, err := client.CustomResourceDefinitions().Create(required)
actual, err := client.CustomResourceDefinitions().Create(ctx, required, metav1.CreateOptions{})
return actual, true, err
}
if err != nil {
Expand All @@ -60,6 +62,6 @@ func ApplyCustomResourceDefinitionV1(client apiextclientv1.CustomResourceDefinit

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

actual, err := client.CustomResourceDefinitions().Update(existing)
actual, err := client.CustomResourceDefinitions().Update(ctx, existing, metav1.UpdateOptions{})
return actual, true, err
}
10 changes: 6 additions & 4 deletions lib/resourceapply/apireg.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
package resourceapply

import (
"context"

"github.com/openshift/cluster-version-operator/lib/resourcemerge"
apierrors "k8s.io/apimachinery/pkg/api/errors"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
Expand All @@ -9,10 +11,10 @@ import (
"k8s.io/utils/pointer"
)

func ApplyAPIService(client apiregclientv1.APIServicesGetter, required *apiregv1.APIService) (*apiregv1.APIService, bool, error) {
existing, err := client.APIServices().Get(required.Name, metav1.GetOptions{})
func ApplyAPIService(ctx context.Context, client apiregclientv1.APIServicesGetter, required *apiregv1.APIService) (*apiregv1.APIService, bool, error) {
existing, err := client.APIServices().Get(ctx, required.Name, metav1.GetOptions{})
if apierrors.IsNotFound(err) {
actual, err := client.APIServices().Create(required)
actual, err := client.APIServices().Create(ctx, required, metav1.CreateOptions{})
return actual, true, err
}
if err != nil {
Expand All @@ -29,6 +31,6 @@ func ApplyAPIService(client apiregclientv1.APIServicesGetter, required *apiregv1
return existing, false, nil
}

actual, err := client.APIServices().Update(existing)
actual, err := client.APIServices().Update(ctx, existing, metav1.UpdateOptions{})
return actual, true, err
}
30 changes: 16 additions & 14 deletions lib/resourceapply/apps.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
package resourceapply

import (
"context"

"github.com/openshift/cluster-version-operator/lib/resourcemerge"
appsv1 "k8s.io/api/apps/v1"
apierrors "k8s.io/apimachinery/pkg/api/errors"
Expand All @@ -11,10 +13,10 @@ import (
)

// ApplyDeployment applies the required deployment to the cluster.
func ApplyDeployment(client appsclientv1.DeploymentsGetter, required *appsv1.Deployment) (*appsv1.Deployment, bool, error) {
existing, err := client.Deployments(required.Namespace).Get(required.Name, metav1.GetOptions{})
func ApplyDeployment(ctx context.Context, client appsclientv1.DeploymentsGetter, required *appsv1.Deployment) (*appsv1.Deployment, bool, error) {
existing, err := client.Deployments(required.Namespace).Get(ctx, required.Name, metav1.GetOptions{})
if apierrors.IsNotFound(err) {
actual, err := client.Deployments(required.Namespace).Create(required)
actual, err := client.Deployments(required.Namespace).Create(ctx, required, metav1.CreateOptions{})
return actual, true, err
}
if err != nil {
Expand All @@ -31,15 +33,15 @@ func ApplyDeployment(client appsclientv1.DeploymentsGetter, required *appsv1.Dep
return existing, false, nil
}

actual, err := client.Deployments(required.Namespace).Update(existing)
actual, err := client.Deployments(required.Namespace).Update(ctx, existing, metav1.UpdateOptions{})
return actual, true, err
}

// ApplyDeploymentFromCache applies the required deployment to the cluster.
func ApplyDeploymentFromCache(lister appslisterv1.DeploymentLister, client appsclientv1.DeploymentsGetter, required *appsv1.Deployment) (*appsv1.Deployment, bool, error) {
func ApplyDeploymentFromCache(ctx context.Context, lister appslisterv1.DeploymentLister, client appsclientv1.DeploymentsGetter, required *appsv1.Deployment) (*appsv1.Deployment, bool, error) {
existing, err := lister.Deployments(required.Namespace).Get(required.Name)
if apierrors.IsNotFound(err) {
actual, err := client.Deployments(required.Namespace).Create(required)
actual, err := client.Deployments(required.Namespace).Create(ctx, required, metav1.CreateOptions{})
return actual, true, err
}
if err != nil {
Expand All @@ -57,15 +59,15 @@ func ApplyDeploymentFromCache(lister appslisterv1.DeploymentLister, client appsc
return existing, false, nil
}

actual, err := client.Deployments(required.Namespace).Update(existing)
actual, err := client.Deployments(required.Namespace).Update(ctx, existing, metav1.UpdateOptions{})
return actual, true, err
}

// ApplyDaemonSet applies the required daemonset to the cluster.
func ApplyDaemonSet(client appsclientv1.DaemonSetsGetter, required *appsv1.DaemonSet) (*appsv1.DaemonSet, bool, error) {
existing, err := client.DaemonSets(required.Namespace).Get(required.Name, metav1.GetOptions{})
func ApplyDaemonSet(ctx context.Context, client appsclientv1.DaemonSetsGetter, required *appsv1.DaemonSet) (*appsv1.DaemonSet, bool, error) {
existing, err := client.DaemonSets(required.Namespace).Get(ctx, required.Name, metav1.GetOptions{})
if apierrors.IsNotFound(err) {
actual, err := client.DaemonSets(required.Namespace).Create(required)
actual, err := client.DaemonSets(required.Namespace).Create(ctx, required, metav1.CreateOptions{})
return actual, true, err
}
if err != nil {
Expand All @@ -82,15 +84,15 @@ func ApplyDaemonSet(client appsclientv1.DaemonSetsGetter, required *appsv1.Daemo
return existing, false, nil
}

actual, err := client.DaemonSets(required.Namespace).Update(existing)
actual, err := client.DaemonSets(required.Namespace).Update(ctx, existing, metav1.UpdateOptions{})
return actual, true, err
}

// ApplyDaemonSetFromCache applies the required deployment to the cluster.
func ApplyDaemonSetFromCache(lister appslisterv1.DaemonSetLister, client appsclientv1.DaemonSetsGetter, required *appsv1.DaemonSet) (*appsv1.DaemonSet, bool, error) {
func ApplyDaemonSetFromCache(ctx context.Context, lister appslisterv1.DaemonSetLister, client appsclientv1.DaemonSetsGetter, required *appsv1.DaemonSet) (*appsv1.DaemonSet, bool, error) {
existing, err := lister.DaemonSets(required.Namespace).Get(required.Name)
if apierrors.IsNotFound(err) {
actual, err := client.DaemonSets(required.Namespace).Create(required)
actual, err := client.DaemonSets(required.Namespace).Create(ctx, required, metav1.CreateOptions{})
return actual, true, err
}
if err != nil {
Expand All @@ -108,6 +110,6 @@ func ApplyDaemonSetFromCache(lister appslisterv1.DaemonSetLister, client appscli
return existing, false, nil
}

actual, err := client.DaemonSets(required.Namespace).Update(existing)
actual, err := client.DaemonSets(required.Namespace).Update(ctx, existing, metav1.UpdateOptions{})
return actual, true, err
}
10 changes: 6 additions & 4 deletions lib/resourceapply/batch.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
package resourceapply

import (
"context"

"github.com/openshift/cluster-version-operator/lib/resourcemerge"
batchv1 "k8s.io/api/batch/v1"
apierrors "k8s.io/apimachinery/pkg/api/errors"
Expand All @@ -10,10 +12,10 @@ import (
)

// ApplyJob applies the required Job to the cluster.
func ApplyJob(client batchclientv1.JobsGetter, required *batchv1.Job) (*batchv1.Job, bool, error) {
existing, err := client.Jobs(required.Namespace).Get(required.Name, metav1.GetOptions{})
func ApplyJob(ctx context.Context, client batchclientv1.JobsGetter, required *batchv1.Job) (*batchv1.Job, bool, error) {
existing, err := client.Jobs(required.Namespace).Get(ctx, required.Name, metav1.GetOptions{})
if apierrors.IsNotFound(err) {
actual, err := client.Jobs(required.Namespace).Create(required)
actual, err := client.Jobs(required.Namespace).Create(ctx, required, metav1.CreateOptions{})
return actual, true, err
}
if err != nil {
Expand All @@ -30,6 +32,6 @@ func ApplyJob(client batchclientv1.JobsGetter, required *batchv1.Job) (*batchv1.
return existing, false, nil
}

actual, err := client.Jobs(required.Namespace).Update(existing)
actual, err := client.Jobs(required.Namespace).Update(ctx, existing, metav1.UpdateOptions{})
return actual, true, err
}
34 changes: 18 additions & 16 deletions lib/resourceapply/core.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
package resourceapply

import (
"context"

corev1 "k8s.io/api/core/v1"
"k8s.io/apimachinery/pkg/api/equality"
apierrors "k8s.io/apimachinery/pkg/api/errors"
Expand All @@ -12,10 +14,10 @@ import (
)

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

actual, err := client.Namespaces().Update(existing)
actual, err := client.Namespaces().Update(ctx, existing, metav1.UpdateOptions{})
return actual, true, err
}

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

actual, err := client.Services(required.Namespace).Update(existing)
actual, err := client.Services(required.Namespace).Update(ctx, existing, metav1.UpdateOptions{})
return actual, true, err
}

// ApplyServiceAccount applies the required serviceaccount to the cluster.
func ApplyServiceAccount(client coreclientv1.ServiceAccountsGetter, required *corev1.ServiceAccount) (*corev1.ServiceAccount, bool, error) {
existing, err := client.ServiceAccounts(required.Namespace).Get(required.Name, metav1.GetOptions{})
func ApplyServiceAccount(ctx context.Context, client coreclientv1.ServiceAccountsGetter, required *corev1.ServiceAccount) (*corev1.ServiceAccount, bool, error) {
existing, err := client.ServiceAccounts(required.Namespace).Get(ctx, required.Name, metav1.GetOptions{})
if apierrors.IsNotFound(err) {
actual, err := client.ServiceAccounts(required.Namespace).Create(required)
actual, err := client.ServiceAccounts(required.Namespace).Create(ctx, required, metav1.CreateOptions{})
return actual, true, err
}
if err != nil {
Expand All @@ -90,15 +92,15 @@ func ApplyServiceAccount(client coreclientv1.ServiceAccountsGetter, required *co
return existing, false, nil
}

actual, err := client.ServiceAccounts(required.Namespace).Update(existing)
actual, err := client.ServiceAccounts(required.Namespace).Update(ctx, existing, metav1.UpdateOptions{})
return actual, true, err
}

// ApplyConfigMap applies the required serviceaccount to the cluster.
func ApplyConfigMap(client coreclientv1.ConfigMapsGetter, required *corev1.ConfigMap) (*corev1.ConfigMap, bool, error) {
existing, err := client.ConfigMaps(required.Namespace).Get(required.Name, metav1.GetOptions{})
func ApplyConfigMap(ctx context.Context, client coreclientv1.ConfigMapsGetter, required *corev1.ConfigMap) (*corev1.ConfigMap, bool, error) {
existing, err := client.ConfigMaps(required.Namespace).Get(ctx, required.Name, metav1.GetOptions{})
if apierrors.IsNotFound(err) {
actual, err := client.ConfigMaps(required.Namespace).Create(required)
actual, err := client.ConfigMaps(required.Namespace).Create(ctx, required, metav1.CreateOptions{})
return actual, true, err
}
if err != nil {
Expand All @@ -115,6 +117,6 @@ func ApplyConfigMap(client coreclientv1.ConfigMapsGetter, required *corev1.Confi
return existing, false, nil
}

actual, err := client.ConfigMaps(required.Namespace).Update(existing)
actual, err := client.ConfigMaps(required.Namespace).Update(ctx, existing, metav1.UpdateOptions{})
return actual, true, err
}
16 changes: 9 additions & 7 deletions lib/resourceapply/cv.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
package resourceapply

import (
"context"

configv1 "github.com/openshift/api/config/v1"
configclientv1 "github.com/openshift/client-go/config/clientset/versioned/typed/config/v1"
configlistersv1 "github.com/openshift/client-go/config/listers/config/v1"
Expand All @@ -10,10 +12,10 @@ import (
"k8s.io/utils/pointer"
)

func ApplyClusterVersion(client configclientv1.ClusterVersionsGetter, required *configv1.ClusterVersion) (*configv1.ClusterVersion, bool, error) {
existing, err := client.ClusterVersions().Get(required.Name, metav1.GetOptions{})
func ApplyClusterVersion(ctx context.Context, client configclientv1.ClusterVersionsGetter, required *configv1.ClusterVersion) (*configv1.ClusterVersion, bool, error) {
existing, err := client.ClusterVersions().Get(ctx, required.Name, metav1.GetOptions{})
if errors.IsNotFound(err) {
actual, err := client.ClusterVersions().Create(required)
actual, err := client.ClusterVersions().Create(ctx, required, metav1.CreateOptions{})
return actual, true, err
}
if err != nil {
Expand All @@ -30,14 +32,14 @@ func ApplyClusterVersion(client configclientv1.ClusterVersionsGetter, required *
return existing, false, nil
}

actual, err := client.ClusterVersions().Update(existing)
actual, err := client.ClusterVersions().Update(ctx, existing, metav1.UpdateOptions{})
return actual, true, err
}

func ApplyClusterVersionFromCache(lister configlistersv1.ClusterVersionLister, client configclientv1.ClusterVersionsGetter, required *configv1.ClusterVersion) (*configv1.ClusterVersion, bool, error) {
func ApplyClusterVersionFromCache(ctx context.Context, lister configlistersv1.ClusterVersionLister, client configclientv1.ClusterVersionsGetter, required *configv1.ClusterVersion) (*configv1.ClusterVersion, bool, error) {
obj, err := lister.Get(required.Name)
if errors.IsNotFound(err) {
actual, err := client.ClusterVersions().Create(required)
actual, err := client.ClusterVersions().Create(ctx, required, metav1.CreateOptions{})
return actual, true, err
}
if err != nil {
Expand All @@ -56,6 +58,6 @@ func ApplyClusterVersionFromCache(lister configlistersv1.ClusterVersionLister, c
return existing, false, nil
}

actual, err := client.ClusterVersions().Update(existing)
actual, err := client.ClusterVersions().Update(ctx, existing, metav1.UpdateOptions{})
return actual, true, err
}

0 comments on commit 71102d3

Please sign in to comment.