v1alpha1

package
v0.0.0-...-e76d75c Latest Latest
Warning

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

Go to latest
Published: Apr 26, 2024 License: Apache-2.0 Imports: 9 Imported by: 0

Documentation

Overview

Package v1alpha1 contains API Schema definitions for the v1alpha1 API group +kubebuilder:object:generate=true +groupName=kuberik.io

Index

Constants

View Source
const (
	ReadyCondition = "Ready"
)

Variables

View Source
var (
	// GroupVersion is group version used to register these objects
	GroupVersion = schema.GroupVersion{Group: "kuberik.io", Version: "v1alpha1"}

	// 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

This section is empty.

Types

type DeployAfter

type DeployAfter struct {
	// Propagation will proceed only after all listed deployments report
	// a healthy version for the specified amount of time.
	Deployments []string `json:"deployments,omitempty"`

	// TODO: rename to bake time
	// Propagtion will only be performed after all the deployments specified as dependencies report
	// continous healthy states for the specifed duration.
	// In case there's multiple versions satisfying the condition the newest one will be used.
	// +kubebuilder:validation:Type=string
	// +kubebuilder:validation:Pattern="^([0-9]+(\\.[0-9]+)?(ms|s|m|h))+$"
	// +required
	Interval metav1.Duration `json:"interval,omitempty"`
}

func (*DeployAfter) DeepCopy

func (in *DeployAfter) DeepCopy() *DeployAfter

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

func (*DeployAfter) DeepCopyInto

func (in *DeployAfter) DeepCopyInto(out *DeployAfter)

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

type Deployment

type Deployment struct {
	// [!CAUTION]
	// Not implemented!
	//
	// Propagation will not proceed if, as a result of propagation, there will be more than two active versions
	// deployed across the deployments within the same environment. This can be used if there are multiple sites
	// which are deployed separately but represent the same environment. In that case the rollout of a single version
	// can be preformed across all sites before starting a rollout for a newer version.
	Environment string `json:"groupWith,omitempty"`

	// TODO:
	Wave int `json:"wave,omitempty"`

	// Name of the deployment.
	Name string `json:"name,omitempty"`

	// Reads the exact version that was deployed so that accurate version can be published in the status.
	// +optional
	Version LocalObjectField `json:"version,omitempty"`

	// [!CAUTION]
	// Not implemented!
	//
	// Selector for Health objects which will be taken into account to determine if the deployment is healthy or not.
	HealthSelector HealthSelector `json:"healthSelector,omitempty"`

	// Specify for how long the history of healths will be kept. This needs to be at least larger than
	// `spec.deployAfter.interval` of deployments which are deployed after this one.
	// +kubebuilder:validation:Type=string
	// +kubebuilder:validation:Pattern="^([0-9]+(\\.[0-9]+)?(ms|s|m|h))+$"
	// +required
	HealthHistoryDurationLimit metav1.Duration `json:"healthHistoryDurationLimit,omitempty"`
}

func (*Deployment) DeepCopy

func (in *Deployment) DeepCopy() *Deployment

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

func (*Deployment) DeepCopyInto

func (in *Deployment) DeepCopyInto(out *Deployment)

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

type DeploymentStatus

type DeploymentStatus struct {
	Version string      `json:"version,omitempty"`
	Start   metav1.Time `json:"start,omitempty"`

	//+kubebuilder:validation:Enum=Healthy;Pending;Degraded
	State HealthState `json:"state,omitempty"`
}

func (*DeploymentStatus) DeepCopy

func (in *DeploymentStatus) DeepCopy() *DeploymentStatus

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

func (*DeploymentStatus) DeepCopyInto

func (in *DeploymentStatus) DeepCopyInto(out *DeploymentStatus)

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

type DeploymentStatusesReport

type DeploymentStatusesReport struct {
	DeploymentName string             `json:"deploymentName,omitempty"`
	Statuses       []DeploymentStatus `json:"statuses,omitempty"`
}

History of deployment statuses of an other Propagation

func (*DeploymentStatusesReport) AppendStatus

func (r *DeploymentStatusesReport) AppendStatus(status DeploymentStatus)

func (*DeploymentStatusesReport) DeepCopy

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

func (*DeploymentStatusesReport) DeepCopyInto

func (in *DeploymentStatusesReport) DeepCopyInto(out *DeploymentStatusesReport)

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

func (*DeploymentStatusesReport) VersionHealthyDuration

func (r *DeploymentStatusesReport) VersionHealthyDuration(version string) time.Duration

type Health

type Health struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   HealthSpec   `json:"spec,omitempty"`
	Status HealthStatus `json:"status,omitempty"`
}

Health is the Schema for the healths API

func (*Health) DeepCopy

func (in *Health) DeepCopy() *Health

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

func (*Health) DeepCopyInto

func (in *Health) DeepCopyInto(out *Health)

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

func (*Health) DeepCopyObject

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

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

type HealthList

type HealthList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []Health `json:"items"`
}

HealthList contains a list of Health

func (*HealthList) DeepCopy

func (in *HealthList) DeepCopy() *HealthList

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

func (*HealthList) DeepCopyInto

func (in *HealthList) DeepCopyInto(out *HealthList)

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

func (*HealthList) DeepCopyObject

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

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

type HealthSelector

type HealthSelector struct {
	// TODO:
	LabelSelector metav1.LabelSelector `json:"labelSelector,omitempty"`
	// TODO:
	NamespaceSelector metav1.LabelSelector `json:"namespaceSelector,omitempty"`
}

func (*HealthSelector) DeepCopy

func (in *HealthSelector) DeepCopy() *HealthSelector

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

