Skip to content

Commit

Permalink
switch to using MergeFromWithOptimisticLock
Browse files Browse the repository at this point in the history
  • Loading branch information
aramase committed Jun 16, 2020
1 parent 1b7b8bc commit 5115f84
Show file tree
Hide file tree
Showing 5 changed files with 69 additions and 67 deletions.
1 change: 1 addition & 0 deletions charts/secrets-store-csi-driver/templates/role.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ rules:
- delete
- get
- update
- patch
- watch
- list
- apiGroups:
Expand Down
28 changes: 10 additions & 18 deletions controllers/secretproviderclasspodstatus_controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,22 +23,22 @@ import (
"strings"
"time"

log "github.com/sirupsen/logrus"
"google.golang.org/grpc/codes"
"google.golang.org/grpc/status"
"k8s.io/apimachinery/pkg/util/wait"

"sigs.k8s.io/controller-runtime/pkg/controller/controllerutil"

log "github.com/sirupsen/logrus"
corev1 "k8s.io/api/core/v1"
v1 "k8s.io/api/core/v1"
"k8s.io/apimachinery/pkg/api/errors"
apierrors "k8s.io/apimachinery/pkg/api/errors"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/types"
"k8s.io/apimachinery/pkg/util/wait"

ctrl "sigs.k8s.io/controller-runtime"
"sigs.k8s.io/controller-runtime/pkg/client"
"sigs.k8s.io/controller-runtime/pkg/controller/controllerutil"
"sigs.k8s.io/secrets-store-csi-driver/apis/v1alpha1"
)

Expand Down Expand Up @@ -210,7 +210,7 @@ func (r *SecretProviderClassPodStatusReconciler) Reconcile(req ctrl.Request) (ct
}

logger.Info("reconcile complete")
return ctrl.Result{}, nil
return ctrl.Result{RequeueAfter: 5 * time.Minute}, nil
}

func (r *SecretProviderClassPodStatusReconciler) SetupWithManager(mgr ctrl.Manager) error {
Expand All @@ -231,7 +231,7 @@ func (r *SecretProviderClassPodStatusReconciler) createK8sSecret(ctx context.Con
Data: datamap,
}

err := r.Create(ctx, secret)
err := r.Writer.Create(ctx, secret)
if err == nil {
log.Infof("created k8s secret: %s/%s", namespace, name)
return nil
Expand All @@ -243,30 +243,22 @@ func (r *SecretProviderClassPodStatusReconciler) createK8sSecret(ctx context.Con
}

func (r *SecretProviderClassPodStatusReconciler) patchSecretWithOwnerRef(ctx context.Context, name, namespace string, spcPodStatus *v1alpha1.SecretProviderClassPodStatus) error {
secret := &corev1.Secret{
ObjectMeta: metav1.ObjectMeta{
Namespace: namespace,
Name: name,
},
}
secret := &corev1.Secret{}
secretKey := types.NamespacedName{
Namespace: namespace,
Name: name,
}
err := r.Reader.Get(ctx, secretKey, secret)
err := r.Client.Get(ctx, secretKey, secret)
if err != nil && !errors.IsNotFound(err) {
return err
}

patch := client.MergeFromWithOptions(secret.DeepCopy(), client.MergeFromWithOptimisticLock{})
err = controllerutil.SetOwnerReference(spcPodStatus, secret, r.Scheme)
if err != nil {
return err
}
err = r.Writer.Update(ctx, secret)
if err != nil {
return err
}
return nil
return r.Writer.Patch(ctx, secret, patch)
}

func (r *SecretProviderClassPodStatusReconciler) secretExists(ctx context.Context, name, namespace string) (bool, error) {
Expand Down
14 changes: 8 additions & 6 deletions controllers/secretproviderclasspodstatus_controller_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -49,19 +49,21 @@ func setupScheme() (*runtime.Scheme, error) {
func newSecret(name, namespace string) *v1.Secret {
return &v1.Secret{
ObjectMeta: metav1.ObjectMeta{
Name: name,
Namespace: namespace,
Name: name,
Namespace: namespace,
ResourceVersion: "73659",
},
}
}

func newSecretProviderClassPodStatus(name, namespace, node string) *v1alpha1.SecretProviderClassPodStatus {
return &v1alpha1.SecretProviderClassPodStatus{
ObjectMeta: metav1.ObjectMeta{
Name: name,
Namespace: namespace,
Labels: map[string]string{internalNodeLabel: node},
UID: "72a0ecb8-c6e5-41e1-8da1-25e37ec61b26",
Name: name,
Namespace: namespace,
Labels: map[string]string{internalNodeLabel: node},
UID: "72a0ecb8-c6e5-41e1-8da1-25e37ec61b26",
ResourceVersion: "73659",
},
Status: v1alpha1.SecretProviderClassPodStatusStatus{
PodName: "pod1",
Expand Down
11 changes: 5 additions & 6 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@ require (
github.com/container-storage-interface/spec v1.0.0
github.com/golang/protobuf v1.3.4
github.com/kubernetes-csi/csi-test v1.1.0
github.com/onsi/ginkgo v1.11.0
github.com/onsi/gomega v1.8.1
github.com/pkg/errors v0.9.1 // indirect
github.com/sirupsen/logrus v1.4.2
Expand All @@ -17,9 +16,9 @@ require (
go.opentelemetry.io/otel/exporters/metric/prometheus v0.4.3
golang.org/x/net v0.0.0-20200222125558-5a598a2470a0
google.golang.org/grpc v1.27.1
k8s.io/api v0.18.2
k8s.io/apimachinery v0.18.2
k8s.io/client-go v0.18.2
k8s.io/utils v0.0.0-20200324210504-a9aa75ae1b89
sigs.k8s.io/controller-runtime v0.6.0
k8s.io/api v0.17.2
k8s.io/apimachinery v0.17.2
k8s.io/client-go v0.17.2
k8s.io/utils v0.0.0-20191114184206-e782cd3c129f
sigs.k8s.io/controller-runtime v0.5.5
)
Loading

0 comments on commit 5115f84

Please sign in to comment.