v1alpha1

package
v1.14.0 Latest Latest
Warning

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

Go to latest
Published: Oct 8, 2024 License: Apache-2.0 Imports: 6 Imported by: 4

Documentation

Overview

Package v1alpha1 contains API Schema definitions for the v1alpha1 version of the core Package Operator API group, containing basic building blocks that other auxiliary APIs can build on top of. +kubebuilder:object:generate=true +groupName=package-operator.run

Index

Constants

View Source
const (
	// Available indicates that all objects pass their availability probe.
	ObjectSetAvailable = "Available"
	// Paused indicates that object changes are not reconciled, but status is still reported.
	ObjectSetPaused = "Paused"
	// Archived indicates that the ObjectSet is "scaled to zero"
	// meaning that all objects under management are cleaned up and status is no longer reported.
	// The ObjectSet might be stay on the cluster as revision tombstone to facilitate roll back.
	ObjectSetArchived = "Archived"
	// Succeeded condition is only set once,
	// after a ObjectSet became Available for the first time.
	ObjectSetSucceeded = "Succeeded"
	// InTransition condition is True when the ObjectSet is not in control of all objects defined in spec.
	// This holds true during rollout of the first instance or while handing over objects between two ObjectSets.
	ObjectSetInTransition = "InTransition"
)

ObjectSet Condition Types.

View Source
const (
	// Available indicates that all objects pass their availability probe.
	ObjectSetPhaseAvailable = "Available"
	// Paused indicates that object changes are not reconciled, but status is still reported.
	ObjectSetPhasePaused = "Paused"
)

ObjectSetPhase Condition Types.

View Source
const (
	// A Packages "Available" condition tracks the availability of the underlying ObjectDeployment objects.
	// When the Package is reporting "Available" = True, it's expected that whatever the Package installs
	// is up and operational. Package "Availability" may change multiple times during it's lifecycle.
	PackageAvailable = "Available"
	// Progressing indicates that a new release is being rolled out.
	PackageProgressing = "Progressing"
	// Unpacked tracks the completion or failure of the image unpack operation.
	PackageUnpacked = "Unpacked"
	// Invalid condition tracks unrecoverable validation and loading issues of the Package.
	// A package might be invalid because of multiple reasons:
	// - Does not support the right scope -> Namespaced vs. Cluster
	// - Missing or malformed PackageManifest
	// - Malformed Yaml
	// - Issues resulting from the template process.
	PackageInvalid = "Invalid"
)

Package condition types.

View Source
const (
	ObjectDeploymentAvailable   = "Available"
	ObjectDeploymentProgressing = "Progressing"
)

ObjectDeployment Condition Types.

View Source
const ObjectSetPhaseClassLabel = "package-operator.run/phase-class"

ObjectSetPhaseClassLabel is the label key for the phase class.

View Source
const ObjectSetRevisionAnnotation = "package-operator.run/revision"

ObjectSetRevisionAnnotation annotations holds a revision generation number to order ObjectSets.

View Source
const (
	// Invalid indicates an issue with the ObjectTemplates own configuration.
	ObjectTemplateInvalid = "package-operator.run/Invalid"
)

ObjectTemplate condition types.

Variables

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

	// SchemeBuilder is used to add go types to the GroupVersionKind scheme.
	SchemeBuilder runtime.SchemeBuilder

	// AddToScheme adds the types in this group-version to the given scheme.
	AddToScheme = SchemeBuilder.AddToScheme
)

Functions

This section is empty.

Types

type ClusterObjectDeployment

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

	Spec ClusterObjectDeploymentSpec `json:"spec,omitempty"`
	// +kubebuilder:default={phase:Pending}
	Status ClusterObjectDeploymentStatus `json:"status,omitempty"`
}

ClusterObjectDeployment is the Schema for the ClusterObjectDeployments API +kubebuilder:object:root=true +kubebuilder:subresource:status +kubebuilder:resource:scope=Cluster,shortName={"clobjdeploy","cod"} +kubebuilder:printcolumn:name="Status",type="string",JSONPath=".status.phase" +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp"

func (*ClusterObjectDeployment) DeepCopy

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

func (*ClusterObjectDeployment) DeepCopyInto

func (in *ClusterObjectDeployment) DeepCopyInto(out *ClusterObjectDeployment)

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

func (*ClusterObjectDeployment) DeepCopyObject

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

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

type ClusterObjectDeploymentList

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

ClusterObjectDeploymentList contains a list of ClusterObjectDeployments +kubebuilder:object:root=true

func (*ClusterObjectDeploymentList) DeepCopy

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

func (*ClusterObjectDeploymentList) DeepCopyInto

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

func (*ClusterObjectDeploymentList) DeepCopyObject

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

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

type ClusterObjectDeploymentSpec

type ClusterObjectDeploymentSpec struct {
	// Number of old revisions in the form of archived ObjectSets to keep.
	// +kubebuilder:default=10
	RevisionHistoryLimit *int32 `json:"revisionHistoryLimit,omitempty"`
	// Selector targets ObjectSets managed by this Deployment.
	Selector metav1.LabelSelector `json:"selector"`
	// Template to create new ObjectSets from.
	Template ObjectSetTemplate `json:"template"`
}

ClusterObjectDeploymentSpec defines the desired state of a ClusterObjectDeployment.

func (*ClusterObjectDeploymentSpec) DeepCopy

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

func (*ClusterObjectDeploymentSpec) DeepCopyInto

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

type ClusterObjectDeploymentStatus

type ClusterObjectDeploymentStatus struct {
	// Conditions is a list of status conditions ths object is in.
	Conditions []metav1.Condition `json:"conditions,omitempty"`
	// This field is not part of any API contract
	// it will go away as soon as kubectl can print conditions!
	// When evaluating object state in code, use .Conditions instead.
	Phase ObjectDeploymentPhase `json:"phase,omitempty"`
	// Count of hash collisions of the ClusterObjectDeployment.
	CollisionCount *int32 `json:"collisionCount,omitempty"`
	// Computed TemplateHash.
	TemplateHash string `json:"templateHash,omitempty"`
	// Deployment revision.
	Revision int64 `json:"revision,omitempty"`
	// ControllerOf references the owned ClusterObjectSet revisions.
	ControllerOf []ControlledObjectReference `json:"controllerOf,omitempty"`
}

ClusterObjectDeploymentStatus defines the observed state of a ClusterObjectDeployment.

func (*ClusterObjectDeploymentStatus) DeepCopy

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

func (*ClusterObjectDeploymentStatus) DeepCopyInto

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

type ClusterObjectSet

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

	Spec ClusterObjectSetSpec `json:"spec,omitempty"`
	// +kubebuilder:default={phase: Pending}
	Status ClusterObjectSetStatus `json:"status,omitempty"`
}

ClusterObjectSet reconciles a collection of objects through ordered phases and aggregates their status.

