v1alpha1

package
v0.9.1 Latest Latest
Warning

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

Go to latest
Published: Nov 7, 2024 License: Apache-2.0 Imports: 7 Imported by: 3

Documentation

Overview

+kubebuilder:object:generate=true +groupName=release.giantswarm.io

Index

Constants

This section is empty.

Variables

View Source
var (

	// AddToScheme is used by the generated client.
	AddToScheme = schemeBuilder.AddToScheme
)
View Source
var AppNotFoundError = &microerror.Error{
	Kind: "AppNotFoundError",
}
View Source
var ComponentNotFoundError = &microerror.Error{
	Kind: "ReleaseComponentNotFoundError",
}
View Source
var InvalidReleaseResourceNameError = &microerror.Error{
	Kind: "InvalidReleaseResourceNameError",
}
View Source
var SchemeGroupVersion = schema.GroupVersion{
	Group:   group,
	Version: version,
}

SchemeGroupVersion is group version used to register these objects

View Source
var UnsupportedProviderError = &microerror.Error{
	Kind: "UnsupportedProviderError",
}

Functions

func IsProviderSupported added in v0.2.0

func IsProviderSupported(provider Provider) bool

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

func (in *Release) DeepCopy() *Release

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

func (*Release) DeepCopyInto

func (in *Release) DeepCopyInto(out *Release)

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

func (*Release) DeepCopyObject

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

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

func (*Release) GetClusterAppVersion added in v0.2.0

func (r *Release) GetClusterAppVersion() (string, error)

func (*Release) GetFlatcarVersion added in v0.2.0

func (r *Release) GetFlatcarVersion() (string, error)

func (*Release) GetKubernetesVersion added in v0.2.0

func (r *Release) GetKubernetesVersion() (string, error)

func (*Release) GetProvider added in v0.2.0

func (r *Release) GetProvider() (Provider, error)

func (*Release) GetVersion added in v0.2.0

func (r *Release) GetVersion() (string, error)

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

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.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL