Skip to content

WorkspaceType

WorkspaceType CRD schema reference (group tenancy.kcp.io)

WorkspaceType specifies behaviour of workspaces of this type.
Full name:
workspacetypes.tenancy.kcp.io
Group:
tenancy.kcp.io
Singular name:
workspacetype
Plural name:
workspacetypes
Scope:
Cluster
Versions:
v1alpha1

Version v1alpha1

Properties

.apiVersion

string

APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources

.kind

string

Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds

.metadata

object

.metadata.name

string

.spec

object

.spec.additionalWorkspaceLabels

object

additionalWorkspaceLabels are a set of labels that will be added to a Workspace on creation.

.spec.defaultAPIBindings

array

defaultAPIBindings are the APIs to bind during initialization of workspaces created from this type. The APIBinding names will be generated dynamically.

.spec.defaultAPIBindings[*]

object

APIExportReference provides the fields necessary to resolve an APIExport.

.spec.defaultAPIBindings[*].export

string Required

export is the name of the APIExport.

.spec.defaultAPIBindings[*].path

string

path is the fully-qualified path to the workspace containing the APIExport. If it is empty, the current workspace is assumed.

.spec.defaultChildWorkspaceType

object

defaultChildWorkspaceType is the WorkspaceType that will be used by default if another, nested Workspace is created in a workspace of this type. When this field is unset, the user must specify a type when creating nested workspaces. Extending another WorkspaceType does not inherit its defaultChildWorkspaceType.

.spec.defaultChildWorkspaceType.name

string Required

name is the name of the WorkspaceType

.spec.defaultChildWorkspaceType.path

string

path is an absolute reference to the workspace that owns this type, e.g. root:org:ws.

.spec.extend

object

extend is a list of other WorkspaceTypes whose initializers and limitAllowedChildren and limitAllowedParents this WorkspaceType is inheriting. By (transitively) extending another WorkspaceType, this WorkspaceType will be considered as that other type in evaluation of limitAllowedChildren and limitAllowedParents constraints.

A dependency cycle stop this WorkspaceType from being admitted as the type of a Workspace.

A non-existing dependency stop this WorkspaceType from being admitted as the type of a Workspace.

.spec.extend.with

array

with are WorkspaceTypes whose initializers are added to the list for the owning type, and for whom the owning type becomes an alias, as long as all of their required types are not mentioned in without.

.spec.extend.with[*]

object

WorkspaceTypeReference is a globally unique, fully qualified reference to a workspace type.

.spec.extend.with[*].name

string Required

name is the name of the WorkspaceType

.spec.extend.with[*].path

string

path is an absolute reference to the workspace that owns this type, e.g. root:org:ws.

.spec.initializer

boolean

initializer determines if this WorkspaceType has an associated initializing controller. These controllers are used to add functionality to a Workspace; all controllers must finish their work before the Workspace becomes ready for use.

One initializing controller is supported per WorkspaceType; the identifier for this initializer will be a colon-delimited string using the workspace in which the WorkspaceType is defined, and the type’s name. For example, if a WorkspaceType example is created in the root:org workspace, the implicit initializer name is root:org:Example.

.spec.limitAllowedChildren

object

limitAllowedChildren specifies constraints for sub-workspaces created in workspaces of this type. These are in addition to child constraints of types this one extends.

.spec.limitAllowedChildren.none

boolean

none means that no type matches.

.spec.limitAllowedChildren.types

array

types is a list of WorkspaceTypes that match. A workspace type extending another workspace type automatically is considered as that extended type as well (even transitively).

An empty list matches all types.

.spec.limitAllowedChildren.types[*]

object

WorkspaceTypeReference is a globally unique, fully qualified reference to a workspace type.

.spec.limitAllowedChildren.types[*].name

string Required

name is the name of the WorkspaceType

.spec.limitAllowedChildren.types[*].path

string

path is an absolute reference to the workspace that owns this type, e.g. root:org:ws.

.spec.limitAllowedParents

object

limitAllowedParents specifies constraints for the parent workspace that workspaces of this type are created in. These are in addition to parent constraints of types this one extends.

.spec.limitAllowedParents.none

boolean

none means that no type matches.

.spec.limitAllowedParents.types

array

types is a list of WorkspaceTypes that match. A workspace type extending another workspace type automatically is considered as that extended type as well (even transitively).

An empty list matches all types.

.spec.limitAllowedParents.types[*]

object

WorkspaceTypeReference is a globally unique, fully qualified reference to a workspace type.

.spec.limitAllowedParents.types[*].name

string Required

name is the name of the WorkspaceType

.spec.limitAllowedParents.types[*].path

string

path is an absolute reference to the workspace that owns this type, e.g. root:org:ws.

.status

object

WorkspaceTypeStatus defines the observed state of WorkspaceType.

.status.conditions

array

conditions is a list of conditions that apply to the APIExport.

.status.conditions[*]

object

Condition defines an observation of a object operational state.

.status.conditions[*].lastTransitionTime

string Required

Last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.

.status.conditions[*].message

string

A human readable message indicating details about the transition. This field may be empty.

.status.conditions[*].reason

string

The reason for the condition’s last transition in CamelCase. The specific API may choose whether or not this field is considered a guaranteed API. This field may not be empty.

.status.conditions[*].severity

string

Severity provides an explicit classification of Reason code, so the users or machines can immediately understand the current situation and act accordingly. The Severity field MUST be set only when Status=False.

.status.conditions[*].status

string Required

Status of the condition, one of True, False, Unknown.

.status.conditions[*].type

string Required

Type of condition in CamelCase or in foo.example.com/CamelCase. Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be useful (see .node.status.conditions), the ability to deconflict is important.

.status.virtualWorkspaces

array

virtualWorkspaces contains all APIExport virtual workspace URLs.

.status.virtualWorkspaces[*]

object

.status.virtualWorkspaces[*].url

string Required

url is a WorkspaceType initialization virtual workspace URL.