ClusterObjectSets behave similarly to Kubernetes ReplicaSets, by managing a collection of objects and being itself mostly immutable. This object type is able to suspend/pause reconciliation of specific objects to facilitate the transition between revisions.

Archived ClusterObjectSets may stay on the cluster, to store information about previous revisions.

A Namespace-scoped version of this API is available as ObjectSet. +kubebuilder:object:root=true +kubebuilder:subresource:status +kubebuilder:resource:scope=Cluster,shortName={"clobjset","cos"} +kubebuilder:printcolumn:name="Status",type="string",JSONPath=".status.phase" +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp"

func (*ClusterObjectSet) DeepCopy

func (in *ClusterObjectSet) DeepCopy() *ClusterObjectSet

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

func (*ClusterObjectSet) DeepCopyInto

func (in *ClusterObjectSet) DeepCopyInto(out *ClusterObjectSet)

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

func (*ClusterObjectSet) DeepCopyObject

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

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

type ClusterObjectSetList

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

ClusterObjectSetList contains a list of ClusterObjectSets. +kubebuilder:object:root=true

func (*ClusterObjectSetList) DeepCopy

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

func (*ClusterObjectSetList) DeepCopyInto

func (in *ClusterObjectSetList) DeepCopyInto(out *ClusterObjectSetList)

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

func (*ClusterObjectSetList) DeepCopyObject

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

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

type ClusterObjectSetPhase

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

	Spec   ClusterObjectSetPhaseSpec   `json:"spec,omitempty"`
	Status ClusterObjectSetPhaseStatus `json:"status,omitempty"`
}

ClusterObjectSetPhase is an internal API, allowing a ClusterObjectSet to delegate a single phase to another custom controller. ClusterObjectSets will create subordinate ClusterObjectSetPhases when `.class` is set within the phase specification. +kubebuilder:object:root=true +kubebuilder:resource:scope=Cluster,shortName={"clobjsetphase","cosp"} +kubebuilder:subresource:status +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp"

func (*ClusterObjectSetPhase) DeepCopy

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

func (*ClusterObjectSetPhase) DeepCopyInto

func (in *ClusterObjectSetPhase) DeepCopyInto(out *ClusterObjectSetPhase)

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

func (*ClusterObjectSetPhase) DeepCopyObject

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

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

type ClusterObjectSetPhaseList

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

ClusterObjectSetPhaseList contains a list of ClusterObjectSetPhases. +kubebuilder:object:root=true

func (*ClusterObjectSetPhaseList) DeepCopy

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

func (*ClusterObjectSetPhaseList) DeepCopyInto

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

func (*ClusterObjectSetPhaseList) DeepCopyObject

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

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

type ClusterObjectSetPhaseSpec

type ClusterObjectSetPhaseSpec struct {
	// Disables reconciliation of the ClusterObjectSet.
	// Only Status updates will still be propagated, but object changes will not be reconciled.
	// +optional
	Paused bool `json:"paused,omitempty"`

	// Revision of the parent ObjectSet to use during object adoption.
	// +kubebuilder:validation:XValidation:rule="self == oldSelf", message="revision is immutable"
	Revision int64 `json:"revision"`

	// Previous revisions of the ClusterObjectSet to adopt objects from.
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:XValidation:rule="self == oldSelf", message="previous is immutable"
	// +kubebuilder:MaxItems=32
	Previous []PreviousRevisionReference `json:"previous,omitempty"`

	// Availability Probes check objects that are part of the package.
	// All probes need to succeed for a package to be considered Available.
	// Failing probes will prevent the reconciliation of objects in later phases.
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:XValidation:rule="self == oldSelf", message="availabilityProbes is immutable"
	// +kubebuilder:MaxItems=32
	AvailabilityProbes []ObjectSetProbe `json:"availabilityProbes,omitempty"`

	// Objects belonging to this phase.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:XValidation:rule="self == oldSelf", message="objects is immutable"
	// +kubebuilder:MaxItems=32
	Objects []ObjectSetObject `json:"objects"`
}

ClusterObjectSetPhaseSpec defines the desired state of a ClusterObjectSetPhase. +kubebuilder:validation:XValidation:rule="has(self.previous) == has(oldSelf.previous)", message="previous is immutable" +kubebuilder:validation:XValidation:rule="has(self.availabilityProbes) == has(oldSelf.availabilityProbes)", message="availabilityProbes is immutable"

func (*ClusterObjectSetPhaseSpec) DeepCopy

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

func (*ClusterObjectSetPhaseSpec) DeepCopyInto

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

type ClusterObjectSetPhaseStatus

type ClusterObjectSetPhaseStatus struct {
	// Conditions is a list of status conditions ths object is in.
	// +example=[{type: "Available", status: "True"}]
	Conditions []metav1.Condition `json:"conditions,omitempty"`
	// References all objects controlled by this instance.
	ControllerOf []ControlledObjectReference `json:"controllerOf,omitempty"`
}

ClusterObjectSetPhaseStatus defines the observed state of a ClusterObjectSetPhase.

func (*ClusterObjectSetPhaseStatus) DeepCopy

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

func (*ClusterObjectSetPhaseStatus) DeepCopyInto

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

type ClusterObjectSetSpec

type ClusterObjectSetSpec struct {
	// Specifies the lifecycle state of the ClusterObjectSet.
	// +kubebuilder:default="Active"
	// +kubebuilder:validation:Enum=Active;Paused;Archived
	LifecycleState ObjectSetLifecycleState `json:"lifecycleState,omitempty"`

	// Previous revisions of the ClusterObjectSet to adopt objects from.
	Previous []PreviousRevisionReference `json:"previous,omitempty"`

	ObjectSetTemplateSpec `json:",inline"`
}

ClusterObjectSetSpec defines the desired state of a ClusterObjectSet. +kubebuilder:validation:XValidation:rule="(has(self.previous) == has(oldSelf.previous)) && (!has(self.previous) || (self.previous == oldSelf.previous))", message="previous is immutable" +kubebuilder:validation:XValidation:rule="(has(self.phases) == has(oldSelf.phases)) && (!has(self.phases) || (self.phases == oldSelf.phases))", message="phases is immutable" +kubebuilder:validation:XValidation:rule="(has(self.availabilityProbes) == has(oldSelf.availabilityProbes)) && (!has(self.availabilityProbes) || (self.availabilityProbes == oldSelf.availabilityProbes))", message="availabilityProbes is immutable" +kubebuilder:validation:XValidation:rule="(has(self.successDelaySeconds) == has(oldSelf.successDelaySeconds)) && (!has(self.successDelaySeconds) || (self.successDelaySeconds == oldSelf.successDelaySeconds))", message="successDelaySeconds is immutable"

func (*ClusterObjectSetSpec) DeepCopy

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

func (*ClusterObjectSetSpec) DeepCopyInto