func (*HealthSelector) DeepCopyInto

func (in *HealthSelector) DeepCopyInto(out *HealthSelector)

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

type HealthSpec

type HealthSpec struct {
	// Reported state of this Health.
	// +kubebuilder:validation:Enum=Healthy;Pending;Degraded
	State HealthState `json:"state,omitempty"`
}

HealthSpec defines the desired state of Health

func (*HealthSpec) DeepCopy

func (in *HealthSpec) DeepCopy() *HealthSpec

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

func (*HealthSpec) DeepCopyInto

func (in *HealthSpec) DeepCopyInto(out *HealthSpec)

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

type HealthState

type HealthState string
const (
	HealthStateHealthy   HealthState = "Healthy"
	HealthStatePending   HealthState = "Pending"
	HealthStateUnhealthy HealthState = "Unhealthy"
)

type HealthStatus

type HealthStatus struct {
}

HealthStatus defines the observed state of Health

func (*HealthStatus) DeepCopy

func (in *HealthStatus) DeepCopy() *HealthStatus

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

func (*HealthStatus) DeepCopyInto

func (in *HealthStatus) DeepCopyInto(out *HealthStatus)

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

type LocalObjectField

type LocalObjectField struct {
	// Kind of the referent.
	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
	// +optional
	Kind string `json:"kind,omitempty"`
	// Name of the referent.
	// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
	// +optional
	Name string `json:"name,omitempty"`
	// API version of the referent.
	// +optional
	APIVersion string `json:"apiVersion,omitempty"`
	// If referring to a piece of an object instead of an entire object, this string
	// should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2].
	// For example, if the object reference is to a container within a pod, this would take on a value like:
	// "spec.containers{name}" (where "name" refers to the name of the container that triggered
	// the event) or if no container name is specified "spec.containers[2]" (container with
	// index 2 in this pod). This syntax is chosen only to have some well-defined way of
	// referencing a part of an object.
	// +required
	FieldPath string `json:"fieldPath,omitempty"`
}

func (*LocalObjectField) DeepCopy

func (in *LocalObjectField) DeepCopy() *LocalObjectField

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

func (*LocalObjectField) DeepCopyInto

func (in *LocalObjectField) DeepCopyInto(out *LocalObjectField)

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

type Propagation

type Propagation struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   PropagationSpec   `json:"spec,omitempty"`
	Status PropagationStatus `json:"status,omitempty"`
}

Propagation is the Schema for the propagations API

func (*Propagation) DeepCopy

func (in *Propagation) DeepCopy() *Propagation

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

func (*Propagation) DeepCopyInto

func (in *Propagation) DeepCopyInto(out *Propagation)

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

func (*Propagation) DeepCopyObject

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

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

func (*Propagation) NextVersion

func (p *Propagation) NextVersion() string

type PropagationBackend

type PropagationBackend struct {
	// TODO: document and add examples
	// oci://my-registry.my-domain/kuberik/system
	// s3://my-bucket-n41nkl1n4/kuberik/system
	// +kubebuilder:validation:Pattern="^(oci|s3):\\/\\/.+$"
	// +optional
	BaseUrl string `json:"baseUrl,omitempty"`

	// The secret name containing the authentication credentials
	// +optional
	SecretRef *corev1.LocalObjectReference `json:"secretRef,omitempty"`
}

func (*PropagationBackend) DeepCopy

func (in *PropagationBackend) DeepCopy() *PropagationBackend

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

func (*PropagationBackend) DeepCopyInto

func (in *PropagationBackend) DeepCopyInto(out *PropagationBackend)

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

func (PropagationBackend) Scheme

func (pb PropagationBackend) Scheme() (string, error)

func (PropagationBackend) TrimScheme

func (pb PropagationBackend) TrimScheme() (string, error)

type PropagationList

type PropagationList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []Propagation `json:"items"`
}

PropagationList contains a list of Propagation

func (*PropagationList) DeepCopy

func (in *PropagationList) DeepCopy() *PropagationList

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

func (*PropagationList) DeepCopyInto

func (in *PropagationList) DeepCopyInto(out *PropagationList)

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

func (*PropagationList) DeepCopyObject

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

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

type PropagationSpec

type PropagationSpec struct {
	Backend    PropagationBackend `json:"backend,omitempty"`
	Deployment Deployment         `json:"deployment,omitempty"`
}

PropagationSpec defines the desired state of Propagation

func (*PropagationSpec) DeepCopy

func (in *PropagationSpec) DeepCopy() *PropagationSpec

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

func (*PropagationSpec) DeepCopyInto

func (in *PropagationSpec) DeepCopyInto(out *PropagationSpec)

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

type PropagationStatus

type PropagationStatus struct {
	DeploymentStatus          DeploymentStatus           `json:"deploymentStatus,omitempty"`
	Conditions                []metav1.Condition         `json:"conditions,omitempty"`
	DeploymentStatusesReports []DeploymentStatusesReport `json:"deploymentStatusesReports,omitempty"`
	DeployAfter               DeployAfter                `json:"deployAfter,omitempty"`
}

PropagationStatus defines the observed state of Propagation

func (*PropagationStatus) DeepCopy

func (in *PropagationStatus) DeepCopy() *PropagationStatus

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

func (*PropagationStatus) DeepCopyInto

func (in *PropagationStatus) DeepCopyInto(out *PropagationStatus)

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

func (*PropagationStatus) FindDeploymentStatusReport

func (s *PropagationStatus) FindDeploymentStatusReport(deployment string) *DeploymentStatusesReport

Jump to

Keyboard shortcuts

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