Documentation
¶
Overview ¶
Package v1alpha1 is the v1alpha1 version of the API.
Index ¶
- Constants
- Variables
- func Kind(kind string) schema.GroupKind
- func Resource(resource string) schema.GroupResource
- type AggregatedStatus
- type Base
- type BaseList
- type BaseSpec
- type ChartPullSecret
- type ChartReference
- type Description
- type DescriptionDeployer
- type DescriptionList
- type DescriptionPhase
- type DescriptionSpec
- type DescriptionStatus
- type DividingScheduling
- type DynamicDividing
- type DynamicDividingStrategy
- type Feed
- type FeedInventory
- type FeedInventoryList
- type FeedInventorySpec
- type FeedOrder
- type FeedStatus
- type FeedStatusPerCluster
- type Globalization
- type GlobalizationList
- type GlobalizationSpec
- type HelmChart
- type HelmChartList
- type HelmChartPhase
- type HelmChartSpec
- type HelmChartStatus
- type HelmOptions
- type HelmRelease
- type HelmReleaseList
- type HelmReleaseSpec
- type HelmReleaseStatus
- type Localization
- type LocalizationList
- type LocalizationSpec
- type Manifest
- type ManifestList
- type ManifestStatus
- type OverrideConfig
- type OverridePolicy
- type OverrideType
- type ReplicaDividingType
- type ReplicaRequirements
- type ReplicaStatus
- type SchedulingStrategyType
- type SubGroupStrategy
- type Subscriber
- type Subscription
- type SubscriptionList
- type SubscriptionSpec
- type SubscriptionStatus
Constants ¶
const (
VERSION = "v1alpha1"
)
Variables ¶
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 )
var SchemeGroupVersion = schema.GroupVersion{Group: apps.GroupName, Version: VERSION}
SchemeGroupVersion is group version used to register these objects
Functions ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Base.
func (*Base) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Base) DeepCopyObject ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BaseList.
func (*BaseList) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*BaseList) DeepCopyObject ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BaseSpec.
func (*BaseSpec) DeepCopyInto ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Feed.
func (*Feed) DeepCopyInto ¶
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 an abstract representation of a feed.
func (*FeedOrder) DeepCopy ¶ added in v0.9.0
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FeedOrder.
func (*FeedOrder) DeepCopyInto ¶ added in v0.9.0
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
func (in *FeedStatusPerCluster) DeepCopy() *FeedStatusPerCluster
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HelmChart.
func (*HelmChart) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*HelmChart) DeepCopyObject ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Manifest.
func (*Manifest) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Manifest) DeepCopyObject ¶
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"`
// 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.