Documentation ¶
Overview ¶
+k8s:deepcopy-gen=package +groupName=kubedirector.bluedata.io
Index ¶
- Variables
- type AppSpec
- type ClusterSpec
- type ClusterStatus
- type ClusterStorage
- type EnvVar
- type Image
- type KubeDirectorApp
- type KubeDirectorAppList
- type KubeDirectorCluster
- type KubeDirectorClusterList
- type Label
- type MemberStatus
- type NodeGroupConfig
- type NodeRole
- type Role
- type RoleService
- type RoleStatus
- type Service
- type ServiceEndpoint
- type SetupPackage
Constants ¶
This section is empty.
Variables ¶
var ( SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes) AddToScheme = SchemeBuilder.AddToScheme // SchemeGroupVersion is the group version used to register these objects. SchemeGroupVersion = schema.GroupVersion{Group: groupName, Version: version} )
Functions ¶
This section is empty.
Types ¶
type AppSpec ¶
type AppSpec struct { Label Label `json:"label"` DistroID string `json:"distro_id"` Version string `json:"version"` Image Image `json:"image,omitempty"` SetupPackage SetupPackage `json:"setup_package,omitempty"` Services []Service `json:"services"` NodeRoles []NodeRole `json:"roles"` Config NodeGroupConfig `json:"config"` PersistDirs []string `json:"persist_dirs"` Capabilities []v1.Capability `json:"capabilities"` SystemdRequired bool `json:"systemdRequired"` }
AppSpec is the spec provided for an app definition.
func (*AppSpec) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AppSpec.
func (*AppSpec) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ClusterSpec ¶
type ClusterSpec struct { AppID string `json:"app"` ServiceType string `json:"serviceType"` Roles []Role `json:"roles"` }
ClusterSpec is the spec provided for a virtual cluster. AppID references a KubeDirectorApp CR. ServiceType indicates whether to use NodePort or LoadBalancer services. The Roles field describes the requested cluster roles, each of which will be implemented (by KubeDirector) using a StatefulSet.
func (*ClusterSpec) DeepCopy ¶
func (in *ClusterSpec) DeepCopy() *ClusterSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterSpec.
func (*ClusterSpec) DeepCopyInto ¶
func (in *ClusterSpec) DeepCopyInto(out *ClusterSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ClusterStatus ¶
type ClusterStatus struct { State string `json:"state"` GenerationUid string `json:"generation_uid"` ClusterService string `json:"cluster_service"` Roles []RoleStatus `json:"roles"` }
ClusterStatus is the overall status object for a virtual cluster. It identifies which native k8s objects make up the cluster, and broadly indicates ongoing operations of cluster creation or reconfiguration.
func (*ClusterStatus) DeepCopy ¶
func (in *ClusterStatus) DeepCopy() *ClusterStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterStatus.
func (*ClusterStatus) DeepCopyInto ¶
func (in *ClusterStatus) DeepCopyInto(out *ClusterStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ClusterStorage ¶
type ClusterStorage struct { Size string `json:"size"` StorageClass string `json:"storageClassName"` }
ClusterStorage defines the persistent storage size/type, if any, to be used for certain specified directories of each container filesystem in a role.
func (*ClusterStorage) DeepCopy ¶
func (in *ClusterStorage) DeepCopy() *ClusterStorage
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterStorage.
func (*ClusterStorage) DeepCopyInto ¶
func (in *ClusterStorage) DeepCopyInto(out *ClusterStorage)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type EnvVar ¶
EnvVar specifies environment variables for the start script in a container
func (*EnvVar) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EnvVar.
func (*EnvVar) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Image ¶
type Image struct {
RepoTag string `json:"repoTag"`
}
Image is the Docker container image to be used. A top-level image can be specified, and/or a role-specific image that will override any top-level image.
func (*Image) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Image.
func (*Image) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type KubeDirectorApp ¶
type KubeDirectorApp struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata"` Spec AppSpec `json:"spec"` }
KubeDirectorApp represents a single app definition. This will be referenced by KubeDirectorCluster CRs, and then used by KupeDirector to determine how to deploy and manage the virtual cluster.
func (*KubeDirectorApp) DeepCopy ¶
func (in *KubeDirectorApp) DeepCopy() *KubeDirectorApp
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubeDirectorApp.
func (*KubeDirectorApp) DeepCopyInto ¶
func (in *KubeDirectorApp) DeepCopyInto(out *KubeDirectorApp)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*KubeDirectorApp) DeepCopyObject ¶
func (in *KubeDirectorApp) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type KubeDirectorAppList ¶
type KubeDirectorAppList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata"` Items []KubeDirectorApp `json:"items"` }
KubeDirectorAppList is the top-level list type for app definition CRs.
func (*KubeDirectorAppList) DeepCopy ¶
func (in *KubeDirectorAppList) DeepCopy() *KubeDirectorAppList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubeDirectorAppList.
func (*KubeDirectorAppList) DeepCopyInto ¶
func (in *KubeDirectorAppList) DeepCopyInto(out *KubeDirectorAppList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*KubeDirectorAppList) DeepCopyObject ¶
func (in *KubeDirectorAppList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type KubeDirectorCluster ¶
type KubeDirectorCluster struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata"` Spec ClusterSpec `json:"spec"` Status *ClusterStatus `json:"status,omitempty"` AppSpec *KubeDirectorApp `json:"-"` }
KubeDirectorCluster represents a single virtual cluster. This cluster will be implemented by KubeDirector using native k8s objects. Note that the AppSpec field is only used internally in KubeDirector; that field is not persisted to k8s.
func (*KubeDirectorCluster) DeepCopy ¶
func (in *KubeDirectorCluster) DeepCopy() *KubeDirectorCluster
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubeDirectorCluster.
func (*KubeDirectorCluster) DeepCopyInto ¶
func (in *KubeDirectorCluster) DeepCopyInto(out *KubeDirectorCluster)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*KubeDirectorCluster) DeepCopyObject ¶
func (in *KubeDirectorCluster) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type KubeDirectorClusterList ¶
type KubeDirectorClusterList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata"` Items []KubeDirectorCluster `json:"items"` }
KubeDirectorClusterList is the top-level list type for virtual cluster CRs.
func (*KubeDirectorClusterList) DeepCopy ¶
func (in *KubeDirectorClusterList) DeepCopy() *KubeDirectorClusterList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubeDirectorClusterList.
func (*KubeDirectorClusterList) DeepCopyInto ¶
func (in *KubeDirectorClusterList) DeepCopyInto(out *KubeDirectorClusterList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*KubeDirectorClusterList) DeepCopyObject ¶
func (in *KubeDirectorClusterList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type Label ¶
Label is a short name and long description for the app definition.
func (*Label) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Label.
func (*Label) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type MemberStatus ¶
type MemberStatus struct { Pod string `json:"pod"` Service string `json:"service"` PVC string `json:"pvc,omitempty"` State string `json:"state"` }
MemberStatus describes the component objects of a virtual cluster member.
func (*MemberStatus) DeepCopy ¶
func (in *MemberStatus) DeepCopy() *MemberStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MemberStatus.
func (*MemberStatus) DeepCopyInto ¶
func (in *MemberStatus) DeepCopyInto(out *MemberStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type NodeGroupConfig ¶
type NodeGroupConfig struct { RoleServices []RoleService `json:"role_services"` SelectedRoles []string `json:"selected_roles"` ConfigMetadata map[string]string `json:"config_meta"` }
NodeGroupConfig identifies a set of roles, and the services on those roles. The top-level config indicates which roles and services will always be active. Implementation of "config choices" will introduce other conditional configs.
func (*NodeGroupConfig) DeepCopy ¶
func (in *NodeGroupConfig) DeepCopy() *NodeGroupConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeGroupConfig.
func (*NodeGroupConfig) DeepCopyInto ¶
func (in *NodeGroupConfig) DeepCopyInto(out *NodeGroupConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type NodeRole ¶
type NodeRole struct { ID string `json:"id"` Cardinality string `json:"cardinality"` Image Image `json:"image,omitempty"` SetupPackage SetupPackage `json:"setup_package,omitempty"` }
NodeRole describes a subset of virtual cluster members that will provide the same services. At deployment time all role members will receive identical resource assignments.
func (*NodeRole) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeRole.
func (*NodeRole) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Role ¶
type Role struct { Name string `json:"id"` Members *int32 `json:"members"` Resources v1.ResourceRequirements `json:"resources"` Storage ClusterStorage `json:"storage,omitempty"` EnvVars []v1.EnvVar `json:"env,omitempty"` }
Role describes a subset of the virtual cluster members that shares a common image, resource requirements, persistent storage definition, and (as defined by the cluster's KubeDirectorApp) set of service endpoints.
func (*Role) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Role.
func (*Role) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RoleService ¶
RoleService associates a service with a role.
func (*RoleService) DeepCopy ¶
func (in *RoleService) DeepCopy() *RoleService
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RoleService.
func (*RoleService) DeepCopyInto ¶
func (in *RoleService) DeepCopyInto(out *RoleService)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RoleStatus ¶
type RoleStatus struct { Name string `json:"id"` StatefulSet string `json:"stateful_set"` Members []MemberStatus `json:"members"` }
RoleStatus describes the component objects of a virtual cluster role.
func (*RoleStatus) DeepCopy ¶
func (in *RoleStatus) DeepCopy() *RoleStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RoleStatus.
func (*RoleStatus) DeepCopyInto ¶
func (in *RoleStatus) DeepCopyInto(out *RoleStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Service ¶
type Service struct { ID string `json:"id"` Label Label `json:"label,omitempty"` Endpoint ServiceEndpoint `json:"endpoint,omitempty"` }
Service describes a network endpoint that should be exposed for external access, and/or identified for other use by API clients or consumers internal to the virtual cluster (e.g. app setup packages).
func (*Service) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Service.
func (*Service) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ServiceEndpoint ¶
type ServiceEndpoint struct { URLScheme string `json:"url_scheme,omitempty"` Port *int32 `json:"port"` Path string `json:"path,omitempty"` IsDashboard bool `json:"is_dashboard,omitempty"` }
ServiceEndpoint describes the service network address and protocol, and whether it should be displayed through a web browser.
func (*ServiceEndpoint) DeepCopy ¶
func (in *ServiceEndpoint) DeepCopy() *ServiceEndpoint
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceEndpoint.
func (*ServiceEndpoint) DeepCopyInto ¶
func (in *ServiceEndpoint) DeepCopyInto(out *ServiceEndpoint)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type SetupPackage ¶
type SetupPackage struct { ConfigAPIVersion int `json:"config_api_version"` ImportUrl string `json:"import_url"` }
SetupPackage describes the app setup package to be used. A top-level package can be specified, and/or a role-specific package that will override any top-level package.
func (*SetupPackage) DeepCopy ¶
func (in *SetupPackage) DeepCopy() *SetupPackage
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SetupPackage.
func (*SetupPackage) DeepCopyInto ¶
func (in *SetupPackage) DeepCopyInto(out *SetupPackage)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.