v1alpha1

package
v0.16.0 Latest Latest
Warning

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

Go to latest
Published: Jun 13, 2023 License: Apache-2.0 Imports: 7 Imported by: 3

Documentation

Overview

Package v1alpha1 is the v1alpha1 version of the API.

Index

Constants

View Source
const (
	VERSION = "v1alpha1"
)

Variables

View Source
var (
	// SchemeBuilder initializes a scheme builder
	SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes)
	// AddToScheme is a global function that registers this API group & version to a scheme
	AddToScheme = SchemeBuilder.AddToScheme
)
View Source
var SchemeGroupVersion = schema.GroupVersion{Group: apps.GroupName, Version: VERSION}

SchemeGroupVersion is group version used to register these objects

Functions

func Kind

func Kind(kind string) schema.GroupKind

Kind takes an unqualified kind and returns back a Group qualified GroupKind

func Resource

func Resource(resource string) schema.GroupResource

Resource takes an unqualified resource and returns a Group qualified GroupResource

Types

type AggregatedStatus added in v0.11.0

type AggregatedStatus struct {
	// Feed holds references to the resource.
	Feed `json:",inline"`

	// FeedStatusSummary aggregates the feed statuses from each child cluster.
	//
	// +optional
	FeedStatusSummary FeedStatus `json:"feedStatusSummary,omitempty"`

	// FeedStatusDetails shows the feed statuses in each child cluster.
	//
	// +optional
	FeedStatusDetails []FeedStatusPerCluster `json:"feedStatusDetails,omitempty"`
}

AggregatedStatus contains aggregated status of current feed.

func (*AggregatedStatus) DeepCopy added in v0.11.0

func (in *AggregatedStatus) DeepCopy() *AggregatedStatus

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

func (*AggregatedStatus) DeepCopyInto added in v0.11.0

func (in *AggregatedStatus) DeepCopyInto(out *AggregatedStatus)

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

type Base

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

	Spec BaseSpec `json:"spec"`
}

Base represents the referenced resources/templates before rendering.

func (*Base) DeepCopy

func (in *Base) DeepCopy() *Base

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

func (*Base) DeepCopyInto

func (in *Base) DeepCopyInto(out *Base)

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

func (*Base) DeepCopyObject

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

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

type BaseList

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

BaseList contains a list of Base

func (*BaseList) DeepCopy

func (in *BaseList) DeepCopy() *BaseList

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

func (*BaseList) DeepCopyInto

func (in *BaseList) DeepCopyInto(out *BaseList)

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

func (*BaseList) DeepCopyObject

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

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

type BaseSpec

type BaseSpec struct {
	// Feeds
	//
	// +required
	// +kubebuilder:validation:Required
	Feeds []Feed `json:"feeds"`
}

BaseSpec defines the desired state of Base

func (*BaseSpec) DeepCopy

func (in *BaseSpec) DeepCopy() *BaseSpec

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

func (*BaseSpec) DeepCopyInto

func (in *BaseSpec) DeepCopyInto(out *BaseSpec)

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

type ChartPullSecret added in v0.7.0

type ChartPullSecret struct {
	Name      string `json:"name,omitempty"`
	Namespace string `json:"namespace,omitempty"`
}

ChartPullSecret is the name of the secret that contains the auth information for the chart repository.

func (*ChartPullSecret) DeepCopy added in v0.7.0

func (in *ChartPullSecret) DeepCopy() *ChartPullSecret

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

func (*ChartPullSecret) DeepCopyInto added in v0.7.0

func (in *ChartPullSecret) DeepCopyInto(out *ChartPullSecret)

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

type ChartReference

type ChartReference struct {
	// Namespace of the HelmChart.
	//
	// +required
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Type=string
	Namespace string `json:"namespace"`

	// Name of the HelmChart.
	//
	// +required
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Type=string
	Name string `json:"name"`
}

func (*ChartReference) DeepCopy

func (in *ChartReference) DeepCopy() *ChartReference

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

func (*ChartReference) DeepCopyInto

func (in *ChartReference) DeepCopyInto(out *ChartReference)

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

type Description

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

	Spec   DescriptionSpec   `json:"spec"`
	Status DescriptionStatus `json:"status,omitempty"`
}

Description is the Schema for the resources to be installed

func (*Description) DeepCopy

func (in *Description) DeepCopy() *Description

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

func (*Description) DeepCopyInto

func (in *Description) DeepCopyInto(out *Description)

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

func (*Description) DeepCopyObject

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

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

type DescriptionDeployer

type DescriptionDeployer string
const (
	DescriptionHelmDeployer    DescriptionDeployer = "Helm"
	DescriptionGenericDeployer DescriptionDeployer = "Generic"
)

type DescriptionList

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

DescriptionList contains a list of Description

func (*DescriptionList) DeepCopy

func (in *DescriptionList) DeepCopy() *DescriptionList

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

func (*DescriptionList) DeepCopyInto

func (in *DescriptionList) DeepCopyInto(out *DescriptionList)

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

func (*DescriptionList) DeepCopyObject

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

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

type DescriptionPhase

