v1alpha1

package
v0.9.0 Latest Latest
Warning

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

Go to latest
Published: Jun 11, 2023 License: MIT Imports: 14 Imported by: 0

Documentation

Overview

Package v1alpha1 contains API Schema definitions for the cosmo v1alpha1 API group +kubebuilder:object:generate=true +groupName=cosmo-workspace.github.io

Index

Constants

View Source
const (
	AuthProxyRoleName               = "cosmo-auth-proxy-role"
	AuthProxyClusterRoleBindingName = "cosmo-auth-proxy-rolebinding"
)
View Source
const (
	// LabelKeyInstanceName is a instance name label on the each child resources associated with the instance
	LabelKeyInstanceName = "cosmo-workspace.github.io/instance"
	// LabelKeyTemplateName is a template name label on the resources created by instance
	LabelKeyTemplateName = "cosmo-workspace.github.io/template"
)
View Source
const (
	// TemplateLabelKeyType is a label key of additional type infomartion on Template
	TemplateLabelKeyType           = "cosmo-workspace.github.io/type"
	TemplateLabelEnumTypeWorkspace = "workspace"
	TemplateLabelEnumTypeUserAddon = "useraddon"

	// TemplateAnnKeyDisableNamePrefix is an annotation key on Template to notify controller not to add name prefix
	TemplateAnnKeyDisableNamePrefix = "cosmo-workspace.github.io/disable-nameprefix"
	// TemplateAnnKeySkipValidation is an annotation key on Template to notify webhook not to validate
	TemplateAnnKeySkipValidation = "cosmo-workspace.github.io/skip-validation"

	// TemplateAnnKeyUserRoles is an annotation key on Template for specific UserRoles
	TemplateAnnKeyUserRoles = "cosmo-workspace.github.io/userroles"
	// TemplateAnnKeyForbiddenUserRoles is an annotation key on Template which is not for specific UserRoles
	TemplateAnnKeyForbiddenUserRoles = "cosmo-workspace.github.io/forbidden-userroles"
)
View Source
const (
	// UserPasswordSecretName is a secret name for password secret
	UserPasswordSecretName = "password"
	// UserPasswordSecretDataKeyUserPasswordSecret is a secret data key for hashed password value
	UserPasswordSecretDataKeyUserPasswordSecret = "password"
	// UserPasswordSecretDataKeyUserPasswordSalt is a secret data key for hashed password salt
	UserPasswordSecretDataKeyUserPasswordSalt = "salt"
	// UserPasswordSecretAnnKeyUserPasswordIfDefault is a secret annotation key to notify if password is default
	UserPasswordSecretAnnKeyUserPasswordIfDefault = "cosmo-workspace.github.io/default-password"
)
View Source
const (
	PrivilegedRoleName  string = "cosmo-admin"
	PrivilegedGroupName string = "cosmo"
	AdminRoleName       string = "admin"
)
View Source
const (
	// WorkspaceTemplateAnnKeys are annotation keys for WorkspaceConfig
	WorkspaceTemplateAnnKeyURLBase         = "workspace.cosmo-workspace.github.io/urlbase"
	WorkspaceTemplateAnnKeyDeploymentName  = "workspace.cosmo-workspace.github.io/deployment"
	WorkspaceTemplateAnnKeyServiceName     = "workspace.cosmo-workspace.github.io/service"
	WorkspaceTemplateAnnKeyIngressName     = "workspace.cosmo-workspace.github.io/ingress"
	WorkspaceTemplateAnnKeyServiceMainPort = "workspace.cosmo-workspace.github.io/service-main-port"
)
View Source
const (
	// TemplateVars are Template variables to set WorkspaceConfig info on resources in the Template
	WorkspaceTemplateVarDeploymentName      = "{{WORKSPACE_DEPLOYMENT_NAME}}"
	WorkspaceTemplateVarServiceName         = "{{WORKSPACE_SERVICE_NAME}}"
	WorkspaceTemplateVarIngressName         = "{{WORKSPACE_INGRESS_NAME}}"
	WorkspaceTemplateVarServiceMainPortName = "{{WORKSPACE_SERVICE_MAIN_PORT_NAME}}"
)
View Source
const LabelControllerManaged = "cosmo-workspace.github.io/controller-managed"

