cluster

package
v0.6.0-beta.1 Latest Latest
Warning

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

Go to latest
Published: Jul 14, 2023 License: AGPL-3.0 Imports: 39 Imported by: 0

Documentation

Index

Constants

View Source
const (
	ComponentNameEmpty = ""
)
View Source
const ConditionsError = "ConditionsError"

ConditionsError cluster displays this status on list cmd when the status of ApplyResources or ProvisioningStarted condition is "False".

Variables

This section is empty.

Functions

func AddComponentRow

func AddComponentRow(tbl *printer.TablePrinter, objs *ClusterObjects, opt *PrinterOptions)

func AddEventRow

func AddEventRow(tbl *printer.TablePrinter, objs *ClusterObjects, opt *PrinterOptions)

func AddInstanceRow

func AddInstanceRow(tbl *printer.TablePrinter, objs *ClusterObjects, opt *PrinterOptions)

func AddLabelRow

func AddLabelRow(tbl *printer.TablePrinter, objs *ClusterObjects, opt *PrinterOptions)

func BuildStorageClass

func BuildStorageClass(storages []StorageInfo) string

func BuildStorageSize

func BuildStorageSize(storages []StorageInfo) string

func FindClusterComp

func FindClusterComp(cluster *appsv1alpha1.Cluster, compDefName string) *appsv1alpha1.ClusterComponentSpec

FindClusterComp finds component in cluster object based on the component definition name

func GenerateName

func GenerateName() string

func GetClusterByName

func GetClusterByName(dynamic dynamic.Interface, name string, namespace string) (*appsv1alpha1.Cluster, error)

func GetClusterDefByName

func GetClusterDefByName(dynamic dynamic.Interface, name string) (*appsv1alpha1.ClusterDefinition, error)

func GetComponentEndpoints

func GetComponentEndpoints(svcList *corev1.ServiceList, c *appsv1alpha1.ClusterComponentSpec) ([]string, []string)

GetComponentEndpoints gets component internal and external endpoints

func GetComponentServices

func GetComponentServices(svcList *corev1.ServiceList, c *appsv1alpha1.ClusterComponentSpec) ([]*corev1.Service, []*corev1.Service)

GetComponentServices gets component services

func GetConfigConstraintByName

func GetConfigConstraintByName(dynamic dynamic.Interface, name string) (*appsv1alpha1.ConfigConstraint, error)

func GetConfigMapByName

func GetConfigMapByName(dynamic dynamic.Interface, namespace, name string) (*corev1.ConfigMap, error)

func GetDefaultCompName

func GetDefaultCompName(cd *appsv1alpha1.ClusterDefinition) (string, error)

func GetDefaultVersion added in v0.6.0

func GetDefaultVersion(dynamic dynamic.Interface, clusterDef string) (string, error)

GetDefaultVersion gets the default cluster version that referencing the cluster definition. If only one version is found, it will be returned directly, otherwise the version with constant.DefaultClusterVersionAnnotationKey label will be returned.

func GetExternalAddr

func GetExternalAddr(svc *corev1.Service) string

GetExternalAddr gets external IP from service annotation

func GetK8SClientObject

func GetK8SClientObject(dynamic dynamic.Interface,
	obj client.Object,
	gvr schema.GroupVersionResource,
	namespace,
	name string) error

GetK8SClientObject gets the client object of k8s, obj must be a struct pointer so that obj can be updated with the response.

func GetManifests added in v0.6.0

func GetManifests(c *chart.Chart, namespace, name, kubeVersion string, values map[string]interface{}) (map[string]string, error)

GetManifests gets the cluster manifests

func GetPodClusterName

func GetPodClusterName(pod *corev1.Pod) string

func GetPodComponentName

func GetPodComponentName(pod *corev1.Pod) string

func GetVersionByClusterDef

func GetVersionByClusterDef(dynamic dynamic.Interface, clusterDef string) (*appsv1alpha1.ClusterVersionList, error)

func ValidateClusterVersion added in v0.6.0

func ValidateClusterVersion(dynamic dynamic.Interface, cd string, cv string) error

ValidateClusterVersion validates the cluster version.

func ValidateValues added in v0.6.0

func ValidateValues(c *ChartInfo, values map[string]interface{}) error

ValidateValues validates the given values against the schema.

Types

type ChartInfo added in v0.6.0

type ChartInfo struct {
	// Schema is the cluster parent helm chart schema, used to render the command flag
	Schema *spec.Schema

	// SubSchema is the sub chart schema, used to render the command flag
	SubSchema *spec.Schema

	// SubChartName is the name (alias if exists) of the sub chart
	SubChartName string

	// ClusterDef is the cluster definition
	ClusterDef string

	// Chart is the cluster helm chart object
	Chart *chart.Chart

	// Alias is the alias of the cluster chart, will be used as the command alias
	Alias string
}

func BuildChartInfo added in v0.6.0

func BuildChartInfo(t ClusterType) (*ChartInfo, error)

type ClusterInfo

type ClusterInfo struct {
	Name              string `json:"name,omitempty"`
	Namespace         string `json:"namespace,omitempty"`
	ClusterVersion    string `json:"clusterVersion,omitempty"`
	TerminationPolicy string `json:"terminationPolicy,omitempty"`
	ClusterDefinition string `json:"clusterDefinition,omitempty"`
	Status            string `json:"status,omitempty"`
	InternalEP        string `json:"internalEP,omitempty"`
	ExternalEP        string `json:"externalEP,omitempty"`
	CreatedTime       string `json:"age,omitempty"`
	Labels            string `json:"labels,omitempty"`
}

type ClusterObjects