type DescriptionPhase string
const (
	DescriptionPhaseSuccess DescriptionPhase = "Success"
	DescriptionPhaseFailure DescriptionPhase = "Failure"

	// The following is the helm-specific status
	// DescriptionPhaseInstalling indicates that an install operation is underway.
	DescriptionPhaseInstalling DescriptionPhase = "Installing"
	// DescriptionPhaseUpgrading indicates that an upgrade operation is underway.
	DescriptionPhaseUpgrading DescriptionPhase = "Upgrading"
	// DescriptionPhaseUninstalling indicates that a uninstall operation is underway.
	DescriptionPhaseUninstalling DescriptionPhase = "Uninstalling"
	// DescriptionPhaseSuperseded indicates that this release object is outdated and a newer one exists.
	DescriptionPhaseSuperseded DescriptionPhase = "Superseded"
	// DescriptionPhaseUnknown indicates that a release is in an uncertain state.
	DescriptionPhaseUnknown DescriptionPhase = "Unknown"
)

type DescriptionSpec

type DescriptionSpec struct {
	// Deployer indicates the deployer for this Description
	//
	// +required
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Type=string
	// +kubebuilder:validation:Enum=Helm;Generic
	Deployer DescriptionDeployer `json:"deployer"`

	// Charts describe all the helm charts to be installed
	//
	// +optional
	Charts []ChartReference `json:"charts,omitempty"`

	// Raw is the underlying serialization of all objects.
	//
	// +optional
	Raw [][]byte `json:"raw,omitempty"`

	// ChartRaw is the underlying serialization of all helm chart objects.
	//
	// +optional
	ChartRaw [][]byte `json:"chartRaw,omitempty"`
}

DescriptionSpec defines the spec of Description

func (*DescriptionSpec) DeepCopy

func (in *DescriptionSpec) DeepCopy() *DescriptionSpec

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

func (*DescriptionSpec) DeepCopyInto

func (in *DescriptionSpec) DeepCopyInto(out *DescriptionSpec)

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

type DescriptionStatus

type DescriptionStatus struct {
	// Phase denotes the phase of Description
	// +optional
	// +kubebuilder:validation:Enum=Pending;Success;Failure;Installing;Upgrading;Uninstalling;Superseded;Unknown
	Phase DescriptionPhase `json:"phase,omitempty"`

	// Reason indicates the reason of DescriptionPhase
	// +optional
	Reason string `json:"reason,omitempty"`

	// ManifestStatuses contains a list of running statuses of manifests in DescriptionSpec.
	//
	// +optional
	ManifestStatuses []ManifestStatus `json:"manifestStatuses,omitempty"`
}

DescriptionStatus defines the observed state of Description

func (*DescriptionStatus) DeepCopy

func (in *DescriptionStatus) DeepCopy() *DescriptionStatus

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

func (*DescriptionStatus) DeepCopyInto

func (in *DescriptionStatus) DeepCopyInto(out *DescriptionStatus)

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

type DividingScheduling added in v0.11.0

type DividingScheduling struct {
	// Type of dividing replica scheduling.
	//
	// +required
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Enum=Static;Dynamic
	// +kubebuilder:validation:Type=string
	// +kubebuilder:default=Static
	Type ReplicaDividingType `json:"type"`

	// DynamicDividing describes how to divide replicas into target clusters dynamically.
	//
	// +optional
	DynamicDividing *DynamicDividing `json:"dynamicDividing,omitempty"`
}

DividingScheduling describes how to divide replicas into target clusters.

func (*DividingScheduling) DeepCopy added in v0.11.0

func (in *DividingScheduling) DeepCopy() *DividingScheduling

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

func (*DividingScheduling) DeepCopyInto added in v0.11.0

func (in *DividingScheduling) DeepCopyInto(out *DividingScheduling)

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

type DynamicDividing added in v0.11.0

type DynamicDividing struct {
	// Type of dynamic dividing replica strategy.
	//
	// +required
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Enum=Spread;Binpack
	// +kubebuilder:validation:Type=string
	// +kubebuilder:default=Spread
	Strategy DynamicDividingStrategy `json:"strategy"`

	// TopologySpreadConstraints describes how a group of replicas ought to spread across topology
	// domains. Scheduler will schedule pods in a way which abides by the constraints.
	// All topologySpreadConstraints are ANDed.
	// Present only for spread divided scheduling.
	//
	// +optional
	TopologySpreadConstraints []corev1.TopologySpreadConstraint `json:"topologySpreadConstraints,omitempty"`

	// PreferredClusters describes the assigning preference. If we have a preference for cluster group A
	// compared to cluster group B (i.e., group A has a larger Weight), desired replicas will be assigned
	// to cluster group A as many as possible, while the rest ones will be assigned to cluster group B.
	//
	// +optional
	PreferredClusters []corev1.PreferredSchedulingTerm `json:"preferredClusters,omitempty"`

	// MinClusters describes the lower bound number of target clusters.
	//
	// +optional
	MinClusters *int32 `json:"minClusters,omitempty"`

	// MaxClusters describes the upper bound number of target clusters.
	//
	// +optional
	MaxClusters *int32 `json:"maxClusters,omitempty"`
}

DynamicDividing describes how to divide replicas into target clusters dynamically.

func (*DynamicDividing) DeepCopy added in v0.11.0

func (in *DynamicDividing) DeepCopy() *DynamicDividing

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

func (*DynamicDividing) DeepCopyInto added in v0.11.0

func (in *DynamicDividing) DeepCopyInto(out *DynamicDividing)

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

type DynamicDividingStrategy added in v0.11.0

type DynamicDividingStrategy string
const (
	// SpreadDividingStrategy spreads out replicas as much as possible.
	SpreadDividingStrategy DynamicDividingStrategy = "Spread"

	// BinpackDividingStrategy aggregates replicas as much as possible.
	BinpackDividingStrategy DynamicDividingStrategy = "Binpack"
)

