Documentation ¶
Overview ¶
+kubebuilder:object:generate=true +groupName=release.giantswarm.io
Index ¶
- Variables
- func IsProviderSupported(provider Provider) bool
- type Provider
- type Release
- func (in *Release) DeepCopy() *Release
- func (in *Release) DeepCopyInto(out *Release)
- func (in *Release) DeepCopyObject() runtime.Object
- func (r *Release) GetClusterAppVersion() (string, error)
- func (r *Release) GetFlatcarVersion() (string, error)
- func (r *Release) GetKubernetesVersion() (string, error)
- func (r *Release) GetProvider() (Provider, error)
- func (r *Release) GetVersion() (string, error)
- func (r *Release) LookupAppSpec(appName string) (ReleaseSpecApp, bool)
- func (r *Release) LookupComponentSpec(appName string) (ReleaseSpecComponent, bool)
- type ReleaseList
- type ReleaseSpec
- type ReleaseSpecApp
- type ReleaseSpecComponent
- type ReleaseState
- type ReleaseStatus
Constants ¶
This section is empty.
Variables ¶
var (
// AddToScheme is used by the generated client.
AddToScheme = schemeBuilder.AddToScheme
)
var AppNotFoundError = µerror.Error{
Kind: "AppNotFoundError",
}
var ComponentNotFoundError = µerror.Error{
Kind: "ReleaseComponentNotFoundError",
}
var InvalidReleaseResourceNameError = µerror.Error{
Kind: "InvalidReleaseResourceNameError",
}
var SchemeGroupVersion = schema.GroupVersion{
Group: group,
Version: version,
}
SchemeGroupVersion is group version used to register these objects
var SupportedProviders = []Provider{ ProviderAws, ProviderAzure, ProviderVsphere, ProviderCloudDirector, }
var UnsupportedProviderError = µerror.Error{
Kind: "UnsupportedProviderError",
}
Functions ¶
func IsProviderSupported ¶ added in v0.2.0
IsProviderSupported returns a flag that indicates if the specified provider is supported in Releases SDK.
Types ¶
type Provider ¶ added in v0.2.0
type Provider string
const ( // ProviderAws represents the new AWS provider which is implemented with Cluster API. ProviderAws Provider = "aws" // ProviderAzure represents the new Azure provider which is implemented with Cluster API. ProviderAzure Provider = "azure" // ProviderVsphere represents the new Vsphere provider which is implemented with Cluster API. ProviderVsphere Provider = "vsphere" // ProviderCloudDirector represents the new VCD provider which is implemented with Cluster API. ProviderCloudDirector Provider = "cloud-director" )
type Release ¶
type Release struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata"` Spec ReleaseSpec `json:"spec"` // +kubebuilder:validation:Optional Status ReleaseStatus `json:"status"` }
Release is a Kubernetes resource (CR) representing a Giant Swarm workload cluster release.
func (*Release) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Release.
func (*Release) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Release) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*Release) GetClusterAppVersion ¶ added in v0.2.0
func (*Release) GetFlatcarVersion ¶ added in v0.2.0
func (*Release) GetKubernetesVersion ¶ added in v0.2.0
func (*Release) GetProvider ¶ added in v0.2.0
func (*Release) GetVersion ¶ added in v0.2.0
func (*Release) LookupAppSpec ¶ added in v0.2.0
func (r *Release) LookupAppSpec(appName string) (ReleaseSpecApp, bool)
func (*Release) LookupComponentSpec ¶ added in v0.2.0
func (r *Release) LookupComponentSpec(appName string) (ReleaseSpecComponent, bool)
type ReleaseList ¶
type ReleaseList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata"` Items []Release `json:"items"` }
func (*ReleaseList) DeepCopy ¶
func (in *ReleaseList) DeepCopy() *ReleaseList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReleaseList.
func (*ReleaseList) DeepCopyInto ¶
func (in *ReleaseList) DeepCopyInto(out *ReleaseList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ReleaseList) DeepCopyObject ¶
func (in *ReleaseList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ReleaseSpec ¶
type ReleaseSpec struct { // Apps describes apps used in this release. Apps []ReleaseSpecApp `json:"apps"` // +kubebuilder:validation:MinItems=1 // Components describes components used in this release. Components []ReleaseSpecComponent `json:"components"` // Date that the release became active. Date *metav1.Time `json:"date"` // +kubebuilder:validation:Optional // +nullable // EndOfLifeDate is the date and time when support for a workload cluster using // this release ends. This may not be set at the time of release creation // and can be specified later. EndOfLifeDate *metav1.Time `json:"endOfLifeDate,omitempty"` // +kubebuilder:validation:Type=string // +kubebuilder:validation:Pattern=`^(active|deprecated|wip|preview)$` // State indicates the availability of the release: deprecated, active, or wip. State ReleaseState `json:"state"` // +kubebuilder:validation:Optional // Notice outlines anything worth being aware of in this release. Notice string `json:"notice,omitempty"` }
func (*ReleaseSpec) DeepCopy ¶
func (in *ReleaseSpec) DeepCopy() *ReleaseSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReleaseSpec.
func (*ReleaseSpec) DeepCopyInto ¶
func (in *ReleaseSpec) DeepCopyInto(out *ReleaseSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ReleaseSpecApp ¶
type ReleaseSpecApp struct { // +kubebuilder:validation:Optional // +kubebuilder:default=default // Catalog specifies the name of the app catalog that this app belongs to. Catalog string `json:"catalog,omitempty"` // Version of the upstream component used in the app. ComponentVersion string `json:"componentVersion,omitempty"` // DependsOn is the list of apps that should be installed before installation of this one is attempted. DependsOn []string `json:"dependsOn,omitempty"` // Name of the app. Name string `json:"name"` // +kubebuilder:validation:Pattern=`^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$` // Version of the app. Version string `json:"version"` }
func (*ReleaseSpecApp) DeepCopy ¶
func (in *ReleaseSpecApp) DeepCopy() *ReleaseSpecApp
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReleaseSpecApp.
func (*ReleaseSpecApp) DeepCopyInto ¶
func (in *ReleaseSpecApp) DeepCopyInto(out *ReleaseSpecApp)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ReleaseSpecComponent ¶
type ReleaseSpecComponent struct { // +kubebuilder:default=control-plane-catalog // Catalog specifies the name of the app catalog that this component belongs to. Catalog string `json:"catalog,omitempty"` // Name of the component. Name string `json:"name"` // +kubebuilder:validation:Optional // Reference is the component's version in the catalog (e.g. 1.2.3 or 1.2.3-abc8675309). Reference string `json:"reference,omitempty"` // +kubebuilder:validation:Optional // ReleaseOperatorDeploy informs the release-operator that it should deploy the component. ReleaseOperatorDeploy bool `json:"releaseOperatorDeploy,omitempty"` // +kubebuilder:validation:Pattern=`^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$` // Version of the component. Version string `json:"version"` }
func (*ReleaseSpecComponent) DeepCopy ¶
func (in *ReleaseSpecComponent) DeepCopy() *ReleaseSpecComponent
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReleaseSpecComponent.
func (*ReleaseSpecComponent) DeepCopyInto ¶
func (in *ReleaseSpecComponent) DeepCopyInto(out *ReleaseSpecComponent)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ReleaseState ¶
type ReleaseState string
const ( StateActive ReleaseState = "active" StateDeprecated ReleaseState = "deprecated" StateWIP ReleaseState = "wip" StatePreview ReleaseState = "preview" )
func (ReleaseState) String ¶
func (r ReleaseState) String() string
type ReleaseStatus ¶
type ReleaseStatus struct { // +kubebuilder:validation:Optional // Ready indicates if all components of the release have been deployed. Ready bool `json:"ready"` // +kubebuilder:validation:Optional // InUse indicates whether a release is actually used by a cluster. InUse bool `json:"inUse"` }
func (*ReleaseStatus) DeepCopy ¶
func (in *ReleaseStatus) DeepCopy() *ReleaseStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReleaseStatus.
func (*ReleaseStatus) DeepCopyInto ¶
func (in *ReleaseStatus) DeepCopyInto(out *ReleaseStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.