v1alpha1

package
v0.0.0-...-b43e203 Latest Latest
Warning

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

Go to latest
Published: Apr 9, 2024 License: Apache-2.0 Imports: 20 Imported by: 0

Documentation

Overview

Package v1alpha1 contains v1alpha1 version's types in apps.nebula-graph.io group.

+groupName=apps.nebula-graph.io

Package v1alpha1 contains API Schema definitions for the apps v1alpha1 API group +kubebuilder:object:generate=true +groupName=apps.nebula-graph.io

Index

Constants

View Source
const (
	NebulaServiceAccountName  = "nebula-sa"
	NebulaRoleName            = "nebula-role"
	NebulaRoleBindingName     = "nebula-rolebinding"
	LogSidecarContainerName   = "ng-logrotate"
	AgentSidecarContainerName = "ng-agent"
	AgentInitContainerName    = "ng-init-agent"
	DefaultAgentPortGRPC      = 8888
	AgentPortNameGRPC         = "grpc"
	DefaultAgentImage         = "vesoft/nebula-agent"
	DefaultAlpineImage        = "vesoft/nebula-alpine:latest"

	ZoneSuffix = "zone"
)
View Source
const (
	GraphdComponentType  = ComponentType("graphd")
	GraphdPortNameThrift = "thrift"

	GraphdPortNameHTTP = "http"
)
View Source
const (
	MetadComponentType  = ComponentType("metad")
	MetadPortNameThrift = "thrift"

	MetadPortNameHTTP = "http"
)
View Source
const (
	StoragedComponentType  = ComponentType("storaged")
	StoragedPortNameThrift = "thrift"

	StoragedPortNameHTTP = "http"

	StoragedPortNameAdmin = "admin"
)
View Source
const (
	// nolint: revive
	GraphdConfigTemplate = `` /* 8855-byte string literal not displayed */

	// nolint: revive
	MetadhConfigTemplate = `` /* 2886-byte string literal not displayed */

	// nolint: revive
	StoragedConfigTemplate = `` /* 8364-byte string literal not displayed */

)

Variables

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

	SchemeGroupVersion = GroupVersion

	// 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 DynamicFlags = map[string]string{
	"minloglevel":                                 "0",
	"v":                                           "0",
	"accept_partial_success":                      "false",
	"max_allowed_query_size":                      "4194304",
	"system_memory_high_watermark_ratio":          "0.8",
	"ng_black_box_file_lifetime_seconds":          "1800",
	"memory_tracker_limit_ratio":                  "0.8",
	"memory_tracker_untracked_reserved_memory_mb": "50",
	"memory_tracker_detail_log":                   "false",
	"memory_tracker_detail_log_interval_ms":       "60000",
	"memory_purge_enabled":                        "true",
	"memory_purge_interval_seconds":               "10",
	"heartbeat_interval_secs":                     "10",
	"raft_heartbeat_interval_secs":                "30",
	"raft_rpc_timeout_ms":                         "500",
	"wal_ttl":                                     "14400",
	"query_concurrently":                          "true",
	"auto_remove_invalid_space":                   "true",
	"snapshot_part_rate_limit":                    "10485760",
	"snapshot_batch_size":                         "1048576",
	"rebuild_index_part_rate_limit":               "4194304",
	"prioritize_intra_zone_reading":               "false",
	"stick_to_intra_zone_on_failure":              "false",
}

Functions

func EnableLocalCerts

func EnableLocalCerts() bool

func GenerateInitAgentContainer

func GenerateInitAgentContainer(c NebulaClusterComponent) corev1.Container

func GetClientCertVolumeMounts

func GetClientCertVolumeMounts() []corev1.VolumeMount

func GetClientCertVolumes

func GetClientCertVolumes(sslCerts *SSLCertsSpec) []corev1.Volume

func Resource

func Resource(resource string) schema.GroupResource

Resource is required by pkg/client/listers/...

Types

type AgentContainerSpec

type AgentContainerSpec struct {
	// Container image.
	// +optional
	Image string `json:"image,omitempty"`

	// Version tag for container image.
	// +kubebuilder:default=latest
	// +optional
	Version string `json:"version,omitempty"`

	// K8S resources settings.
	// +optional
	Resources corev1.ResourceRequirements `json:"resources,omitempty"`

	// Container environment variables.
	// +optional
	EnvVars []corev1.EnvVar `json:"env,omitempty"`

	// +optional
	VolumeMounts []corev1.VolumeMount `json:"volumeMounts,omitempty"`

	// Limit the file upload and download rate, unit Mbps
	// +optional
	RateLimit *int32 `json:"rateLimit,omitempty"`

	// Agent heartbeat interval to nebula meta, in seconds
	// +kubebuilder:default=60
	// +optional
	HeartbeatInterval int32 `json:"heartbeatInterval,omitempty"`
}

AgentContainerSpec defines the desired state of Agent

func (*AgentContainerSpec) DeepCopy

func (in *AgentContainerSpec) DeepCopy() *AgentContainerSpec

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

func (*AgentContainerSpec) DeepCopyInto

func (in *AgentContainerSpec) DeepCopyInto(out *AgentContainerSpec)

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

type BackupCondition

type BackupCondition struct {
	// Type of the condition.
	Type BackupConditionType `json:"type"`
	// Status of the condition, one of True, False, Unknown.
	Status corev1.ConditionStatus `json:"status"`
	// The last time this condition was updated.
	LastUpdateTime metav1.Time `json:"lastUpdateTime,omitempty"`
	// Last time the condition transitioned from one status to another.
	// +optional
	LastTransitionTime metav1.Time `json:"lastTransitionTime,omitempty"`
	// The reason for the condition's last transition.
	// +optional
	Reason string `json:"reason,omitempty"`
	// A human-readable message indicating details about the transition.
	// +optional
	Message string `json:"message,omitempty"`
}

BackupCondition describes the observed state of a Backup at a certain point.

func (*BackupCondition) DeepCopy

func (in *BackupCondition) DeepCopy() *BackupCondition

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

func (*BackupCondition) DeepCopyInto

func (in *BackupCondition) DeepCopyInto(out *BackupCondition)

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

type BackupConditionType

type BackupConditionType string

BackupConditionType represents a valid condition of a Backup.

const (
	// BackupRunning means the backup is currently being executed.
	BackupRunning BackupConditionType = "Running"
	// BackupComplete means the backup has successfully executed and the
	// backup data has been loaded into nebula cluster.
	BackupComplete BackupConditionType = "Complete"
	// BackupClean means the clean job has been clean the backup data.
	BackupClean BackupConditionType = "Clean"
	// BackupFailed means the backup has failed.
	BackupFailed BackupConditionType = "Failed"
	// BackupInvalid means invalid backup CR.
	BackupInvalid BackupConditionType = "Invalid"
)

type BackupConfig

type BackupConfig struct {
	NamespacedObjectReference `json:",inline"`
	// The name of the base backup and only used for incremental backup.
	BaseBackupName *string `json:"baseBackupName,omitempty"`
	// Concurrency is used to control the number of concurrent file uploads during data backup.
	// +kubebuilder:default=5
	// +optional
	Concurrency int32 `json:"concurrency,omitempty"`
	// StorageProvider configures where and how backups should be stored.
	StorageProvider `json:",inline"`
}

func (*BackupConfig) DeepCopy

