v1alpha1

package
v0.1.0 Latest Latest
Warning

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

Go to latest
Published: Oct 2, 2018 License: Apache-2.0 Imports: 5 Imported by: 0

Documentation

Overview

+k8s:deepcopy-gen=package +groupName=kubedirector.bluedata.io

Index

Constants

This section is empty.

Variables

View Source
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

func (in *AppSpec) DeepCopy() *AppSpec

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

func (*AppSpec) DeepCopyInto

func (in *AppSpec) DeepCopyInto(out *AppSpec)

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

type EnvVar struct {
	Name  string `json:"name"`
	Value string `json:"value"`
}

EnvVar specifies environment variables for the start script in a container

func (*EnvVar) DeepCopy

func (in *EnvVar) DeepCopy() *EnvVar

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

func (*EnvVar) DeepCopyInto

func (in *EnvVar) DeepCopyInto(out *EnvVar)

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

func (in *Image) DeepCopy() *Image

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

func (*Image) DeepCopyInto

func (in *Image) DeepCopyInto(out *Image)

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

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

type Label struct {
	Name        string `json:"name"`
	Description string `json:"description,omitempty"`
}

Label is a short name and long description for the app definition.

func (*Label) DeepCopy

func (in *Label) DeepCopy() *Label

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

func (*Label) DeepCopyInto

func (in *Label) DeepCopyInto(out *Label)

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

func (in *NodeRole) DeepCopy() *NodeRole

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

func (*NodeRole) DeepCopyInto

func (in *NodeRole) DeepCopyInto(out *NodeRole)

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

func (in *Role) DeepCopy() *Role

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

func (*Role) DeepCopyInto

func (in *Role) DeepCopyInto(out *Role)

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

type RoleService

type RoleService struct {
	ServiceIDs []string `json:"service_ids"`
	RoleID     string   `json:"role_id"`
}

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

func (in *Service) DeepCopy() *Service

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

func (*Service) DeepCopyInto

func (in *Service) DeepCopyInto(out *Service)

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.

Jump to

Keyboard shortcuts

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