Skip to content

Commit

Permalink
[spicedb] Add role & rolebinding to watch endpoints
Browse files Browse the repository at this point in the history
  • Loading branch information
easyCZ authored and roboquat committed Feb 1, 2023
1 parent 9700b18 commit 98d9457
Show file tree
Hide file tree
Showing 3 changed files with 81 additions and 0 deletions.
2 changes: 2 additions & 0 deletions install/installer/pkg/components/spicedb/objects.go
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,8 @@ func Objects(ctx *common.RenderContext) ([]runtime.Object, error) {
networkpolicy,
secret,
bootstrap,
role,
rolebinding,
)(ctx)
}

Expand Down
38 changes: 38 additions & 0 deletions install/installer/pkg/components/spicedb/role.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
// Copyright (c) 2021 Gitpod GmbH. All rights reserved.
// Licensed under the GNU Affero General Public License (AGPL).
// See License-AGPL.txt in the project root for license information.

package spicedb

import (
"github.com/gitpod-io/gitpod/installer/pkg/common"

rbacv1 "k8s.io/api/rbac/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime"
)

func role(ctx *common.RenderContext) ([]runtime.Object, error) {
labels := common.DefaultLabels(Component)

return []runtime.Object{
&rbacv1.Role{
TypeMeta: common.TypeMetaRole,
ObjectMeta: metav1.ObjectMeta{
Name: Component,
Namespace: ctx.Namespace,
Labels: labels,
},
Rules: []rbacv1.PolicyRule{
{
APIGroups: []string{""},
Resources: []string{"endpoints"},
Verbs: []string{
"get",
"watch",
},
},
},
},
}, nil
}
41 changes: 41 additions & 0 deletions install/installer/pkg/components/spicedb/rolebinding.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
// Copyright (c) 2021 Gitpod GmbH. All rights reserved.
// Licensed under the GNU Affero General Public License (AGPL).
// See License-AGPL.txt in the project root for license information.

package spicedb

import (
"fmt"

"github.com/gitpod-io/gitpod/installer/pkg/common"

rbacv1 "k8s.io/api/rbac/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime"
)

func rolebinding(ctx *common.RenderContext) ([]runtime.Object, error) {
labels := common.DefaultLabels(Component)

return []runtime.Object{
&rbacv1.RoleBinding{
TypeMeta: common.TypeMetaRoleBinding,
ObjectMeta: metav1.ObjectMeta{
Name: fmt.Sprintf("%s-watch-service", Component),
Namespace: ctx.Namespace,
Labels: labels,
},
RoleRef: rbacv1.RoleRef{
APIGroup: "rbac.authorization.k8s.io",
Kind: "Role",
Name: Component,
},
Subjects: []rbacv1.Subject{
{
Kind: "ServiceAccount",
Name: Component,
},
},
},
}, nil
}

0 comments on commit 98d9457

Please sign in to comment.