type Feed

type Feed struct {
	// Kind is a string value representing the REST resource this object represents.
	// In CamelCase.
	//
	// +required
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Type=string
	Kind string `json:"kind"`

	// APIVersion defines the versioned schema of this representation of an object.
	//
	// +required
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Type=string
	APIVersion string `json:"apiVersion"`

	// Namespace of the target resource.
	//
	// +optional
	Namespace string `json:"namespace,omitempty"`

	// Name of the target resource.
	//
	// +required
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Type=string
	Name string `json:"name"`
}

Feed defines the resource to be selected.

func (*Feed) DeepCopy

func (in *Feed) DeepCopy() *Feed

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

func (*Feed) DeepCopyInto

func (in *Feed) DeepCopyInto(out *Feed)

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

type FeedInventory added in v0.9.0

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

	Spec FeedInventorySpec `json:"spec"`
}

FeedInventory defines a group of feeds which correspond to a subscription.

func (*FeedInventory) DeepCopy added in v0.9.0

func (in *FeedInventory) DeepCopy() *FeedInventory

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

func (*FeedInventory) DeepCopyInto added in v0.9.0

func (in *FeedInventory) DeepCopyInto(out *FeedInventory)

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

func (*FeedInventory) DeepCopyObject added in v0.9.0

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

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

type FeedInventoryList added in v0.9.0

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

FeedInventoryList contains a list of FeedInventory.

func (*FeedInventoryList) DeepCopy added in v0.9.0

func (in *FeedInventoryList) DeepCopy() *FeedInventoryList

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

func (*FeedInventoryList) DeepCopyInto added in v0.9.0

func (in *FeedInventoryList) DeepCopyInto(out *FeedInventoryList)

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

func (*FeedInventoryList) DeepCopyObject added in v0.9.0

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

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

type FeedInventorySpec added in v0.9.0

type FeedInventorySpec struct {
	Feeds []FeedOrder `json:"feeds"`
}

FeedInventorySpec defines the desired state of FeedInventory.

func (*FeedInventorySpec) DeepCopy added in v0.9.0

func (in *FeedInventorySpec) DeepCopy() *FeedInventorySpec

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

func (*FeedInventorySpec) DeepCopyInto added in v0.9.0

func (in *FeedInventorySpec) DeepCopyInto(out *FeedInventorySpec)

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

type FeedOrder added in v0.9.0

type FeedOrder struct {
	Feed `json:",inline"`

	// DesiredReplicas specifies the number of desired replica. This is a pointer to distinguish between explicit
	// zero and not specified.
	//
	// +optional
	DesiredReplicas *int32 `json:"desiredReplicas,omitempty"`

	// ReplicaRequirements describes the scheduling requirements for a new replica.
	//
	// +optional
	ReplicaRequirements ReplicaRequirements `json:"replicaRequirements,omitempty"`

	// ReplicaJsonPath specifies the JSONPath for replica settings,
	// such as `/spec/replicas` for Deployment/StatefulSet/ReplicaSet.
	// Should not be empty when DesiredReplicas is non-nil.
	//
	// +optional
	ReplicaJsonPath string `json:"replicaJsonPath,omitempty"`
}

FeedOrder defines the scheduling requirements of a Feed.

func (*FeedOrder) DeepCopy added in v0.9.0

func (in *FeedOrder) DeepCopy() *FeedOrder

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

func (*FeedOrder) DeepCopyInto added in v0.9.0

func (in *FeedOrder) DeepCopyInto(out *FeedOrder)

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

type FeedStatus added in v0.11.0

type FeedStatus struct {
	// Available indicates whether the feed status is synced successfully to corresponding Description.
	//
	// +optional
	Available bool `json:"available,omitempty"`

	// ReplicaStatus indicates the replica status of workload-type feed, such as Deployment/StatefulSet/Job.
	//
	// +optional
	ReplicaStatus `json:"replicaStatus,omitempty"`
}

FeedStatus defines the feed status.

func (*FeedStatus) DeepCopy added in v0.11.0

func (in *FeedStatus) DeepCopy() *FeedStatus

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

func (*FeedStatus) DeepCopyInto added in v0.11.0

func (in *FeedStatus) DeepCopyInto(out *FeedStatus)

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

type FeedStatusPerCluster added in v0.11.0

type FeedStatusPerCluster struct {
	// ClusterID indicates the id of current cluster.
	//
	// +optional
	// +kubebuilder:validation:Type=string
	// +kubebuilder:validation:Pattern="[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}"
	ClusterID types.UID `json:"clusterId,omitempty"`

	// ClusterName is the cluster name.
	//
	// +optional
	// +kubebuilder:validation:Type=string
	// +kubebuilder:validation:MaxLength=30
	// +kubebuilder:validation:Pattern="[a-z0-9]([-a-z0-9]*[a-z0-9])?([a-z0-9]([-a-z0-9]*[a-z0-9]))*"
	ClusterName string `json:"clusterName,omitempty"`

	// FeedStatus contains the brief feed status in child cluster.
	//
	// +optional
	FeedStatus `json:",inline"`
}

FeedStatusPerCluster shows the feed status running in current cluster.

func (*FeedStatusPerCluster) DeepCopy added in v0.11.0

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

func (*FeedStatusPerCluster) DeepCopyInto added in v0.11.0