func (in *BackupConfig) DeepCopy() *BackupConfig

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

func (*BackupConfig) DeepCopyInto

func (in *BackupConfig) DeepCopyInto(out *BackupConfig)

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

type BackupSpec

type BackupSpec struct {
	// Container image.
	// +optional
	Image string `json:"image,omitempty"`

	// Version tag for container image.
	// +optional
	Version string `json:"version,omitempty"`

	// +optional
	Resources corev1.ResourceRequirements `json:"resources,omitempty"`

	// +optional
	Env []corev1.EnvVar `json:"env,omitempty"`

	// +kubebuilder:default=Always
	ImagePullPolicy corev1.PullPolicy `json:"imagePullPolicy,omitempty"`

	// +optional
	ImagePullSecrets []corev1.LocalObjectReference `json:"imagePullSecrets,omitempty"`

	// +optional
	NodeSelector map[string]string `json:"nodeSelector,omitempty"`

	// +optional
	Affinity *corev1.Affinity `json:"affinity,omitempty"`

	// +optional
	Tolerations []corev1.Toleration `json:"tolerations,omitempty"`

	// +optional
	InitContainers []corev1.Container `json:"initContainers,omitempty"`

	// +optional
	SidecarContainers []corev1.Container `json:"sidecarContainers,omitempty"`

	// +optional
	Volumes []corev1.Volume `json:"volumes,omitempty"`

	// +optional
	VolumeMounts []corev1.VolumeMount `json:"volumeMounts,omitempty"`

	// CleanBackupData denotes whether to clean backup data when the object is deleted from the cluster,
	// if not set, the backup data will be retained
	// +optional
	CleanBackupData *bool `json:"cleanBackupData,omitempty"`

	// The job that status is failed and completed will be removed automatically.
	// +optional
	AutoRemoveFinished *bool `json:"autoRemoveFinished,omitempty"`

	Config *BackupConfig `json:"config,omitempty"`
}

BackupSpec contains the specification for a backup of a nebula cluster backup.

func (*BackupSpec) DeepCopy

func (in *BackupSpec) DeepCopy() *BackupSpec

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

func (*BackupSpec) DeepCopyInto

func (in *BackupSpec) DeepCopyInto(out *BackupSpec)

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

type BackupStatus

type BackupStatus struct {
	// Type is the backup type for nebula cluster.
	Type BackupType `json:"type,omitempty"`
	// BackupName is the name of the backup generated by nebula.
	BackupName string `json:"backupName,omitempty"`
	// TimeStarted is the time at which the backup was started.
	// +nullable
	TimeStarted *metav1.Time `json:"timeStarted,omitempty"`
	// TimeCompleted is the time at which the backup was completed.
	// +nullable
	TimeCompleted *metav1.Time `json:"timeCompleted,omitempty"`
	// Phase is a user readable state inferred from the underlying Backup conditions.
	Phase BackupConditionType `json:"phase,omitempty"`
	// +nullable
	Conditions []BackupCondition `json:"conditions,omitempty"`
}

BackupStatus represents the current status of a nebula cluster backup.

func (*BackupStatus) DeepCopy

func (in *BackupStatus) DeepCopy() *BackupStatus

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

func (*BackupStatus) DeepCopyInto

func (in *BackupStatus) DeepCopyInto(out *BackupStatus)

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

type BackupType

type BackupType string

BackupType represents the backup type. +k8s:openapi-gen=true

const (
	// BackupTypeFull represents the full backup of nebula cluster.
	BackupTypeFull BackupType = "full"
	// BackupTypeIncr represents the incremental backup of nebula cluster.
	BackupTypeIncr BackupType = "incr"
)

func (BackupType) String

func (t BackupType) String() string

type BalanceJob

type BalanceJob struct {
	SpaceID int32 `json:"spaceID,omitempty"`
	JobID   int32 `json:"jobID,omitempty"`
}

BalanceJob describes the admin job for balance data.

func (*BalanceJob) DeepCopy

func (in *BalanceJob) DeepCopy() *BalanceJob

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

func (*BalanceJob) DeepCopyInto

func (in *BalanceJob) DeepCopyInto(out *BalanceJob)

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

type BaseComponent

type BaseComponent interface {
	GraphdComponent() NebulaClusterComponent
	MetadComponent() NebulaClusterComponent
	StoragedComponent() NebulaClusterComponent
	ComponentSpec() ComponentAccessor
	ComponentType() ComponentType
	GetNebulaCluster() *NebulaCluster
	GetClusterName() string
	GetNamespace() string
	GetName() string
	GetPodName(ordinal int32) string
	GenerateOwnerReferences() []metav1.OwnerReference
}

+k8s:deepcopy-gen=false

type ComponentAccessor

type ComponentAccessor interface {
	Replicas() int32
	PodImage() string
	Resources() *corev1.ResourceRequirements
	PodLabels() map[string]string
	PodAnnotations() map[string]string
	PodEnvVars() []corev1.EnvVar
	NodeSelector() map[string]string
	Affinity() *corev1.Affinity
	Tolerations() []corev1.Toleration
	TopologySpreadConstraints(labels map[string]string) []corev1.TopologySpreadConstraint
	SecurityContext() *corev1.SecurityContext
	InitContainers() []corev1.Container
	SidecarContainers() []corev1.Container
	Volumes() []corev1.Volume
	VolumeMounts() []corev1.VolumeMount
	ReadinessProbe() *corev1.Probe
	LivenessProbe() *corev1.Probe
}

+k8s:deepcopy-gen=false

type ComponentPhase

type ComponentPhase string

ComponentPhase is the current state of component

const (
	// RunningPhase represents normal state of nebula cluster.
	RunningPhase ComponentPhase = "Running"
	// ScaleInPhase represents the scaling state of nebula cluster.
	ScaleInPhase ComponentPhase = "ScaleIn"
	// ScaleOutPhase represents the scaling state of nebula cluster.
	ScaleOutPhase ComponentPhase = "ScaleOut"
	// UpdatePhase represents update state of nebula cluster.
	UpdatePhase ComponentPhase = "Update"
	// SuspendPhase represents the suspend state of nebula cluster.
	SuspendPhase ComponentPhase = "Suspend"
)

type ComponentSpec

type ComponentSpec struct {
	// K8S deployment replicas setting.
	// +kubebuilder:validation:Minimum=0
	Replicas *int32 `json:"replicas,omitempty"`

	// K8S resources settings.
	// +optional
	Resources *corev1.ResourceRequirements `json:"resources,omitempty"`

	// Container environment variables.
	// +optional
	EnvVars []corev1.EnvVar `json:"env,omitempty"`

	// Container image.
	Image string `json:"image"`

	// Version tag for container image.
	// +kubebuilder:default=latest
	// +optional
	Version string `json:"version,omitempty"`

	// K8S pod annotations.
	// +optional
	Annotations map[string]string `json:"annotations,omitempty"`

	// +optional
	Labels map[string]string `json:"labels,omitempty"`

	// K8S nodeSelector.
	// +optional
	NodeSelector map[string]string `json:"nodeSelector,omitempty"`

	// +optional
	Affinity *corev1.Affinity `json:"affinity,omitempty"`

	// +optional
	Tolerations []corev1.Toleration `json:"tolerations,omitempty"`

	// +optional
	TopologySpreadConstraints []TopologySpreadConstraint `json:"topologySpreadConstraints,omitempty"`

	// +optional
	SecurityContext *corev1.SecurityContext `json:"securityContext,omitempty"`

	// +optional
	InitContainers []corev1.Container `json:"initContainers,omitempty"`

	// +optional
	SidecarContainers []corev1.Container `json:"sidecarContainers,omitempty"`

	// +optional
	Volumes []corev1.Volume `json:"volumes,omitempty"`

	// +optional
	VolumeMounts []corev1.VolumeMount `json:"volumeMounts,omitempty"`

	// +optional
	ReadinessProbe *corev1.Probe `json:"readinessProbe,omitempty"`

	// +optional
	LivenessProbe *corev1.Probe `json:"livenessProbe,omitempty"`
}