func (in *ClusterObjectSetSpec) DeepCopyInto(out *ClusterObjectSetSpec)

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

type ClusterObjectSetStatus

type ClusterObjectSetStatus struct {
	// Conditions is a list of status conditions ths object is in.
	Conditions []metav1.Condition `json:"conditions,omitempty"`
	// Phase is not part of any API contract
	// it will go away as soon as kubectl can print conditions!
	// When evaluating object state in code, use .Conditions instead.
	Phase ObjectSetStatusPhase `json:"phase,omitempty"`
	// Computed revision number, monotonically increasing.
	Revision int64 `json:"revision,omitempty"`
	// Remote phases aka ClusterObjectSetPhase objects.
	RemotePhases []RemotePhaseReference `json:"remotePhases,omitempty"`
	// References all objects controlled by this instance.
	ControllerOf []ControlledObjectReference `json:"controllerOf,omitempty"`
}

ClusterObjectSetStatus defines the observed state of a ClusterObjectSet.

func (*ClusterObjectSetStatus) DeepCopy

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

func (*ClusterObjectSetStatus) DeepCopyInto

func (in *ClusterObjectSetStatus) DeepCopyInto(out *ClusterObjectSetStatus)

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

type ClusterObjectSlice added in v1.1.0

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

	// +kubebuilder:validation:Required
	// +kubebuilder:validation:XValidation:rule="self == oldSelf", message="objects is immutable"
	// +kubebuilder:MaxItems=32
	Objects []ObjectSetObject `json:"objects"`
}

ClusterObjectSlice is referenced by ObjectSets or ObjectDeployments and contain objects to limit the size of ObjectSet and ObjectDeployments when big packages are installed. This is necessary to work around the etcd object size limit of ~1.5MiB and to reduce load on the kube-apiserver. +kubebuilder:object:root=true +kubebuilder:resource:scope=Cluster,shortName={"clobjslice","cosl"} +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp"

func (*ClusterObjectSlice) DeepCopy added in v1.1.0

func (in *ClusterObjectSlice) DeepCopy() *ClusterObjectSlice

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

func (*ClusterObjectSlice) DeepCopyInto added in v1.1.0

func (in *ClusterObjectSlice) DeepCopyInto(out *ClusterObjectSlice)

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

func (*ClusterObjectSlice) DeepCopyObject added in v1.1.0

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

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

type ClusterObjectSliceList added in v1.1.0

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

ClusterObjectSliceList contains a list of ClusterObjectSlices. +kubebuilder:object:root=true

func (*ClusterObjectSliceList) DeepCopy added in v1.1.0

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

func (*ClusterObjectSliceList) DeepCopyInto added in v1.1.0

func (in *ClusterObjectSliceList) DeepCopyInto(out *ClusterObjectSliceList)

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

func (*ClusterObjectSliceList) DeepCopyObject added in v1.1.0

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

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

type ClusterObjectTemplate added in v1.4.0

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

	Spec   ObjectTemplateSpec   `json:"spec,omitempty"`
	Status ObjectTemplateStatus `json:"status,omitempty"`
}

ClusterObjectTemplate contain a go template of a Kubernetes manifest. The manifest is then templated with the sources provided in the .Spec.Sources. The sources can come from objects from any namespace or cluster scoped objects. +kubebuilder:object:root=true +kubebuilder:resource:scope=Cluster,shortName={"clobjtmpl","cot"} +kubebuilder:subresource:status

func (*ClusterObjectTemplate) DeepCopy added in v1.4.0

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

func (*ClusterObjectTemplate) DeepCopyInto added in v1.4.0

func (in *ClusterObjectTemplate) DeepCopyInto(out *ClusterObjectTemplate)

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

func (*ClusterObjectTemplate) DeepCopyObject added in v1.4.0

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

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

type ClusterObjectTemplateList added in v1.4.0

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

ClusterObjectTemplateList contains a list of ClusterObjectTemplates. +kubebuilder:object:root=true

func (*ClusterObjectTemplateList) DeepCopy added in v1.4.0

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

func (*ClusterObjectTemplateList) DeepCopyInto added in v1.4.0

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

func (*ClusterObjectTemplateList) DeepCopyObject added in v1.4.0

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

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

type ClusterPackage

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

	Spec PackageSpec `json:"spec,omitempty"`
	// +kubebuilder:default={phase: Pending}
	Status PackageStatus `json:"status,omitempty"`
}

ClusterPackage defines a cluster scoped package installation. +kubebuilder:object:root=true +kubebuilder:subresource:status +kubebuilder:resource:scope=Cluster,shortName=clpkg +kubebuilder:printcolumn:name="Status",type="string",JSONPath=".status.phase" +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp"

func (*ClusterPackage) DeepCopy

func (in *ClusterPackage) DeepCopy() *ClusterPackage

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

func (*ClusterPackage) DeepCopyInto

func (in *ClusterPackage) DeepCopyInto(out *ClusterPackage)

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

func (*ClusterPackage) DeepCopyObject

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

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

type ClusterPackageList

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

ClusterPackageList contains a list of Packages. +kubebuilder:object:root=true

func (*ClusterPackageList) DeepCopy

func (in *ClusterPackageList) DeepCopy() *ClusterPackageList

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

func (*ClusterPackageList) DeepCopyInto

func (in *ClusterPackageList) DeepCopyInto(out *ClusterPackageList)

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

func (*ClusterPackageList) DeepCopyObject

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

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

type CollisionProtection added in v1.11.0

type CollisionProtection string

CollisionProtection specifies if and how PKO prevent ownership collisions.

const (
	// CollisionProtectionPrevent prevents owner collisions entirely by only allowing
	// Package Operator to work with objects itself has created.
	CollisionProtectionPrevent CollisionProtection = "Prevent"
	// CollisionProtectionIfNoController allows Package Operator to patch and override
	// objects already present if they are not owned by another controller.
	CollisionProtectionIfNoController CollisionProtection = "IfNoController"
	// CollisionProtectionNone allows Package Operator to patch and override objects
	// already present and owned by other controllers.
	// Be careful! This setting may cause multiple controllers to fight over a resource,
	// causing load on the API server and etcd.
	CollisionProtectionNone CollisionProtection = "None"
)

type ConditionMapping added in v1.3.0

type ConditionMapping struct {
	// Source condition type.
	SourceType string `json:"sourceType"`
	// Destination condition type to report into Package Operator APIs.
	//nolint:lll
	// +kubebuilder:validation:Pattern=`[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*\/([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]`
	DestinationType string `json:"destinationType"`
}

ConditionMapping maps one condition type to another.

func (*ConditionMapping) DeepCopy added in v1.3.0

func (in *ConditionMapping) DeepCopy() *ConditionMapping

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

func (*ConditionMapping) DeepCopyInto added in v1.3.0

func (in *ConditionMapping) DeepCopyInto(out *ConditionMapping)

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

type ControlledObjectReference