func (in *FeedStatusPerCluster) DeepCopyInto(out *FeedStatusPerCluster)

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

type Globalization

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

	Spec GlobalizationSpec `json:"spec"`
}

Globalization represents the cluster-scoped override config for a group of resources.

func (*Globalization) DeepCopy

func (in *Globalization) DeepCopy() *Globalization

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

func (*Globalization) DeepCopyInto

func (in *Globalization) DeepCopyInto(out *Globalization)

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

func (*Globalization) DeepCopyObject

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

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

type GlobalizationList

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

GlobalizationList contains a list of Globalization

func (*GlobalizationList) DeepCopy

func (in *GlobalizationList) DeepCopy() *GlobalizationList

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

func (*GlobalizationList) DeepCopyInto

func (in *GlobalizationList) DeepCopyInto(out *GlobalizationList)

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

func (*GlobalizationList) DeepCopyObject

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

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

type GlobalizationSpec

type GlobalizationSpec struct {
	// OverridePolicy specifies the override policy for this Globalization.
	//
	// +optional
	// +kubebuilder:validation:Type=string
	// +kubebuilder:validation:Enum=ApplyNow;ApplyLater
	// +kubebuilder:default=ApplyLater
	OverridePolicy OverridePolicy `json:"overridePolicy,omitempty"`

	// ClusterAffinity is a label query over managed clusters by labels.
	// If no labels are specified, all clusters will be selected.
	//
	// +optional
	ClusterAffinity *metav1.LabelSelector `json:"clusterAffinity,omitempty"`

	// Overrides holds all the OverrideConfig.
	//
	// +optional
	Overrides []OverrideConfig `json:"overrides,omitempty"`

	// Priority is an integer defining the relative importance of this Globalization compared to others.
	// Lower numbers are considered lower priority.
	// And these Globalization(s) will be applied by order from lower priority to higher.
	// That means override values in lower Globalization will be overridden by those in higher Globalization.
	//
	// +optional
	// +kubebuilder:validation:Maximum=1000
	// +kubebuilder:validation:Minimum=0
	// +kubebuilder:default=500
	Priority int32 `json:"priority,omitempty"`

	// Feed holds references to the objects the Globalization applies to.
	//
	// +optional
	Feed `json:"feed,omitempty"`
}

GlobalizationSpec defines the desired state of Globalization

func (*GlobalizationSpec) DeepCopy

func (in *GlobalizationSpec) DeepCopy() *GlobalizationSpec

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

func (*GlobalizationSpec) DeepCopyInto

func (in *GlobalizationSpec) DeepCopyInto(out *GlobalizationSpec)

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

type HelmChart

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

	Spec   HelmChartSpec   `json:"spec"`
	Status HelmChartStatus `json:"status,omitempty"`
}

HelmChart is the Schema for the helm chart

func (*HelmChart) DeepCopy

func (in *HelmChart) DeepCopy() *HelmChart

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

func (*HelmChart) DeepCopyInto

func (in *HelmChart) DeepCopyInto(out *HelmChart)

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

func (*HelmChart) DeepCopyObject

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

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

type HelmChartList

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

HelmChartList contains a list of HelmChart

func (*HelmChartList) DeepCopy

func (in *HelmChartList) DeepCopy() *HelmChartList

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

func (*HelmChartList) DeepCopyInto

func (in *HelmChartList) DeepCopyInto(out *HelmChartList)

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

func (*HelmChartList) DeepCopyObject

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

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

type HelmChartPhase

type HelmChartPhase string
const (
	HelmChartFound    HelmChartPhase = "Found"
	HelmChartNotFound HelmChartPhase = "NotFound"
)

type HelmChartSpec

type HelmChartSpec struct {
	HelmOptions `json:",inline"`

	// TargetNamespace specifies the namespace to install this HelmChart
	//
	// +required
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Type=string
	TargetNamespace string `json:"targetNamespace"`
}

HelmChartSpec defines the spec of HelmChart

func (*HelmChartSpec) DeepCopy

func (in *HelmChartSpec) DeepCopy() *HelmChartSpec

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

func (*HelmChartSpec) DeepCopyInto

func (in *HelmChartSpec) DeepCopyInto(out *HelmChartSpec)

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

type HelmChartStatus

type HelmChartStatus struct {
	// Phase denotes the phase of HelmChart
	//
	// +optional
	// +kubebuilder:validation:Enum=Found;NotFound
	Phase HelmChartPhase `json:"phase,omitempty"`

	// Reason indicates the reason of HelmChartPhase
	//
	// +optional
	Reason string `json:"reason,omitempty"`
}

HelmChartStatus defines the observed state of HelmChart

func (*HelmChartStatus) DeepCopy

func (in *HelmChartStatus) DeepCopy() *HelmChartStatus

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

func (*HelmChartStatus) DeepCopyInto

func (in *HelmChartStatus) DeepCopyInto(out *HelmChartStatus)

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

type HelmOptions

