Documentation ¶
Overview ¶
Package v1beta1 contains API Schema definitions for the config v1beta1 API group +kubebuilder:object:generate=true +groupName=config.projectsveltos.io
Index ¶
- Constants
- Variables
- func GetClusterConfigurationSectionIndex(clusterConfiguration *ClusterConfiguration, profileKind, profileName string) (int, error)
- func GetProfileOwnerAndTier(ctx context.Context, c client.Client, clusterSummary *ClusterSummary) (client.Object, int32, error)
- func GetProfileOwnerReference(clusterSummary *ClusterSummary) (*metav1.OwnerReference, error)
- type Chart
- type ClusterConfiguration
- type ClusterConfigurationList
- type ClusterConfigurationStatus
- type ClusterProfile
- type ClusterProfileList
- type ClusterProfileResource
- type ClusterReport
- type ClusterReportList
- type ClusterReportSpec
- type ClusterReportStatus
- type ClusterSummary
- type ClusterSummaryList
- type ClusterSummarySpec
- type ClusterSummaryStatus
- type Clusters
- type DeploymentType
- type DriftExclusion
- type DryRunReconciliationError
- type Feature
- type FeatureDeploymentInfo
- type FeatureID
- type FeatureStatus
- type FeatureSummary
- type HelmAction
- type HelmChart
- type HelmChartAction
- type HelmChartStatus
- type HelmChartSummary
- type HelmInstallOptions
- type HelmOptions
- type HelmUninstallOptions
- type HelmUpgradeOptions
- type KustomizationRef
- type PolicyRef
- type Profile
- type ProfileList
- type ProfileResource
- type RegistryCredentialsConfig
- type ReleaseReport
- type Resource
- type ResourceAction
- type ResourceReport
- type Spec
- type Status
- type StopMatchingBehavior
- type SyncMode
- type TemplateResourceRef
- type ValidateHealth
- type ValueFrom
Constants ¶
const ( // ClusterProfileFinalizer allows ClusterProfileReconciler to clean up resources associated with // ClusterProfile before removing it from the apiserver. ClusterProfileFinalizer = "clusterprofilefinalizer.projectsveltos.io" ClusterProfileKind = "ClusterProfile" )
const ( // ClusterSummaryFinalizer allows ClusterSummaryReconciler to clean up resources associated with // ClusterSummary before removing it from the apiserver. ClusterSummaryFinalizer = "clustersummaryfinalizer.projectsveltos.io" ClusterSummaryKind = "ClusterSummary" )
const ( // FeatureResources is the identifier for generic Resources feature FeatureResources = FeatureID("Resources") // FeatureHelm is the identifier for Helm feature FeatureHelm = FeatureID("Helm") // FeatureKustomize is the identifier for Kustomize feature FeatureKustomize = FeatureID("Kustomize") )
const ( // FeatureStatusProvisioning indicates that feature is being // provisioned in the workload cluster FeatureStatusProvisioning = FeatureStatus("Provisioning") // FeatureStatusProvisioned indicates that feature has being // provisioned in the workload cluster FeatureStatusProvisioned = FeatureStatus("Provisioned") // FeatureStatusFailed indicates that configuring the feature // in the workload cluster failed FeatureStatusFailed = FeatureStatus("Failed") // FeatureStatusFailedNonRetriable indicates that configuring the feature // in the workload cluster failed with a non retriable error FeatureStatusFailedNonRetriable = FeatureStatus("FailedNonRetriable") // FeatureStatusRemoving indicates that feature is being // removed FeatureStatusRemoving = FeatureStatus("Removing") // FeatureStatusRemoved indicates that feature is removed FeatureStatusRemoved = FeatureStatus("Removed") )
const ( // HelChartStatusManaging indicates helm chart is successfully being managed HelmChartStatusManaging = HelmChartStatus("Managing") // HelChartStatusConflict indicates there is a conflict with another // ClusterSummary to manage the helm chart HelmChartStatusConflict = HelmChartStatus("Conflict") )
const ( // ProfileFinalizer allows ProfileReconciler to clean up resources associated with // Profile before removing it from the apiserver. ProfileFinalizer = "profilefinalizer.projectsveltos.io" ProfileKind = "Profile" )
const ( // ClusterNameLabel is the label set on: // - ClusterSummary instances created by a ClusterProfile instance for a given cluster; // - ClusterConfiguration instances created by a ClusterProfile instance for a given cluster; // - ClusterReport instances created by a ClusterProfile instance for a given cluster; ClusterNameLabel = "projectsveltos.io/cluster-name" // ClusterTypeLabel is the label set on: // - ClusterSummary instances created by a ClusterProfile instance for a given cluster; // - ClusterConfiguration instances created by a ClusterProfile instance for a given cluster; // - ClusterReport instances created by a ClusterProfile instance for a given cluster; ClusterTypeLabel = "projectsveltos.io/cluster-type" )
const ( // SyncModeOneTime indicates feature sync should happen only once SyncModeOneTime = SyncMode("OneTime") // SyncModeContinuous indicates feature sync should continuously happen SyncModeContinuous = SyncMode("Continuous") // SyncModeContinuousWithDriftDetection indicates feature sync should continuously happen // if configuration drift is detected in the managed cluster, it will be overrid SyncModeContinuousWithDriftDetection = SyncMode("ContinuousWithDriftDetection") // SyncModeDryRun indicates feature sync should continuously happen // no feature will be updated in the CAPI Cluster though. SyncModeDryRun = SyncMode("DryRun") )
const ( // DeploymentTypeLocal indicates resource deployment need to // be in the management cluster DeploymentTypeLocal = DeploymentType("Local") // DeploymentTypeRemote indicates resource deployment need to // be in the managed cluster DeploymentTypeRemote = DeploymentType("Remote") )
const ( // HelmChartActionInstall will cause Helm chart to be installed HelmChartActionInstall = HelmChartAction("Install") // HelmChartActionUninstall will cause Helm chart to be removed HelmChartActionUninstall = HelmChartAction("Uninstall") )
const (
ClusterConfigurationKind = "ClusterConfiguration"
)
Variables ¶
var ( // GroupVersion is group version used to register these objects GroupVersion = schema.GroupVersion{Group: "config.projectsveltos.io", Version: "v1beta1"} // SchemeBuilder is used to add go types to the GroupVersionKind scheme SchemeBuilder = &scheme.Builder{GroupVersion: GroupVersion} // AddToScheme adds the types in this group-version to the given scheme. AddToScheme = SchemeBuilder.AddToScheme )
Functions ¶
func GetClusterConfigurationSectionIndex ¶
func GetClusterConfigurationSectionIndex(clusterConfiguration *ClusterConfiguration, profileKind, profileName string) (int, error)
GetClusterConfigurationSectionIndex returns Status.ClusterProfileResources index for given ClusterProfile. If not found, returns an error
func GetProfileOwnerAndTier ¶
func GetProfileOwnerAndTier(ctx context.Context, c client.Client, clusterSummary *ClusterSummary, ) (client.Object, int32, error)
GetProfileOwnerAndTier returns the (Cluster)Profile owning this clusterSummary and its tier. Returns nil if (Cluster)Profile does not exist anymore.
func GetProfileOwnerReference ¶
func GetProfileOwnerReference(clusterSummary *ClusterSummary) (*metav1.OwnerReference, error)
GetProfileOwnerReference returns the ClusterProfile/Profile owning a given ClusterSummary
Types ¶
type Chart ¶
type Chart struct { // RepoURL URL of the repo containing the helm chart deployed // in the Cluster. // +kubebuilder:validation:MinLength=1 RepoURL string `json:"repoURL"` // ReleaseName name of the release deployed in the Cluster. // +kubebuilder:validation:MinLength=1 ReleaseName string `json:"releaseName"` // Namespace where chart is deployed in the Cluster. // +optional Namespace string `json:"namespace,omitempty"` // ChartVersion is the version of the helm chart deployed in the Cluster. ChartVersion string `json:"chartVersion"` // AppVersion is the version of the app deployed in the Cluster. // +optional AppVersion string `json:"appVersion,omitempty"` // The URL to an icon file. Icon string `json:"icon,omitempty"` // LastAppliedTime identifies when this resource was last applied to the cluster. LastAppliedTime *metav1.Time `json:"lastAppliedTime"` }
func (*Chart) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Chart.
func (*Chart) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ClusterConfiguration ¶
type ClusterConfiguration struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Status ClusterConfigurationStatus `json:"status,omitempty"` }
ClusterConfiguration is the Schema for the clusterconfigurations API
func (*ClusterConfiguration) DeepCopy ¶
func (in *ClusterConfiguration) DeepCopy() *ClusterConfiguration
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterConfiguration.
func (*ClusterConfiguration) DeepCopyInto ¶
func (in *ClusterConfiguration) DeepCopyInto(out *ClusterConfiguration)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ClusterConfiguration) DeepCopyObject ¶
func (in *ClusterConfiguration) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ClusterConfigurationList ¶
type ClusterConfigurationList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []ClusterConfiguration `json:"items"` }
ClusterConfigurationList contains a list of ClusterConfiguration
func (*ClusterConfigurationList) DeepCopy ¶
func (in *ClusterConfigurationList) DeepCopy() *ClusterConfigurationList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterConfigurationList.
func (*ClusterConfigurationList) DeepCopyInto ¶
func (in *ClusterConfigurationList) DeepCopyInto(out *ClusterConfigurationList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ClusterConfigurationList) DeepCopyObject ¶
func (in *ClusterConfigurationList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ClusterConfigurationStatus ¶
type ClusterConfigurationStatus struct { // ClusterProfileResources is the list of resources currently deployed in a Cluster due // to ClusterProfiles // +optional ClusterProfileResources []ClusterProfileResource `json:"clusterProfileResources,omitempty"` // ProfileResources is the list of resources currently deployed in a Cluster due // to Profiles // +optional ProfileResources []ProfileResource `json:"profileResources,omitempty"` }
ClusterConfigurationStatus defines the observed state of ClusterConfiguration
func (*ClusterConfigurationStatus) DeepCopy ¶
func (in *ClusterConfigurationStatus) DeepCopy() *ClusterConfigurationStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterConfigurationStatus.
func (*ClusterConfigurationStatus) DeepCopyInto ¶
func (in *ClusterConfigurationStatus) DeepCopyInto(out *ClusterConfigurationStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ClusterProfile ¶
type ClusterProfile struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec Spec `json:"spec,omitempty"` Status Status `json:"status,omitempty"` }
ClusterProfile is the Schema for the clusterprofiles API
func (*ClusterProfile) DeepCopy ¶
func (in *ClusterProfile) DeepCopy() *ClusterProfile
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterProfile.
func (*ClusterProfile) DeepCopyInto ¶
func (in *ClusterProfile) DeepCopyInto(out *ClusterProfile)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ClusterProfile) DeepCopyObject ¶
func (in *ClusterProfile) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ClusterProfileList ¶
type ClusterProfileList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []ClusterProfile `json:"items"` }
ClusterProfileList contains a list of ClusterProfile
func (*ClusterProfileList) DeepCopy ¶
func (in *ClusterProfileList) DeepCopy() *ClusterProfileList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterProfileList.
func (*ClusterProfileList) DeepCopyInto ¶
func (in *ClusterProfileList) DeepCopyInto(out *ClusterProfileList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ClusterProfileList) DeepCopyObject ¶
func (in *ClusterProfileList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ClusterProfileResource ¶
type ClusterProfileResource struct { // ProfileName is the name of the ClusterProfile matching the Cluster. ClusterProfileName string `json:"clusterProfileName"` // Features contains the list of policies deployed in the Cluster because // of a given feature // +optional Features []Feature `json:"Features,omitempty"` }
ClusterProfileResource keeps info on all of the resources deployed in this Cluster due to a given ClusterProfile
func (*ClusterProfileResource) DeepCopy ¶
func (in *ClusterProfileResource) DeepCopy() *ClusterProfileResource
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterProfileResource.
func (*ClusterProfileResource) DeepCopyInto ¶
func (in *ClusterProfileResource) DeepCopyInto(out *ClusterProfileResource)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ClusterReport ¶
type ClusterReport struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec ClusterReportSpec `json:"spec,omitempty"` Status ClusterReportStatus `json:"status,omitempty"` }
ClusterReport is the Schema for the clusterreports API
func (*ClusterReport) DeepCopy ¶
func (in *ClusterReport) DeepCopy() *ClusterReport
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterReport.
func (*ClusterReport) DeepCopyInto ¶
func (in *ClusterReport) DeepCopyInto(out *ClusterReport)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ClusterReport) DeepCopyObject ¶
func (in *ClusterReport) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ClusterReportList ¶
type ClusterReportList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []ClusterReport `json:"items"` }
ClusterReportList contains a list of ClusterReport
func (*ClusterReportList) DeepCopy ¶
func (in *ClusterReportList) DeepCopy() *ClusterReportList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterReportList.
func (*ClusterReportList) DeepCopyInto ¶
func (in *ClusterReportList) DeepCopyInto(out *ClusterReportList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ClusterReportList) DeepCopyObject ¶
func (in *ClusterReportList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ClusterReportSpec ¶
type ClusterReportSpec struct { // ClusterNamespace is the namespace of the CAPI Cluster this // ClusterReport is for. ClusterNamespace string `json:"clusterNamespace"` // ClusterName is the name of the CAPI Cluster this ClusterReport // is for. ClusterName string `json:"clusterName"` }
ClusterReportSpec defines the desired state of ClusterReport
func (*ClusterReportSpec) DeepCopy ¶
func (in *ClusterReportSpec) DeepCopy() *ClusterReportSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterReportSpec.
func (*ClusterReportSpec) DeepCopyInto ¶
func (in *ClusterReportSpec) DeepCopyInto(out *ClusterReportSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ClusterReportStatus ¶
type ClusterReportStatus struct { // ReleaseReports contains report on helm releases // +optional ReleaseReports []ReleaseReport `json:"releaseReports,omitempty"` // ResourceReports contains report on Kubernetes resources // deployed because of PolicyRefs // +optional ResourceReports []ResourceReport `json:"resourceReports,omitempty"` // KustomizeResourceReports contains report on Kubernetes resources // deployed because of KustomizationRefs // +optional KustomizeResourceReports []ResourceReport `json:"kustomizeResourceReports,omitempty"` }
ClusterReportStatus defines the observed state of ClusterReport
func (*ClusterReportStatus) DeepCopy ¶
func (in *ClusterReportStatus) DeepCopy() *ClusterReportStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterReportStatus.
func (*ClusterReportStatus) DeepCopyInto ¶
func (in *ClusterReportStatus) DeepCopyInto(out *ClusterReportStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ClusterSummary ¶
type ClusterSummary struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec ClusterSummarySpec `json:"spec,omitempty"` Status ClusterSummaryStatus `json:"status,omitempty"` }
ClusterSummary is the Schema for the clustersummaries API
func GetClusterSummary ¶
func (*ClusterSummary) DeepCopy ¶
func (in *ClusterSummary) DeepCopy() *ClusterSummary
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterSummary.
func (*ClusterSummary) DeepCopyInto ¶
func (in *ClusterSummary) DeepCopyInto(out *ClusterSummary)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ClusterSummary) DeepCopyObject ¶
func (in *ClusterSummary) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ClusterSummaryList ¶
type ClusterSummaryList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []ClusterSummary `json:"items"` }
ClusterSummaryList contains a list of ClusterSummary
func (*ClusterSummaryList) DeepCopy ¶
func (in *ClusterSummaryList) DeepCopy() *ClusterSummaryList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterSummaryList.
func (*ClusterSummaryList) DeepCopyInto ¶
func (in *ClusterSummaryList) DeepCopyInto(out *ClusterSummaryList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ClusterSummaryList) DeepCopyObject ¶
func (in *ClusterSummaryList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ClusterSummarySpec ¶
type ClusterSummarySpec struct { // ClusterNamespace is the namespace of the workload Cluster this // ClusterSummary is for. ClusterNamespace string `json:"clusterNamespace"` // ClusterName is the name of the workload Cluster this ClusterSummary is for. ClusterName string `json:"clusterName"` // ClusterType is the type of Cluster ClusterType libsveltosv1beta1.ClusterType `json:"clusterType"` // ClusterProfileSpec represent the configuration that will be applied to // the workload cluster. ClusterProfileSpec Spec `json:"clusterProfileSpec,omitempty"` }
ClusterSummarySpec defines the desired state of ClusterSummary
func (*ClusterSummarySpec) DeepCopy ¶
func (in *ClusterSummarySpec) DeepCopy() *ClusterSummarySpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterSummarySpec.
func (*ClusterSummarySpec) DeepCopyInto ¶
func (in *ClusterSummarySpec) DeepCopyInto(out *ClusterSummarySpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ClusterSummaryStatus ¶
type ClusterSummaryStatus struct { // Dependencies is a summary reporting the status of the dependencies // for the associated ClusterProfile Dependencies *string `json:"dependencies,omitempty"` // FeatureSummaries reports the status of each workload cluster feature // directly managed by ClusterProfile. // +listType=map // +listMapKey=featureID // +optional FeatureSummaries []FeatureSummary `json:"featureSummaries,omitempty"` // DeployedGVKs reports the list of GVKs deployed by ClusterSummary // in a managed cluster // +listType=map // +listMapKey=featureID // +optional DeployedGVKs []FeatureDeploymentInfo `json:"deployedGVKs,omitempty"` // HelmReleaseSummaries reports the status of each helm chart // directly managed by ClusterProfile. // +listType=atomic // +optional HelmReleaseSummaries []HelmChartSummary `json:"helmReleaseSummaries,omitempty"` }
ClusterSummaryStatus defines the observed state of ClusterSummary
func (*ClusterSummaryStatus) DeepCopy ¶
func (in *ClusterSummaryStatus) DeepCopy() *ClusterSummaryStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterSummaryStatus.
func (*ClusterSummaryStatus) DeepCopyInto ¶
func (in *ClusterSummaryStatus) DeepCopyInto(out *ClusterSummaryStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Clusters ¶
type Clusters struct { // Hash represents of a unique value for ClusterProfile Spec at // a fixed point in time // +optional Hash []byte `json:"hash,omitempty"` // Clusters reference all the clusters currently matching // ClusterProfile ClusterSelector and already updated/being updated // to ClusterProfile Spec Clusters []corev1.ObjectReference `json:"clusters,omitempty"` }
func (*Clusters) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Clusters.
func (*Clusters) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type DeploymentType ¶
type DeploymentType string
DeploymentType indicates whether resources need to be deployed into the management cluster (local) or the managed cluster (remote) +kubebuilder:validation:Enum:=Local;Remote
type DriftExclusion ¶ added in v0.36.0
type DriftExclusion struct { // Paths is a slice of JSON6902 paths to exclude from configuration drift evaluation. // +required Paths []string `json:"paths"` // Target points to the resources that the paths refers to. // +optional Target *libsveltosv1beta1.PatchSelector `json:"target,omitempty"` }
func (*DriftExclusion) DeepCopy ¶ added in v0.36.0
func (in *DriftExclusion) DeepCopy() *DriftExclusion
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DriftExclusion.
func (*DriftExclusion) DeepCopyInto ¶ added in v0.36.0
func (in *DriftExclusion) DeepCopyInto(out *DriftExclusion)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type DryRunReconciliationError ¶
type DryRunReconciliationError struct{}
func (*DryRunReconciliationError) DeepCopy ¶
func (in *DryRunReconciliationError) DeepCopy() *DryRunReconciliationError
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DryRunReconciliationError.
func (*DryRunReconciliationError) DeepCopyInto ¶
func (in *DryRunReconciliationError) DeepCopyInto(out *DryRunReconciliationError)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*DryRunReconciliationError) Error ¶
func (m *DryRunReconciliationError) Error() string
type Feature ¶
type Feature struct { // FeatureID is an indentifier of the feature whose status is reported FeatureID FeatureID `json:"featureID"` // Resources is a list of resources deployed in the Cluster. // +optional Resources []Resource `json:"resources,omitempty"` // Charts is a list of helm charts deployed in the Cluster. // +optional Charts []Chart `json:"charts,omitempty"` }
func (*Feature) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Feature.
func (*Feature) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type FeatureDeploymentInfo ¶
type FeatureDeploymentInfo struct { // FeatureID is an indentifier of the feature whose status is reported FeatureID FeatureID `json:"featureID"` // DeployedGroupVersionKind contains all GroupVersionKinds deployed in either // the workload cluster or the management cluster because of this feature. // Each element has format kind.version.group // +optional DeployedGroupVersionKind []string `json:"deployedGroupVersionKind,omitempty"` }
func (*FeatureDeploymentInfo) DeepCopy ¶
func (in *FeatureDeploymentInfo) DeepCopy() *FeatureDeploymentInfo
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FeatureDeploymentInfo.
func (*FeatureDeploymentInfo) DeepCopyInto ¶
func (in *FeatureDeploymentInfo) DeepCopyInto(out *FeatureDeploymentInfo)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type FeatureStatus ¶
type FeatureStatus string
+kubebuilder:validation:Enum:=Provisioning;Provisioned;Failed;FailedNonRetriable;Removing;Removed
type FeatureSummary ¶
type FeatureSummary struct { // FeatureID is an indentifier of the feature whose status is reported FeatureID FeatureID `json:"featureID"` // Hash represents of a unique value for a feature at a fixed point in // time // +optional Hash []byte `json:"hash,omitempty"` // Status represents the state of the feature in the workload cluster // +optional Status FeatureStatus `json:"status,omitempty"` // FailureReason indicates the type of error that occurred. // +optional FailureReason *string `json:"failureReason,omitempty"` // FailureMessage provides more information about the error. // +optional FailureMessage *string `json:"failureMessage,omitempty"` // DeployedGroupVersionKind contains all GroupVersionKinds deployed in either // the workload cluster or the management cluster because of this feature. // Each element has format kind.version.group // Deprecated: Replaced by FeatureDeploymentInfo field instead // +optional DeployedGroupVersionKind []string `json:"deployedGroupVersionKind,omitempty"` // LastAppliedTime is the time feature was last reconciled // +optional LastAppliedTime *metav1.Time `json:"lastAppliedTime,omitempty"` }
FeatureSummary contains a summary of the state of a workload cluster feature.
func (*FeatureSummary) DeepCopy ¶
func (in *FeatureSummary) DeepCopy() *FeatureSummary
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FeatureSummary.
func (*FeatureSummary) DeepCopyInto ¶
func (in *FeatureSummary) DeepCopyInto(out *FeatureSummary)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type HelmAction ¶
type HelmAction string
HelmAction represents the type of action on a give resource or helm release
const ( NoHelmAction HelmAction = "No Action" UpdateHelmValuesAction HelmAction = "Update Values" InstallHelmAction HelmAction = "Install" UpgradeHelmAction HelmAction = "Upgrade" UninstallHelmAction HelmAction = "Delete" ConflictHelmAction HelmAction = "Conflict" )
Define the HelmAction constants.
type HelmChart ¶
type HelmChart struct { // RepositoryURL is the URL helm chart repository // +kubebuilder:validation:MinLength=1 RepositoryURL string `json:"repositoryURL"` // RepositoryName is the name helm chart repository // +kubebuilder:validation:MinLength=1 RepositoryName string `json:"repositoryName"` // ChartName is the chart name // +kubebuilder:validation:MinLength=1 ChartName string `json:"chartName"` // ChartVersion is the chart version // +kubebuilder:validation:MinLength=1 ChartVersion string `json:"chartVersion"` // ReleaseName is the chart release // +kubebuilder:validation:MinLength=1 ReleaseName string `json:"releaseName"` // ReleaseNamespace is the namespace release will be installed // +kubebuilder:validation:MinLength=1 ReleaseNamespace string `json:"releaseNamespace"` // Values field allows to define configuration for the Helm release. // These values can be static or leverage Go templates for dynamic customization. // When expressed as templates, the values are filled in using information from // resources within the management cluster before deployment (Cluster and TemplateResourceRefs) // +optional Values string `json:"values,omitempty"` // ValuesFrom can reference ConfigMap/Secret instances. Within the ConfigMap or Secret data, // it is possible to store configuration for the Helm release. // These values can be static or leverage Go templates for dynamic customization. // When expressed as templates, the values are filled in using information from // resources within the management cluster before deployment (Cluster and TemplateResourceRefs) // +optional ValuesFrom []ValueFrom `json:"valuesFrom,omitempty"` // HelmChartAction is the action that will be taken on the helm chart // +kubebuilder:default:=Install // +optional HelmChartAction HelmChartAction `json:"helmChartAction,omitempty"` // Options allows to set flags which are used during installation. // +optional Options *HelmOptions `json:"options,omitempty"` // RegistryCredentialsConfig is an optional configuration for credentials, // including information to connect to private registries. // +optional RegistryCredentialsConfig *RegistryCredentialsConfig `json:"registryCredentialsConfig,omitempty"` }
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.
type HelmChartAction ¶
type HelmChartAction string
HelmChartAction specifies action on an helm chart +kubebuilder:validation:Enum:=Install;Uninstall
type HelmChartStatus ¶
type HelmChartStatus string
HelChartStatus specifies whether ClusterSummary is successfully managing an helm chart or not +kubebuilder:validation:Enum:=Managing;Conflict
type HelmChartSummary ¶
type HelmChartSummary struct { // ReleaseName is the chart release // +kubebuilder:validation:MinLength=1 ReleaseName string `json:"releaseName"` // ReleaseNamespace is the namespace release will be installed // +kubebuilder:validation:MinLength=1 ReleaseNamespace string `json:"releaseNamespace"` // Status indicates whether ClusterSummary can manage the helm // chart or there is a conflict Status HelmChartStatus `json:"status"` // ValuesHash represents of a unique value for the values section // +optional ValuesHash []byte `json:"valuesHash,omitempty"` // Status indicates whether ClusterSummary can manage the helm // chart or there is a conflict // +optional ConflictMessage string `json:"conflictMessage,omitempty"` }
func (*HelmChartSummary) DeepCopy ¶
func (in *HelmChartSummary) DeepCopy() *HelmChartSummary
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HelmChartSummary.
func (*HelmChartSummary) DeepCopyInto ¶
func (in *HelmChartSummary) DeepCopyInto(out *HelmChartSummary)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type HelmInstallOptions ¶
type HelmInstallOptions struct { // Create the release namespace if not present. Defaults to true // +kubebuilder:default:=true // +optional CreateNamespace bool `json:"createNamespace,omitempty"` // Replaces if set indicates to replace an older release with this one // +kubebuilder:default:=true // +optional Replace bool `json:"replace,omitempty"` // prevent hooks from running during install. If set to true, overrides // DisableHooks in HelmOptions. Use this one when you want to selective // disable hooks on install // Default to false // +kubebuilder:default:=false // +optional DisableHooks bool `json:"disableHooks,omitempty"` }
func (*HelmInstallOptions) DeepCopy ¶
func (in *HelmInstallOptions) DeepCopy() *HelmInstallOptions
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HelmInstallOptions.
func (*HelmInstallOptions) DeepCopyInto ¶
func (in *HelmInstallOptions) DeepCopyInto(out *HelmInstallOptions)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type HelmOptions ¶
type HelmOptions struct { // SkipCRDs controls whether CRDs should be installed during install/upgrade operation. // By default, CRDs are installed if not already present. // +kubebuilder:default:=false // +optional SkipCRDs bool `json:"skipCRDs,omitempty"` // SkipSchemaValidation determines if JSON schema validation is disabled. // +kubebuilder:default:=false // +optional SkipSchemaValidation bool `json:"skipSchemaValidation,omitempty"` // if set, will wait until all Pods, PVCs, Services, and minimum number of Pods of a Deployment, StatefulSet, or ReplicaSet // are in a ready state before marking the release as successful. It will wait for as long as --timeout // Default to false // +kubebuilder:default:=false // +optional Wait bool `json:"wait,omitempty"` // if set and --wait enabled, will wait until all Jobs have been completed before marking the release as successful. // It will wait for as long as --timeout // Default to false // +kubebuilder:default:=false // +optional WaitForJobs bool `json:"waitForJobs,omitempty"` // time to wait for any individual Kubernetes operation (like Jobs for hooks) (default 5m0s) // +optional Timeout *metav1.Duration `json:"timeout,omitempty"` // prevent hooks from running during install/upgrade/uninstall // Default to false // +kubebuilder:default:=false // +optional DisableHooks bool `json:"disableHooks,omitempty"` // if set, the installation process will not validate rendered templates against the Kubernetes OpenAPI Schema // Default to false // +kubebuilder:default:=false // +optional DisableOpenAPIValidation bool `json:"disableOpenAPIValidation,omitempty"` // if set, the installation process deletes the installation/upgrades on failure. // The --wait flag will be set automatically if --atomic is used // Default to false // +kubebuilder:default:=false // +optional Atomic bool `json:"atomic,omitempty"` // update dependencies if they are missing before installing the chart // Default to false // +kubebuilder:default:=false // +optional DependencyUpdate bool `json:"dependencyUpdate,omitempty"` // Labels that would be added to release metadata. // +optional Labels map[string]string `json:"labels,omitempty"` // EnableClientCache is a flag to enable Helm client cache. If it is not specified, it will be set to false. // +kubebuilder:default=false // +optional EnableClientCache bool `json:"enableClientCache,omitempty"` // Description is the description of an helm operation // +optional Description string `json:"description,omitempty"` // HelmInstallOptions are options specific to helm install // +optional InstallOptions HelmInstallOptions `json:"installOptions,omitempty"` // HelmUpgradeOptions are options specific to helm upgrade // +optional UpgradeOptions HelmUpgradeOptions `json:"upgradeOptions,omitempty"` // HelmUninstallOptions are options specific to helm uninstall // +optional UninstallOptions HelmUninstallOptions `json:"uninstallOptions,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 HelmUninstallOptions ¶
type HelmUninstallOptions struct { // When uninstall a chart with this flag, Helm removes the resources associated with the chart, // but it keeps the release information. This allows to see details about the uninstalled release // using the helm history command. // +optional KeepHistory bool `json:"keepHistory,omitempty"` // DeletionPropagation // +kubebuilder:validation:Enum:=orphan;foreground;background // +optional DeletionPropagation string `json:"deletionPropagation,omitempty"` // prevent hooks from running during install. If set to true, overrides // DisableHooks in HelmOptions. Use this one when you want to selective // disable hooks on uninstall // Default to false // +kubebuilder:default:=false // +optional DisableHooks bool `json:"disableHooks,omitempty"` }
func (*HelmUninstallOptions) DeepCopy ¶
func (in *HelmUninstallOptions) DeepCopy() *HelmUninstallOptions
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HelmUninstallOptions.
func (*HelmUninstallOptions) DeepCopyInto ¶
func (in *HelmUninstallOptions) DeepCopyInto(out *HelmUninstallOptions)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type HelmUpgradeOptions ¶
type HelmUpgradeOptions struct { // Force will, if set to `true`, ignore certain warnings and perform the upgrade anyway. // This should be used with caution. // +kubebuilder:default:=false // +optional Force bool `json:"force,omitempty"` // ResetValues will reset the values to the chart's built-ins rather than merging with existing. // +kubebuilder:default:=false // +optional ResetValues bool `json:"resetValues,omitempty"` // ReuseValues copies values from the current release to a new release if the // new release does not have any values. If the request already has values, // or if there are no values in the current release, this does nothing. // This is skipped if the ResetValues flag is set, in which case the // request values are not altered. // +kubebuilder:default:=false // +optional ReuseValues bool `json:"reuseValues,omitempty"` // ResetThenReuseValues will reset the values to the chart's built-ins then merge with user's last supplied values. // +kubebuilder:default:=false // +optional ResetThenReuseValues bool `json:"resetThenReuseValues,omitempty"` // Recreate will (if true) recreate pods after a rollback. // +kubebuilder:default:=false // +optional Recreate bool `json:"recreate,omitempty"` // MaxHistory limits the maximum number of revisions saved per release // Default to 2 // +kubebuilder:default=2 // +optional MaxHistory int `json:"maxHistory,omitempty"` // CleanupOnFail will, if true, cause the upgrade to delete newly-created resources on a failed update. // +kubebuilder:default:=false // +optional CleanupOnFail bool `json:"cleanupOnFail,omitempty"` // SubNotes determines whether sub-notes are rendered in the chart. // +kubebuilder:default:=false // +optional SubNotes bool `json:"subNotes,omitempty"` // UpgradeCRDs upgrade CRDs from the Helm Chart's crds directory // By default, CRDs are not applied during Helm upgrade action by Helm // https://helm.sh/docs/chart_best_practices/custom_resource_definitions/ // +kubebuilder:default:=false // +optional UpgradeCRDs bool `json:"upgradeCRDs,omitempty"` // prevent hooks from running during install. If set to true, overrides // DisableHooks in HelmOptions. Use this one when you want to selective // disable hooks on upgrade // Default to false // +kubebuilder:default:=false // +optional DisableHooks bool `json:"disableHooks,omitempty"` }
func (*HelmUpgradeOptions) DeepCopy ¶
func (in *HelmUpgradeOptions) DeepCopy() *HelmUpgradeOptions
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HelmUpgradeOptions.
func (*HelmUpgradeOptions) DeepCopyInto ¶
func (in *HelmUpgradeOptions) DeepCopyInto(out *HelmUpgradeOptions)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type KustomizationRef ¶
type KustomizationRef struct { // Namespace of the referenced resource. // For ClusterProfile namespace can be left empty. In such a case, namespace will // be implicit set to cluster's namespace. // For Profile namespace must be left empty. The Profile namespace will be used. Namespace string `json:"namespace"` // Name of the referenced resource. // Name can be expressed as a template and instantiate using // - cluster namespace: .Cluster.metadata.namespace // - cluster name: .Cluster.metadata.name // - cluster type: .Cluster.kind // +kubebuilder:validation:MinLength=1 Name string `json:"name"` // Kind of the resource. Supported kinds are: // - flux GitRepository;OCIRepository;Bucket // - ConfigMap/Secret // +kubebuilder:validation:Enum=GitRepository;OCIRepository;Bucket;ConfigMap;Secret Kind string `json:"kind"` // Path to the directory containing the kustomization.yaml file, or the // set of plain YAMLs a kustomization.yaml should be generated for. // Defaults to 'None', which translates to the root path of the SourceRef. // These values can be static or leverage Go templates for dynamic customization. // When expressed as templates, the values are filled in using information from // resources within the management cluster before deployment (Cluster) // +optional Path string `json:"path,omitempty"` // TargetNamespace sets or overrides the namespace in the // kustomization.yaml file. // +kubebuilder:validation:MinLength=1 // +kubebuilder:validation:MaxLength=63 // +kubebuilder:validation:Optional // +optional TargetNamespace string `json:"targetNamespace,omitempty"` // DeploymentType indicates whether resources need to be deployed // into the management cluster (local) or the managed cluster (remote) // +kubebuilder:default:=Remote // +optional DeploymentType DeploymentType `json:"deploymentType,omitempty"` // Values is a map[string]string type that allows to define a set of key-value pairs. // These key-value pairs can optionally leverage Go templates for further processing. // With Sveltos, you can define key-value pairs where the values can be Go templates. // These templates have access to management cluster information during deployment. This allows // to do more than just replace placeholders. Variables can be used to dynamically // construct values based on other resources or variables within the Kustomize output. // For example, imagine you have a Region key with a template value like: // '{{ index .Cluster.metadata.labels "region" }}'. // This template retrieves the region label from the cluster instance metadata. // Finally, Sveltos uses these processed values to fill placeholders in the Kustomize output. // The output itself can also contain templates, like: // region: '{{ default "west" .Region }}'. // This way, the final output from Kustomize will have the region set dynamically based on // the actual region retrieved earlier. // +optional Values map[string]string `json:"values,omitempty"` // ValuesFrom can reference ConfigMap/Secret instances. Within the ConfigMap or Secret data, // it is possible to define key-value pairs. These key-value pairs can optionally leverage // Go templates for further processing. // With Sveltos, you can define key-value pairs where the values can be Go templates. // These templates have access to management cluster information during deployment. This allows // to do more than just replace placeholders. Variables can be used to dynamically // construct values based on other resources or variables within the Kustomize output. // For example, imagine you have a Region key with a template value like: // '{{ index .Cluster.metadata.labels "region" }}'. // This template retrieves the region label from the cluster instance metadata. // Finally, Sveltos uses these processed values to fill placeholders in the Kustomize output. // The output itself can also contain templates, like: // region: '{{ default "west" .Region }}'. // This way, the final output from Kustomize will have the region set dynamically based on // the actual region retrieved earlier. // +optional ValuesFrom []ValueFrom `json:"valuesFrom,omitempty"` }
func (*KustomizationRef) DeepCopy ¶
func (in *KustomizationRef) DeepCopy() *KustomizationRef
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KustomizationRef.
func (*KustomizationRef) DeepCopyInto ¶
func (in *KustomizationRef) DeepCopyInto(out *KustomizationRef)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PolicyRef ¶
type PolicyRef struct { // Namespace of the referenced resource. // For ClusterProfile namespace can be left empty. In such a case, namespace will // be implicit set to cluster's namespace. // For Profile namespace must be left empty. Profile namespace will be used. // +optional Namespace string `json:"namespace,omitempty"` // Name of the referenced resource. // Name can be expressed as a template and instantiate using // - cluster namespace: .Cluster.metadata.namespace // - cluster name: .Cluster.metadata.name // - cluster type: .Cluster.kind // +kubebuilder:validation:MinLength=1 Name string `json:"name"` // Kind of the resource. Supported kinds are: // - ConfigMap/Secret // - flux GitRepository;OCIRepository;Bucket // +kubebuilder:validation:Enum=GitRepository;OCIRepository;Bucket;ConfigMap;Secret Kind string `json:"kind"` // Path to the directory containing the YAML files. // Defaults to 'None', which translates to the root path of the SourceRef. // Used only for GitRepository;OCIRepository;Bucket // +optional Path string `json:"path,omitempty"` // DeploymentType indicates whether resources need to be deployed // into the management cluster (local) or the managed cluster (remote) // +kubebuilder:default:=Remote // +optional DeploymentType DeploymentType `json:"deploymentType,omitempty"` }
func (*PolicyRef) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PolicyRef.
func (*PolicyRef) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Profile ¶
type Profile struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec Spec `json:"spec,omitempty"` Status Status `json:"status,omitempty"` }
Profile is the Schema for the profiles API
func (*Profile) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Profile.
func (*Profile) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Profile) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ProfileList ¶
type ProfileList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []Profile `json:"items"` }
ProfileList contains a list of Profile
func (*ProfileList) DeepCopy ¶
func (in *ProfileList) DeepCopy() *ProfileList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProfileList.
func (*ProfileList) DeepCopyInto ¶
func (in *ProfileList) DeepCopyInto(out *ProfileList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ProfileList) DeepCopyObject ¶
func (in *ProfileList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ProfileResource ¶
type ProfileResource struct { // ProfileName is the name of the Profile matching the Cluster. ProfileName string `json:"profileName"` // Features contains the list of policies deployed in the Cluster because // of a given feature // +optional Features []Feature `json:"Features,omitempty"` }
ProfileResource keeps info on all of the resources deployed in this Cluster due to a given Profile
func (*ProfileResource) DeepCopy ¶
func (in *ProfileResource) DeepCopy() *ProfileResource
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProfileResource.
func (*ProfileResource) DeepCopyInto ¶
func (in *ProfileResource) DeepCopyInto(out *ProfileResource)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RegistryCredentialsConfig ¶ added in v0.38.2
type RegistryCredentialsConfig struct { // CredentialsSecretRef references a secret containing credentials // For ClusterProfile namespace can be left empty. In such a case, namespace will // be implicit set to cluster's namespace. // +optional CredentialsSecretRef *corev1.SecretReference `json:"credentials,omitempty"` // Key specifies the key within the CredentialsSecretRef containing the data // If not specified, it defaults to the only key in the secret if there's just one. // +optional Key string `json:"key,omitempty"` // CASecretRef references a secret containing the TLS CA certificate // For ClusterProfile namespace can be left empty. In such a case, namespace will // be implicit set to cluster's namespace. // key: ca.crt // +optional CASecretRef *corev1.SecretReference `json:"ca,omitempty"` // InsecureSkipTLSVerify controls server certificate verification. // +optional InsecureSkipTLSVerify bool `json:"insecureSkipTLSVerify,omitempty"` // PlainHTTP indicates to use insecure HTTP connections for the chart download // +optional PlainHTTP bool `json:"plainHTTP,omitempty"` }
func (*RegistryCredentialsConfig) DeepCopy ¶ added in v0.38.2
func (in *RegistryCredentialsConfig) DeepCopy() *RegistryCredentialsConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RegistryCredentialsConfig.
func (*RegistryCredentialsConfig) DeepCopyInto ¶ added in v0.38.2
func (in *RegistryCredentialsConfig) DeepCopyInto(out *RegistryCredentialsConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ReleaseReport ¶
type ReleaseReport struct { // ReleaseName of the release deployed in the CAPI Cluster. // +kubebuilder:validation:MinLength=1 ReleaseName string `json:"chartName"` // Namespace where release is deployed in the CAPI Cluster. // +kubebuilder:validation:MinLength=1 ReleaseNamespace string `json:"releaseNamespace"` // ChartVersion is the version of the helm chart deployed // in the CAPI Cluster. ChartVersion string `json:"chartVersion"` // Action represent the type of operation on the Helm Chart // +kubebuilder:validation:Enum=No Action;Install;Upgrade;Delete;Conflict;Update Values // +optional Action string `json:"action,omitempty"` // Message is for any message that needs to added to better // explain the action. // +optional Message string `json:"message,omitempty"` }
func (*ReleaseReport) DeepCopy ¶
func (in *ReleaseReport) DeepCopy() *ReleaseReport
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReleaseReport.
func (*ReleaseReport) DeepCopyInto ¶
func (in *ReleaseReport) DeepCopyInto(out *ReleaseReport)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Resource ¶
type Resource struct { // Name of the resource deployed in the Cluster. // +kubebuilder:validation:MinLength=1 Name string `json:"name"` // Namespace of the resource deployed in the Cluster. // Empty for resources scoped at cluster level. // +optional Namespace string `json:"namespace,omitempty"` // Group of the resource deployed in the Cluster. Group string `json:"group"` // Kind of the resource deployed in the Cluster. // +kubebuilder:validation:MinLength=1 Kind string `json:"kind"` // Version of the resource deployed in the Cluster. // +kubebuilder:validation:MinLength=1 Version string `json:"version"` // LastAppliedTime identifies when this resource was last applied to the cluster. // +optional LastAppliedTime *metav1.Time `json:"lastAppliedTime,omitempty"` // Owner is the list of ConfigMap/Secret containing this resource. Owner corev1.ObjectReference `json:"owner"` // IgnoreForConfigurationDrift indicates to not track resource // for configuration drift detection. // This field has a meaning only when mode is ContinuousWithDriftDetection // +kubebuilder:default:=false // +optional IgnoreForConfigurationDrift bool `json:"ignoreForConfigurationDrift,omitempty"` }
func (*Resource) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Resource.
func (*Resource) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ResourceAction ¶
type ResourceAction string
const ( NoResourceAction ResourceAction = "No Action" CreateResourceAction ResourceAction = "Create" UpdateResourceAction ResourceAction = "Update" DeleteResourceAction ResourceAction = "Delete" ConflictResourceAction ResourceAction = "Conflict" )
Define the Action constants.
type ResourceReport ¶
type ResourceReport struct { // Resource contains information about Kubernetes Resource Resource Resource `json:"resource"` // Action represent the type of operation on the Kubernetes resource. // +kubebuilder:validation:Enum=No Action;Create;Update;Delete;Conflict Action string `json:"action,omitempty"` // Message is for any message that needs to added to better // explain the action. // +optional Message string `json:"message,omitempty"` }
func (*ResourceReport) DeepCopy ¶
func (in *ResourceReport) DeepCopy() *ResourceReport
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceReport.
func (*ResourceReport) DeepCopyInto ¶
func (in *ResourceReport) DeepCopyInto(out *ResourceReport)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Spec ¶
type Spec struct { // ClusterSelector identifies clusters to associate to. // +optional ClusterSelector libsveltosv1beta1.Selector `json:"clusterSelector,omitempty"` // ClusterRefs identifies clusters to associate to. // +optional ClusterRefs []corev1.ObjectReference `json:"clusterRefs,omitempty"` // SetRefs identifies referenced (cluster)Sets. // - ClusterProfile can reference ClusterSet; // - Profile can reference Set; // +optional SetRefs []string `json:"setRefs,omitempty"` // SyncMode specifies how features are synced in a matching workload cluster. // - OneTime means, first time a workload cluster matches the ClusterProfile, // features will be deployed in such cluster. Any subsequent feature configuration // change won't be applied into the matching workload clusters; // - Continuous means first time a workload cluster matches the ClusterProfile, // features will be deployed in such a cluster. Any subsequent feature configuration // change will be applied into the matching workload clusters. // - DryRun means no change will be propagated to any matching cluster. A report // instead will be generated summarizing what would happen in any matching cluster // because of the changes made to ClusterProfile while in DryRun mode. // +kubebuilder:default:=Continuous // +optional SyncMode SyncMode `json:"syncMode,omitempty"` // Tier controls the order of deployment for ClusterProfile or Profile resources targeting // the same cluster resources. // Imagine two configurations (ClusterProfiles or Profiles) trying to deploy the same resource (a Kubernetes // resource or an helm chart). By default, the first one to reach the cluster "wins" and deploys it. // Tier allows you to override this. When conflicts arise, the ClusterProfile or Profile with the **lowest** // Tier value takes priority and deploys the resource. // Higher Tier values represent lower priority. The default Tier value is 100. // Using Tiers provides finer control over resource deployment within your cluster, particularly useful // when multiple configurations manage the same resources. // +kubebuilder:default:=100 // +kubebuilder:validation:Minimum=1 // +optional Tier int32 `json:"tier,omitempty"` // By default (when ContinueOnConflict is unset or set to false), Sveltos stops deployment after // encountering the first conflict (e.g., another ClusterProfile already deployed the resource). // If set to true, Sveltos will attempt to deploy remaining resources in the ClusterProfile even // if conflicts are detected for previous resources. // +kubebuilder:default:=false // +optional ContinueOnConflict bool `json:"continueOnConflict,omitempty"` // The maximum number of clusters that can be updated concurrently. // Value can be an absolute number (ex: 5) or a percentage of desired cluster (ex: 10%). // Defaults to 100%. // Example: when this is set to 30%, when list of add-ons/applications in ClusterProfile // changes, only 30% of matching clusters will be updated in parallel. Only when updates // in those cluster succeed, other matching clusters are updated. // +kubebuilder:validation:XIntOrString // +kubebuilder:validation:Pattern="^((100|[0-9]{1,2})%|[0-9]+)$" // +optional MaxUpdate *intstr.IntOrString `json:"maxUpdate,omitempty"` // StopMatchingBehavior indicates what behavior should be when a Cluster stop matching // the ClusterProfile. By default all deployed Helm charts and Kubernetes resources will // be withdrawn from Cluster. Setting StopMatchingBehavior to LeavePolicies will instead // leave ClusterProfile deployed policies in the Cluster. // +kubebuilder:default:=WithdrawPolicies // +optional StopMatchingBehavior StopMatchingBehavior `json:"stopMatchingBehavior,omitempty"` // Reloader indicates whether Deployment/StatefulSet/DaemonSet instances deployed // by Sveltos and part of this ClusterProfile need to be restarted via rolling upgrade // when a ConfigMap/Secret instance mounted as volume is modified. // When set to true, when any mounted ConfigMap/Secret is modified, Sveltos automatically // starts a rolling upgrade for Deployment/StatefulSet/DaemonSet instances mounting it. // +kubebuilder:default:=false // +optional Reloader bool `json:"reloader,omitempty"` // TemplateResourceRefs is a list of resource to collect from the management cluster. // Those resources' values will be used to instantiate templates // +patchMergeKey=identifier // +patchStrategy=merge,retainKeys // +listType=map // +listMapKey=identifier // +optional TemplateResourceRefs []TemplateResourceRef `json:"templateResourceRefs,omitempty" patchStrategy:"merge" patchMergeKey:"identifier"` // DependsOn specifies a list of other ClusterProfiles that this instance depends on. // In any managed cluster that matches this ClusterProfile, the add-ons and applications // defined in this instance will not be deployed until all add-ons and applications in the // ClusterProfiles listed as dependencies are deployed. DependsOn []string `json:"dependsOn,omitempty"` // PolicyRefs references all the ConfigMaps/Secrets/Flux Sources containing kubernetes resources // that need to be deployed in the matching managed clusters. // The values contained in those resources can be static or leverage Go templates for dynamic customization. // When expressed as templates, the values are filled in using information from // resources within the management cluster before deployment (Cluster and TemplateResourceRefs) // +optional PolicyRefs []PolicyRef `json:"policyRefs,omitempty"` // Helm charts is a list of helm charts that need to be deployed HelmCharts []HelmChart `json:"helmCharts,omitempty"` // Kustomization refs is a list of kustomization paths. Kustomization will // be run on those paths and the outcome will be deployed. KustomizationRefs []KustomizationRef `json:"kustomizationRefs,omitempty"` // ValidateHealths is a slice of Lua functions to run against // the managed cluster to validate the state of those add-ons/applications // is healthy ValidateHealths []ValidateHealth `json:"validateHealths,omitempty"` // Define additional Kustomize inline Patches applied for all resources on this profile // Within the Patch Spec you can use templating // +optional Patches []libsveltosv1beta1.Patch `json:"patches,omitempty"` // DriftExclusions is a list of configuration drift exclusions to be applied when syncMode is // set to ContinuousWithDriftDetection. Each exclusion specifies JSON6902 paths to ignore // when evaluating drift, optionally targeting specific resources and features. // +optional DriftExclusions []DriftExclusion `json:"driftExclusions,omitempty"` // ExtraLabels: These labels will be added by Sveltos to all Kubernetes resources deployed in // a managed cluster based on this ClusterProfile/Profile instance. // **Important:** If a resource deployed by Sveltos already has a label with a key present in // `ExtraLabels`, the value from `ExtraLabels` will override the existing value. // (Deprecated use Patches instead) // +optional ExtraLabels map[string]string `json:"extraLabels,omitempty"` // ExtraAnnotations: These annotations will be added by Sveltos to all Kubernetes resources // deployed in a managed cluster based on this ClusterProfile/Profile instance. // **Important:** If a resource deployed by Sveltos already has a annotation with a key present in // `ExtraAnnotations`, the value from `ExtraAnnotations` will override the existing value. // (Deprecated use Patches instead) // +optional ExtraAnnotations map[string]string `json:"extraAnnotations,omitempty"` }
func (*Spec) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Spec.
func (*Spec) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Status ¶
type Status struct { // MatchingClusterRefs reference all the clusters currently matching // ClusterProfile ClusterSelector // +optional MatchingClusterRefs []corev1.ObjectReference `json:"matchingClusters,omitempty"` // UpdatingClusters reference all the cluster currently matching // ClusterProfile ClusterSelector and being updated // +optional UpdatingClusters Clusters `json:"updatingClusters,omitempty"` // UpdatedClusters contains information all the cluster currently matching // ClusterProfile ClusterSelector and already updated to latest ClusterProfile // Spec // +optional UpdatedClusters Clusters `json:"updatedClusters,omitempty"` }
Status defines the observed state of ClusterProfile/Profile
func (*Status) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Status.
func (*Status) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type StopMatchingBehavior ¶
type StopMatchingBehavior string
StopMatchingBehavior indicates what will happen when Cluster stops matching a ClusterProfile. By default, withdrawpolicies, deployed Helm charts and Kubernetes resources will be removed from Cluster. LeavePolicy instead leaves Helm charts and Kubernetes policies in the Cluster. +kubebuilder:validation:Enum:=WithdrawPolicies;LeavePolicies
const ( WithdrawPolicies StopMatchingBehavior = "WithdrawPolicies" LeavePolicies StopMatchingBehavior = "LeavePolicies" )
Define the StopMatchingBehavior constants.
type SyncMode ¶
type SyncMode string
SyncMode specifies how features are synced in a workload cluster. +kubebuilder:validation:Enum:=OneTime;Continuous;ContinuousWithDriftDetection;DryRun
type TemplateResourceRef ¶
type TemplateResourceRef struct { // Resource references a Kubernetes instance in the management // cluster to fetch and use during template instantiation. // For ClusterProfile namespace can be left empty. In such a case, namespace will // be implicit set to cluster's namespace. // Name and namespace can be expressed as a template and instantiate using // - cluster namespace: .Cluster.metadata.namespace // - cluster name: .Cluster.metadata.name // - cluster type: .Cluster.kind Resource corev1.ObjectReference `json:"resource"` // Identifier is how the resource will be referred to in the // template Identifier string `json:"identifier"` }
func (*TemplateResourceRef) DeepCopy ¶
func (in *TemplateResourceRef) DeepCopy() *TemplateResourceRef
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TemplateResourceRef.
func (*TemplateResourceRef) DeepCopyInto ¶
func (in *TemplateResourceRef) DeepCopyInto(out *TemplateResourceRef)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ValidateHealth ¶
type ValidateHealth struct { // Name is the name of this check Name string `json:"name"` // FeatureID is an indentifier of the feature (Helm/Kustomize/Resources) // This field indicates when to run this check. // For instance: // - if set to Helm this check will be run after all helm // charts specified in the ClusterProfile are deployed. // - if set to Resources this check will be run after the content // of all the ConfigMaps/Secrets referenced by ClusterProfile in the // PolicyRef sections is deployed FeatureID FeatureID `json:"featureID"` // Group of the resource to fetch in the managed Cluster. Group string `json:"group"` // Version of the resource to fetch in the managed Cluster. Version string `json:"version"` // Kind of the resource to fetch in the managed Cluster. // +kubebuilder:validation:MinLength=1 Kind string `json:"kind"` // LabelFilters allows to filter resources based on current labels. // +optional LabelFilters []libsveltosv1beta1.LabelFilter `json:"labelFilters,omitempty"` // Namespace of the resource to fetch in the managed Cluster. // Empty for resources scoped at cluster level. // +optional Namespace string `json:"namespace,omitempty"` // Script is a text containing a lua script. // Must return struct with field "health" // representing whether object is a match (true or false) // +optional Script string `json:"script,omitempty"` }
func (*ValidateHealth) DeepCopy ¶
func (in *ValidateHealth) DeepCopy() *ValidateHealth
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ValidateHealth.
func (*ValidateHealth) DeepCopyInto ¶
func (in *ValidateHealth) DeepCopyInto(out *ValidateHealth)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ValueFrom ¶
type ValueFrom struct { // Namespace of the referenced resource. // For ClusterProfile namespace can be left empty. In such a case, namespace will // be implicit set to cluster's namespace. // For Profile namespace must be left empty. The Profile namespace will be used. // +optional Namespace string `json:"namespace,omitempty"` // Name of the referenced resource. // Name can be expressed as a template and instantiate using // - cluster namespace: .Cluster.metadata.namespace // - cluster name: .Cluster.metadata.name // - cluster type: .Cluster.kind // +kubebuilder:validation:MinLength=1 Name string `json:"name"` // Kind of the resource. Supported kinds are: // - ConfigMap/Secret // +kubebuilder:validation:Enum=ConfigMap;Secret Kind string `json:"kind"` }
func (*ValueFrom) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ValueFrom.
func (*ValueFrom) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.