LabelControllerManaged is a label on all resources managed by the controllers

View Source
const NamespaceLabelKeyUserName = "cosmo-workspace.github.io/user"

NamespaceLabelKeyUserName is a label key on namespace created b User

View Source
const TemplateVarUserName = "{{USER_NAME}}"

Var for user addon

View Source
const UserAddonTemplateAnnKeyDefaultUserAddon = "useraddon.cosmo-workspace.github.io/default"

UserAddonTemplateAnnKeyDefault is an annotation key on UserAddon Template to notify controller to create the UserAddon for all Users

View Source
const UserNamespacePrefix = "cosmo-user-"

Variables

View Source
var (
	// GroupVersion is group version used to register these objects
	GroupVersion = schema.GroupVersion{Group: "cosmo-workspace.github.io", Version: "v1alpha1"}

	// SchemeBuilder is used to add go types to the GroupVersionKind scheme
	SchemeBuilder = &scheme.Builder{GroupVersion: GroupVersion}

	// AddToScheme adds the types in this group-version to the given scheme.
	AddToScheme = SchemeBuilder.AddToScheme
)
View Source
var (
	PrivilegedRole = UserRole{Name: PrivilegedRoleName}
)

Functions

func AuthProxyRole

func AuthProxyRole(namespace string) rbacv1.Role

func AuthProxyRoleBindingApplyConfiguration

func AuthProxyRoleBindingApplyConfiguration(sa, namespace string) *rbacv1apply.RoleBindingApplyConfiguration

func AuthProxyRoleBindings

func AuthProxyRoleBindings(sa, namespace string) rbacv1.RoleBinding

func HasPrivilegedRole

func HasPrivilegedRole(roles []UserRole) bool

func SetControllerManaged added in v0.9.0

func SetControllerManaged(obj LabelHolder)

func UserNameByNamespace

func UserNameByNamespace(namespace string) string

func UserNamespace

func UserNamespace(username string) string

Types

type ClusterInstance

type ClusterInstance struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   InstanceSpec   `json:"spec,omitempty"`
	Status InstanceStatus `json:"status,omitempty"`
}

+kubebuilder:object:root=true +kubebuilder:resource:scope="Cluster",shortName=cinst +kubebuilder:subresource:status +kubebuilder:storageversion +kubebuilder:printcolumn:name="ClusterTemplate",type=string,JSONPath=`.spec.template.name` +kubebuilder:printcolumn:name="AppliedResources",type=string,JSONPath=`.status.lastAppliedObjectsCount` ClusterInstance is the Schema for the instances API

func (*ClusterInstance) DeepCopy

func (in *ClusterInstance) DeepCopy() *ClusterInstance

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterInstance.

func (*ClusterInstance) DeepCopyInto

func (in *ClusterInstance) DeepCopyInto(out *ClusterInstance)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ClusterInstance) DeepCopyObject

func (in *ClusterInstance) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*ClusterInstance) GetScope

func (i *ClusterInstance) GetScope() meta.RESTScope

func (*ClusterInstance) GetSpec

func (i *ClusterInstance) GetSpec() *InstanceSpec

func (*ClusterInstance) GetStatus

func (i *ClusterInstance) GetStatus() *InstanceStatus

type ClusterInstanceList

type ClusterInstanceList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []ClusterInstance `json:"items"`
}

+kubebuilder:object:root=true ClusterInstanceList contains a list of ClusterInstance

func (*ClusterInstanceList) DeepCopy

func (in *ClusterInstanceList) DeepCopy() *ClusterInstanceList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterInstanceList.

func (*ClusterInstanceList) DeepCopyInto

func (in *ClusterInstanceList) DeepCopyInto(out *ClusterInstanceList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ClusterInstanceList) DeepCopyObject

func (in *ClusterInstanceList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*ClusterInstanceList) InstanceObjects

func (l *ClusterInstanceList) InstanceObjects() []InstanceObject

type ClusterTemplate

type ClusterTemplate struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec TemplateSpec `json:"spec,omitempty"`
}