type HelmOptions struct {
	// a Helm Repository to be used.
	// OCI-based registries are also supported.
	// For example, https://charts.bitnami.com/bitnami or oci://localhost:5000/helm-charts
	//
	// +required
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Type=string
	// +kubebuilder:validation:Pattern=`^(http|https|oci)?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+$`
	Repository string `json:"repo"`

	// ChartPullSecret is the name of the secret that contains the auth information for the chart repository.
	//
	// +optional
	ChartPullSecret ChartPullSecret `json:"chartPullSecret,omitempty"`

	// Chart is the name of a Helm Chart in the Repository.
	//
	// +required
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Type=string
	Chart string `json:"chart"`

	// ChartVersion is the version of the chart to be deployed.
	// It will be defaulted with current latest version if empty.
	//
	// +optional
	ChartVersion string `json:"version,omitempty"`

	// CreateNamespace create namespace when install helm release
	//
	// +optional
	// +kubebuilder:default=true
	CreateNamespace *bool `json:"createNamespace,omitempty"`

	// TimeoutSeconds is the timeout of the chart to be install/upgrade/rollback/uninstall
	//
	// +optional
	// +kubebuilder:validation:Type=integer
	// +kubebuilder:default=300
	TimeoutSeconds int32 `json:"timeoutSeconds,omitempty"`

	// Wait determines whether the wait operation should be performed after helm install, upgrade or uninstall is requested.
	//
	// +optional
	// +kubebuilder:validation:Type=boolean
	Wait *bool `json:"wait,omitempty"`

	// WaitForJobs determines whether the wait operation for the Jobs should be performed after the upgrade is requested.
	//
	// +optional
	// +kubebuilder:validation:Type=boolean
	WaitForJob *bool `json:"waitForJob,omitempty"`

	// Replace will re-use the given name, only if that name is a deleted release that remains in the history.
	// This is unsafe in production.
	//
	// +optional
	// +kubebuilder:validation:Type=boolean
	Replace *bool `json:"replace,omitempty"`

	// Atomic, for install case, if true, will uninstall failed release.
	//
	// +optional
	// +kubebuilder:validation:Type=boolean
	Atomic *bool `json:"atomic,omitempty"`

	// UpgradeAtomic, for upgrade case, if true, will roll back failed release.
	//
	// +optional
	// +kubebuilder:validation:Type=boolean
	UpgradeAtomic *bool `json:"upgradeAtomic,omitempty"`

	// SkipCRDs skips installing CRDs when install flag is enabled during upgrade
	//
	// +optional
	// +kubebuilder:validation:Type=boolean
	SkipCRDs *bool `json:"skipCRDs,omitempty"`

	// ReplaceCRDs replace all crds in chart and sub charts before upgrade and install, not working when SkipCRDs true
	//
	// +optional
	// +kubebuilder:validation:Type=boolean
	ReplaceCRDs *bool `json:"replaceCRDs,omitempty"`

	// DisableHooks disables hook processing if set to true.
	//
	// +optional
	// +kubebuilder:validation:Type=boolean
	DisableHooks *bool `json:"disableHooks,omitempty"`

	// Force will, if set to `true`, ignore certain warnings and perform the upgrade anyway.
	// This should be used with caution.
	//
	// +optional
	// +kubebuilder:validation:Type=boolean
	Force *bool `json:"force,omitempty"`
}

func (*HelmOptions) DeepCopy

func (in *HelmOptions) DeepCopy() *HelmOptions

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

func (*HelmOptions) DeepCopyInto

func (in *HelmOptions) DeepCopyInto(out *HelmOptions)

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

type HelmRelease

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

	Spec   HelmReleaseSpec   `json:"spec"`
	Status HelmReleaseStatus `json:"status,omitempty"`
}

HelmRelease is the Schema for the helm release

func (*HelmRelease) DeepCopy

func (in *HelmRelease) DeepCopy() *HelmRelease

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

func (*HelmRelease) DeepCopyInto

func (in *HelmRelease) DeepCopyInto(out *HelmRelease)

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

func (*HelmRelease) DeepCopyObject

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

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

type HelmReleaseList

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

HelmReleaseList contains a list of HelmRelease

func (*HelmReleaseList) DeepCopy

func (in *HelmReleaseList) DeepCopy() *HelmReleaseList

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

func (*HelmReleaseList) DeepCopyInto

func (in *HelmReleaseList) DeepCopyInto(out *HelmReleaseList)

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

func (*HelmReleaseList) DeepCopyObject

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

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

type HelmReleaseSpec

type HelmReleaseSpec struct {
	HelmOptions `json:",inline"`

	// ReleaseName specifies the desired release name in child cluster.
	// If nil, the default release name will be in the format of "{Description Name}-{HelmChart Namespace}-{HelmChart Name}"
	//
	// +optional
	// +kubebuilder:validation:Type=string
	ReleaseName *string `json:"releaseName,omitempty"`

	// TargetNamespace specifies the namespace to install the chart
	//
	// +required
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Type=string
	TargetNamespace string `json:"targetNamespace"`

	// Overrides specifies the override values for this release.
	//
	// +optional
	Overrides []byte `json:"overrides,omitempty"`
}

HelmReleaseSpec defines the spec of HelmRelease

func (*HelmReleaseSpec) DeepCopy

func (in *HelmReleaseSpec) DeepCopy() *HelmReleaseSpec

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

func (*HelmReleaseSpec) DeepCopyInto

func (in *HelmReleaseSpec) DeepCopyInto(out *HelmReleaseSpec)

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

type HelmReleaseStatus

type HelmReleaseStatus struct {
	// FirstDeployed is when the release was first deployed.
	//
	// +optional
	FirstDeployed string `json:"firstDeployed,omitempty"`

	// LastDeployed is when the release was last deployed.
	//
	// +optional
	LastDeployed string `json:"lastDeployed,omitempty"`

	// Description is human-friendly "log entry" about this release.
	//
	// +optional
	Description string `json:"description,omitempty"`

	// Phase is the current state of the release
	Phase release.Status `json:"phase,omitempty"`

	// Contains the rendered templates/NOTES.txt if available
	//
	// +optional
	Notes string `json:"notes,omitempty"`

	// Version is an int which represents the revision of the release.
	//
	// +optional
	Version int `json:"version,omitempty"`
}