ComponentSpec is a common set of k8s resource configs for nebula components.

func (*ComponentSpec) DeepCopy

func (in *ComponentSpec) DeepCopy() *ComponentSpec

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

func (*ComponentSpec) DeepCopyInto

func (in *ComponentSpec) DeepCopyInto(out *ComponentSpec)

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

type ComponentStatus

type ComponentStatus struct {
	Version      string                 `json:"version,omitempty"`
	Phase        ComponentPhase         `json:"phase,omitempty"`
	Workload     *WorkloadStatus        `json:"workload,omitempty"`
	FailureHosts map[string]FailureHost `json:"failureHosts,omitempty"`
	Volume       *VolumeStatus          `json:"volume,omitempty"`
}

ComponentStatus is the status and version of a nebula component.

func (*ComponentStatus) DeepCopy

func (in *ComponentStatus) DeepCopy() *ComponentStatus

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

func (*ComponentStatus) DeepCopyInto

func (in *ComponentStatus) DeepCopyInto(out *ComponentStatus)

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

type ComponentType

type ComponentType string

ComponentType is the type of NebulaCluster Component: graphd, metad or storaged +k8s:deepcopy-gen=false

func (ComponentType) String

func (typ ComponentType) String() string

type ConsoleSpec

type ConsoleSpec struct {
	// The Graph login username
	// +optional
	Username string `json:"username,omitempty"`

	// The Graph login password
	// +optional
	Password string `json:"password,omitempty"`

	// Container image.
	// +optional
	Image string `json:"image,omitempty"`

	// Version tag for container image.
	// +optional
	Version string `json:"version,omitempty"`

	// K8S nodeSelector.
	// +optional
	NodeSelector map[string]string `json:"nodeSelector,omitempty"`
}

func (*ConsoleSpec) DeepCopy

func (in *ConsoleSpec) DeepCopy() *ConsoleSpec

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

func (*ConsoleSpec) DeepCopyInto

func (in *ConsoleSpec) DeepCopyInto(out *ConsoleSpec)

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

type CronBackupSpec

type CronBackupSpec struct {
	// The schedule in Cron format, see https://en.wikipedia.org/wiki/Cron.
	Schedule string `json:"schedule"`

	// This flag tells the controller to pause subsequent executions, it does
	// not apply to already started executions. Defaults to false.
	// +optional
	Pause *bool `json:"pause,omitempty"`

	// MaxReservedTime is to specify how long backups we want to keep.
	// It should be a duration string format.
	// +optional
	MaxReservedTime *string `json:"maxReservedTime,omitempty"`

	// Specifies the backup that will be created when executing a CronBackup.
	BackupTemplate BackupSpec `json:"backupTemplate"`
}

func (*CronBackupSpec) DeepCopy

func (in *CronBackupSpec) DeepCopy() *CronBackupSpec

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

func (*CronBackupSpec) DeepCopyInto

func (in *CronBackupSpec) DeepCopyInto(out *CronBackupSpec)

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

type CronBackupStatus

type CronBackupStatus struct {
	// LastBackup represents the last backup.
	LastBackup string `json:"lastBackup,omitempty"`
	// LastScheduleTime represents the last time the backup was successfully scheduled.
	LastScheduleTime *metav1.Time `json:"lastScheduleTime,omitempty"`
	// LastSuccessfulTime represents the last time the backup successfully completed.
	LastSuccessfulTime *metav1.Time `json:"lastSuccessfulTime,omitempty"`
	// BackupCleanTime represents the last time the expired backup objects are cleaned up.
	BackupCleanTime *metav1.Time `json:"backupCleanTime,omitempty"`
}

func (*CronBackupStatus) DeepCopy

func (in *CronBackupStatus) DeepCopy() *CronBackupStatus

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

func (*CronBackupStatus) DeepCopyInto

func (in *CronBackupStatus) DeepCopyInto(out *CronBackupStatus)

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

type EmptyStruct

type EmptyStruct struct{}

func (*EmptyStruct) DeepCopy

func (in *EmptyStruct) DeepCopy() *EmptyStruct

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

func (*EmptyStruct) DeepCopyInto

func (in *EmptyStruct) DeepCopyInto(out *EmptyStruct)

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

type ExporterSpec

type ExporterSpec struct {
	ComponentSpec `json:",inline"`

	// Maximum number of parallel scrape requests
	// +kubebuilder:default=40
	// +optional
	MaxRequests int32 `json:"maxRequests,omitempty"`

	// CollectRegex means the regex to filter metrics
	// +optional
	CollectRegex string `json:"collectRegex,omitempty"`

	// IgnoreRegex means the regex to ignore metrics
	// +optional
	IgnoreRegex string `json:"ignoreRegex,omitempty"`

	// +optional
	// +kubebuilder:default=9100
	HTTPPort int32 `json:"httpPort,omitempty"`
}

ExporterSpec defines the desired state of Exporter

func (*ExporterSpec) DeepCopy

func (in *ExporterSpec) DeepCopy() *ExporterSpec

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

func (*ExporterSpec) DeepCopyInto

func (in *ExporterSpec) DeepCopyInto(out *ExporterSpec)

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

type FailureHost

type FailureHost struct {
	Host             string                    `json:"host,omitempty"`
	PVCSet           map[types.UID]EmptyStruct `json:"pvcSet,omitempty"`
	HostDeleted      *bool                     `json:"hostDeleted,omitempty"`
	DataBalanced     *bool                     `json:"dataBalanced,omitempty"`
	PodRestarted     bool                      `json:"podRestarted,omitempty"`
	PodRebuilt       bool                      `json:"podRebuilt,omitempty"`
	NodeDown         bool                      `json:"nodeDown,omitempty"`
	CreationTime     metav1.Time               `json:"creationTime,omitempty"`
	ConfirmationTime metav1.Time               `json:"confirmationTime,omitempty"`
	DeletionTime     metav1.Time               `json:"deletionTime,omitempty"`
}

FailureHost is the failure host information.

func (*FailureHost) DeepCopy

func (in *FailureHost) DeepCopy() *FailureHost

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

func (*FailureHost) DeepCopyInto

func (in *FailureHost) DeepCopyInto(out *FailureHost)

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

type GraphdServiceSpec

type GraphdServiceSpec struct {
	ServiceSpec `json:",inline"`

	// LoadBalancerIP is the loadBalancerIP of service
	// +optional
	LoadBalancerIP *string `json:"loadBalancerIP,omitempty"`

	// ExternalTrafficPolicy of the service
	// +optional
	ExternalTrafficPolicy *corev1.ServiceExternalTrafficPolicyType `json:"externalTrafficPolicy,omitempty"`
}