+kubebuilder:object:root=true +kubebuilder:resource:scope="Cluster",shortName=ctmpl +kubebuilder:storageversion ClusterTemplate is the Schema for the Templates API

func (*ClusterTemplate) DeepCopy

func (in *ClusterTemplate) DeepCopy() *ClusterTemplate

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterTemplate.

func (*ClusterTemplate) DeepCopyInto

func (in *ClusterTemplate) DeepCopyInto(out *ClusterTemplate)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ClusterTemplate) DeepCopyObject

func (in *ClusterTemplate) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*ClusterTemplate) GetScope

func (t *ClusterTemplate) GetScope() meta.RESTScope

func (*ClusterTemplate) GetSpec

func (t *ClusterTemplate) GetSpec() *TemplateSpec

type ClusterTemplateList

type ClusterTemplateList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []ClusterTemplate `json:"items"`
}

+kubebuilder:object:root=true ClusterTemplateList contains a list of ClusterTemplate

func (*ClusterTemplateList) DeepCopy

func (in *ClusterTemplateList) DeepCopy() *ClusterTemplateList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterTemplateList.

func (*ClusterTemplateList) DeepCopyInto

func (in *ClusterTemplateList) DeepCopyInto(out *ClusterTemplateList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ClusterTemplateList) DeepCopyObject

func (in *ClusterTemplateList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type Config

type Config struct {
	DeploymentName      string `json:"deploymentName,omitempty"`
	ServiceName         string `json:"serviceName,omitempty"`
	IngressName         string `json:"ingressName,omitempty"`
	ServiceMainPortName string `json:"mainServicePortName,omitempty"`
	URLBase             string `json:"urlbase,omitempty"`
}

Config defines workspace-dependent configuration

func (*Config) DeepCopy

func (in *Config) DeepCopy() *Config

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Config.

func (*Config) DeepCopyInto

func (in *Config) DeepCopyInto(out *Config)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type IngressOverrideSpec

type IngressOverrideSpec struct {
	TargetName  string              `json:"targetName,omitempty"`
	Annotations map[string]string   `json:"annotations,omitempty"`
	Rules       []netv1.IngressRule `json:"rules,omitempty"`
}

IngressOverrideSpec defines overrides to transform Ingress resources

func (*IngressOverrideSpec) DeepCopy

func (in *IngressOverrideSpec) DeepCopy() *IngressOverrideSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressOverrideSpec.

func (*IngressOverrideSpec) DeepCopyInto

func (in *IngressOverrideSpec) DeepCopyInto(out *IngressOverrideSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Instance

type Instance struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   InstanceSpec   `json:"spec,omitempty"`
	Status InstanceStatus `json:"status,omitempty"`
}

+kubebuilder:object:root=true +kubebuilder:resource:shortName=inst +kubebuilder:subresource:status +kubebuilder:storageversion +kubebuilder:printcolumn:name="Template",type=string,JSONPath=`.spec.template.name` +kubebuilder:printcolumn:name="AppliedResources",type=string,JSONPath=`.status.lastAppliedObjectsCount` Instance is the Schema for the instances API

func (*Instance) DeepCopy

func (in *Instance) DeepCopy() *Instance

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Instance.

func (*Instance) DeepCopyInto

func (in *Instance) DeepCopyInto(out *Instance)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*Instance) DeepCopyObject

func (in *Instance) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*Instance) GetScope

func (i *Instance) GetScope() meta.RESTScope

func (*Instance) GetSpec

func (i *Instance) GetSpec() *InstanceSpec

func (*Instance) GetStatus

func (i *Instance) GetStatus() *InstanceStatus

type InstanceList

type InstanceList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []Instance `json:"items"`
}

+kubebuilder:object:root=true InstanceList contains a list of Instance

func (*InstanceList) DeepCopy

func (in *InstanceList) DeepCopy() *InstanceList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InstanceList.

func (*InstanceList) DeepCopyInto

func (in *InstanceList) DeepCopyInto(out *InstanceList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*InstanceList) DeepCopyObject

func (in *InstanceList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*InstanceList) InstanceObjects

func (l *InstanceList) InstanceObjects() []InstanceObject

type InstanceObject