HelmReleaseStatus defines the observed state of HelmRelease

func (*HelmReleaseStatus) DeepCopy

func (in *HelmReleaseStatus) DeepCopy() *HelmReleaseStatus

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

func (*HelmReleaseStatus) DeepCopyInto

func (in *HelmReleaseStatus) DeepCopyInto(out *HelmReleaseStatus)

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

type Localization

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

	Spec LocalizationSpec `json:"spec"`
}

Localization represents the override config for a group of resources.

func (*Localization) DeepCopy

func (in *Localization) DeepCopy() *Localization

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

func (*Localization) DeepCopyInto

func (in *Localization) DeepCopyInto(out *Localization)

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

func (*Localization) DeepCopyObject

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

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

type LocalizationList

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

LocalizationList contains a list of Localization

func (*LocalizationList) DeepCopy

func (in *LocalizationList) DeepCopy() *LocalizationList

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

func (*LocalizationList) DeepCopyInto

func (in *LocalizationList) DeepCopyInto(out *LocalizationList)

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

func (*LocalizationList) DeepCopyObject

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

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

type LocalizationSpec

type LocalizationSpec struct {
	// OverridePolicy specifies the override policy for this Localization.
	//
	// +optional
	// +kubebuilder:validation:Type=string
	// +kubebuilder:validation:Enum=ApplyNow;ApplyLater
	// +kubebuilder:default=ApplyLater
	OverridePolicy OverridePolicy `json:"overridePolicy,omitempty"`

	// Overrides holds all the OverrideConfig.
	//
	// +optional
	Overrides []OverrideConfig `json:"overrides,omitempty"`

	// Priority is an integer defining the relative importance of this Localization compared to others.
	// Lower numbers are considered lower priority.
	// And these Localization(s) will be applied by order from lower priority to higher.
	// That means override values in lower Localization will be overridden by those in higher Localization.
	//
	// +optional
	// +kubebuilder:validation:Maximum=1000
	// +kubebuilder:validation:Minimum=0
	// +kubebuilder:default=500
	Priority int32 `json:"priority,omitempty"`

	// Feed holds references to the objects the Localization applies to.
	//
	// +optional
	Feed `json:"feed,omitempty"`
}

LocalizationSpec defines the desired state of Localization

func (*LocalizationSpec) DeepCopy

func (in *LocalizationSpec) DeepCopy() *LocalizationSpec

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

func (*LocalizationSpec) DeepCopyInto

func (in *LocalizationSpec) DeepCopyInto(out *LocalizationSpec)

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

type Manifest

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

	// Template defines the raw Kubernetes resource
	//
	// +kubebuilder:pruning:PreserveUnknownFields
	Template runtime.RawExtension `json:"template"`
}

Manifest stores the raw object

func (*Manifest) DeepCopy

func (in *Manifest) DeepCopy() *Manifest

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

func (*Manifest) DeepCopyInto

func (in *Manifest) DeepCopyInto(out *Manifest)

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

func (*Manifest) DeepCopyObject

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

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

type ManifestList

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

ManifestList contains a list of Manifest

func (*ManifestList) DeepCopy

func (in *ManifestList) DeepCopy() *ManifestList

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

func (*ManifestList) DeepCopyInto

func (in *ManifestList) DeepCopyInto(out *ManifestList)

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

func (*ManifestList) DeepCopyObject

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

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

type ManifestStatus added in v0.11.0

type ManifestStatus struct {
	// Feed holds references to the resource.
	Feed `json:",inline"`

	// ObservedStatus reflects observed status of current feed.
	//
	// +optional
	// +kubebuilder:pruning:PreserveUnknownFields
	ObservedStatus runtime.RawExtension `json:"observedStatus,omitempty"`
}

ManifestStatus contains details for the current status of this feed.

func (*ManifestStatus) DeepCopy added in v0.11.0

func (in *ManifestStatus) DeepCopy() *ManifestStatus

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

func (*ManifestStatus) DeepCopyInto added in v0.11.0

func (in *ManifestStatus) DeepCopyInto(out *ManifestStatus)

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

type OverrideConfig

type OverrideConfig struct {
	// Name indicate the OverrideConfig name.
	//
	// +optional
	Name string `json:"name,omitempty"`

	// Value represents override value.
	//
	// +required
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Type=string
	Value string `json:"value"`

	// Type specifies the override type for override value.
	//
	// +required
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Type=string
	// +kubebuilder:validation:Enum=Helm;JSONPatch;MergePatch
	Type OverrideType `json:"type"`

	// OverrideChart indicates whether the override value for the HelmChart CR.
	//
	// +optional
	OverrideChart bool `json:"overrideChart,omitempty"`
}

OverrideConfig holds information that describes a override config.

func (*OverrideConfig) DeepCopy

func (in *OverrideConfig) DeepCopy() *OverrideConfig

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

func (*OverrideConfig) DeepCopyInto

func (in *OverrideConfig) DeepCopyInto(out *OverrideConfig)

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

type OverridePolicy