GraphdServiceSpec is the service spec of graphd

func (*GraphdServiceSpec) DeepCopy

func (in *GraphdServiceSpec) DeepCopy() *GraphdServiceSpec

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

func (*GraphdServiceSpec) DeepCopyInto

func (in *GraphdServiceSpec) DeepCopyInto(out *GraphdServiceSpec)

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

type GraphdSpec

type GraphdSpec struct {
	ComponentSpec `json:",inline"`

	// Config defines a graphd configuration load into ConfigMap
	Config map[string]string `json:"config,omitempty"`

	// Service defines a k8s service of Graphd cluster.
	// +optional
	Service *GraphdServiceSpec `json:"service,omitempty"`

	// K8S persistent volume claim for Graphd log volume.
	// +optional
	LogVolumeClaim *StorageClaim `json:"logVolumeClaim,omitempty"`
}

GraphdSpec defines the desired state of Graphd

func (*GraphdSpec) DeepCopy

func (in *GraphdSpec) DeepCopy() *GraphdSpec

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

func (*GraphdSpec) DeepCopyInto

func (in *GraphdSpec) DeepCopyInto(out *GraphdSpec)

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

type GsStorageProvider

type GsStorageProvider struct {
	// Location in which the gs bucket is located.
	Location string `json:"location,omitempty"`
	// Bucket in which to store the backup data.
	Bucket string `json:"bucket,omitempty"`
	// SecretName is the name of secret which stores
	// the GS service account or refresh token JSON.
	// Secret key: credentials
	SecretName string `json:"secretName,omitempty"`
}

GsStorageProvider represents a GS compliant storage for storing backups.

func (*GsStorageProvider) DeepCopy

func (in *GsStorageProvider) DeepCopy() *GsStorageProvider

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

func (*GsStorageProvider) DeepCopyInto

func (in *GsStorageProvider) DeepCopyInto(out *GsStorageProvider)

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

type LicenseSpec

type LicenseSpec struct {
	// Name of the license secret.
	SecretName string `json:"secretName,omitempty"`
	// The key to nebula license file.
	LicenseKey string `json:"licenseKey,omitempty"`
}

func (*LicenseSpec) DeepCopy

func (in *LicenseSpec) DeepCopy() *LicenseSpec

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

func (*LicenseSpec) DeepCopyInto

func (in *LicenseSpec) DeepCopyInto(out *LicenseSpec)

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

type LogRotate

type LogRotate struct {
	// +kubebuilder:default=5
	// +optional
	Rotate int32 `json:"rotate,omitempty"`

	// +kubebuilder:default="200M"
	// +optional
	Size string `json:"size,omitempty"`
}

func (*LogRotate) DeepCopy

func (in *LogRotate) DeepCopy() *LogRotate

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

func (*LogRotate) DeepCopyInto

func (in *LogRotate) DeepCopyInto(out *LogRotate)

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

type MetadSpec

type MetadSpec struct {
	ComponentSpec `json:",inline"`

	// Config defines a metad configuration load into ConfigMap
	Config map[string]string `json:"config,omitempty"`

	// Service defines a Kubernetes service of Metad cluster.
	// +optional
	Service *ServiceSpec `json:"service,omitempty"`

	// K8S persistent volume claim for Metad log volume.
	// +optional
	LogVolumeClaim *StorageClaim `json:"logVolumeClaim,omitempty"`

	// K8S persistent volume claim for Metad data volume.
	// +optional
	DataVolumeClaim *StorageClaim `json:"dataVolumeClaim,omitempty"`

	// License defines a nebula license load into Secret
	License *LicenseSpec `json:"license,omitempty"`

	// LicenseManagerURL defines a nebula license manager url
	LicenseManagerURL *string `json:"licenseManagerURL,omitempty"`
}

MetadSpec defines the desired state of Metad

func (*MetadSpec) DeepCopy

func (in *MetadSpec) DeepCopy() *MetadSpec

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

func (*MetadSpec) DeepCopyInto

func (in *MetadSpec) DeepCopyInto(out *MetadSpec)

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

type NamespacedObjectReference

type NamespacedObjectReference struct {
	// ClusterName of backup/restore cluster
	ClusterName string `json:"clusterName"`

	// ClusterNamespace of backup/restore cluster
	// +optional
	ClusterNamespace *string `json:"clusterNamespace,omitempty"`
}

NamespacedObjectReference contains enough information to let you locate the referenced object in any namespace

func (*NamespacedObjectReference) DeepCopy

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

func (*NamespacedObjectReference) DeepCopyInto

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

type NebulaBackup

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

	Spec   BackupSpec   `json:"spec,omitempty"`
	Status BackupStatus `json:"status,omitempty"`
}

func (*NebulaBackup) CleanBackupData

func (nb *NebulaBackup) CleanBackupData() bool

func (*NebulaBackup) DeepCopy

func (in *NebulaBackup) DeepCopy() *NebulaBackup

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

func (*NebulaBackup) DeepCopyInto

func (in *NebulaBackup) DeepCopyInto(out *NebulaBackup)

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

func (*NebulaBackup) DeepCopyObject

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

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

func (*NebulaBackup) GenerateOwnerReferences

func (nb *NebulaBackup) GenerateOwnerReferences() []metav1.OwnerReference

type NebulaBackupList