type ControlledObjectReference struct {
	// Object Kind.
	Kind string `json:"kind"`
	// Object Group.
	Group string `json:"group"`
	// Object Name.
	Name string `json:"name"`
	// Object Namespace.
	Namespace string `json:"namespace,omitempty"`
}

ControlledObjectReference an object controlled by this object.

func (*ControlledObjectReference) DeepCopy

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

func (*ControlledObjectReference) DeepCopyInto

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

type ObjectDeployment

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

	Spec ObjectDeploymentSpec `json:"spec,omitempty"`
	// +kubebuilder:default={phase:Pending}
	Status ObjectDeploymentStatus `json:"status,omitempty"`
}

ObjectDeployment is the Schema for the ObjectDeployments API +kubebuilder:object:root=true +kubebuilder:subresource:status +kubebuilder:resource:shortName={"objdeploy","od"} +kubebuilder:printcolumn:name="Status",type="string",JSONPath=".status.phase" +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp"

func (*ObjectDeployment) DeepCopy

func (in *ObjectDeployment) DeepCopy() *ObjectDeployment

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

func (*ObjectDeployment) DeepCopyInto

func (in *ObjectDeployment) DeepCopyInto(out *ObjectDeployment)

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

func (*ObjectDeployment) DeepCopyObject

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

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

type ObjectDeploymentList

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

ObjectDeploymentList contains a list of ObjectDeployments +kubebuilder:object:root=true

func (*ObjectDeploymentList) DeepCopy

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

func (*ObjectDeploymentList) DeepCopyInto

func (in *ObjectDeploymentList) DeepCopyInto(out *ObjectDeploymentList)

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

func (*ObjectDeploymentList) DeepCopyObject

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

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

type ObjectDeploymentPhase

type ObjectDeploymentPhase string

ObjectDeploymentPhase specifies a phase that a deployment is in.

const (
	ObjectDeploymentPhasePending     ObjectDeploymentPhase = "Pending"
	ObjectDeploymentPhaseAvailable   ObjectDeploymentPhase = "Available"
	ObjectDeploymentPhaseNotReady    ObjectDeploymentPhase = "NotReady"
	ObjectDeploymentPhaseProgressing ObjectDeploymentPhase = "Progressing"
)

Well-known ObjectDeployment Phases for printing a Status in kubectl, see deprecation notice in ObjectDeploymentStatus for details.

type ObjectDeploymentSpec

type ObjectDeploymentSpec struct {
	// Number of old revisions in the form of archived ObjectSets to keep.
	// +kubebuilder:default=10
	RevisionHistoryLimit *int32 `json:"revisionHistoryLimit,omitempty"`
	// Selector targets ObjectSets managed by this Deployment.
	Selector metav1.LabelSelector `json:"selector"`
	// Template to create new ObjectSets from.
	Template ObjectSetTemplate `json:"template"`
}

ObjectDeploymentSpec defines the desired state of a ObjectDeployment.

func (*ObjectDeploymentSpec) DeepCopy

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

func (*ObjectDeploymentSpec) DeepCopyInto

func (in *ObjectDeploymentSpec) DeepCopyInto(out *ObjectDeploymentSpec)

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

type ObjectDeploymentStatus

type ObjectDeploymentStatus struct {
	// Conditions is a list of status conditions ths object is in.
	Conditions []metav1.Condition `json:"conditions,omitempty"`
	// This field is not part of any API contract
	// it will go away as soon as kubectl can print conditions!
	// When evaluating object state in code, use .Conditions instead.
	Phase ObjectDeploymentPhase `json:"phase,omitempty"`
	// Count of hash collisions of the ObjectDeployment.
	CollisionCount *int32 `json:"collisionCount,omitempty"`
	// Computed TemplateHash.
	TemplateHash string `json:"templateHash,omitempty"`
	// Deployment revision.
	Revision int64 `json:"revision,omitempty"`
	// ControllerOf references the owned ObjectSet revisions.
	ControllerOf []ControlledObjectReference `json:"controllerOf,omitempty"`
}

ObjectDeploymentStatus defines the observed state of a ObjectDeployment.

func (*ObjectDeploymentStatus) DeepCopy

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

func (*ObjectDeploymentStatus) DeepCopyInto

func (in *ObjectDeploymentStatus) DeepCopyInto(out *ObjectDeploymentStatus)

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

type ObjectSet

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

	Spec ObjectSetSpec `json:"spec,omitempty"`
	// +kubebuilder:default={phase: Pending}
	Status ObjectSetStatus `json:"status,omitempty"`
}

ObjectSet reconciles a collection of objects through ordered phases and aggregates their status.

ObjectSets behave similarly to Kubernetes ReplicaSets, by managing a collection of objects and being itself mostly immutable. This object type is able to suspend/pause reconciliation of specific objects to facilitate the transition between revisions.

Archived ObjectSets may stay on the cluster, to store information about previous revisions.

A Cluster-scoped version of this API is available as ClusterObjectSet. +kubebuilder:object:root=true +kubebuilder:subresource:status +kubebuilder:resource:shortName={"objset","os"} +kubebuilder:printcolumn:name="Status",type="string",JSONPath=".status.phase" +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp"

func (*ObjectSet) DeepCopy

func (in *ObjectSet) DeepCopy() *ObjectSet

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

func (*ObjectSet) DeepCopyInto

func (in *ObjectSet) DeepCopyInto(out *ObjectSet)

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

func (*ObjectSet) DeepCopyObject

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

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

type ObjectSetLifecycleState

type ObjectSetLifecycleState string

ObjectSetLifecycleState specifies the lifecycle state of the ObjectSet.

const (
	// ObjectSetLifecycleStateActive / "Active" is the default lifecycle state.
	ObjectSetLifecycleStateActive ObjectSetLifecycleState = "Active"
	// ObjectSetLifecycleStatePaused / "Paused" disables reconciliation of the ObjectSet.
	// Only Status updates will still propagated, but object changes will not be reconciled.
	ObjectSetLifecycleStatePaused ObjectSetLifecycleState = "Paused"
	// ObjectSetLifecycleStateArchived / "Archived" disables reconciliation while also "scaling to zero",
	// which deletes all objects that are not excluded via the pausedFor property and
	// removes itself from the owner list of all other objects previously under management.
	ObjectSetLifecycleStateArchived ObjectSetLifecycleState = "Archived"
)

type ObjectSetList

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

ObjectSetList contains a list of ObjectSets. +kubebuilder:object:root=true

func (*ObjectSetList) DeepCopy

func (in *ObjectSetList) DeepCopy() *ObjectSetList

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

func (*ObjectSetList) DeepCopyInto

func (in *ObjectSetList) DeepCopyInto(out *ObjectSetList)

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

func (*ObjectSetList) DeepCopyObject

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

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

type ObjectSetObject