type OverridePolicy string
const (
	// Apply overrides for all matched objects immediately, including those already populated
	ApplyNow OverridePolicy = "ApplyNow"

	// Apply overrides for all matched objects on next updates (including updates on Subscription,
	// Manifest, HelmChart, etc) or new created objects.
	ApplyLater OverridePolicy = "ApplyLater"
)

type OverrideType

type OverrideType string
const (
	// HelmType applies Helm values for all matched HelmCharts.
	// Note: HelmType only works with HelmChart(s).
	HelmType OverrideType = "Helm"

	// JSONPatchType applies a json patch for all matched objects.
	// Note: JSONPatchType does not work with HelmChart(s).
	JSONPatchType OverrideType = "JSONPatch"

	// MergePatchType applies a json merge patch for all matched objects.
	// Note: MergePatchType does not work with HelmChart(s).
	MergePatchType OverrideType = "MergePatch"
)

type ReplicaDividingType added in v0.9.0

type ReplicaDividingType string
const (
	// StaticReplicaDividingType divides replicas by a fixed weight.
	StaticReplicaDividingType ReplicaDividingType = "Static"

	// DynamicReplicaDividingType divides replicas by cluster resource predictor.
	DynamicReplicaDividingType ReplicaDividingType = "Dynamic"
)

type ReplicaRequirements added in v0.9.0

type ReplicaRequirements struct {
	// NodeSelector specifies hard node constraints that must be met for a new replica to fit on a node.
	// Selector which must match a node's labels for a new replica to be scheduled on that node.
	// +optional
	// +mapType=atomic
	NodeSelector map[string]string `json:"nodeSelector,omitempty"`

	// Tolerations specifies the tolerations of a new replica.
	// +optional
	Tolerations []corev1.Toleration `json:"tolerations,omitempty"`

	// Affinity specifies the scheduling constraints of a new replica.
	// +optional
	Affinity *corev1.Affinity `json:"affinity,omitempty"`

	// Resources describes the compute resource requirements.
	// +optional
	Resources corev1.ResourceRequirements `json:"resources,omitempty"`
}

ReplicaRequirements describes the scheduling requirements for a new replica.

func (*ReplicaRequirements) DeepCopy added in v0.9.0

func (in *ReplicaRequirements) DeepCopy() *ReplicaRequirements

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

func (*ReplicaRequirements) DeepCopyInto added in v0.9.0

func (in *ReplicaRequirements) DeepCopyInto(out *ReplicaRequirements)

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

type ReplicaStatus added in v0.11.0

type ReplicaStatus struct {
	// The generation observed by the workload controller.
	// +optional
	ObservedGeneration int64 `json:"observedGeneration,omitempty"`

	// Total number of non-terminated pods targeted by this workload (their labels match the selector).
	// +optional
	Replicas int32 `json:"replicas,omitempty"`

	// Total number of non-terminated pods targeted by this workload that have the desired template spec.
	// +optional
	UpdatedReplicas int32 `json:"updatedReplicas,omitempty"`

	// currentReplicas is the number of Pods created by the workload controller from the StatefulSet version
	// indicated by currentRevision.
	// +optional
	CurrentReplicas int32 `json:"currentReplicas,omitempty"`

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

	// Total number of available pods (ready for at least minReadySeconds) targeted by this workload.
	// +optional
	AvailableReplicas int32 `json:"availableReplicas,omitempty"`

	// Total number of unavailable pods targeted by this workload. This is the total number of
	// pods that are still required for the workload to have 100% available capacity. They may
	// either be pods that are running but not yet available or pods that still have not been created.
	// +optional
	UnavailableReplicas int32 `json:"unavailableReplicas,omitempty"`

	// The number of pending and running pods.
	// +optional
	Active int32 `json:"active,omitempty"`

	// The number of pods which reached phase Succeeded.
	// +optional
	Succeeded int32 `json:"succeeded,omitempty"`

	// The number of pods which reached phase Failed.
	// +optional
	Failed int32 `json:"failed,omitempty"`
}

ReplicaStatus represents brief information about feed replicas running in child cluster. This is used for workload-type feeds.

func (*ReplicaStatus) DeepCopy added in v0.11.0

func (in *ReplicaStatus) DeepCopy() *ReplicaStatus

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

func (*ReplicaStatus) DeepCopyInto added in v0.11.0

func (in *ReplicaStatus) DeepCopyInto(out *ReplicaStatus)

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

type SchedulingStrategyType added in v0.7.0

type SchedulingStrategyType string
const (
	// ReplicaSchedulingStrategyType places and maintains a copy of this Subscription on each matched clusters.
	ReplicaSchedulingStrategyType SchedulingStrategyType = "Replication"

	// DividingSchedulingStrategyType divides the replicas of a Subscription to several matching clusters.
	DividingSchedulingStrategyType SchedulingStrategyType = "Dividing"
)

type SubGroupStrategy added in v0.13.0

type SubGroupStrategy struct {
	// MinClusters is the minimum number of clusters to be selected in this subgroup.
	// If this value is more than the total number of clusters in this subgroup, then all clusters will be selected.
	//
	// +optional
	// +kubebuilder:validation:Minimum=0
	MinClusters int32 `json:"minClusters,omitempty"`
}

SubGroupStrategy defines the subgroup strategy

func (*SubGroupStrategy) DeepCopy added in v0.13.0

func (in *SubGroupStrategy) DeepCopy() *SubGroupStrategy

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

func (*SubGroupStrategy) DeepCopyInto added in v0.13.0