type NebulaBackupList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`

	Items []NebulaBackup `json:"items"`
}

NebulaBackupList contains a list of NebulaBackup.

func (*NebulaBackupList) DeepCopy

func (in *NebulaBackupList) DeepCopy() *NebulaBackupList

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

func (*NebulaBackupList) DeepCopyInto

func (in *NebulaBackupList) DeepCopyInto(out *NebulaBackupList)

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

func (*NebulaBackupList) DeepCopyObject

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

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

type NebulaCluster

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

	Spec   NebulaClusterSpec   `json:"spec,omitempty"`
	Status NebulaClusterStatus `json:"status,omitempty"`
}

NebulaCluster is the Schema for the nebulaclusters API

func (*NebulaCluster) AutoMountServerCerts

func (nc *NebulaCluster) AutoMountServerCerts() bool

func (*NebulaCluster) ComponentByType

func (nc *NebulaCluster) ComponentByType(typ ComponentType) (NebulaClusterComponent, error)

func (*NebulaCluster) ConcurrentTransfer

func (nc *NebulaCluster) ConcurrentTransfer() bool

func (*NebulaCluster) DeepCopy

func (in *NebulaCluster) DeepCopy() *NebulaCluster

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

func (*NebulaCluster) DeepCopyInto

func (in *NebulaCluster) DeepCopyInto(out *NebulaCluster)

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

func (*NebulaCluster) DeepCopyObject

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

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

func (*NebulaCluster) ExporterComponent

func (nc *NebulaCluster) ExporterComponent() NebulaExporterComponent

func (*NebulaCluster) GenerateOwnerReferences

func (nc *NebulaCluster) GenerateOwnerReferences() []metav1.OwnerReference

func (*NebulaCluster) GetClusterName

func (nc *NebulaCluster) GetClusterName() string

func (*NebulaCluster) GetGraphdEndpoints

func (nc *NebulaCluster) GetGraphdEndpoints(portName string) []string

func (*NebulaCluster) GetGraphdServiceName

func (nc *NebulaCluster) GetGraphdServiceName() string

func (*NebulaCluster) GetMetadEndpoints

func (nc *NebulaCluster) GetMetadEndpoints(portName string) []string

func (*NebulaCluster) GetMetadThriftConnAddress

func (nc *NebulaCluster) GetMetadThriftConnAddress() string

func (*NebulaCluster) GetStoragedEndpoints

func (nc *NebulaCluster) GetStoragedEndpoints(portName string) []string

func (*NebulaCluster) GraphdComponent

func (nc *NebulaCluster) GraphdComponent() NebulaClusterComponent

func (*NebulaCluster) InsecureSkipVerify

func (nc *NebulaCluster) InsecureSkipVerify() bool

func (*NebulaCluster) IsAutoBalanceEnabled

func (nc *NebulaCluster) IsAutoBalanceEnabled() bool

func (*NebulaCluster) IsAutoFailoverEnabled

func (nc *NebulaCluster) IsAutoFailoverEnabled() bool

func (*NebulaCluster) IsBREnabled

func (nc *NebulaCluster) IsBREnabled() bool

func (*NebulaCluster) IsClusterSSLEnabled

func (nc *NebulaCluster) IsClusterSSLEnabled() bool

func (*NebulaCluster) IsConditionReady

func (nc *NebulaCluster) IsConditionReady() bool

func (*NebulaCluster) IsForceUpdateEnabled

func (nc *NebulaCluster) IsForceUpdateEnabled() bool

func (*NebulaCluster) IsGraphdSSLEnabled

func (nc *NebulaCluster) IsGraphdSSLEnabled() bool

func (*NebulaCluster) IsLogRotateEnabled

func (nc *NebulaCluster) IsLogRotateEnabled() bool

func (*NebulaCluster) IsMetadSSLEnabled

func (nc *NebulaCluster) IsMetadSSLEnabled() bool

func (*NebulaCluster) IsPVReclaimEnabled

func (nc *NebulaCluster) IsPVReclaimEnabled() bool

func (*NebulaCluster) IsReady

func (nc *NebulaCluster) IsReady() bool

func (*NebulaCluster) IsStoragedAvailable

func (nc *NebulaCluster) IsStoragedAvailable() bool

func (*NebulaCluster) IsStoragedSSLEnabled

func (nc *NebulaCluster) IsStoragedSSLEnabled() bool

func (*NebulaCluster) IsSuspendEnabled

func (nc *NebulaCluster) IsSuspendEnabled() bool

func (*NebulaCluster) IsZoneEnabled

func (nc *NebulaCluster) IsZoneEnabled() bool

func (*NebulaCluster) MetadComponent

func (nc *NebulaCluster) MetadComponent() NebulaClusterComponent

func (*NebulaCluster) SslServerName

func (nc *NebulaCluster) SslServerName() string

func (*NebulaCluster) StoragedComponent

func (nc *NebulaCluster) StoragedComponent() NebulaClusterComponent

type NebulaClusterComponent

type NebulaClusterComponent interface {
	BaseComponent

	GetLogStorageResources() *corev1.ResourceRequirements
	GetDataStorageResources() (*corev1.ResourceRequirements, error)
	GetConfig() map[string]string
	GetConfigMapKey() string

	IsSSLEnabled() bool
	GetServiceSpec() *ServiceSpec
	GetHeadlessServiceName() string
	GetServiceFQDN() string
	GetPodFQDN(ordinal int32) string
	GetPort(portName string) int32
	GetConnAddress(portName string) string
	GetEndpoints(portName string) []string

	GenerateLabels() map[string]string
	GenerateContainerPorts() []corev1.ContainerPort
	GenerateVolumeMounts() []corev1.VolumeMount
	GenerateVolumes() []corev1.Volume
	GenerateVolumeClaim() ([]corev1.PersistentVolumeClaim, error)
	GenerateWorkload(gvk schema.GroupVersionKind, cm *corev1.ConfigMap) (*unstructured.Unstructured, error)
	GenerateService() *corev1.Service
	GenerateHeadlessService() *corev1.Service
	GenerateConfigMap() *corev1.ConfigMap

	IsReady() bool
	GetUpdateRevision() string
	SetPhase(phase ComponentPhase)
	GetPhase() ComponentPhase
	IsSuspending() bool
	IsSuspended() bool
	IsAutoFailovering() bool
	SetWorkloadStatus(status *WorkloadStatus)
	SetVolumeStatus(status *VolumeStatus)
	UpdateComponentStatus(status *ComponentStatus)
}

NebulaClusterComponent is the interface for component +k8s:deepcopy-gen=false

type NebulaClusterCondition

type NebulaClusterCondition struct {
	// Type of the condition.
	Type NebulaClusterConditionType `json:"type"`
	// Status of the condition, one of True, False, Unknown.
	Status corev1.ConditionStatus `json:"status"`
	// The last time this condition was updated.
	LastUpdateTime metav1.Time `json:"lastUpdateTime,omitempty"`
	// Last time the condition transitioned from one status to another.
	// +optional
	LastTransitionTime metav1.Time `json:"lastTransitionTime,omitempty"`
	// The reason for the condition's last transition.
	// +optional
	Reason string `json:"reason,omitempty"`
	// A human-readable message indicating details about the transition.
	// +optional
	Message string `json:"message,omitempty"`
}

NebulaClusterCondition describes the state of a nebula cluster at a certain point.

func (*NebulaClusterCondition) DeepCopy

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

func (*NebulaClusterCondition) DeepCopyInto

func (in *NebulaClusterCondition) DeepCopyInto(out *NebulaClusterCondition)

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

type NebulaClusterConditionType

type NebulaClusterConditionType string

NebulaClusterConditionType represents a nebula cluster condition value.

const (
	// NebulaClusterReady indicates that the nebula cluster is ready or not.
	// This is defined as:
	// - All workloads are up-to-date (currentRevision == updateRevision).
	// - All nebula component pods are healthy.
	NebulaClusterReady NebulaClusterConditionType = "Ready"
)

type NebulaClusterList

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

NebulaClusterList contains a list of NebulaCluster

func (*NebulaClusterList) DeepCopy

func (in *NebulaClusterList) DeepCopy() *NebulaClusterList

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

func (*NebulaClusterList) DeepCopyInto

func (in *NebulaClusterList) DeepCopyInto(out *NebulaClusterList)

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

func (*NebulaClusterList) DeepCopyObject

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

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

type NebulaClusterSpec

type NebulaClusterSpec struct {
	// graphd spec
	Graphd *GraphdSpec `json:"graphd"`

	// Metad spec
	Metad *MetadSpec `json:"metad"`

	// Storaged spec
	Storaged *StoragedSpec `json:"storaged"`

	// +optional
	Reference WorkloadReference `json:"reference,omitempty"`

	// +optional
	Suspend *bool `json:"suspend,omitempty"`

	// +kubebuilder:default=default-scheduler
	// +optional
	SchedulerName string `json:"schedulerName"`

	// TopologySpreadConstraints specifies how to spread matching pods among the given topology.
	TopologySpreadConstraints []TopologySpreadConstraint `json:"topologySpreadConstraints,omitempty"`

	// Flag to enable/disable PV reclaim while the nebula cluster deleted, default false
	// +optional
	EnablePVReclaim *bool `json:"enablePVReclaim,omitempty"`

	// +kubebuilder:default=Always
	ImagePullPolicy *corev1.PullPolicy `json:"imagePullPolicy,omitempty"`

	// +optional
	ImagePullSecrets []corev1.LocalObjectReference `json:"imagePullSecrets,omitempty"`

	// +optional
	NodeSelector map[string]string `json:"nodeSelector,omitempty"`

	// +optional
	Affinity *corev1.Affinity `json:"affinity,omitempty"`

	// +optional
	Tolerations []corev1.Toleration `json:"tolerations,omitempty"`

	// Flag to enable/disable sidecar container nebula-agent injection, default false.
	// +optional
	EnableBR *bool `json:"enableBR,omitempty"`

	// Flag to enable/disable auto fail over in use local PV scenario, default false.
	// +optional
	EnableAutoFailover *bool `json:"enableAutoFailover,omitempty"`

	// +optional
	FailoverPeriod metav1.Duration `json:"failoverPeriod,omitempty"`

	// +optional
	LogRotate *LogRotate `json:"logRotate,omitempty"`

	// +optional
	Exporter *ExporterSpec `json:"exporter,omitempty"`

	// +optional
	Console *ConsoleSpec `json:"console,omitempty"`

	// SSLCerts defines SSL certs load into secret
	// +optional
	SSLCerts *SSLCertsSpec `json:"sslCerts,omitempty"`

	// +optional
	Agent *AgentContainerSpec `json:"agent,omitempty"`

	// +optional
	AlpineImage *string `json:"alpineImage,omitempty"`
}

NebulaClusterSpec defines the desired state of NebulaCluster

func (*NebulaClusterSpec) DeepCopy

func (in *NebulaClusterSpec) DeepCopy() *NebulaClusterSpec

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

func (*NebulaClusterSpec) DeepCopyInto

func (in *NebulaClusterSpec) DeepCopyInto(out *NebulaClusterSpec)

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

type NebulaClusterStatus

type NebulaClusterStatus struct {
	ObservedGeneration int64                    `json:"observedGeneration,omitempty"`
	Graphd             ComponentStatus          `json:"graphd,omitempty"`
	Metad              ComponentStatus          `json:"metad,omitempty"`
	Storaged           StoragedStatus           `json:"storaged,omitempty"`
	Conditions         []NebulaClusterCondition `json:"conditions,omitempty"`
	Version            string                   `json:"version,omitempty"`
}

NebulaClusterStatus defines the observed state of NebulaCluster

func (*NebulaClusterStatus) DeepCopy

func (in *NebulaClusterStatus) DeepCopy() *NebulaClusterStatus

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

func (*NebulaClusterStatus) DeepCopyInto

func (in *NebulaClusterStatus) DeepCopyInto(out *NebulaClusterStatus)

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

type NebulaCronBackup

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

	Spec   CronBackupSpec   `json:"spec,omitempty"`
	Status CronBackupStatus `json:"status,omitempty"`
}

func (*NebulaCronBackup) DeepCopy

func (in *NebulaCronBackup) DeepCopy() *NebulaCronBackup

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

func (*NebulaCronBackup) DeepCopyInto

func (in *NebulaCronBackup) DeepCopyInto(out *NebulaCronBackup)

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

func (*NebulaCronBackup) DeepCopyObject

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

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

func (*NebulaCronBackup) GenerateOwnerReferences

func (ncb *NebulaCronBackup) GenerateOwnerReferences() []metav1.OwnerReference

type NebulaCronBackupList

type NebulaCronBackupList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`

	Items []NebulaCronBackup `json:"items"`
}