type ObjectSetObject struct {
	// +kubebuilder:validation:EmbeddedResource
	// +kubebuilder:pruning:PreserveUnknownFields
	// +example={apiVersion: apps/v1, kind: Deployment, metadata: {name: example-deployment}}
	Object unstructured.Unstructured `json:"object"`
	// Collision protection prevents Package Operator from working on objects already under
	// management by a different operator.
	// +kubebuilder:default=Prevent
	CollisionProtection CollisionProtection `json:"collisionProtection,omitempty"`
	// Maps conditions from this object into the Package Operator APIs.
	ConditionMappings []ConditionMapping `json:"conditionMappings,omitempty"`
}

ObjectSetObject is an object that is part of the phase of an ObjectSet.

func (*ObjectSetObject) DeepCopy

func (in *ObjectSetObject) DeepCopy() *ObjectSetObject

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

func (*ObjectSetObject) DeepCopyInto

func (in *ObjectSetObject) DeepCopyInto(out *ObjectSetObject)

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

func (ObjectSetObject) String added in v1.5.0

func (o ObjectSetObject) String() string

type ObjectSetPhase

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

	Spec   ObjectSetPhaseSpec   `json:"spec,omitempty"`
	Status ObjectSetPhaseStatus `json:"status,omitempty"`
}

ObjectSetPhase is an internal API, allowing an ObjectSet to delegate a single phase to another custom controller. ObjectSets will create subordinate ObjectSetPhases when `.class` within the phase specification is set. +kubebuilder:object:root=true +kubebuilder:subresource:status +kubebuilder:resource:shortName={"objsetphase","osp"} +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp"

func (*ObjectSetPhase) DeepCopy

func (in *ObjectSetPhase) DeepCopy() *ObjectSetPhase

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

func (*ObjectSetPhase) DeepCopyInto

func (in *ObjectSetPhase) DeepCopyInto(out *ObjectSetPhase)

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

func (*ObjectSetPhase) DeepCopyObject

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

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

type ObjectSetPhaseList

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

ObjectSetPhaseList contains a list of ObjectSetPhases. +kubebuilder:object:root=true

func (*ObjectSetPhaseList) DeepCopy

func (in *ObjectSetPhaseList) DeepCopy() *ObjectSetPhaseList

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

func (*ObjectSetPhaseList) DeepCopyInto

func (in *ObjectSetPhaseList) DeepCopyInto(out *ObjectSetPhaseList)

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

func (*ObjectSetPhaseList) DeepCopyObject

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

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

type ObjectSetPhaseSpec

type ObjectSetPhaseSpec struct {
	// Disables reconciliation of the ObjectSet.
	// Only Status updates will still be propagated, but object changes will not be reconciled.
	// +optional
	Paused bool `json:"paused,omitempty"`

	// Revision of the parent ObjectSet to use during object adoption.
	// +kubebuilder:validation:XValidation:rule="self == oldSelf", message="revision is immutable"
	Revision int64 `json:"revision"`

	// Previous revisions of the ObjectSet to adopt objects from.
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:XValidation:rule="self == oldSelf", message="previous is immutable"
	// +kubebuilder:MaxItems=32
	Previous []PreviousRevisionReference `json:"previous,omitempty"`

	// Availability Probes check objects that are part of the package.
	// All probes need to succeed for a package to be considered Available.
	// Failing probes will prevent the reconciliation of objects in later phases.
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:XValidation:rule="self == oldSelf", message="availabilityProbes is immutable"
	// +kubebuilder:MaxItems=32
	AvailabilityProbes []ObjectSetProbe `json:"availabilityProbes,omitempty"`

	// Objects belonging to this phase.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:XValidation:rule="self == oldSelf", message="objects is immutable"
	// +kubebuilder:MaxItems=32
	Objects []ObjectSetObject `json:"objects"`
}

ObjectSetPhaseSpec defines the desired state of a ObjectSetPhase. +kubebuilder:validation:XValidation:rule="has(self.previous) == has(oldSelf.previous)", message="previous is immutable" +kubebuilder:validation:XValidation:rule="has(self.availabilityProbes) == has(oldSelf.availabilityProbes)", message="availabilityProbes is immutable"

func (*ObjectSetPhaseSpec) DeepCopy

func (in *ObjectSetPhaseSpec) DeepCopy() *ObjectSetPhaseSpec

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

func (*ObjectSetPhaseSpec) DeepCopyInto

func (in *ObjectSetPhaseSpec) DeepCopyInto(out *ObjectSetPhaseSpec)

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

type ObjectSetPhaseStatus

type ObjectSetPhaseStatus struct {
	// Conditions is a list of status conditions ths object is in.
	// +example=[{type: "Available", status: "True"}]
	Conditions []metav1.Condition `json:"conditions,omitempty"`
	// References all objects controlled by this instance.
	ControllerOf []ControlledObjectReference `json:"controllerOf,omitempty"`
}

ObjectSetPhaseStatus defines the observed state of a ObjectSetPhase.

func (*ObjectSetPhaseStatus) DeepCopy

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

func (*ObjectSetPhaseStatus) DeepCopyInto

func (in *ObjectSetPhaseStatus) DeepCopyInto(out *ObjectSetPhaseStatus)

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

type ObjectSetProbe

type ObjectSetProbe struct {
	// Probe configuration parameters.
	Probes []Probe `json:"probes"`
	// Selector specifies which objects this probe should target.
	Selector ProbeSelector `json:"selector"`
}

ObjectSetProbe define how ObjectSets check their children for their status.

func (*ObjectSetProbe) DeepCopy

func (in *ObjectSetProbe) DeepCopy() *ObjectSetProbe

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

func (*ObjectSetProbe) DeepCopyInto

func (in *ObjectSetProbe) DeepCopyInto(out *ObjectSetProbe)

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

type ObjectSetSpec

type ObjectSetSpec struct {
	// Specifies the lifecycle state of the ObjectSet.
	// +kubebuilder:default="Active"
	// +kubebuilder:validation:Enum=Active;Paused;Archived
	LifecycleState ObjectSetLifecycleState `json:"lifecycleState,omitempty"`

	// Previous revisions of the ObjectSet to adopt objects from.
	Previous []PreviousRevisionReference `json:"previous,omitempty"`

	ObjectSetTemplateSpec `json:",inline"`
}

ObjectSetSpec defines the desired state of a ObjectSet. +kubebuilder:validation:XValidation:rule="(has(self.previous) == has(oldSelf.previous)) && (!has(self.previous) || (self.previous == oldSelf.previous))", message="previous is immutable" +kubebuilder:validation:XValidation:rule="(has(self.phases) == has(oldSelf.phases)) && (!has(self.phases) || (self.phases == oldSelf.phases))", message="phases is immutable" +kubebuilder:validation:XValidation:rule="(has(self.availabilityProbes) == has(oldSelf.availabilityProbes)) && (!has(self.availabilityProbes) || (self.availabilityProbes == oldSelf.availabilityProbes))", message="availabilityProbes is immutable" +kubebuilder:validation:XValidation:rule="(has(self.successDelaySeconds) == has(oldSelf.successDelaySeconds)) && (!has(self.successDelaySeconds) || (self.successDelaySeconds == oldSelf.successDelaySeconds))", message="successDelaySeconds is immutable"

func (*ObjectSetSpec) DeepCopy

func (in *ObjectSetSpec) DeepCopy() *ObjectSetSpec

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

func (*ObjectSetSpec) DeepCopyInto

func (in *ObjectSetSpec) DeepCopyInto(out *ObjectSetSpec)

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

type ObjectSetStatus

type ObjectSetStatus struct {
	// Conditions is a list of status conditions ths object is in.
	Conditions []metav1.Condition `json:"conditions,omitempty"`
	// Phase is not part of any API contract
	// it will go away as soon as kubectl can print conditions!
	// When evaluating object state in code, use .Conditions instead.
	Phase ObjectSetStatusPhase `json:"phase,omitempty"`
	// Computed revision number, monotonically increasing.
	Revision int64 `json:"revision,omitempty"`
	// Remote phases aka ObjectSetPhase objects.
	RemotePhases []RemotePhaseReference `json:"remotePhases,omitempty"`
	// References all objects controlled by this instance.
	ControllerOf []ControlledObjectReference `json:"controllerOf,omitempty"`
}

ObjectSetStatus defines the observed state of a ObjectSet.

func (*ObjectSetStatus) DeepCopy

func (in *ObjectSetStatus) DeepCopy() *ObjectSetStatus

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

func (*ObjectSetStatus) DeepCopyInto

func (in *ObjectSetStatus) DeepCopyInto(out *ObjectSetStatus)

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

type ObjectSetStatusPhase

type ObjectSetStatusPhase string

ObjectSetStatusPhase defines the status phase of an object set.

const (
	// Default phase, when object is created and has not been serviced by an controller.
	ObjectSetStatusPhasePending ObjectSetStatusPhase = "Pending"
	// Available maps to Available condition == True, if not overridden by a more specific status below.
	ObjectSetStatusPhaseAvailable ObjectSetStatusPhase = "Available"
	// NotReady maps to Available condition == False, if not overridden by a more specific status below.
	ObjectSetStatusPhaseNotReady ObjectSetStatusPhase = "NotReady"
	// Paused maps to the Paused condition.
	ObjectSetStatusPhasePaused ObjectSetStatusPhase = "Paused"
	// Archived maps to the Archived condition.
	ObjectSetStatusPhaseArchived ObjectSetStatusPhase = "Archived"
)

Well-known ObjectSet Phases for printing a Status in kubectl, see deprecation notice in ObjectSetStatus for details.

type ObjectSetTemplate

type ObjectSetTemplate struct {
	// Common Object Metadata.
	Metadata metav1.ObjectMeta `json:"metadata"`
	// ObjectSet specification.
	Spec ObjectSetTemplateSpec `json:"spec"`
}

ObjectSetTemplate describes the template to create new ObjectSets from.

func (*ObjectSetTemplate) DeepCopy

func (in *ObjectSetTemplate) DeepCopy() *ObjectSetTemplate

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

func (*ObjectSetTemplate) DeepCopyInto

func (in *ObjectSetTemplate) DeepCopyInto(out *ObjectSetTemplate)

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

type ObjectSetTemplatePhase

type ObjectSetTemplatePhase struct {
	// Name of the reconcile phase. Must be unique within a ObjectSet.
	Name string `json:"name"`
	// If non empty, the ObjectSet controller will delegate phase reconciliation
	// to another controller, by creating an ObjectSetPhase object. If set to the
	// string "default" the built-in Package Operator ObjectSetPhase controller
	// will reconcile the object in the same way the ObjectSet would. If set to
	// any other string, an out-of-tree controller needs to be present to handle
	// ObjectSetPhase objects.
	Class string `json:"class,omitempty"`
	// Objects belonging to this phase.
	Objects []ObjectSetObject `json:"objects,omitempty"`

	// References to ObjectSlices containing objects for this phase.
	Slices []string `json:"slices,omitempty"`
}

ObjectSetTemplatePhase configures the reconcile phase of ObjectSets.

func (*ObjectSetTemplatePhase) DeepCopy

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

func (*ObjectSetTemplatePhase) DeepCopyInto

func (in *ObjectSetTemplatePhase) DeepCopyInto(out *ObjectSetTemplatePhase)

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

type ObjectSetTemplateSpec

type ObjectSetTemplateSpec struct {
	// Reconcile phase configuration for a ObjectSet.
	// Phases will be reconciled in order and the contained objects checked
	// against given probes before continuing with the next phase.
	Phases []ObjectSetTemplatePhase `json:"phases,omitempty"`
	// Availability Probes check objects that are part of the package.
	// All probes need to succeed for a package to be considered Available.
	// Failing probes will prevent the reconciliation of objects in later phases.
	AvailabilityProbes []ObjectSetProbe `json:"availabilityProbes,omitempty"`
	// Success Delay Seconds applies a wait period from the time an
	// Object Set is available to the time it is marked as successful.
	// This can be used to prevent false reporting of success when
	// the underlying objects may initially satisfy the availability
	// probes, but are ultimately unstable.
	SuccessDelaySeconds int32 `json:"successDelaySeconds,omitempty"`
}

ObjectSetTemplateSpec defines an object set. WARNING: when modifying fields in ObjectSetTemplateSpec also update validation rules in (Cluster)ObjectSetSpec.

func (*ObjectSetTemplateSpec) DeepCopy

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

func (*ObjectSetTemplateSpec) DeepCopyInto

func (in *ObjectSetTemplateSpec) DeepCopyInto(out *ObjectSetTemplateSpec)

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

type ObjectSlice added in v1.1.0

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

	// +kubebuilder:validation:Required
	// +kubebuilder:validation:XValidation:rule="self == oldSelf", message="objects is immutable"
	// +kubebuilder:MaxItems=32
	Objects []ObjectSetObject `json:"objects"`
}

ObjectSlice is referenced by ObjectSets or ObjectDeployments and contain objects to limit the size of ObjectSets and ObjectDeployments when big packages are installed. This is necessary to work around the etcd object size limit of ~1.5MiB and to reduce load on the kube-apiserver. +kubebuilder:object:root=true +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp" +kubebuilder:resource:shortName{"objslice","osl"}

func (*ObjectSlice) DeepCopy added in v1.1.0

func (in *ObjectSlice) DeepCopy() *ObjectSlice

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

func (*ObjectSlice) DeepCopyInto added in v1.1.0

func (in *ObjectSlice) DeepCopyInto(out *ObjectSlice)

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

func (*ObjectSlice) DeepCopyObject added in v1.1.0

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

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

type ObjectSliceList added in v1.1.0

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

ObjectSliceList contains a list of ObjectSlices. +kubebuilder:object:root=true

func (*ObjectSliceList) DeepCopy added in v1.1.0

func (in *ObjectSliceList) DeepCopy() *ObjectSliceList

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

func (*ObjectSliceList) DeepCopyInto added in v1.1.0

func (in *ObjectSliceList) DeepCopyInto(out *ObjectSliceList)

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

func (*ObjectSliceList) DeepCopyObject added in v1.1.0

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

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

type ObjectTemplate added in v1.4.0

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

	Spec   ObjectTemplateSpec   `json:"spec,omitempty"`
	Status ObjectTemplateStatus `json:"status,omitempty"`
}

ObjectTemplate contain a go template of a Kubernetes manifest. This manifest is then templated with the sources provided in the .Spec.Sources. The sources can only come from objects within the same nampespace as the ObjectTemplate. +kubebuilder:object:root=true +kubebuilder:subresource:status +kubebuilder:resource:shortName={"objtmpl","ot"}

func (*ObjectTemplate) DeepCopy added in v1.4.0

func (in *ObjectTemplate) DeepCopy() *ObjectTemplate

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

func (*ObjectTemplate) DeepCopyInto added in v1.4.0

func (in *ObjectTemplate) DeepCopyInto(out *ObjectTemplate)

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

func (*ObjectTemplate) DeepCopyObject added in v1.4.0

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

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

type ObjectTemplateList added in v1.4.0

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

ObjectTemplateList contains a list of ObjectTemplates. +kubebuilder:object:root=true

func (*ObjectTemplateList) DeepCopy added in v1.4.0

func (in *ObjectTemplateList) DeepCopy() *ObjectTemplateList

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

func (*ObjectTemplateList) DeepCopyInto added in v1.4.0

func (in *ObjectTemplateList) DeepCopyInto(out *ObjectTemplateList)

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

func (*ObjectTemplateList) DeepCopyObject added in v1.4.0

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

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

type ObjectTemplateSource added in v1.4.0

type ObjectTemplateSource struct {
	APIVersion string                     `json:"apiVersion"`
	Kind       string                     `json:"kind"`
	Namespace  string                     `json:"namespace,omitempty"`
	Name       string                     `json:"name"`
	Items      []ObjectTemplateSourceItem `json:"items"`
	// Marks this source as optional.
	// The templated object will still be applied if optional sources are not found.
	// If the source object is created later on, it will be eventually picked up.
	Optional bool `json:"optional,omitempty"`
}

ObjectTemplateSource defines a source for a template.

func (*ObjectTemplateSource) DeepCopy added in v1.4.0

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

func (*ObjectTemplateSource) DeepCopyInto added in v1.4.0

func (in *ObjectTemplateSource) DeepCopyInto(out *ObjectTemplateSource)

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

type ObjectTemplateSourceItem added in v1.4.0

type ObjectTemplateSourceItem struct {
	// JSONPath to value in source object.
	Key string `json:"key"`
	// JSONPath to destination in which to store copy of the source value.
	Destination string `json:"destination"`
}

ObjectTemplateSourceItem defines a source item for an object template.

func (*ObjectTemplateSourceItem) DeepCopy added in v1.4.0

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

func (*ObjectTemplateSourceItem) DeepCopyInto added in v1.4.0

func (in *ObjectTemplateSourceItem) DeepCopyInto(out *ObjectTemplateSourceItem)

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

type ObjectTemplateSpec added in v1.4.0

type ObjectTemplateSpec struct {
	// Go template of a Kubernetes manifest
	Template string `json:"template"`

	// Objects in which configuration parameters are fetched
	Sources []ObjectTemplateSource `json:"sources"`
}

ObjectTemplateSpec specification.

func (*ObjectTemplateSpec) DeepCopy added in v1.4.0

func (in *ObjectTemplateSpec) DeepCopy() *ObjectTemplateSpec

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

func (*ObjectTemplateSpec) DeepCopyInto added in v1.4.0

func (in *ObjectTemplateSpec) DeepCopyInto(out *ObjectTemplateSpec)

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

type ObjectTemplateStatus added in v1.4.0

type ObjectTemplateStatus struct {
	// Conditions is a list of status conditions the templated object is in.
	Conditions []metav1.Condition `json:"conditions,omitempty"`
	// ControllerOf references the templated object.
	ControllerOf ControlledObjectReference `json:"controllerOf,omitempty"`
	// This field is not part of any API contract
	// it will go away as soon as kubectl can print conditions!
	// When evaluating object state in code, use .Conditions instead.
	Phase ObjectTemplateStatusPhase `json:"phase,omitempty"`
}

ObjectTemplateStatus defines the observed state of a ObjectTemplate ie the status of the templated object.

func (*ObjectTemplateStatus) DeepCopy added in v1.4.0

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

func (*ObjectTemplateStatus) DeepCopyInto added in v1.4.0

func (in *ObjectTemplateStatus) DeepCopyInto(out *ObjectTemplateStatus)

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

type ObjectTemplateStatusPhase added in v1.4.0

type ObjectTemplateStatusPhase string

ObjectTemplateStatusPhase defines the status phase of an object template.

const (
	ObjectTemplatePhasePending ObjectTemplateStatusPhase = "Pending"
	ObjectTemplatePhaseActive  ObjectTemplateStatusPhase = "Active"
	ObjectTemplatePhaseError   ObjectTemplateStatusPhase = "Error"
)

Well-known ObjectTemplates Phases for printing a Status in kubectl, see deprecation notice in ObjectTemplatesStatus for details.

type Package

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

	Spec PackageSpec `json:"spec,omitempty"`
	// +kubebuilder:default={phase: Pending}
	Status PackageStatus `json:"status,omitempty"`
}

Package defines a namespaced package installationn. +kubebuilder:object:root=true +kubebuilder:subresource:status +kubebuilder:resource:shortName=pkg +kubebuilder:printcolumn:name="Status",type="string",JSONPath=".status.phase" +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp"

func (*Package) DeepCopy

func (in *Package) DeepCopy() *Package

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

func (*Package) DeepCopyInto

func (in *Package) DeepCopyInto(out *Package)

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

func (*Package) DeepCopyObject

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

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

type PackageList

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

PackageList contains a list of Packages. +kubebuilder:object:root=true

func (*PackageList) DeepCopy

func (in *PackageList) DeepCopy() *PackageList

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

func (*PackageList) DeepCopyInto

func (in *PackageList) DeepCopyInto(out *PackageList)

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

func (*PackageList) DeepCopyObject

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

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

type PackageProbeKindSpec

type PackageProbeKindSpec struct {
	// Object Group to apply a probe to.
	// +example=apps
	Group string `json:"group"`
	// Object Kind to apply a probe to.
	// +example=Deployment
	Kind string `json:"kind"`
}

PackageProbeKindSpec package probe parameters. selects objects based on Kind and API Group.

func (*PackageProbeKindSpec) DeepCopy

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

func (*PackageProbeKindSpec) DeepCopyInto

func (in *PackageProbeKindSpec) DeepCopyInto(out *PackageProbeKindSpec)

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

type PackageSpec

type PackageSpec struct {
	// the image containing the contents of the package
	// this image will be unpacked by the package-loader to render
	// the ObjectDeployment for propagating the installation of the package.
	// +kubebuilder:validation:Required
	Image string `json:"image"`
	// Package configuration parameters.
	// +kubebuilder:pruning:PreserveUnknownFields
	Config *runtime.RawExtension `json:"config,omitempty"`
	// Desired component to deploy from multi-component packages.
	// +optional
	Component string `json:"component,omitempty"`
}

PackageSpec specifies a package.

func (*PackageSpec) DeepCopy

func (in *PackageSpec) DeepCopy() *PackageSpec

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

func (*PackageSpec) DeepCopyInto

func (in *PackageSpec) DeepCopyInto(out *PackageSpec)

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

type PackageStatus

type PackageStatus struct {
	// Conditions is a list of status conditions ths object is in.
	Conditions []metav1.Condition `json:"conditions,omitempty"`
	// This field is not part of any API contract
	// it will go away as soon as kubectl can print conditions!
	// When evaluating object state in code, use .Conditions instead.
	Phase PackageStatusPhase `json:"phase,omitempty"`
	// Hash of image + config that was successfully unpacked.
	UnpackedHash string `json:"unpackedHash,omitempty"`
	// Package revision as reported by the ObjectDeployment.
	Revision int64 `json:"revision,omitempty"`
}

PackageStatus defines the observed state of a Package.

func (*PackageStatus) DeepCopy

func (in *PackageStatus) DeepCopy() *PackageStatus

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

func (*PackageStatus) DeepCopyInto

func (in *PackageStatus) DeepCopyInto(out *PackageStatus)

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

type PackageStatusPhase

type PackageStatusPhase string

PackageStatusPhase defines a status phase of a package.

const (
	PackagePhasePending     PackageStatusPhase = "Pending"
	PackagePhaseAvailable   PackageStatusPhase = "Available"
	PackagePhaseProgressing PackageStatusPhase = "Progressing"
	PackagePhaseUnpacking   PackageStatusPhase = "Unpacking"
	PackagePhaseNotReady    PackageStatusPhase = "NotReady"
	PackagePhaseInvalid     PackageStatusPhase = "Invalid"
)

Well-known Package Phases for printing a Status in kubectl, see deprecation notice in PackageStatus for details.

type PreviousRevisionReference

type PreviousRevisionReference struct {
	// Name of a previous revision.
	// +example=previous-revision
	Name string `json:"name"`
}

PreviousRevisionReference references a previous revision of an ObjectSet or ClusterObjectSet.

func (*PreviousRevisionReference) DeepCopy

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

func (*PreviousRevisionReference) DeepCopyInto

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

type Probe

type Probe struct {
	Condition   *ProbeConditionSpec   `json:"condition,omitempty"`
	FieldsEqual *ProbeFieldsEqualSpec `json:"fieldsEqual,omitempty"`
	CEL         *ProbeCELSpec         `json:"cel,omitempty"`
}

Probe defines probe parameters. Only one can be filled.

func (*Probe) DeepCopy

func (in *Probe) DeepCopy() *Probe

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

func (*Probe) DeepCopyInto

func (in *Probe) DeepCopyInto(out *Probe)

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

type ProbeCELSpec added in v1.8.1

type ProbeCELSpec struct {
	// CEL rule to evaluate.
	// +example=self.metadata.name == "Hans"
	Rule string `json:"rule"`
	// Error message to output if rule evaluates to false.
	// +example=Object must be named Hans
	Message string `json:"message"`
}

ProbeCELSpec uses Common Expression Language (CEL) to probe an object. CEL rules have to evaluate to a boolean to be valid. See: https://kubernetes.io/docs/reference/using-api/cel https://github.com/google/cel-go

func (*ProbeCELSpec) DeepCopy added in v1.8.1

func (in *ProbeCELSpec) DeepCopy() *ProbeCELSpec

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

func (*ProbeCELSpec) DeepCopyInto added in v1.8.1

func (in *ProbeCELSpec) DeepCopyInto(out *ProbeCELSpec)

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

type ProbeConditionSpec

type ProbeConditionSpec struct {
	// Condition type to probe for.
	// +example=Available
	Type string `json:"type"`
	// Condition status to probe for.
	// +kubebuilder:default="True"
	Status string `json:"status"`
}

ProbeConditionSpec checks whether or not the object reports a condition with given type and status.

func (*ProbeConditionSpec) DeepCopy

func (in *ProbeConditionSpec) DeepCopy() *ProbeConditionSpec

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

func (*ProbeConditionSpec) DeepCopyInto

func (in *ProbeConditionSpec) DeepCopyInto(out *ProbeConditionSpec)

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

type ProbeFieldsEqualSpec

type ProbeFieldsEqualSpec struct {
	// First field for comparison.
	// +example=.spec.fieldA
	FieldA string `json:"fieldA"`
	// Second field for comparison.
	// +example=.status.fieldB
	FieldB string `json:"fieldB"`
}

ProbeFieldsEqualSpec compares two fields specified by JSON Paths.

func (*ProbeFieldsEqualSpec) DeepCopy

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

func (*ProbeFieldsEqualSpec) DeepCopyInto

func (in *ProbeFieldsEqualSpec) DeepCopyInto(out *ProbeFieldsEqualSpec)

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

type ProbeSelector

type ProbeSelector struct {
	// Kind and API Group of the object to probe.
	Kind *PackageProbeKindSpec `json:"kind"`
	// Further sub-selects objects based on a Label Selector.
	// +example={matchLabels: {app.kubernetes.io/name: example-operator}}
	Selector *metav1.LabelSelector `json:"selector,omitempty"`
}

ProbeSelector selects a subset of objects to apply probes to. e.g. ensures that probes defined for apps/Deployments are not checked against ConfigMaps.

func (*ProbeSelector) DeepCopy

func (in *ProbeSelector) DeepCopy() *ProbeSelector

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

func (*ProbeSelector) DeepCopyInto

func (in *ProbeSelector) DeepCopyInto(out *ProbeSelector)

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

type RemotePhaseReference

type RemotePhaseReference struct {
	Name string    `json:"name"`
	UID  types.UID `json:"uid"`
}

RemotePhaseReference remote phases aka ObjectSetPhase/ClusterObjectSetPhase objects to which a phase is delegated.

func (*RemotePhaseReference) DeepCopy

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

func (*RemotePhaseReference) DeepCopyInto

func (in *RemotePhaseReference) DeepCopyInto(out *RemotePhaseReference)

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