func (in *SubGroupStrategy) DeepCopyInto(out *SubGroupStrategy)

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

type Subscriber

type Subscriber struct {
	// ClusterAffinity is a label query over managed clusters by labels.
	//
	// +required
	// +kubebuilder:validation:Required
	ClusterAffinity *metav1.LabelSelector `json:"clusterAffinity"`

	// Static weight of subscriber when dividing replicas.
	// Present only for static divided scheduling.
	//
	// +optional
	// +kubebuilder:validation:Minimum=0
	Weight int32 `json:"weight,omitempty"`

	// SubGroupStrategy defines the subgroup strategy for the clusters matched by this subscriber.
	// During the scheduling, all the matching clusters will be treated as a subgroup instead of individual clusters.
	// With subgroup, we can describe clusters with different regions, zones, etc.
	// Present only when SchedulingBySubGroup is set.
	//
	// +optional
	SubGroupStrategy *SubGroupStrategy `json:"subGroupStrategy,omitempty"`
}

Subscriber defines

func (*Subscriber) DeepCopy

func (in *Subscriber) DeepCopy() *Subscriber

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

func (*Subscriber) DeepCopyInto

func (in *Subscriber) DeepCopyInto(out *Subscriber)

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

type Subscription

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

	Spec   SubscriptionSpec   `json:"spec"`
	Status SubscriptionStatus `json:"status,omitempty"`
}

Subscription represents the policy that install a group of resources to one or more clusters.

func (*Subscription) DeepCopy

func (in *Subscription) DeepCopy() *Subscription

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

func (*Subscription) DeepCopyInto

func (in *Subscription) DeepCopyInto(out *Subscription)

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

func (*Subscription) DeepCopyObject

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

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

type SubscriptionList

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

SubscriptionList contains a list of Subscription

func (*SubscriptionList) DeepCopy

func (in *SubscriptionList) DeepCopy() *SubscriptionList

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

func (*SubscriptionList) DeepCopyInto

func (in *SubscriptionList) DeepCopyInto(out *SubscriptionList)

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

func (*SubscriptionList) DeepCopyObject

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

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

type SubscriptionSpec

type SubscriptionSpec struct {
	// If specified, the Subscription will be handled by specified scheduler.
	// If not specified, the Subscription will be handled by default scheduler.
	//
	// +optional
	// +kubebuilder:default=default
	SchedulerName string `json:"schedulerName,omitempty"`

	// If specified, the Subscription will be handled with SchedulingBySubGroup.
	// Used together with SubGroupStrategy in every Subscriber.
	// Can work with all supported SchedulingStrategy, such as Replication, Dividing.
	//
	// +optional
	SchedulingBySubGroup *bool `json:"schedulingBySubGroup,omitempty"`

	// If specified, the Subscription will be handled with specified SchedulingStrategy.
	// Otherwise, with generic SchedulingStrategy.
	//
	// +optional
	// +kubebuilder:validation:Type=string
	// +kubebuilder:validation:Enum=Replication;Dividing
	// +kubebuilder:default=Replication
	SchedulingStrategy SchedulingStrategyType `json:"schedulingStrategy,omitempty"`

	// Dividing scheduling config params. Present only if SchedulingStrategy = Dividing.
	//
	// +optional
	DividingScheduling *DividingScheduling `json:"dividingScheduling,omitempty"`

	// Subscribers subscribes
	//
	// +required
	// +kubebuilder:validation:Required
	Subscribers []Subscriber `json:"subscribers"`

	// ClusterTolerations tolerates any matched taints of ManagedCluster.
	//
	// +optional
	ClusterTolerations []corev1.Toleration `json:"clusterTolerations,omitempty"`

	// Feeds
	//
	// +required
	// +kubebuilder:validation:Required
	Feeds []Feed `json:"feeds"`
}

SubscriptionSpec defines the desired state of Subscription

func (*SubscriptionSpec) DeepCopy

func (in *SubscriptionSpec) DeepCopy() *SubscriptionSpec

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

func (*SubscriptionSpec) DeepCopyInto

func (in *SubscriptionSpec) DeepCopyInto(out *SubscriptionSpec)

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

type SubscriptionStatus

type SubscriptionStatus struct {
	// Namespaced names of targeted clusters that Subscription binds to.
	//
	// +optional
	BindingClusters []string `json:"bindingClusters,omitempty"`

	// Desired replicas of targeted clusters for each feed.
	//
	// +optional
	Replicas map[string][]int32 `json:"replicas,omitempty"`

	// SpecHash calculates the hash value of current SubscriptionSpec.
	//
	// +optional
	SpecHash uint64 `json:"specHash,omitempty"`

	// Total number of Helm releases desired by this Subscription.
	//
	// +optional
	DesiredReleases int `json:"desiredReleases,omitempty"`

	// Total number of completed releases targeted by this Subscription.
	//
	// +optional
	CompletedReleases int `json:"completedReleases,omitempty"`

	// AggregatedStatuses shows the aggregated statuses of feeds that are running in each child cluster.
	//
	// +optional
	AggregatedStatuses []AggregatedStatus `json:"aggregatedStatuses,omitempty"`
}

SubscriptionStatus defines the observed state of Subscription

func (*SubscriptionStatus) DeepCopy

func (in *SubscriptionStatus) DeepCopy() *SubscriptionStatus

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

func (*SubscriptionStatus) DeepCopyInto

func (in *SubscriptionStatus) DeepCopyInto(out *SubscriptionStatus)

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