Skip to content

Commit

Permalink
Merge pull request #5 from rmohr/cluster-role-binding-operator
Browse files Browse the repository at this point in the history
Fix ClusterRoleBinding cache lookup
  • Loading branch information
slintes committed Jan 11, 2019
2 parents 4d095c7 + 89496a0 commit c5f62ec
Show file tree
Hide file tree
Showing 7 changed files with 21 additions and 59 deletions.
2 changes: 1 addition & 1 deletion cluster/deploy-operator.sh
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ _kubectl create -f ${MANIFESTS_OUT_DIR}/testing
_kubectl apply -f ${MANIFESTS_OUT_DIR}/release/kubevirt-operator.yaml

# Deploy kubevirt
_kubectl create -n ${namespace} -f ${KUBEVIRT_PATH}cluster/examples/kubevirt.yaml
_kubectl create -n ${namespace} -f ${KUBEVIRT_PATH}cluster/examples/kubevirt-cr.yaml

if [[ "$KUBEVIRT_PROVIDER" =~ os-* ]]; then
_kubectl create -f ${MANIFESTS_OUT_DIR}/testing/ocp
Expand Down
2 changes: 1 addition & 1 deletion cluster/examples/kubevirt-cr.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,6 @@
apiVersion: kubevirt.io/v1alpha2
kind: KubeVirt
metadata:
name: KubeVirt
name: kubevirt
spec:
imagePullPolicy: Always
4 changes: 1 addition & 3 deletions pkg/virt-operator/creation/components/crds.go
Original file line number Diff line number Diff line change
Expand Up @@ -55,11 +55,9 @@ func CreateCRDs(clientset kubecli.KubevirtClient, kv *virtv1.KubeVirt, stores ut
if _, exists, _ := stores.CrdCache.Get(crd); !exists {
expectations.Crd.RaiseExpectations(kvkey, 1, 0)
_, err := ext.ApiextensionsV1beta1().CustomResourceDefinitions().Create(crd)
if err != nil && !apierrors.IsAlreadyExists(err) {
if err != nil {
expectations.Crd.LowerExpectations(kvkey, 1, 0)
return objectsAdded, fmt.Errorf("unable to create crd %+v: %v", crd, err)
} else if apierrors.IsAlreadyExists(err) {
expectations.Crd.LowerExpectations(kvkey, 1, 0)
} else if err == nil {
objectsAdded++
}
Expand Down
13 changes: 3 additions & 10 deletions pkg/virt-operator/creation/components/deployments.go
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,6 @@ import (

appsv1 "k8s.io/api/apps/v1"
corev1 "k8s.io/api/core/v1"
apierrors "k8s.io/apimachinery/pkg/api/errors"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/util/intstr"
"k8s.io/apimachinery/pkg/util/json"
Expand All @@ -53,11 +52,9 @@ func CreateControllers(clientset kubecli.KubevirtClient, kv *virtv1.KubeVirt, co
if _, exists, _ := stores.ServiceCache.Get(service); !exists {
expectations.Service.RaiseExpectations(kvkey, 1, 0)
_, err := core.Services(kv.Namespace).Create(service)
if err != nil && !apierrors.IsAlreadyExists(err) {
if err != nil {
expectations.Service.LowerExpectations(kvkey, 1, 0)
return objectsAdded, fmt.Errorf("unable to create service %+v: %v", service, err)
} else if apierrors.IsAlreadyExists(err) {
expectations.Service.LowerExpectations(kvkey, 1, 0)
} else if err == nil {
objectsAdded++
}
Expand All @@ -84,11 +81,9 @@ func CreateControllers(clientset kubecli.KubevirtClient, kv *virtv1.KubeVirt, co
if _, exists, _ := stores.DeploymentCache.Get(deployment); !exists {
expectations.Deployment.RaiseExpectations(kvkey, 1, 0)
_, err := apps.Deployments(kv.Namespace).Create(deployment)
if err != nil && !apierrors.IsAlreadyExists(err) {
if err != nil {
expectations.Deployment.LowerExpectations(kvkey, 1, 0)
return objectsAdded, fmt.Errorf("unable to create deployment %+v: %v", deployment, err)
} else if apierrors.IsAlreadyExists(err) {
expectations.Deployment.LowerExpectations(kvkey, 1, 0)
} else if err == nil {
objectsAdded++
}
Expand All @@ -105,11 +100,9 @@ func CreateControllers(clientset kubecli.KubevirtClient, kv *virtv1.KubeVirt, co
if _, exists, _ := stores.DaemonSetCache.Get(handler); !exists {
expectations.DaemonSet.RaiseExpectations(kvkey, 1, 0)
_, err = apps.DaemonSets(kv.Namespace).Create(handler)
if err != nil && !apierrors.IsAlreadyExists(err) {
if err != nil {
expectations.DaemonSet.LowerExpectations(kvkey, 1, 0)
return objectsAdded, fmt.Errorf("unable to create daemonset %+v: %v", handler, err)
} else if apierrors.IsAlreadyExists(err) {
expectations.DaemonSet.LowerExpectations(kvkey, 1, 0)
} else if err == nil {
objectsAdded++
}
Expand Down
27 changes: 7 additions & 20 deletions pkg/virt-operator/creation/rbac/apiserver.go
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,6 @@ import (

corev1 "k8s.io/api/core/v1"
rbacv1 "k8s.io/api/rbac/v1"
apierrors "k8s.io/apimachinery/pkg/api/errors"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"

virtv1 "kubevirt.io/kubevirt/pkg/api/v1"
Expand All @@ -47,11 +46,9 @@ func CreateApiServerRBAC(clientset kubecli.KubevirtClient, kv *virtv1.KubeVirt,
if _, exists, _ := stores.ServiceAccountCache.Get(sa); !exists {
expectations.ServiceAccount.RaiseExpectations(kvkey, 1, 0)
_, err := core.ServiceAccounts(kv.Namespace).Create(sa)
if err != nil && !apierrors.IsAlreadyExists(err) {
if err != nil {
expectations.ServiceAccount.LowerExpectations(kvkey, 1, 0)
return objectsAdded, fmt.Errorf("unable to create serviceaccount %+v: %v", sa, err)
} else if apierrors.IsAlreadyExists(err) {
expectations.ServiceAccount.LowerExpectations(kvkey, 1, 0)
} else if err == nil {
objectsAdded++
}
Expand All @@ -65,11 +62,9 @@ func CreateApiServerRBAC(clientset kubecli.KubevirtClient, kv *virtv1.KubeVirt,
if _, exists, _ := stores.ClusterRoleCache.Get(cr); !exists {
expectations.ClusterRole.RaiseExpectations(kvkey, 1, 0)
_, err := rbac.ClusterRoles().Create(cr)
if err != nil && !apierrors.IsAlreadyExists(err) {
if err != nil {
expectations.ClusterRole.LowerExpectations(kvkey, 1, 0)
return objectsAdded, fmt.Errorf("unable to create clusterrole %+v: %v", cr, err)
} else if apierrors.IsAlreadyExists(err) {
expectations.ClusterRole.LowerExpectations(kvkey, 1, 0)
} else if err == nil {
objectsAdded++
}
Expand All @@ -85,11 +80,9 @@ func CreateApiServerRBAC(clientset kubecli.KubevirtClient, kv *virtv1.KubeVirt,
if _, exists, _ := stores.ClusterRoleBindingCache.Get(crb); !exists {
expectations.ClusterRoleBinding.RaiseExpectations(kvkey, 1, 0)
_, err := rbac.ClusterRoleBindings().Create(crb)
if err != nil && !apierrors.IsAlreadyExists(err) {
if err != nil {
expectations.ClusterRoleBinding.LowerExpectations(kvkey, 1, 0)
return objectsAdded, fmt.Errorf("unable to create clusterrolebinding %+v: %v", crb, err)
} else if apierrors.IsAlreadyExists(err) {
expectations.ClusterRoleBinding.LowerExpectations(kvkey, 1, 0)
} else if err == nil {
objectsAdded++
}
Expand All @@ -102,11 +95,9 @@ func CreateApiServerRBAC(clientset kubecli.KubevirtClient, kv *virtv1.KubeVirt,
if _, exists, _ := stores.RoleCache.Get(r); !exists {
expectations.Role.RaiseExpectations(kvkey, 1, 0)
_, err := rbac.Roles(kv.Namespace).Create(r)
if err != nil && !apierrors.IsAlreadyExists(err) {
if err != nil {
expectations.Role.LowerExpectations(kvkey, 1, 0)
return objectsAdded, fmt.Errorf("unable to create role %+v: %v", r, err)
} else if apierrors.IsAlreadyExists(err) {
expectations.Role.LowerExpectations(kvkey, 1, 0)
} else if err == nil {
objectsAdded++
}
Expand All @@ -118,11 +109,9 @@ func CreateApiServerRBAC(clientset kubecli.KubevirtClient, kv *virtv1.KubeVirt,
if _, exists, _ := stores.RoleBindingCache.Get(rb); !exists {
expectations.RoleBinding.RaiseExpectations(kvkey, 1, 0)
_, err := rbac.RoleBindings(kv.Namespace).Create(rb)
if err != nil && !apierrors.IsAlreadyExists(err) {
if err != nil {
expectations.RoleBinding.LowerExpectations(kvkey, 1, 0)
return objectsAdded, fmt.Errorf("unable to create rolebinding %+v: %v", rb, err)
} else if apierrors.IsAlreadyExists(err) {
expectations.RoleBinding.LowerExpectations(kvkey, 1, 0)
} else if err == nil {
objectsAdded++
}
Expand Down Expand Up @@ -280,8 +269,7 @@ func newApiServerClusterRoleBinding(namespace string) *rbacv1.ClusterRoleBinding
Kind: "ClusterRoleBinding",
},
ObjectMeta: metav1.ObjectMeta{
Namespace: namespace,
Name: "kubevirt-apiserver",
Name: "kubevirt-apiserver",
Labels: map[string]string{
virtv1.AppLabel: "",
virtv1.ManagedByLabel: virtv1.ManagedByLabelOperatorValue,
Expand Down Expand Up @@ -309,8 +297,7 @@ func newApiServerAuthDelegatorClusterRoleBinding(namespace string) *rbacv1.Clust
Kind: "ClusterRoleBinding",
},
ObjectMeta: metav1.ObjectMeta{
Namespace: namespace,
Name: "kubevirt-apiserver-auth-delegator",
Name: "kubevirt-apiserver-auth-delegator",
Labels: map[string]string{
virtv1.AppLabel: "",
virtv1.ManagedByLabel: virtv1.ManagedByLabelOperatorValue,
Expand Down
16 changes: 4 additions & 12 deletions pkg/virt-operator/creation/rbac/cluster.go
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,6 @@ import (

corev1 "k8s.io/api/core/v1"
rbacv1 "k8s.io/api/rbac/v1"
apierrors "k8s.io/apimachinery/pkg/api/errors"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"

virtv1 "kubevirt.io/kubevirt/pkg/api/v1"
Expand All @@ -47,11 +46,9 @@ func CreateClusterRBAC(clientset kubecli.KubevirtClient, kv *virtv1.KubeVirt, st
if _, exists, _ := stores.ServiceAccountCache.Get(sa); !exists {
expectations.ServiceAccount.RaiseExpectations(kvkey, 1, 0)
_, err := core.ServiceAccounts(kv.Namespace).Create(sa)
if err != nil && !apierrors.IsAlreadyExists(err) {
if err != nil {
expectations.ServiceAccount.LowerExpectations(kvkey, 1, 0)
return objectsAdded, fmt.Errorf("unable to create serviceaccount %+v: %v", sa, err)
} else if apierrors.IsAlreadyExists(err) {
expectations.ServiceAccount.LowerExpectations(kvkey, 1, 0)
} else if err == nil {
objectsAdded++
}
Expand All @@ -71,11 +68,9 @@ func CreateClusterRBAC(clientset kubecli.KubevirtClient, kv *virtv1.KubeVirt, st
if _, exists, _ := stores.ClusterRoleCache.Get(cr); !exists {
expectations.ClusterRole.RaiseExpectations(kvkey, 1, 0)
_, err := rbac.ClusterRoles().Create(cr)
if err != nil && !apierrors.IsAlreadyExists(err) {
if err != nil {
expectations.ClusterRole.LowerExpectations(kvkey, 1, 0)
return objectsAdded, fmt.Errorf("unable to create clusterrole %+v: %v", cr, err)
} else if apierrors.IsAlreadyExists(err) {
expectations.ClusterRole.LowerExpectations(kvkey, 1, 0)
} else if err == nil {
objectsAdded++
}
Expand All @@ -92,11 +87,9 @@ func CreateClusterRBAC(clientset kubecli.KubevirtClient, kv *virtv1.KubeVirt, st
if _, exists, _ := stores.ClusterRoleBindingCache.Get(crb); !exists {
expectations.ClusterRoleBinding.RaiseExpectations(kvkey, 1, 0)
_, err := rbac.ClusterRoleBindings().Create(crb)
if err != nil && !apierrors.IsAlreadyExists(err) {
if err != nil {
expectations.ClusterRoleBinding.LowerExpectations(kvkey, 1, 0)
return objectsAdded, fmt.Errorf("unable to create clusterrolebinding %+v: %v", crb, err)
} else if apierrors.IsAlreadyExists(err) {
expectations.ClusterRoleBinding.LowerExpectations(kvkey, 1, 0)
} else if err == nil {
objectsAdded++
}
Expand Down Expand Up @@ -338,8 +331,7 @@ func newPrivilegedClusterRoleBinding(namespace string) *rbacv1.ClusterRoleBindin
Kind: "ClusterRoleBinding",
},
ObjectMeta: metav1.ObjectMeta{
Namespace: namespace,
Name: "kubevirt-privileged-cluster-admin",
Name: "kubevirt-privileged-cluster-admin",
Labels: map[string]string{
virtv1.AppLabel: "",
virtv1.ManagedByLabel: virtv1.ManagedByLabelOperatorValue,
Expand Down
16 changes: 4 additions & 12 deletions pkg/virt-operator/creation/rbac/controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,6 @@ import (

corev1 "k8s.io/api/core/v1"
rbacv1 "k8s.io/api/rbac/v1"
apierrors "k8s.io/apimachinery/pkg/api/errors"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"

virtv1 "kubevirt.io/kubevirt/pkg/api/v1"
Expand All @@ -47,11 +46,9 @@ func CreateControllerRBAC(clientset kubecli.KubevirtClient, kv *virtv1.KubeVirt,
if _, exists, _ := stores.ServiceAccountCache.Get(sa); !exists {
expectations.ServiceAccount.RaiseExpectations(kvkey, 1, 0)
_, err := core.ServiceAccounts(kv.Namespace).Create(sa)
if err != nil && !apierrors.IsAlreadyExists(err) {
if err != nil {
expectations.ServiceAccount.LowerExpectations(kvkey, 1, 0)
return objectsAdded, fmt.Errorf("unable to create serviceaccount %+v: %v", sa, err)
} else if apierrors.IsAlreadyExists(err) {
expectations.ServiceAccount.LowerExpectations(kvkey, 1, 0)
} else if err == nil {
objectsAdded++
}
Expand All @@ -65,11 +62,9 @@ func CreateControllerRBAC(clientset kubecli.KubevirtClient, kv *virtv1.KubeVirt,
if _, exists, _ := stores.ClusterRoleCache.Get(cr); !exists {
expectations.ClusterRole.RaiseExpectations(kvkey, 1, 0)
_, err := rbac.ClusterRoles().Create(cr)
if err != nil && !apierrors.IsAlreadyExists(err) {
if err != nil {
expectations.ClusterRole.LowerExpectations(kvkey, 1, 0)
return objectsAdded, fmt.Errorf("unable to create clusterrole %+v: %v", cr, err)
} else if apierrors.IsAlreadyExists(err) {
expectations.ClusterRole.LowerExpectations(kvkey, 1, 0)
} else if err == nil {
objectsAdded++
}
Expand All @@ -81,11 +76,9 @@ func CreateControllerRBAC(clientset kubecli.KubevirtClient, kv *virtv1.KubeVirt,
if _, exists, _ := stores.ClusterRoleBindingCache.Get(crb); !exists {
expectations.ClusterRoleBinding.RaiseExpectations(kvkey, 1, 0)
_, err := rbac.ClusterRoleBindings().Create(crb)
if err != nil && !apierrors.IsAlreadyExists(err) {
if err != nil {
expectations.ClusterRoleBinding.LowerExpectations(kvkey, 1, 0)
return objectsAdded, fmt.Errorf("unable to create clusterrolebinding %+v: %v", crb, err)
} else if apierrors.IsAlreadyExists(err) {
expectations.ClusterRoleBinding.LowerExpectations(kvkey, 1, 0)
} else if err == nil {
objectsAdded++
}
Expand Down Expand Up @@ -234,8 +227,7 @@ func newControllerClusterRoleBinding(namespace string) *rbacv1.ClusterRoleBindin
Kind: "ClusterRoleBinding",
},
ObjectMeta: metav1.ObjectMeta{
Namespace: namespace,
Name: "kubevirt-controller",
Name: "kubevirt-controller",
Labels: map[string]string{
virtv1.AppLabel: "",
virtv1.ManagedByLabel: virtv1.ManagedByLabelOperatorValue,
Expand Down

0 comments on commit c5f62ec

Please sign in to comment.