type InstanceObject interface {
	metav1.Object
	runtime.Object
	GetSpec() *InstanceSpec
	GetStatus() *InstanceStatus
	GetScope() meta.RESTScope
}

+kubebuilder:object:generate=false

type InstanceSpec

type InstanceSpec struct {
	// +kubebuilder:validation:Required
	Template TemplateRef       `json:"template"`
	Vars     map[string]string `json:"vars,omitempty"`
	Override OverrideSpec      `json:"override,omitempty"`
}

InstanceSpec defines the desired state of Instance

func (*InstanceSpec) DeepCopy

func (in *InstanceSpec) DeepCopy() *InstanceSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InstanceSpec.

func (*InstanceSpec) DeepCopyInto

func (in *InstanceSpec) DeepCopyInto(out *InstanceSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type InstanceStatus

type InstanceStatus struct {
	TemplateName            string      `json:"templateName,omitempty"`
	TemplateResourceVersion string      `json:"templateResourceVersion,omitempty"`
	LastApplied             []ObjectRef `json:"lastApplied,omitempty"`
	LastAppliedObjectsCount int         `json:"lastAppliedObjectsCount,omitempty"`
	TemplateObjectsCount    int         `json:"templateObjectsCount,omitempty"`
}

InstanceStatus has status of Instance

func (*InstanceStatus) DeepCopy

func (in *InstanceStatus) DeepCopy() *InstanceStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InstanceStatus.

func (*InstanceStatus) DeepCopyInto

func (in *InstanceStatus) DeepCopyInto(out *InstanceStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Json6902

type Json6902 struct {
	Target ObjectRef `json:"target"`
	Patch  string    `json:"patch,omitempty"`
}

Json6902 defines JSONPatch specs.

func (*Json6902) DeepCopy

func (in *Json6902) DeepCopy() *Json6902

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Json6902.

func (*Json6902) DeepCopyInto

func (in *Json6902) DeepCopyInto(out *Json6902)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type LabelHolder added in v0.9.0

type LabelHolder interface {
	GetLabels() map[string]string
	SetLabels(map[string]string)
}

+kubebuilder:object:generate=false

type NetworkOverrideSpec

type NetworkOverrideSpec struct {
	Ingress []IngressOverrideSpec `json:"ingress,omitempty"`
	Service []ServiceOverrideSpec `json:"service,omitempty"`
}

NetworkOverrideSpec defines overrides to transform network resources

func (*NetworkOverrideSpec) DeepCopy

func (in *NetworkOverrideSpec) DeepCopy() *NetworkOverrideSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkOverrideSpec.

func (*NetworkOverrideSpec) DeepCopyInto

func (in *NetworkOverrideSpec) DeepCopyInto(out *NetworkOverrideSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type NetworkRule

type NetworkRule struct {
	Name             string  `json:"name"`
	PortNumber       int32   `json:"portNumber"`
	HTTPPath         string  `json:"httpPath"`
	TargetPortNumber *int32  `json:"targetPortNumber,omitempty"`
	Host             *string `json:"host,omitempty"`
	Group            *string `json:"group,omitempty"`
	Public           bool    `json:"public"`
}

NetworkRule is an abstract network configuration rule for workspace

func NetworkRulesByServiceAndIngress

func NetworkRulesByServiceAndIngress(svc corev1.Service, ing netv1.Ingress) []NetworkRule

func (*NetworkRule) DeepCopy

func (in *NetworkRule) DeepCopy() *NetworkRule

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkRule.

func (*NetworkRule) DeepCopyInto

func (in *NetworkRule) DeepCopyInto(out *NetworkRule)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*NetworkRule) Default

func (r *NetworkRule) Default()

func (*NetworkRule) IngressRule

func (r *NetworkRule) IngressRule(backendSvcName string) netv1.IngressRule

func (*NetworkRule) ServicePort

func (r *NetworkRule) ServicePort() corev1.ServicePort

func (*NetworkRule) TraefikRoute added in v0.9.0

func (r *NetworkRule) TraefikRoute(backendSvcName string, headerMiddlewareName string) traefikv1.Route

type ObjectRef

type ObjectRef struct {
	corev1.ObjectReference `json:",inline"`
	CreationTimestamp      *metav1.Time `json:"creationTimestamp,omitempty"`
}

ObjectRef is a reference of resource which is created by the Instance

func (*ObjectRef) DeepCopy

func (in *ObjectRef) DeepCopy() *ObjectRef

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ObjectRef.

func (*ObjectRef) DeepCopyInto

func (in *ObjectRef) DeepCopyInto(out *ObjectRef)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (ObjectRef) GetName

func (r ObjectRef) GetName() string

func (ObjectRef) GroupVersionKind

func (r ObjectRef) GroupVersionKind() schema.GroupVersionKind

func (*ObjectRef) SetGroupVersionKind

func (r *ObjectRef) SetGroupVersionKind(gvk schema.GroupVersionKind)

func (*ObjectRef) SetName

func (r *ObjectRef) SetName(name string)

type OverrideSpec

type OverrideSpec struct {
	Scale           []ScalingOverrideSpec `json:"scale,omitempty"`
	Network         *NetworkOverrideSpec  `json:"network,omitempty"`
	PatchesJson6902 []Json6902            `json:"patchesJson6902,omitempty"`
}

OverrideSpec defines overrides to transform built objects

func (*OverrideSpec) DeepCopy

func (in *OverrideSpec) DeepCopy() *OverrideSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OverrideSpec.

func (*OverrideSpec) DeepCopyInto

func (in *OverrideSpec) DeepCopyInto(out *OverrideSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type RequiredVarSpec

type RequiredVarSpec struct {
	Var     string `json:"var"`
	Default string `json:"default,omitempty"`
}

RequiredVarSpec defines a required var spec for template

func (*RequiredVarSpec) DeepCopy

func (in *RequiredVarSpec) DeepCopy() *RequiredVarSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RequiredVarSpec.

func (*RequiredVarSpec) DeepCopyInto

func (in *RequiredVarSpec) DeepCopyInto(out *RequiredVarSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ScalingOverrideSpec

type ScalingOverrideSpec struct {
	Target   ObjectRef `json:"target"`
	Replicas int64     `json:"replicas"`
}

ScalingOverrideSpec defines workload scales.

func (*ScalingOverrideSpec) DeepCopy

func (in *ScalingOverrideSpec) DeepCopy() *ScalingOverrideSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScalingOverrideSpec.

func (*ScalingOverrideSpec) DeepCopyInto

func (in *ScalingOverrideSpec) DeepCopyInto(out *ScalingOverrideSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ServiceOverrideSpec

type ServiceOverrideSpec struct {
	TargetName string               `json:"targetName,omitempty"`
	Ports      []corev1.ServicePort `json:"ports,omitempty"`
}

ServiceOverrideSpec defines overrides to transform Service resources

func (*ServiceOverrideSpec) DeepCopy

func (in *ServiceOverrideSpec) DeepCopy() *ServiceOverrideSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceOverrideSpec.

func (*ServiceOverrideSpec) DeepCopyInto

func (in *ServiceOverrideSpec) DeepCopyInto(out *ServiceOverrideSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Template

type Template struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec TemplateSpec `json:"spec,omitempty"`
}

+kubebuilder:object:root=true +kubebuilder:resource:scope="Cluster",shortName=tmpl +kubebuilder:storageversion Template is the Schema for the Templates API

func (*Template) DeepCopy

func (in *Template) DeepCopy() *Template

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Template.

func (*Template) DeepCopyInto

func (in *Template) DeepCopyInto(out *Template)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*Template) DeepCopyObject

func (in *Template) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*Template) GetScope

func (t *Template) GetScope() meta.RESTScope

func (*Template) GetSpec

func (t *Template) GetSpec() *TemplateSpec

type TemplateList

type TemplateList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []Template `json:"items"`
}

+kubebuilder:object:root=true TemplateList contains a list of Template

func (*TemplateList) DeepCopy

func (in *TemplateList) DeepCopy() *TemplateList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TemplateList.

func (*TemplateList) DeepCopyInto

func (in *TemplateList) DeepCopyInto(out *TemplateList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*TemplateList) DeepCopyObject

func (in *TemplateList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type TemplateObject

type TemplateObject interface {
	metav1.Object
	runtime.Object
	SetGroupVersionKind(gvk schema.GroupVersionKind)
	GetSpec() *TemplateSpec
	GetScope() meta.RESTScope
}

+kubebuilder:object:generate=false

type TemplateRef

type TemplateRef struct {
	// +kubebuilder:validation:Required
	Name string `json:"name"`
}

TemplateRef defines template to use in Instance creation

func (*TemplateRef) DeepCopy

func (in *TemplateRef) DeepCopy() *TemplateRef

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TemplateRef.

func (*TemplateRef) DeepCopyInto

func (in *TemplateRef) DeepCopyInto(out *TemplateRef)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type TemplateSpec

type TemplateSpec struct {
	Description  string            `json:"description,omitempty"`
	RequiredVars []RequiredVarSpec `json:"requiredVars,omitempty"`
	RawYaml      string            `json:"rawYaml,omitempty"`
}

TemplateSpec defines the desired state of Template

func (*TemplateSpec) DeepCopy

func (in *TemplateSpec) DeepCopy() *TemplateSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TemplateSpec.

func (*TemplateSpec) DeepCopyInto

func (in *TemplateSpec) DeepCopyInto(out *TemplateSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type User

type User struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   UserSpec   `json:"spec,omitempty"`
	Status UserStatus `json:"status,omitempty"`
}

+kubebuilder:object:root=true +kubebuilder:resource:scope="Cluster" +kubebuilder:subresource:status +kubebuilder:storageversion +kubebuilder:printcolumn:name="Roles",type=string,JSONPath=`.spec.roles[*].name` +kubebuilder:printcolumn:name="AuthType",type=string,JSONPath=`.spec.authType` +kubebuilder:printcolumn:name="Namespace",type=string,JSONPath=`.status.namespace.name` +kubebuilder:printcolumn:name="Phase",type=string,JSONPath=`.status.phase` +kubebuilder:printcolumn:name="Addons",type=string,JSONPath=`.spec.addons[*].template.name` User is the Schema for the workspaces API

func (*User) DeepCopy

func (in *User) DeepCopy() *User

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new User.

func (*User) DeepCopyInto

func (in *User) DeepCopyInto(out *User)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*User) DeepCopyObject

func (in *User) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*User) GetGroupRoleMap

func (u *User) GetGroupRoleMap() map[string]string

type UserAddon

type UserAddon struct {
	Template UserAddonTemplateRef `json:"template,omitempty"`
	Vars     map[string]string    `json:"vars,omitempty"`
}

func (*UserAddon) DeepCopy

func (in *UserAddon) DeepCopy() *UserAddon

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UserAddon.

func (*UserAddon) DeepCopyInto

func (in *UserAddon) DeepCopyInto(out *UserAddon)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type UserAddonTemplateRef

type UserAddonTemplateRef struct {
	// +kubebuilder:validation:Required
	Name          string `json:"name"`
	ClusterScoped bool   `json:"clusterScoped,omitempty"`
}

TemplateRef defines template to use in Instance creation

func (*UserAddonTemplateRef) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UserAddonTemplateRef.

func (*UserAddonTemplateRef) DeepCopyInto

func (in *UserAddonTemplateRef) DeepCopyInto(out *UserAddonTemplateRef)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type UserAuthType

type UserAuthType string

+kubebuilder:validation:enum=password-secret;ldap UserAuthType enums

const (
	UserAuthTypePasswordSecert UserAuthType = "password-secret"
	UserAuthTypeLDAP           UserAuthType = "ldap"
)

func (UserAuthType) IsValid

func (t UserAuthType) IsValid() bool

func (UserAuthType) String

func (t UserAuthType) String() string

type UserList

type UserList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []User `json:"items"`
}

