From 34ffdde054888dd791af7a7e8eb9b0d8922894f3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tomasz=20S=C4=99k?= Date: Wed, 27 Jan 2021 11:29:38 +0100 Subject: [PATCH] Resolve some FIXME --- pkg/configuration/base/rbac.go | 7 ++++++- pkg/configuration/base/reconcile_test.go | 5 ++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/pkg/configuration/base/rbac.go b/pkg/configuration/base/rbac.go index 43a8db5c..711e1d29 100644 --- a/pkg/configuration/base/rbac.go +++ b/pkg/configuration/base/rbac.go @@ -6,8 +6,10 @@ import ( "strings" "github.com/jenkinsci/kubernetes-operator/pkg/configuration/base/resources" + stackerr "github.com/pkg/errors" rbacv1 "k8s.io/api/rbac/v1" + "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "sigs.k8s.io/controller-runtime/pkg/client" ) @@ -43,7 +45,10 @@ func (r *JenkinsBaseConfigurationReconciler) ensureExtraRBAC(meta metav1.ObjectM for _, roleRef := range r.Configuration.Jenkins.Spec.Roles { name = getExtraRoleBindingName(meta.Name, roleRef) roleBinding := resources.NewRoleBinding(name, meta.Namespace, meta.Name, roleRef) - err = r.CreateOrUpdateResource(roleBinding) + err := r.Client.Create(context.TODO(), roleBinding) + if err != nil && errors.IsAlreadyExists(err) { + continue + } if err != nil { return stackerr.WithStack(err) } diff --git a/pkg/configuration/base/reconcile_test.go b/pkg/configuration/base/reconcile_test.go index 556e7c54..246d3529 100644 --- a/pkg/configuration/base/reconcile_test.go +++ b/pkg/configuration/base/reconcile_test.go @@ -743,7 +743,6 @@ func TestEnsureExtraRBAC(t *testing.T) { assert.Equal(t, jenkins.Spec.Roles[1], roleBindings.Items[2].RoleRef) }) t.Run("delete one extra", func(t *testing.T) { - t.Skip() //FIXME // given fakeClient := fake.NewClientBuilder().Build() err := v1alpha2.SchemeBuilder.AddToScheme(scheme.Scheme) @@ -803,8 +802,8 @@ func TestEnsureExtraRBAC(t *testing.T) { roleBindings, err := fetchAllRoleBindings(fakeClient) assert.NoError(t, err) assert.Equal(t, 3, len(roleBindings.Items)) - assert.Equal(t, metaObject.Name, roleBindings.Items[1].Name) - assert.Equal(t, jenkins.Spec.Roles[0], roleBindings.Items[2].RoleRef) + assert.Equal(t, metaObject.Name, roleBindings.Items[0].Name) + assert.Equal(t, jenkins.Spec.Roles[0], roleBindings.Items[1].RoleRef) }) }