type ClusterObjects struct {
	Cluster        *appsv1alpha1.Cluster
	ClusterDef     *appsv1alpha1.ClusterDefinition
	ClusterVersion *appsv1alpha1.ClusterVersion

	Pods       *corev1.PodList
	Services   *corev1.ServiceList
	Secrets    *corev1.SecretList
	PVCs       *corev1.PersistentVolumeClaimList
	Nodes      []*corev1.Node
	ConfigMaps *corev1.ConfigMapList
	Events     *corev1.EventList

	BackupPolicies []dpv1alpha1.BackupPolicy
	Backups        []dpv1alpha1.Backup
}

func FakeClusterObjs

func FakeClusterObjs() *ClusterObjects

func NewClusterObjects

func NewClusterObjects() *ClusterObjects

func (*ClusterObjects) GetClusterInfo

func (o *ClusterObjects) GetClusterInfo() *ClusterInfo

func (*ClusterObjects) GetComponentInfo

func (o *ClusterObjects) GetComponentInfo() []*ComponentInfo

func (*ClusterObjects) GetInstanceInfo

func (o *ClusterObjects) GetInstanceInfo() []*InstanceInfo

type ClusterType added in v0.6.0

type ClusterType string

ClusterType is the type of the cluster

func SupportedTypes added in v0.6.0

func SupportedTypes() []ClusterType

func (ClusterType) String added in v0.6.0

func (t ClusterType) String() string

type CompInfo

type CompInfo struct {
	Component       *appsv1alpha1.ClusterComponentSpec
	ComponentStatus *appsv1alpha1.ClusterComponentStatus
	ComponentDef    *appsv1alpha1.ClusterComponentDefinition
}

func FillCompInfoByName

func FillCompInfoByName(ctx context.Context, dynamic dynamic.Interface, namespace, clusterName, componentName string) (*CompInfo, error)

func (*CompInfo) InferPodName

func (info *CompInfo) InferPodName() (string, error)

type ComponentInfo

type ComponentInfo struct {
	Name      string `json:"name,omitempty"`
	NameSpace string `json:"nameSpace,omitempty"`
	Type      string `json:"type,omitempty"`
	Cluster   string `json:"cluster,omitempty"`
	Status    string `json:"status,omitempty"`
	Replicas  string `json:"replicas,omitempty"`
	CPU       string `json:"cpu,omitempty"`
	Memory    string `json:"memory,omitempty"`
	Image     string `json:"image,omitempty"`
	Storage   []StorageInfo
}

type GetOptions

type GetOptions struct {
	WithClusterDef     bool
	WithClusterVersion bool
	WithConfigMap      bool
	WithPVC            bool
	WithService        bool
	WithSecret         bool
	WithPod            bool
	WithEvent          bool
	WithDataProtection bool
}

type InstanceInfo

type InstanceInfo struct {
	Name        string `json:"name,omitempty"`
	Namespace   string `json:"namespace,omitempty"`
	Cluster     string `json:"cluster,omitempty"`
	Component   string `json:"component,omitempty"`
	Status      string `json:"status,omitempty"`
	Role        string `json:"role,omitempty"`
	AccessMode  string `json:"accessMode,omitempty"`
	AZ          string `json:"az,omitempty"`
	Region      string `json:"region,omitempty"`
	CPU         string `json:"cpu,omitempty"`
	Memory      string `json:"memory,omitempty"`
	Storage     []StorageInfo
	Node        string `json:"node,omitempty"`
	CreatedTime string `json:"age,omitempty"`
}

func GetSimpleInstanceInfos

func GetSimpleInstanceInfos(dynamic dynamic.Interface, name, namespace string) []*InstanceInfo

GetSimpleInstanceInfos returns simple instance info that only contains instance name and role, the default instance should be the first element in the returned array.

func GetSimpleInstanceInfosForComponent

func GetSimpleInstanceInfosForComponent(dynamic dynamic.Interface, name, componentName, namespace string) []*InstanceInfo

GetSimpleInstanceInfosForComponent returns simple instance info that only contains instance name and role for a component

type ObjectsGetter

type ObjectsGetter struct {
	Client    clientset.Interface
	Dynamic   dynamic.Interface
	Name      string
	Namespace string
	GetOptions
}

func (*ObjectsGetter) Get

func (o *ObjectsGetter) Get() (*ClusterObjects, error)

Get all kubernetes objects belonging to the database cluster

type PrintType

type PrintType string
const (
	PrintClusters   PrintType = "clusters"
	PrintWide       PrintType = "wide"
	PrintInstances  PrintType = "instances"
	PrintComponents PrintType = "components"
	PrintEvents     PrintType = "events"
	PrintLabels     PrintType = "label"
)

type Printer

type Printer struct {
	// contains filtered or unexported fields
}

Printer prints cluster info

func NewPrinter

func NewPrinter(out io.Writer, printType PrintType, opt *PrinterOptions) *Printer

func (*Printer) AddRow

func (p *Printer) AddRow(objs *ClusterObjects)

func (*Printer) GetterOptions

func (p *Printer) GetterOptions() GetOptions

func (*Printer) Print

func (p *Printer) Print()

type PrinterOptions

type PrinterOptions struct {
	ShowLabels bool
}

type SchemaPropName added in v0.6.0

type SchemaPropName string
const (
	VersionSchemaProp SchemaPropName = "version"
	RBACEnabledProp   SchemaPropName = "rbacEnabled"
)

the common schema property name

func (SchemaPropName) String added in v0.6.0

func (s SchemaPropName) String() string

type StorageInfo

type StorageInfo struct {
	Name         string
	Size         string
	StorageClass string
	AccessMode   string
}

Jump to

Keyboard shortcuts

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