+kubebuilder:object:root=true UserList contains a list of User

func (*UserList) DeepCopy

func (in *UserList) DeepCopy() *UserList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UserList.

func (*UserList) DeepCopyInto

func (in *UserList) DeepCopyInto(out *UserList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*UserList) DeepCopyObject

func (in *UserList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type UserRole

type UserRole struct {
	Name string `json:"name"`
}

func (*UserRole) DeepCopy

func (in *UserRole) DeepCopy() *UserRole

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UserRole.

func (*UserRole) DeepCopyInto

func (in *UserRole) DeepCopyInto(out *UserRole)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (UserRole) GetGroupAndRole

func (r UserRole) GetGroupAndRole() (group string, role string)

GetGroupAndRole exclude group and role from UserRole.Name if UserRole is `cosmo-admin`, it returns group: cosmo, role: admin role is one of the [`admin`]

type UserSpec

type UserSpec struct {
	DisplayName string       `json:"displayName,omitempty"`
	Roles       []UserRole   `json:"roles,omitempty"`
	AuthType    UserAuthType `json:"authType,omitempty"`
	Addons      []UserAddon  `json:"addons,omitempty"`
}

func (*UserSpec) DeepCopy

func (in *UserSpec) DeepCopy() *UserSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UserSpec.

func (*UserSpec) DeepCopyInto

func (in *UserSpec) DeepCopyInto(out *UserSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type UserStatus

type UserStatus struct {
	Phase     corev1.NamespacePhase `json:"phase,omitempty"`
	Namespace ObjectRef             `json:"namespace,omitempty"`
	Addons    []ObjectRef           `json:"addons,omitempty"`
}

func (*UserStatus) DeepCopy

func (in *UserStatus) DeepCopy() *UserStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UserStatus.

func (*UserStatus) DeepCopyInto

func (in *UserStatus) DeepCopyInto(out *UserStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Workspace

type Workspace struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   WorkspaceSpec   `json:"spec,omitempty"`
	Status WorkspaceStatus `json:"status,omitempty"`
}

+kubebuilder:object:root=true +kubebuilder:resource:shortName=ws +kubebuilder:subresource:status +kubebuilder:storageversion +kubebuilder:printcolumn:name="Template",type=string,JSONPath=`.spec.template.name` +kubebuilder:printcolumn:name="Phase",type=string,JSONPath=`.status.phase` Workspace is the Schema for the workspaces API

func (*Workspace) DeepCopy

func (in *Workspace) DeepCopy() *Workspace

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Workspace.

func (*Workspace) DeepCopyInto

func (in *Workspace) DeepCopyInto(out *Workspace)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*Workspace) DeepCopyObject

func (in *Workspace) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type WorkspaceList

type WorkspaceList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []Workspace `json:"items"`
}

