registry

package
v0.8.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 8, 2022 License: Apache-2.0 Imports: 31 Imported by: 0

Documentation

Index

Constants

View Source
const (
	WorkspaceNameLabel string = "workspaces.kcp.dev/name"
)

Variables

View Source
var Strategy = workspaceStrategy{typerSchema, names.SimpleNameGenerator}

Strategy is the default logic that applies when creating and updating Project objects via the REST API.

Functions

func InternalListOptionsToSelectors

func InternalListOptionsToSelectors(options *metainternal.ListOptions) (labels.Selector, fields.Selector)

Types

type FilteredClusterWorkspaces added in v0.6.0

type FilteredClusterWorkspaces interface {
	workspaceauth.Lister
	workspaceauth.WatchableCache
	AddWatcher(watcher workspaceauth.CacheWatcher)
	Stop()
}

FilteredClusterWorkspaces allows to list and watch ClusterWorkspaces filtered by authorizaation, i.e. a user only sees those object he has access to.

type REST

type REST struct {
	rest.TableConvertor
	// contains filtered or unexported fields
}

func NewREST

func NewREST(
	kubeClusterClient kubernetesclient.ClusterInterface,
	kcpClusterClient kcpclient.ClusterInterface,
	clusterWorkspaceCache *workspacecache.ClusterWorkspaceCache,
	wilcardsCRBInformer rbacinformers.ClusterRoleBindingInformer,
	getFilteredClusterWorkspaces func(orgClusterName logicalcluster.Name) FilteredClusterWorkspaces,
) *REST

NewREST returns a RESTStorage object that will work against ClusterWorkspace resources in org workspaces, projecting them to the Workspace type.

func (*REST) Create

func (s *REST) Create(ctx context.Context, obj runtime.Object, createValidation rest.ValidateObjectFunc, options *metav1.CreateOptions) (runtime.Object, error)

Create creates a new workspace. The corresponding ClusterWorkspace resource is created in the underlying KCP server.

Workspace creation also creates a ClusterRole and a ClusterRoleBinding that links the ClusterRole with the user Subject.

This will give the workspace creator the following permissions on the newly-created workspace: - 'cluster-admin' inside the newly created workspace, - 'get' permission to the workspace resource itself, so that it would appear when listing workspaces in the parent - 'delete' permission so that the user can delete a workspace it has created.

func (*REST) Delete

func (s *REST) Delete(ctx context.Context, name string, deleteValidation rest.ValidateObjectFunc, options *metav1.DeleteOptions) (runtime.Object, bool, error)

func (*REST) Destroy added in v0.6.0

func (s *REST) Destroy()

Destroy implements rest.Storage

func (*REST) Get

func (s *REST) Get(ctx context.Context, name string, options *metav1.GetOptions) (runtime.Object, error)

Get retrieves a Workspace by name

func (*REST) List

func (s *REST) List(ctx context.Context, options *metainternal.ListOptions) (runtime.Object, error)

List retrieves a list of Workspaces that match label.

func (*REST) NamespaceScoped

func (s *REST) NamespaceScoped() bool

func (*REST) New

func (s *REST) New() runtime.Object

New returns a new ClusterWorkspace

func (*REST) NewList

func (*REST) NewList() runtime.Object

NewList returns a new ClusterWorkspaceList

func (*REST) Watch added in v0.6.0

func (s *REST) Watch(ctx context.Context, options *metainternal.ListOptions) (watch.Interface, error)

type WorkspacesScopeKeyType

type WorkspacesScopeKeyType string
const (
	WorkspacesOrgKey WorkspacesScopeKeyType = "VirtualWorkspaceWorkspacesOrg"
)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL