Documentation
¶
Overview ¶
Package v1alpha1 contains API Schema definitions for the apps v1alpha1 API group +kubebuilder:object:generate=true +groupName=apps.kurator.dev +k8s:deepcopy-gen=package
Index ¶
- Constants
- Variables
- func Resource(resource string) schema.GroupResource
- type Application
- type ApplicationDestination
- type ApplicationList
- type ApplicationSource
- type ApplicationSourceStatus
- type ApplicationSpec
- type ApplicationStatus
- type ApplicationSyncPolicy
- type ApplicationSyncStatus
- type ClusterSelector
- type CommonMetadata
- type HelmChartTemplate
- type HelmChartTemplateObjectMeta
- type HelmChartTemplateSpec
- type HelmRelease
- type Kustomization
Constants ¶
const GroupName = "apps.kurator.dev"
GroupName specifies the group name used to register the objects.
Variables ¶
var ( // localSchemeBuilder and AddToScheme will stay in k8s.io/kubernetes. SchemeBuilder runtime.SchemeBuilder // Depreciated: use Install instead AddToScheme = localSchemeBuilder.AddToScheme Install = localSchemeBuilder.AddToScheme )
var GroupVersion = v1.GroupVersion{Group: GroupName, Version: "v1alpha1"}
GroupVersion specifies the group and the version used to register the objects.
var SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: "v1alpha1"}
SchemeGroupVersion is group version used to register these objects Deprecated: use GroupVersion instead.
Functions ¶
func Resource ¶
func Resource(resource string) schema.GroupResource
Resource takes an unqualified resource and returns a Group qualified GroupResource
Types ¶
type Application ¶
type Application struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec ApplicationSpec `json:"spec,omitempty"` Status ApplicationStatus `json:"status,omitempty"` }
+genclient +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +kubebuilder:object:root=true +kubebuilder:resource:scope=Namespaced,categories=kurator-dev +kubebuilder:subresource:status
Application is the schema for the application's API.
func (*Application) DeepCopy ¶
func (in *Application) DeepCopy() *Application
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Application.
func (*Application) DeepCopyInto ¶
func (in *Application) DeepCopyInto(out *Application)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Application) DeepCopyObject ¶
func (in *Application) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ApplicationDestination ¶
type ApplicationDestination struct { // Fleet defines the fleet to dispatch the artifact. // +required Fleet string `json:"fleet"` // ClusterSelector specifies the selectors to select the clusters within the fleet. // If unspecified, all clusters in the fleet will be selected. // +optional ClusterSelector *ClusterSelector `json:"clusterSelector,omitempty"` }
ApplicationDestination defines the configuration to dispatch an artifact to a fleet or specific clusters.
func (*ApplicationDestination) DeepCopy ¶
func (in *ApplicationDestination) DeepCopy() *ApplicationDestination
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplicationDestination.
func (*ApplicationDestination) DeepCopyInto ¶
func (in *ApplicationDestination) DeepCopyInto(out *ApplicationDestination)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ApplicationList ¶
type ApplicationList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []Application `json:"items"` }
ApplicationList contains a list of Application. +kubebuilder:object:root=true +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
func (*ApplicationList) DeepCopy ¶
func (in *ApplicationList) DeepCopy() *ApplicationList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplicationList.
func (*ApplicationList) DeepCopyInto ¶
func (in *ApplicationList) DeepCopyInto(out *ApplicationList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ApplicationList) DeepCopyObject ¶
func (in *ApplicationList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ApplicationSource ¶
type ApplicationSource struct { // +optional GitRepository *sourcev1beta2.GitRepositorySpec `json:"gitRepository,omitempty"` // +optional HelmRepository *sourcev1beta2.HelmRepositorySpec `json:"helmRepository,omitempty"` // +optional OCIRepository *sourcev1beta2.OCIRepositorySpec `json:"ociRepository,omitempty"` }
ApplicationSource defines the configuration to produce an artifact for git, helm or oci repository. Note only one source can be specified.
func (*ApplicationSource) DeepCopy ¶
func (in *ApplicationSource) DeepCopy() *ApplicationSource
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplicationSource.
func (*ApplicationSource) DeepCopyInto ¶
func (in *ApplicationSource) DeepCopyInto(out *ApplicationSource)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ApplicationSourceStatus ¶
type ApplicationSourceStatus struct { GitRepoStatus *sourcev1beta2.GitRepositoryStatus `json:"gitRepoStatus,omitempty"` HelmRepoStatus *sourcev1beta2.HelmRepositoryStatus `json:"helmRepoStatus,omitempty"` OCIRepoStatus *sourcev1beta2.OCIRepositoryStatus `json:"ociRepoStatus,omitempty"` }
applicationSourceStatus defines the observed state of the artifact source.
func (*ApplicationSourceStatus) DeepCopy ¶
func (in *ApplicationSourceStatus) DeepCopy() *ApplicationSourceStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplicationSourceStatus.
func (*ApplicationSourceStatus) DeepCopyInto ¶
func (in *ApplicationSourceStatus) DeepCopyInto(out *ApplicationSourceStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ApplicationSpec ¶
type ApplicationSpec struct { // Source defines the artifact source. Source ApplicationSource `json:"source"` // SyncPolicies controls how the artifact will be customized and where it will be synced. SyncPolicies []*ApplicationSyncPolicy `json:"syncPolicies"` // Destination defines the destination clusters where the artifacts will be synced. // It can be overriden by the syncPolicies' destination. // +optional Destination *ApplicationDestination `json:"destination,omitempty"` }
ApplicationSpec defines the configuration to produce an artifact and how to dispatch it.
func (*ApplicationSpec) DeepCopy ¶
func (in *ApplicationSpec) DeepCopy() *ApplicationSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplicationSpec.
func (*ApplicationSpec) DeepCopyInto ¶
func (in *ApplicationSpec) DeepCopyInto(out *ApplicationSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ApplicationStatus ¶
type ApplicationStatus struct { SourceStatus *ApplicationSourceStatus `json:"sourceStatus,omitempty"` SyncStatus []*ApplicationSyncStatus `json:"syncStatus,omitempty"` }
ApplicationStatus defines the observed state of Application.
func (*ApplicationStatus) DeepCopy ¶
func (in *ApplicationStatus) DeepCopy() *ApplicationStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplicationStatus.
func (*ApplicationStatus) DeepCopyInto ¶
func (in *ApplicationStatus) DeepCopyInto(out *ApplicationStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ApplicationSyncPolicy ¶
type ApplicationSyncPolicy struct { // Name defines the name of the sync policy. // If unspecified, a name of format `<application name>-<index>` will be generated. // +optional Name string `json:"name,omitempty"` // Kustomization defines the configuration to calculate the desired state // from a source using kustomize. // +optional Kustomization *Kustomization `json:"kustomization,omitempty"` // HelmRelease defines the desired state of a Helm release. // +optional Helm *HelmRelease `json:"helm,omitempty"` // Destination defines the destination for the artifact. // If specified, it will override the destination specified at Application level. // +optional Destination *ApplicationDestination `json:"destination"` }
ApplicationSyncPolicy defines the configuration to sync an artifact. Only oneof `kustomization` or `helm` can be specified to manage application sync.
func (*ApplicationSyncPolicy) DeepCopy ¶
func (in *ApplicationSyncPolicy) DeepCopy() *ApplicationSyncPolicy
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplicationSyncPolicy.
func (*ApplicationSyncPolicy) DeepCopyInto ¶
func (in *ApplicationSyncPolicy) DeepCopyInto(out *ApplicationSyncPolicy)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ApplicationSyncStatus ¶
type ApplicationSyncStatus struct { Name string `json:"name,omitempty"` KustomizationStatus *kustomizev1beta2.KustomizationStatus `json:"kustomizationStatus,omitempty"` HelmReleaseStatus *helmv2beta1.HelmReleaseStatus `json:"HelmReleaseStatus,omitempty"` }
ApplicationSyncStatus defines the observed state of Application sync.
func (*ApplicationSyncStatus) DeepCopy ¶
func (in *ApplicationSyncStatus) DeepCopy() *ApplicationSyncStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplicationSyncStatus.
func (*ApplicationSyncStatus) DeepCopyInto ¶
func (in *ApplicationSyncStatus) DeepCopyInto(out *ApplicationSyncStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ClusterSelector ¶
type ClusterSelector struct { // MatchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". // More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors // +optional MatchLabels map[string]string `json:"matchLabels,omitempty"` }
func (*ClusterSelector) DeepCopy ¶
func (in *ClusterSelector) DeepCopy() *ClusterSelector
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterSelector.
func (*ClusterSelector) DeepCopyInto ¶
func (in *ClusterSelector) DeepCopyInto(out *ClusterSelector)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type CommonMetadata ¶
type CommonMetadata struct { // Annotations to be added to the object's metadata. // +optional Annotations map[string]string `json:"annotations,omitempty"` // Labels to be added to the object's metadata. // +optional Labels map[string]string `json:"labels,omitempty"` }
func (*CommonMetadata) DeepCopy ¶
func (in *CommonMetadata) DeepCopy() *CommonMetadata
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CommonMetadata.
func (*CommonMetadata) DeepCopyInto ¶
func (in *CommonMetadata) DeepCopyInto(out *CommonMetadata)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type HelmChartTemplate ¶
type HelmChartTemplate struct { // ObjectMeta holds the template for metadata like labels and annotations. // +optional ObjectMeta *HelmChartTemplateObjectMeta `json:"metadata,omitempty"` // Spec holds the template for the v1beta2.HelmChartSpec for this HelmRelease. // +required Spec HelmChartTemplateSpec `json:"spec"` }
HelmChartTemplate defines the template from which the controller will generate a v1beta2.HelmChart object in the same namespace as the referenced v1beta2.Source.
func (*HelmChartTemplate) DeepCopy ¶
func (in *HelmChartTemplate) DeepCopy() *HelmChartTemplate
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HelmChartTemplate.
func (*HelmChartTemplate) DeepCopyInto ¶
func (in *HelmChartTemplate) DeepCopyInto(out *HelmChartTemplate)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type HelmChartTemplateObjectMeta ¶
type HelmChartTemplateObjectMeta struct { // Map of string keys and values that can be used to organize and categorize // (scope and select) objects. // More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ // +optional Labels map[string]string `json:"labels,omitempty"` // Annotations is an unstructured key value map stored with a resource that may be // set by external tools to store and retrieve arbitrary metadata. They are not // queryable and should be preserved when modifying objects. // More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/ // +optional Annotations map[string]string `json:"annotations,omitempty"` }
HelmChartTemplateObjectMeta defines the template for the ObjectMeta of a v1beta2.HelmChart.
func (*HelmChartTemplateObjectMeta) DeepCopy ¶
func (in *HelmChartTemplateObjectMeta) DeepCopy() *HelmChartTemplateObjectMeta
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HelmChartTemplateObjectMeta.
func (*HelmChartTemplateObjectMeta) DeepCopyInto ¶
func (in *HelmChartTemplateObjectMeta) DeepCopyInto(out *HelmChartTemplateObjectMeta)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type HelmChartTemplateSpec ¶
type HelmChartTemplateSpec struct { // The name or path the Helm chart is available at in the SourceRef. // +required Chart string `json:"chart"` // Version semver expression, ignored for charts from v1beta2.GitRepository and // v1beta2.Bucket sources. Defaults to latest when omitted. // +kubebuilder:default:=* // +optional Version string `json:"version,omitempty"` // Interval at which to check the v1beta2.Source for updates. Defaults to // 'HelmReleaseSpec.Interval'. // +kubebuilder:validation:Type=string // +kubebuilder:validation:Pattern="^([0-9]+(\\.[0-9]+)?(ms|s|m|h))+$" // +optional Interval *metav1.Duration `json:"interval,omitempty"` // Determines what enables the creation of a new artifact. Valid values are // ('ChartVersion', 'Revision'). // See the documentation of the values for an explanation on their behavior. // Defaults to ChartVersion when omitted. // +kubebuilder:validation:Enum=ChartVersion;Revision // +kubebuilder:default:=ChartVersion // +optional ReconcileStrategy string `json:"reconcileStrategy,omitempty"` // Alternative list of values files to use as the chart values (values.yaml // is not included by default), expected to be a relative path in the SourceRef. // Values files are merged in the order of this list with the last file overriding // the first. Ignored when omitted. // +optional ValuesFiles []string `json:"valuesFiles,omitempty"` }
HelmChartTemplateSpec defines the template from which the controller will generate a v1beta2.HelmChartSpec object.
func (*HelmChartTemplateSpec) DeepCopy ¶
func (in *HelmChartTemplateSpec) DeepCopy() *HelmChartTemplateSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HelmChartTemplateSpec.
func (*HelmChartTemplateSpec) DeepCopyInto ¶
func (in *HelmChartTemplateSpec) DeepCopyInto(out *HelmChartTemplateSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type HelmRelease ¶
type HelmRelease struct { // Chart defines the template of the v1beta2.HelmChart that should be created // for this HelmRelease. // +required Chart HelmChartTemplate `json:"chart"` // Interval at which to reconcile the Helm release. // +kubebuilder:validation:Type=string // +kubebuilder:validation:Pattern="^([0-9]+(\\.[0-9]+)?(ms|s|m|h))+$" // +required Interval metav1.Duration `json:"interval"` // Suspend tells the controller to suspend reconciliation for this HelmRelease, // it does not apply to already started reconciliations. Defaults to false. // +optional Suspend bool `json:"suspend,omitempty"` // ReleaseName used for the Helm release. Defaults to a composition of // '[TargetNamespace-]Name'. // +kubebuilder:validation:MinLength=1 // +kubebuilder:validation:MaxLength=53 // +kubebuilder:validation:Optional // +optional ReleaseName string `json:"releaseName,omitempty"` // TargetNamespace to target when performing operations for the HelmRelease. // Defaults to the namespace of the HelmRelease. // +kubebuilder:validation:MinLength=1 // +kubebuilder:validation:MaxLength=63 // +kubebuilder:validation:Optional // +optional TargetNamespace string `json:"targetNamespace,omitempty"` // DependsOn may contain a meta.NamespacedObjectReference slice with // references to HelmRelease resources that must be ready before this HelmRelease // can be reconciled. // +optional DependsOn []meta.NamespacedObjectReference `json:"dependsOn,omitempty"` // Timeout is the time to wait for any individual Kubernetes operation (like Jobs // for hooks) during the performance of a Helm action. Defaults to '5m0s'. // +kubebuilder:validation:Type=string // +kubebuilder:validation:Pattern="^([0-9]+(\\.[0-9]+)?(ms|s|m|h))+$" // +optional Timeout *metav1.Duration `json:"timeout,omitempty"` // MaxHistory is the number of revisions saved by Helm for this HelmRelease. // Use '0' for an unlimited number of revisions; defaults to '10'. // +optional MaxHistory *int `json:"maxHistory,omitempty"` // The name of the Kubernetes service account to impersonate // when reconciling this HelmRelease. // +optional ServiceAccountName string `json:"serviceAccountName,omitempty"` // PersistentClient tells the controller to use a persistent Kubernetes // client for this release. When enabled, the client will be reused for the // duration of the reconciliation, instead of being created and destroyed // for each (step of a) Helm action. // // This can improve performance, but may cause issues with some Helm charts // that for example do create Custom Resource Definitions during installation // outside Helm's CRD lifecycle hooks, which are then not observed to be // available by e.g. post-install hooks. // // If not set, it defaults to true. // // +optional PersistentClient *bool `json:"persistentClient,omitempty"` // Install holds the configuration for Helm install actions for this HelmRelease. // +optional Install *helmv2b1.Install `json:"install,omitempty"` // Upgrade holds the configuration for Helm upgrade actions for this HelmRelease. // +optional Upgrade *helmv2b1.Upgrade `json:"upgrade,omitempty"` // Rollback holds the configuration for Helm rollback actions for this HelmRelease. // +optional Rollback *helmv2b1.Rollback `json:"rollback,omitempty"` // Uninstall holds the configuration for Helm uninstall actions for this HelmRelease. // +optional Uninstall *helmv2b1.Uninstall `json:"uninstall,omitempty"` // ValuesFrom holds references to resources containing Helm values for this HelmRelease, // and information about how they should be merged. ValuesFrom []helmv2b1.ValuesReference `json:"valuesFrom,omitempty"` // Values holds the values for this Helm release. // +optional Values *apiextensionsv1.JSON `json:"values,omitempty"` }
Note: copied from https://github.com/fluxcd/helm-controller/blob/main/api/v2beta1/helmrelease_types.go HelmRelease defines the desired state of a 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.
type Kustomization ¶
type Kustomization struct { // CommonMetadata specifies the common labels and annotations that are // applied to all resources. Any existing label or annotation will be // overridden if its key matches a common one. // +optional CommonMetadata *CommonMetadata `json:"commonMetadata,omitempty"` // DependsOn may contain a meta.NamespacedObjectReference slice // with references to Kustomization resources that must be ready before this // Kustomization can be reconciled. // +optional DependsOn []meta.NamespacedObjectReference `json:"dependsOn,omitempty"` // The interval at which to reconcile the Kustomization. // +kubebuilder:validation:Type=string // +kubebuilder:validation:Pattern="^([0-9]+(\\.[0-9]+)?(ms|s|m|h))+$" // +required Interval metav1.Duration `json:"interval"` // The interval at which to retry a previously failed reconciliation. // When not specified, the controller uses the KustomizationSpec.Interval // value to retry failures. // +kubebuilder:validation:Type=string // +kubebuilder:validation:Pattern="^([0-9]+(\\.[0-9]+)?(ms|s|m|h))+$" // +optional RetryInterval *metav1.Duration `json:"retryInterval,omitempty"` // 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. // +optional Path string `json:"path,omitempty"` // Prune enables garbage collection. // +required Prune bool `json:"prune"` // Strategic merge and JSON patches, defined as inline YAML objects, // capable of targeting objects based on kind, label and annotation selectors. // +optional Patches []kustomize.Patch `json:"patches,omitempty"` // Images is a list of (image name, new name, new tag or digest) // for changing image names, tags or digests. This can also be achieved with a // patch, but this operator is simpler to specify. // +optional Images []kustomize.Image `json:"images,omitempty"` // This flag tells the controller to suspend subsequent kustomize executions, // it does not apply to already started executions. Defaults to false. // +optional Suspend bool `json:"suspend,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"` // Timeout for validation, apply and health checking operations. // Defaults to 'Interval' duration. // +kubebuilder:validation:Type=string // +kubebuilder:validation:Pattern="^([0-9]+(\\.[0-9]+)?(ms|s|m|h))+$" // +optional Timeout *metav1.Duration `json:"timeout,omitempty"` // Force instructs the controller to recreate resources // when patching fails due to an immutable field change. // +kubebuilder:default:=false // +optional Force bool `json:"force,omitempty"` // Components specifies relative paths to specifications of other Components. // +optional Components []string `json:"components,omitempty"` }
Note: copied from https://github.com/fluxcd/kustomize-controller/blob/main/api/v1/kustomization_types.go Kustomization defines the configuration to calculate the desired state from a Source using Kustomize.
func (*Kustomization) DeepCopy ¶
func (in *Kustomization) DeepCopy() *Kustomization
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Kustomization.
func (*Kustomization) DeepCopyInto ¶
func (in *Kustomization) DeepCopyInto(out *Kustomization)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.