+kubebuilder:object:root=true WorkspaceList contains a list of Workspace

func (*WorkspaceList) DeepCopy

func (in *WorkspaceList) DeepCopy() *WorkspaceList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WorkspaceList.

func (*WorkspaceList) DeepCopyInto

func (in *WorkspaceList) DeepCopyInto(out *WorkspaceList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*WorkspaceList) DeepCopyObject

func (in *WorkspaceList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type WorkspaceSpec

type WorkspaceSpec struct {
	// +kubebuilder:validation:Required
	Template TemplateRef       `json:"template"`
	Replicas *int64            `json:"replicas,omitempty"`
	Vars     map[string]string `json:"vars,omitempty"`
	Network  []NetworkRule     `json:"network,omitempty"`
}

WorkspaceSpec defines the desired state of Workspace

func (*WorkspaceSpec) DeepCopy

func (in *WorkspaceSpec) DeepCopy() *WorkspaceSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WorkspaceSpec.

func (*WorkspaceSpec) DeepCopyInto

func (in *WorkspaceSpec) DeepCopyInto(out *WorkspaceSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type WorkspaceStatus

type WorkspaceStatus struct {
	Instance ObjectRef         `json:"instance,omitempty"`
	Phase    string            `json:"phase,omitempty"`
	URLs     map[string]string `json:"urls,omitempty"`
	Config   Config            `json:"config,omitempty"`
}

WorkspaceStatus has status of Workspace

func (*WorkspaceStatus) DeepCopy

func (in *WorkspaceStatus) DeepCopy() *WorkspaceStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WorkspaceStatus.

func (*WorkspaceStatus) DeepCopyInto

func (in *WorkspaceStatus) DeepCopyInto(out *WorkspaceStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

Jump to

Keyboard shortcuts

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