NebulaCronBackupList contains a list of NebulaCronBackup.

func (*NebulaCronBackupList) DeepCopy

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

func (*NebulaCronBackupList) DeepCopyInto

func (in *NebulaCronBackupList) DeepCopyInto(out *NebulaCronBackupList)

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

func (*NebulaCronBackupList) DeepCopyObject

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

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

type NebulaExporterComponent

type NebulaExporterComponent interface {
	ComponentSpec() ComponentAccessor
	MaxRequests() int32
	CollectRegex() string
	IgnoreRegex() string
}

+k8s:deepcopy-gen=false

type NebulaRestore

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

	Spec   RestoreSpec   `json:"spec,omitempty"`
	Status RestoreStatus `json:"status,omitempty"`
}

func (*NebulaRestore) DeepCopy

func (in *NebulaRestore) DeepCopy() *NebulaRestore

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

func (*NebulaRestore) DeepCopyInto

func (in *NebulaRestore) DeepCopyInto(out *NebulaRestore)

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

func (*NebulaRestore) DeepCopyObject

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

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

type NebulaRestoreList

type NebulaRestoreList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`

	Items []NebulaRestore `json:"items"`
}

NebulaRestoreList contains a list of NebulaRestore.

func (*NebulaRestoreList) DeepCopy

func (in *NebulaRestoreList) DeepCopy() *NebulaRestoreList

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

func (*NebulaRestoreList) DeepCopyInto

func (in *NebulaRestoreList) DeepCopyInto(out *NebulaRestoreList)

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

func (*NebulaRestoreList) DeepCopyObject

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

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

type ObjectStorageType

type ObjectStorageType string

ObjectStorageType represents the object storage type.

const (
	// ObjectStorageS3 represents all storage that compatible with the Amazon S3.
	ObjectStorageS3 ObjectStorageType = "s3"
	// ObjectStorageGS represents the Google storage
	ObjectStorageGS ObjectStorageType = "gs"
	// ObjectStorageUnknown represents the unknown storage type
	ObjectStorageUnknown ObjectStorageType = "unknown"
)

type ProvisionedVolume

type ProvisionedVolume struct {
	VolumeName string `json:"volumeName"`

	StorageClass string `json:"storageClass"`

	Capacity string `json:"capacity"`
}

ProvisionedVolume describes the status of a specified PVC.

func (*ProvisionedVolume) DeepCopy

func (in *ProvisionedVolume) DeepCopy() *ProvisionedVolume

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

func (*ProvisionedVolume) DeepCopyInto

func (in *ProvisionedVolume) DeepCopyInto(out *ProvisionedVolume)

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

type ProvisionedVolumes

type ProvisionedVolumes map[string]ProvisionedVolume

func (ProvisionedVolumes) DeepCopy

func (in ProvisionedVolumes) DeepCopy() ProvisionedVolumes

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

func (ProvisionedVolumes) DeepCopyInto

func (in ProvisionedVolumes) DeepCopyInto(out *ProvisionedVolumes)

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

type RestoreCondition

type RestoreCondition struct {
	// Type of the condition.
	Type RestoreConditionType `json:"type"`
	// Status of the condition, one of True, False, Unknown.
	Status corev1.ConditionStatus `json:"status"`
	// The last time this condition was updated.
	LastUpdateTime metav1.Time `json:"lastUpdateTime,omitempty"`
	// Last time the condition transitioned from one status to another.
	// +optional
	LastTransitionTime metav1.Time `json:"lastTransitionTime,omitempty"`
	// The reason for the condition's last transition.
	// +optional
	Reason string `json:"reason,omitempty"`
	// A human-readable message indicating details about the transition.
	// +optional
	Message string `json:"message,omitempty"`
}

RestoreCondition describes the observed state of a Restore at a certain point.

func (*RestoreCondition) DeepCopy

func (in *RestoreCondition) DeepCopy() *RestoreCondition

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

func (*RestoreCondition) DeepCopyInto

func (in *RestoreCondition) DeepCopyInto(out *RestoreCondition)

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

type RestoreConditionType

type RestoreConditionType string

RestoreConditionType represents a valid condition of a Restore.

const (
	// RestoreComplete means the restore has successfully executed and the
	// backup data has been loaded into nebula cluster.
	RestoreComplete RestoreConditionType = "Complete"
	// RestoreMetadComplete means metad pods have been rebuilt from the backup data
	RestoreMetadComplete RestoreConditionType = "MetadComplete"
	// RestoreStoragedCompleted means storaged pods have been rebuilt from the backup data
	RestoreStoragedCompleted RestoreConditionType = "StoragedComplete"
	// RestoreFailed means the restore has failed.
	RestoreFailed RestoreConditionType = "Failed"
	// RestoreInvalid means invalid restore CR.
	RestoreInvalid RestoreConditionType = "Invalid"
)

type RestoreConfig

type RestoreConfig struct {
	NamespacedObjectReference `json:",inline"`
	// The name of the backup file.
	BackupName string `json:"backupName,omitempty"`
	// Concurrency is used to control the number of concurrent file downloads during data restoration.
	// +kubebuilder:default=5
	// +optional
	Concurrency int32 `json:"concurrency,omitempty"`
	// StorageProvider configures where and how backups should be stored.
	StorageProvider `json:",inline"`
}

func (*RestoreConfig) DeepCopy

func (in *RestoreConfig) DeepCopy() *RestoreConfig

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

func (*RestoreConfig) DeepCopyInto

func (in *RestoreConfig) DeepCopyInto(out *RestoreConfig)

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

type RestoreSpec

type RestoreSpec struct {
	// +optional
	NodeSelector map[string]string `json:"nodeSelector,omitempty"`

	// +optional
	Affinity *corev1.Affinity `json:"affinity,omitempty"`

	// +optional
	Tolerations []corev1.Toleration `json:"tolerations,omitempty"`

	// +optional
	AutoRemoveFailed bool `json:"autoRemoveFailed,omitempty"`

	// +optional
	Config *RestoreConfig `json:"config,omitempty"`
}

RestoreSpec contains the specification for a restore of a nebula cluster backup.

func (*RestoreSpec) DeepCopy

func (in *RestoreSpec) DeepCopy() *RestoreSpec

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

func (*RestoreSpec) DeepCopyInto

func (in *RestoreSpec) DeepCopyInto(out *RestoreSpec)

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

type RestoreStatus

type RestoreStatus struct {
	// TimeStarted is the time at which the restore was started.
	// +nullable
	TimeStarted *metav1.Time `json:"timeStarted,omitempty"`
	// TimeCompleted is the time at which the restore was completed.
	// +nullable
	TimeCompleted *metav1.Time `json:"timeCompleted,omitempty"`
	// ClusterName is the name of restored nebula cluster.
	ClusterName string `json:"clusterName,omitempty"`
	// Phase is a user readable state inferred from the underlying Restore conditions
	Phase RestoreConditionType `json:"phase,omitempty"`
	// +nullable
	Conditions []RestoreCondition `json:"conditions,omitempty"`
	// +nullable
	Partitions map[string][]*nebula.HostAddr `json:"partitions,omitempty"`
	// +nullable
	Checkpoints map[string]map[string]string `json:"checkpoints,omitempty"`
	// The Metad data files download is complete.
	MetaDownload bool `json:"metaDownload"`
	// The Storaged data files download is complete.
	StorageDownload bool `json:"storageDownload"`
}

RestoreStatus represents the current status of a nebula cluster restore.

func (*RestoreStatus) DeepCopy

func (in *RestoreStatus) DeepCopy() *RestoreStatus

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

func (*RestoreStatus) DeepCopyInto

func (in *RestoreStatus) DeepCopyInto(out *RestoreStatus)

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

type S3StorageProvider

type S3StorageProvider struct {
	// Region in which the S3 compatible bucket is located.
	Region string `json:"region,omitempty"`
	// Bucket in which to store the backup data.
	Bucket string `json:"bucket,omitempty"`
	// Endpoint of S3 compatible storage service
	Endpoint string `json:"endpoint,omitempty"`
	// SecretName is the name of secret which stores access key and secret key.
	// Secret keys: access-key, secret-key
	SecretName string `json:"secretName,omitempty"`
}

S3StorageProvider represents a S3 compliant storage for storing backups.

func (*S3StorageProvider) DeepCopy

func (in *S3StorageProvider) DeepCopy() *S3StorageProvider

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

func (*S3StorageProvider) DeepCopyInto

func (in *S3StorageProvider) DeepCopyInto(out *S3StorageProvider)

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

type SSLCertsSpec

type SSLCertsSpec struct {
	// Name of the server cert secret
	ServerSecret string `json:"serverSecret,omitempty"`
	// The key to server PEM encoded public key certificate
	// +kubebuilder:default=tls.crt
	// +optional
	ServerCert string `json:"serverCert,omitempty"`
	// The key to server private key associated with given certificate
	// +kubebuilder:default=tls.key
	// +optional
	ServerKey string `json:"serverKey,omitempty"`

	// Name of the client cert secret
	ClientSecret string `json:"clientSecret,omitempty"`
	// The key to client PEM encoded public key certificate
	// +kubebuilder:default=tls.crt
	// +optional
	ClientCert string `json:"clientCert,omitempty"`
	// The key to client private key associated with given certificate
	// +kubebuilder:default=tls.key
	// +optional
	ClientKey string `json:"clientKey,omitempty"`

	// Name of the CA cert secret
	CASecret string `json:"caSecret,omitempty"`
	// The key to CA PEM encoded public key certificate
	// +kubebuilder:default=ca.crt
	// +optional
	CACert string `json:"caCert,omitempty"`

	// Name of the client CA cert secret
	ClientCASecret string `json:"clientCASecret,omitempty"`
	// The key to Client CA PEM encoded public key certificate
	// +kubebuilder:default=ca.crt
	// +optional
	ClientCACert string `json:"clientCACert,omitempty"`

	// InsecureSkipVerify controls whether a client verifies the server's
	// certificate chain and host name.
	// +optional
	InsecureSkipVerify *bool `json:"insecureSkipVerify,omitempty"`

	// ServerName is used to verify the hostname on the returned
	// certificates unless InsecureSkipVerify is given. It is also included
	// in the client's handshake to support virtual hosting unless it is
	// an IP address.
	// +optional
	ServerName string `json:"serverName,omitempty"`

	// AutoMountServerCerts controls whether operator mounts server's
	// certificate from secret.
	// +optional
	AutoMountServerCerts *bool `json:"autoMountServerCerts,omitempty"`
}

func (*SSLCertsSpec) DeepCopy

func (in *SSLCertsSpec) DeepCopy() *SSLCertsSpec

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

func (*SSLCertsSpec) DeepCopyInto

func (in *SSLCertsSpec) DeepCopyInto(out *SSLCertsSpec)

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

type ServiceSpec

type ServiceSpec struct {
	Type corev1.ServiceType `json:"type,omitempty"`

	// +optional
	Annotations map[string]string `json:"annotations,omitempty"`

	// +optional
	Selector map[string]string `json:"selector,omitempty"`

	// ClusterIP is the clusterIP of service
	// +optional
	ClusterIP *string `json:"clusterIP,omitempty"`

	// +optional
	PublishNotReadyAddresses bool `json:"publishNotReadyAddresses,omitempty"`
}

ServiceSpec is a common set of k8s service configs.

func (*ServiceSpec) DeepCopy

func (in *ServiceSpec) DeepCopy() *ServiceSpec

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

func (*ServiceSpec) DeepCopyInto

func (in *ServiceSpec) DeepCopyInto(out *ServiceSpec)

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

type StorageClaim

type StorageClaim struct {
	// Resources represents the minimum resources the volume should have.
	// +optional
	Resources corev1.ResourceRequirements `json:"resources,omitempty"`

	// Name of the StorageClass required by the claim.
	// +optional
	StorageClassName *string `json:"storageClassName,omitempty"`
}

StorageClaim contains details of storage

func (*StorageClaim) DeepCopy

func (in *StorageClaim) DeepCopy() *StorageClaim

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

func (*StorageClaim) DeepCopyInto

func (in *StorageClaim) DeepCopyInto(out *StorageClaim)

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

type StorageProvider

type StorageProvider struct {
	S3 *S3StorageProvider `json:"s3,omitempty"`
	GS *GsStorageProvider `json:"gs,omitempty"`
}

func (*StorageProvider) DeepCopy

func (in *StorageProvider) DeepCopy() *StorageProvider

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

func (*StorageProvider) DeepCopyInto

func (in *StorageProvider) DeepCopyInto(out *StorageProvider)

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

type StoragedSpec

type StoragedSpec struct {
	ComponentSpec `json:",inline"`

	// Config defines a storaged configuration load into ConfigMap
	Config map[string]string `json:"config,omitempty"`

	// Service defines a Kubernetes service of Storaged cluster.
	// +optional
	Service *ServiceSpec `json:"service,omitempty"`

	// K8S persistent volume claim for Storaged log volume.
	// +optional
	LogVolumeClaim *StorageClaim `json:"logVolumeClaim,omitempty"`

	// K8S persistent volume claim for Storaged data volume.
	// +optional
	DataVolumeClaims []StorageClaim `json:"dataVolumeClaims,omitempty"`

	// Flag to enable/disable auto balance data and leader while the nebula storaged scale out, default false
	// +optional
	EnableAutoBalance *bool `json:"enableAutoBalance,omitempty"`

	// Flag to enable/disable rolling update without leader state transition
	// +optional
	EnableForceUpdate *bool `json:"enableForceUpdate,omitempty"`

	// Flag to enable/disable transferring leader state concurrently.
	// Note: This feature is in alpha state.
	// +optional
	ConcurrentTransfer *bool `json:"concurrentTransfer,omitempty"`
}

StoragedSpec defines the desired state of Storaged

func (*StoragedSpec) DeepCopy

func (in *StoragedSpec) DeepCopy() *StoragedSpec

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

func (*StoragedSpec) DeepCopyInto

func (in *StoragedSpec) DeepCopyInto(out *StoragedSpec)

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

type StoragedStatus

type StoragedStatus struct {
	ComponentStatus `json:",inline"`
	HostsAdded      bool                   `json:"hostsAdded,omitempty"`
	RemovedSpaces   []int32                `json:"removedSpaces,omitempty"`
	BalancedSpaces  []int32                `json:"balancedSpaces,omitempty"`
	LastBalanceJob  *BalanceJob            `json:"lastBalanceJob,omitempty"`
	FailureHosts    map[string]FailureHost `json:"failureHosts,omitempty"`
	Volume          *VolumeStatus          `json:"volume,omitempty"`
}

StoragedStatus describes the status and version of nebula storaged.

func (*StoragedStatus) DeepCopy

func (in *StoragedStatus) DeepCopy() *StoragedStatus

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

func (*StoragedStatus) DeepCopyInto

func (in *StoragedStatus) DeepCopyInto(out *StoragedStatus)

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

type TopologySpreadConstraint

type TopologySpreadConstraint struct {
	// TopologyKey is the key of node labels. Nodes that have a label with this key
	// and identical values are considered to be in the same topology.
	// We consider each <key, value> as a "bucket", and try to put balanced number
	// of pods into each bucket.
	// MaxSkew is default set to 1
	// LabelSelector is generated by component type
	TopologyKey string `json:"topologyKey"`

	WhenUnsatisfiable corev1.UnsatisfiableConstraintAction `json:"whenUnsatisfiable"`
}

func (*TopologySpreadConstraint) DeepCopy

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

func (*TopologySpreadConstraint) DeepCopyInto

func (in *TopologySpreadConstraint) DeepCopyInto(out *TopologySpreadConstraint)

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

type VolumeStatus

type VolumeStatus struct {
	ProvisionedVolumes map[string]ProvisionedVolume `json:"provisionedVolumes,omitempty"`

	// All volumes have been provisioned with the desired resources.
	ProvisionedDone bool `json:"provisionedDone"`
}

VolumeStatus describes the observed state of volumes.

func (*VolumeStatus) DeepCopy

func (in *VolumeStatus) DeepCopy() *VolumeStatus

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

func (*VolumeStatus) DeepCopyInto

func (in *VolumeStatus) DeepCopyInto(out *VolumeStatus)

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

type WorkloadReference

type WorkloadReference struct {
	// Name of the referenced CustomResourceDefinition.
	// e.g. statefulsets.apps
	Name string `json:"name"`

	// Version indicate which version should be used if CRD has multiple versions
	// by default it will use the first one if not specified
	Version string `json:"version,omitempty"`
}

A WorkloadReference refers to a CustomResourceDefinition by name.

func (*WorkloadReference) DeepCopy

func (in *WorkloadReference) DeepCopy() *WorkloadReference

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

func (*WorkloadReference) DeepCopyInto

func (in *WorkloadReference) DeepCopyInto(out *WorkloadReference)

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

type WorkloadStatus

type WorkloadStatus struct {
	// ObservedGeneration is the most recent generation observed for this Workload. It corresponds to the
	// Workload's generation, which is updated on mutation by the API Server.
	// +optional
	ObservedGeneration int64 `json:"observedGeneration,omitempty"`

	// ReadyReplicas is the number of pods with a Ready Condition.
	// +optional
	ReadyReplicas int32 `json:"readyReplicas,omitempty"`

	// Replicas is the number of pods created by the Workload controller.
	Replicas int32 `json:"replicas"`

	// The number of pods in updatedRevision.
	UpdatedReplicas int32 `json:"updatedReplicas"`

	// The number of pods in currentRevision.
	CurrentReplicas int32 `json:"currentReplicas,omitempty"`

	// Count of hash collisions for the Workload.
	// +optional
	CollisionCount *int32 `json:"collisionCount,omitempty"`

	// CurrentRevision, if not empty, indicates the current version of the Workload.
	CurrentRevision string `json:"currentRevision"`

	// UpdateRevision, if not empty, indicates the version of the Workload used to generate Pods in the sequence
	UpdateRevision string `json:"updateRevision,omitempty"`

	// Total number of available pods.
	// +optional
	AvailableReplicas int32 `json:"availableReplicas"`
}

WorkloadStatus describes the status of a specified workload.

func (*WorkloadStatus) DeepCopy

func (in *WorkloadStatus) DeepCopy() *WorkloadStatus

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

func (*WorkloadStatus) DeepCopyInto

func (in *WorkloadStatus) DeepCopyInto(out *WorkloadStatus)

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