v1

package
v0.3.0 Latest Latest
Warning

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

Go to latest
Published: Jan 24, 2026 License: Apache-2.0 Imports: 4 Imported by: 0

Documentation

Overview

Package v1 contains API Schema definitions for the sync v1 API group +kubebuilder:object:generate=true +groupName=sync.konductor.io

Index

Constants

This section is empty.

Variables

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

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

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

	Spec   ArrivalSpec   `json:"spec,omitempty"`
	Status ArrivalStatus `json:"status,omitempty"`
}

Arrival is the Schema for the arrivals API

func (*Arrival) DeepCopy

func (in *Arrival) DeepCopy() *Arrival

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

func (*Arrival) DeepCopyInto

func (in *Arrival) DeepCopyInto(out *Arrival)

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

func (*Arrival) DeepCopyObject

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

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

type ArrivalList

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

ArrivalList contains a list of Arrival

func (*ArrivalList) DeepCopy

func (in *ArrivalList) DeepCopy() *ArrivalList

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

func (*ArrivalList) DeepCopyInto

func (in *ArrivalList) DeepCopyInto(out *ArrivalList)

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

func (*ArrivalList) DeepCopyObject

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

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

type ArrivalPhase

type ArrivalPhase string

ArrivalPhase represents the phase of an Arrival

const (
	ArrivalPhaseRecorded ArrivalPhase = "Recorded"
)

type ArrivalSpec

type ArrivalSpec struct {
	// Barrier is the name of the barrier this arrival belongs to
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinLength=1
	// +kubebuilder:validation:MaxLength=63
	Barrier string `json:"barrier"`

	// Holder is the pod/job that has arrived
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinLength=1
	// +kubebuilder:validation:MaxLength=253
	Holder string `json:"holder"`
}

ArrivalSpec defines the desired state of Arrival

func (*ArrivalSpec) DeepCopy

func (in *ArrivalSpec) DeepCopy() *ArrivalSpec

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

func (*ArrivalSpec) DeepCopyInto

func (in *ArrivalSpec) DeepCopyInto(out *ArrivalSpec)

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

type ArrivalStatus

type ArrivalStatus struct {
	// Phase represents the current state of the arrival
	// +kubebuilder:default=Recorded
	Phase ArrivalPhase `json:"phase"`

	// ArrivedAt is when the arrival was recorded
	// +optional
	ArrivedAt *metav1.Time `json:"arrivedAt,omitempty"`

	// Conditions represent the latest available observations
	Conditions []metav1.Condition `json:"conditions,omitempty"`
}

ArrivalStatus defines the observed state of Arrival

func (*ArrivalStatus) DeepCopy

func (in *ArrivalStatus) DeepCopy() *ArrivalStatus

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

func (*ArrivalStatus) DeepCopyInto

func (in *ArrivalStatus) DeepCopyInto(out *ArrivalStatus)

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

type Barrier

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

	Spec   BarrierSpec   `json:"spec,omitempty"`
	Status BarrierStatus `json:"status,omitempty"`
}

Barrier is the Schema for the barriers API

func (*Barrier) DeepCopy

func (in *Barrier) DeepCopy() *Barrier

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

func (*Barrier) DeepCopyInto

func (in *Barrier) DeepCopyInto(out *Barrier)

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

func (*Barrier) DeepCopyObject

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

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

type BarrierList

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

BarrierList contains a list of Barrier

func (*BarrierList) DeepCopy

func (in *BarrierList) DeepCopy() *BarrierList

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

func (*BarrierList) DeepCopyInto

func (in *BarrierList) DeepCopyInto(out *BarrierList)

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

func (*BarrierList) DeepCopyObject

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

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

type BarrierPhase

type BarrierPhase string

BarrierPhase represents the phase of a Barrier

const (
	BarrierPhaseWaiting BarrierPhase = "Waiting"
	BarrierPhaseOpen    BarrierPhase = "Open"
	BarrierPhaseFailed  BarrierPhase = "Failed"
)

type BarrierSpec

type BarrierSpec struct {
	// Expected is the number of arrivals required to open the barrier
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Minimum=1
	Expected int32 `json:"expected"`

	// Timeout is the maximum time to wait for all arrivals
	// +optional
	Timeout *metav1.Duration `json:"timeout,omitempty"`

	// Quorum is the minimum number of arrivals to open (optional)
	// +optional
	// +kubebuilder:validation:Minimum=1
	Quorum *int32 `json:"quorum,omitempty"`
}

BarrierSpec defines the desired state of Barrier +kubebuilder:validation:XValidation:rule="!has(self.quorum) || self.quorum <= self.expected",message="quorum must not exceed expected" +kubebuilder:validation:XValidation:rule="!has(self.timeout) || self.timeout.matches(r'^([0-9]+(\\.[0-9]+)?(ns|us|µs|ms|s|m|h))+$')",message="timeout must be a valid duration (e.g., 30s, 5m, 1h)"

func (*BarrierSpec) DeepCopy

func (in *BarrierSpec) DeepCopy() *BarrierSpec

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

func (*BarrierSpec) DeepCopyInto

func (in *BarrierSpec) DeepCopyInto(out *BarrierSpec)

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

type BarrierStatus

type BarrierStatus struct {
	// Arrived is the current number of arrivals
	Arrived int32 `json:"arrived"`

	// Phase represents the current state of the barrier
	Phase BarrierPhase `json:"phase"`

	// Arrivals tracks which pods have arrived
	Arrivals []string `json:"arrivals,omitempty"`

	// OpenedAt is when the barrier opened
	// +optional
	OpenedAt *metav1.Time `json:"openedAt,omitempty"`

	// Conditions represent the latest available observations
	Conditions []metav1.Condition `json:"conditions,omitempty"`
}

BarrierStatus defines the observed state of Barrier

func (*BarrierStatus) DeepCopy

func (in *BarrierStatus) DeepCopy() *BarrierStatus

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

func (*BarrierStatus) DeepCopyInto

func (in *BarrierStatus) DeepCopyInto(out *BarrierStatus)

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

type Gate

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

	Spec   GateSpec   `json:"spec,omitempty"`
	Status GateStatus `json:"status,omitempty"`
}

Gate is the Schema for the gates API

func (*Gate) DeepCopy

func (in *Gate) DeepCopy() *Gate

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

func (*Gate) DeepCopyInto

func (in *Gate) DeepCopyInto(out *Gate)

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

func (*Gate) DeepCopyObject

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

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

type GateCondition

type GateCondition struct {
	// Type of condition (Job, Semaphore, Barrier, Lease)
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Enum=Job;Semaphore;Barrier;Lease;Gate;Mutex;Once;WaitGroup
	Type string `json:"type"`

	// Name of the resource to check
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinLength=1
	Name string `json:"name"`

	// Namespace of the resource (optional, defaults to gate's namespace)
	// +optional
	Namespace string `json:"namespace,omitempty"`

	// State required for the condition to be met
	// For Job: Complete, Failed, or Active
	// For Barrier: Open or Closed
	// For Lease: Acquired or Available
	// For Gate: Open or Closed
	// For Mutex: Locked or Unlocked
	// For Once: Done or Pending
	// For WaitGroup: Zero or NonZero
	// +optional
	// +kubebuilder:validation:Enum=Complete;Failed;Active;Open;Closed;Acquired;Available;Locked;Unlocked;Done;Pending;Zero;NonZero
	State string `json:"state,omitempty"`

	// Value for numeric conditions (e.g., semaphore permits)
	// +optional
	Value *int32 `json:"value,omitempty"`
}

GateCondition defines a condition that must be met

func (*GateCondition) DeepCopy

func (in *GateCondition) DeepCopy() *GateCondition

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

func (*GateCondition) DeepCopyInto

func (in *GateCondition) DeepCopyInto(out *GateCondition)

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

type GateConditionStatus

type GateConditionStatus struct {
	// Type of condition
	Type string `json:"type"`

	// Name of the resource
	Name string `json:"name"`

	// Met indicates if the condition is satisfied
	Met bool `json:"met"`

	// Message provides details about the condition status
	Message string `json:"message,omitempty"`
}

GateConditionStatus tracks the status of a gate condition

func (*GateConditionStatus) DeepCopy

func (in *GateConditionStatus) DeepCopy() *GateConditionStatus

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

func (*GateConditionStatus) DeepCopyInto

func (in *GateConditionStatus) DeepCopyInto(out *GateConditionStatus)

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

type GateList

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

GateList contains a list of Gate

func (*GateList) DeepCopy

func (in *GateList) DeepCopy() *GateList

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

func (*GateList) DeepCopyInto

func (in *GateList) DeepCopyInto(out *GateList)

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

func (*GateList) DeepCopyObject

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

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

type GatePhase

type GatePhase string

GatePhase represents the phase of a Gate

const (
	GatePhaseWaiting GatePhase = "Waiting"
	GatePhaseOpen    GatePhase = "Open"
	GatePhaseFailed  GatePhase = "Failed"
)

type GateSpec

type GateSpec struct {
	// Conditions that must be met for the gate to open
	// +kubebuilder:validation:MinItems=1
	Conditions []GateCondition `json:"conditions"`

	// Timeout for waiting for conditions
	// +optional
	// +kubebuilder:validation:Type=string
	// +kubebuilder:validation:Format=duration
	Timeout *metav1.Duration `json:"timeout,omitempty"`
}

GateSpec defines the desired state of Gate

func (*GateSpec) DeepCopy

func (in *GateSpec) DeepCopy() *GateSpec

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

func (*GateSpec) DeepCopyInto

func (in *GateSpec) DeepCopyInto(out *GateSpec)

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

type GateStatus

type GateStatus struct {
	// Phase represents the current state of the gate
	Phase GatePhase `json:"phase"`

	// ConditionStatuses tracks the status of each condition
	ConditionStatuses []GateConditionStatus `json:"conditionStatuses,omitempty"`

	// OpenedAt is when the gate opened
	// +optional
	OpenedAt *metav1.Time `json:"openedAt,omitempty"`

	// Conditions represent the latest available observations
	Conditions []metav1.Condition `json:"conditions,omitempty"`
}

GateStatus defines the observed state of Gate

func (*GateStatus) DeepCopy

func (in *GateStatus) DeepCopy() *GateStatus

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

func (*GateStatus) DeepCopyInto

func (in *GateStatus) DeepCopyInto(out *GateStatus)

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

type Lease

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

	Spec   LeaseSpec   `json:"spec,omitempty"`
	Status LeaseStatus `json:"status,omitempty"`
}

Lease is the Schema for the leases API

func (*Lease) DeepCopy

func (in *Lease) DeepCopy() *Lease

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

func (*Lease) DeepCopyInto

func (in *Lease) DeepCopyInto(out *Lease)

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

func (*Lease) DeepCopyObject

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

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

type LeaseList

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

LeaseList contains a list of Lease

func (*LeaseList) DeepCopy

func (in *LeaseList) DeepCopy() *LeaseList

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

func (*LeaseList) DeepCopyInto

func (in *LeaseList) DeepCopyInto(out *LeaseList)

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

func (*LeaseList) DeepCopyObject

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

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

type LeasePhase

type LeasePhase string

LeasePhase represents the phase of a Lease

const (
	LeasePhaseAvailable LeasePhase = "Available"
	LeasePhaseHeld      LeasePhase = "Held"
	LeasePhaseExpired   LeasePhase = "Expired"
)

type LeaseRequest

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

	Spec   LeaseRequestSpec   `json:"spec"`
	Status LeaseRequestStatus `json:"status,omitempty"`
}

LeaseRequest is the Schema for the lease requests API

func (*LeaseRequest) DeepCopy

func (in *LeaseRequest) DeepCopy() *LeaseRequest

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

func (*LeaseRequest) DeepCopyInto

func (in *LeaseRequest) DeepCopyInto(out *LeaseRequest)

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

func (*LeaseRequest) DeepCopyObject

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

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

type LeaseRequestList

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

LeaseRequestList contains a list of LeaseRequest

func (*LeaseRequestList) DeepCopy

func (in *LeaseRequestList) DeepCopy() *LeaseRequestList

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

func (*LeaseRequestList) DeepCopyInto

func (in *LeaseRequestList) DeepCopyInto(out *LeaseRequestList)

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

func (*LeaseRequestList) DeepCopyObject

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

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

type LeaseRequestPhase

type LeaseRequestPhase string

LeaseRequestPhase represents the phase of a LeaseRequest

const (
	LeaseRequestPhasePending LeaseRequestPhase = "Pending"
	LeaseRequestPhaseGranted LeaseRequestPhase = "Granted"
	LeaseRequestPhaseDenied  LeaseRequestPhase = "Denied"
)

type LeaseRequestSpec

type LeaseRequestSpec struct {
	// Lease is the name of the lease being requested
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinLength=1
	Lease string `json:"lease"`

	// Holder is the pod/job requesting the lease
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinLength=1
	Holder string `json:"holder"`

	// Priority for lease acquisition (higher wins)
	// +optional
	// +kubebuilder:validation:Minimum=0
	Priority *int32 `json:"priority,omitempty"`

	// TTL is the time-to-live for the lease request
	// +optional
	TTL *metav1.Duration `json:"ttl,omitempty"`
}

LeaseRequestSpec defines the desired state of LeaseRequest +kubebuilder:validation:XValidation:rule="!has(self.ttl) || self.ttl.matches('^([0-9]+(\\.[0-9]+)?(ns|us|µs|ms|s|m|h))+$')",message="ttl must be a valid duration (e.g., 30s, 5m, 1h)"

func (*LeaseRequestSpec) DeepCopy

func (in *LeaseRequestSpec) DeepCopy() *LeaseRequestSpec

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

func (*LeaseRequestSpec) DeepCopyInto

func (in *LeaseRequestSpec) DeepCopyInto(out *LeaseRequestSpec)

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

type LeaseRequestStatus

type LeaseRequestStatus struct {
	// Phase represents the current state of the request
	// +kubebuilder:validation:Enum=Pending;Granted;Denied
	Phase LeaseRequestPhase `json:"phase"`

	// RequestedAt is when the request was made
	// +optional
	RequestedAt *metav1.Time `json:"requestedAt,omitempty"`

	// Conditions represent the latest available observations
	Conditions []metav1.Condition `json:"conditions,omitempty"`
}

LeaseRequestStatus defines the observed state of LeaseRequest

func (*LeaseRequestStatus) DeepCopy

func (in *LeaseRequestStatus) DeepCopy() *LeaseRequestStatus

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

func (*LeaseRequestStatus) DeepCopyInto

func (in *LeaseRequestStatus) DeepCopyInto(out *LeaseRequestStatus)

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

type LeaseSpec

type LeaseSpec struct {
	// TTL is the time-to-live for the lease
	// +optional
	TTL *metav1.Duration `json:"ttl,omitempty"`

	// Priority for lease acquisition (higher wins)
	// +optional
	Priority *int32 `json:"priority,omitempty"`
}

LeaseSpec defines the desired state of Lease +kubebuilder:validation:XValidation:rule="!has(self.ttl) || self.ttl.matches('^([0-9]+(\\.[0-9]+)?(ns|us|µs|ms|s|m|h))+$')",message="ttl must be a valid duration (e.g., 30s, 5m, 1h)"

func (*LeaseSpec) DeepCopy

func (in *LeaseSpec) DeepCopy() *LeaseSpec

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

func (*LeaseSpec) DeepCopyInto

func (in *LeaseSpec) DeepCopyInto(out *LeaseSpec)

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

type LeaseStatus

type LeaseStatus struct {
	// Holder is the current lease holder
	// +optional
	Holder string `json:"holder,omitempty"`

	// AcquiredAt is when the lease was acquired
	// +optional
	AcquiredAt *metav1.Time `json:"acquiredAt,omitempty"`

	// ExpiresAt is when the lease expires
	// +optional
	ExpiresAt *metav1.Time `json:"expiresAt,omitempty"`

	// Phase represents the current state of the lease
	Phase LeasePhase `json:"phase"`

	// RenewCount tracks the number of times the lease has been renewed
	// +optional
	RenewCount int32 `json:"renewCount"`

	// Conditions represent the latest available observations
	Conditions []metav1.Condition `json:"conditions,omitempty"`
}

LeaseStatus defines the observed state of Lease

func (*LeaseStatus) DeepCopy

func (in *LeaseStatus) DeepCopy() *LeaseStatus

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

func (*LeaseStatus) DeepCopyInto

func (in *LeaseStatus) DeepCopyInto(out *LeaseStatus)

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

type Mutex added in v0.2.0

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

	Spec   MutexSpec   `json:"spec,omitempty"`
	Status MutexStatus `json:"status,omitempty"`
}

Mutex is the Schema for the mutexes API

func (*Mutex) DeepCopy added in v0.2.0

func (in *Mutex) DeepCopy() *Mutex

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

func (*Mutex) DeepCopyInto added in v0.2.0

func (in *Mutex) DeepCopyInto(out *Mutex)

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

func (*Mutex) DeepCopyObject added in v0.2.0

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

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

type MutexList added in v0.2.0

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

MutexList contains a list of Mutex

func (*MutexList) DeepCopy added in v0.2.0

func (in *MutexList) DeepCopy() *MutexList

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

func (*MutexList) DeepCopyInto added in v0.2.0

func (in *MutexList) DeepCopyInto(out *MutexList)

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

func (*MutexList) DeepCopyObject added in v0.2.0

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

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

type MutexPhase added in v0.2.0

type MutexPhase string

MutexPhase represents the phase of a Mutex

const (
	MutexPhaseUnlocked MutexPhase = "Unlocked"
	MutexPhaseLocked   MutexPhase = "Locked"
)

type MutexSpec added in v0.2.0

type MutexSpec struct {
	// TTL is the optional time-to-live for automatic unlock
	// +optional
	TTL *metav1.Duration `json:"ttl,omitempty"`
}

MutexSpec defines the desired state of Mutex

func (*MutexSpec) DeepCopy added in v0.2.0

func (in *MutexSpec) DeepCopy() *MutexSpec

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

func (*MutexSpec) DeepCopyInto added in v0.2.0

func (in *MutexSpec) DeepCopyInto(out *MutexSpec)

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

type MutexStatus added in v0.2.0

type MutexStatus struct {
	// Holder is the current lock holder
	// +optional
	Holder string `json:"holder,omitempty"`

	// LockedAt is when the mutex was locked
	// +optional
	LockedAt *metav1.Time `json:"lockedAt,omitempty"`

	// ExpiresAt is when the mutex expires (if TTL is set)
	// +optional
	ExpiresAt *metav1.Time `json:"expiresAt,omitempty"`

	// Phase represents the current state of the mutex
	// +kubebuilder:validation:Enum=Unlocked;Locked
	Phase MutexPhase `json:"phase"`

	// Conditions represent the latest available observations
	Conditions []metav1.Condition `json:"conditions,omitempty"`
}

MutexStatus defines the observed state of Mutex

func (*MutexStatus) DeepCopy added in v0.2.0

func (in *MutexStatus) DeepCopy() *MutexStatus

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

func (*MutexStatus) DeepCopyInto added in v0.2.0

func (in *MutexStatus) DeepCopyInto(out *MutexStatus)

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

type Once added in v0.3.0

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

	Spec   OnceSpec   `json:"spec,omitempty"`
	Status OnceStatus `json:"status,omitempty"`
}

Once is the Schema for the onces API

func (*Once) DeepCopy added in v0.3.0

func (in *Once) DeepCopy() *Once

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

func (*Once) DeepCopyInto added in v0.3.0

func (in *Once) DeepCopyInto(out *Once)

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

func (*Once) DeepCopyObject added in v0.3.0

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

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

type OnceList added in v0.3.0

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

OnceList contains a list of Once

func (*OnceList) DeepCopy added in v0.3.0

func (in *OnceList) DeepCopy() *OnceList

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

func (*OnceList) DeepCopyInto added in v0.3.0

func (in *OnceList) DeepCopyInto(out *OnceList)

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

func (*OnceList) DeepCopyObject added in v0.3.0

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

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

type OncePhase added in v0.3.0

type OncePhase string

OncePhase represents the phase of a Once

const (
	OncePhasePending  OncePhase = "Pending"
	OncePhaseExecuted OncePhase = "Executed"
)

type OnceSpec added in v0.3.0

type OnceSpec struct {
	// TTL is the optional time-to-live for cleanup
	// +optional
	TTL *metav1.Duration `json:"ttl,omitempty"`
}

OnceSpec defines the desired state of Once

func (*OnceSpec) DeepCopy added in v0.3.0

func (in *OnceSpec) DeepCopy() *OnceSpec

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

func (*OnceSpec) DeepCopyInto added in v0.3.0

func (in *OnceSpec) DeepCopyInto(out *OnceSpec)

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

type OnceStatus added in v0.3.0

type OnceStatus struct {
	// Executed indicates if the action has been executed
	Executed bool `json:"executed"`

	// Executor is who executed the action
	// +optional
	Executor string `json:"executor,omitempty"`

	// ExecutedAt is when the action was executed
	// +optional
	ExecutedAt *metav1.Time `json:"executedAt,omitempty"`

	// Phase represents the current state
	Phase OncePhase `json:"phase"`

	// Conditions represent the latest available observations
	Conditions []metav1.Condition `json:"conditions,omitempty"`
}

OnceStatus defines the observed state of Once

func (*OnceStatus) DeepCopy added in v0.3.0

func (in *OnceStatus) DeepCopy() *OnceStatus

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

func (*OnceStatus) DeepCopyInto added in v0.3.0

func (in *OnceStatus) DeepCopyInto(out *OnceStatus)

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

type Permit

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

	Spec   PermitSpec   `json:"spec"`
	Status PermitStatus `json:"status,omitempty"`
}

Permit is the Schema for the permits API

func (*Permit) DeepCopy

func (in *Permit) DeepCopy() *Permit

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

func (*Permit) DeepCopyInto

func (in *Permit) DeepCopyInto(out *Permit)

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

func (*Permit) DeepCopyObject

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

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

type PermitList

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

PermitList contains a list of Permit

func (*PermitList) DeepCopy

func (in *PermitList) DeepCopy() *PermitList

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

func (*PermitList) DeepCopyInto

func (in *PermitList) DeepCopyInto(out *PermitList)

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

func (*PermitList) DeepCopyObject

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

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

type PermitPhase

type PermitPhase string

PermitPhase represents the phase of a Permit

const (
	PermitPhaseGranted PermitPhase = "Granted"
	PermitPhaseDenied  PermitPhase = "Denied"
	PermitPhaseExpired PermitPhase = "Expired"
)

type PermitSpec

type PermitSpec struct {
	// Semaphore is the name of the semaphore this permit belongs to
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinLength=1
	Semaphore string `json:"semaphore"`

	// Holder is the pod/job that owns this permit
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinLength=1
	Holder string `json:"holder"`

	// TTL is the time-to-live for this permit
	// +optional
	TTL *metav1.Duration `json:"ttl,omitempty"`
}

PermitSpec defines the desired state of Permit +kubebuilder:validation:XValidation:rule="!has(self.ttl) || self.ttl.matches('^([0-9]+(\\.[0-9]+)?(ns|us|µs|ms|s|m|h))+$')",message="ttl must be a valid duration (e.g., 30s, 5m, 1h)"

func (*PermitSpec) DeepCopy

func (in *PermitSpec) DeepCopy() *PermitSpec

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

func (*PermitSpec) DeepCopyInto

func (in *PermitSpec) DeepCopyInto(out *PermitSpec)

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

type PermitStatus

type PermitStatus struct {
	// Phase represents the current state of the permit
	Phase PermitPhase `json:"phase"`

	// AcquiredAt is when the permit was acquired
	// +optional
	AcquiredAt *metav1.Time `json:"acquiredAt,omitempty"`

	// ExpiresAt is when the permit expires
	// +optional
	ExpiresAt *metav1.Time `json:"expiresAt,omitempty"`

	// Conditions represent the latest available observations
	Conditions []metav1.Condition `json:"conditions,omitempty"`
}

PermitStatus defines the observed state of Permit

func (*PermitStatus) DeepCopy

func (in *PermitStatus) DeepCopy() *PermitStatus

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

func (*PermitStatus) DeepCopyInto

func (in *PermitStatus) DeepCopyInto(out *PermitStatus)

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

type RWMutex added in v0.3.0

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

	Spec   RWMutexSpec   `json:"spec,omitempty"`
	Status RWMutexStatus `json:"status,omitempty"`
}

RWMutex is the Schema for the rwmutexes API

func (*RWMutex) DeepCopy added in v0.3.0

func (in *RWMutex) DeepCopy() *RWMutex

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

func (*RWMutex) DeepCopyInto added in v0.3.0

func (in *RWMutex) DeepCopyInto(out *RWMutex)

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

func (*RWMutex) DeepCopyObject added in v0.3.0

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

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

type RWMutexList added in v0.3.0

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

RWMutexList contains a list of RWMutex

func (*RWMutexList) DeepCopy added in v0.3.0

func (in *RWMutexList) DeepCopy() *RWMutexList

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

func (*RWMutexList) DeepCopyInto added in v0.3.0

func (in *RWMutexList) DeepCopyInto(out *RWMutexList)

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

func (*RWMutexList) DeepCopyObject added in v0.3.0

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

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

type RWMutexPhase added in v0.3.0

type RWMutexPhase string

RWMutexPhase represents the phase of a RWMutex

const (
	RWMutexPhaseUnlocked    RWMutexPhase = "Unlocked"
	RWMutexPhaseReadLocked  RWMutexPhase = "ReadLocked"
	RWMutexPhaseWriteLocked RWMutexPhase = "WriteLocked"
)

type RWMutexSpec added in v0.3.0

type RWMutexSpec struct {
	// TTL is the optional time-to-live for automatic unlock
	// +optional
	// +kubebuilder:validation:Type=string
	// +kubebuilder:validation:Format=duration
	TTL *metav1.Duration `json:"ttl,omitempty"`
}

RWMutexSpec defines the desired state of RWMutex

func (*RWMutexSpec) DeepCopy added in v0.3.0

func (in *RWMutexSpec) DeepCopy() *RWMutexSpec

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

func (*RWMutexSpec) DeepCopyInto added in v0.3.0

func (in *RWMutexSpec) DeepCopyInto(out *RWMutexSpec)

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

type RWMutexStatus added in v0.3.0

type RWMutexStatus struct {
	// WriteHolder is the current write lock holder
	// +optional
	WriteHolder string `json:"writeHolder,omitempty"`

	// ReadHolders is the list of current read lock holders
	// +optional
	ReadHolders []string `json:"readHolders,omitempty"`

	// LockedAt is when the lock was acquired
	// +optional
	LockedAt *metav1.Time `json:"lockedAt,omitempty"`

	// ExpiresAt is when the lock expires (if TTL is set)
	// +optional
	ExpiresAt *metav1.Time `json:"expiresAt,omitempty"`

	// Phase represents the current state of the rwmutex
	Phase RWMutexPhase `json:"phase"`

	// Conditions represent the latest available observations
	Conditions []metav1.Condition `json:"conditions,omitempty"`
}

RWMutexStatus defines the observed state of RWMutex

func (*RWMutexStatus) DeepCopy added in v0.3.0

func (in *RWMutexStatus) DeepCopy() *RWMutexStatus

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

func (*RWMutexStatus) DeepCopyInto added in v0.3.0

func (in *RWMutexStatus) DeepCopyInto(out *RWMutexStatus)

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

type Semaphore

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

	Spec   SemaphoreSpec   `json:"spec,omitempty"`
	Status SemaphoreStatus `json:"status,omitempty"`
}

Semaphore is the Schema for the semaphores API

func (*Semaphore) DeepCopy

func (in *Semaphore) DeepCopy() *Semaphore

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

func (*Semaphore) DeepCopyInto

func (in *Semaphore) DeepCopyInto(out *Semaphore)

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

func (*Semaphore) DeepCopyObject

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

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

type SemaphoreList

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

SemaphoreList contains a list of Semaphore

func (*SemaphoreList) DeepCopy

func (in *SemaphoreList) DeepCopy() *SemaphoreList

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

func (*SemaphoreList) DeepCopyInto

func (in *SemaphoreList) DeepCopyInto(out *SemaphoreList)

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

func (*SemaphoreList) DeepCopyObject

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

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

type SemaphorePhase

type SemaphorePhase string

SemaphorePhase represents the phase of a Semaphore

const (
	SemaphorePhaseReady       SemaphorePhase = "Ready"
	SemaphorePhaseFull        SemaphorePhase = "Full"
	SemaphorePhaseUnavailable SemaphorePhase = "Unavailable"
)

type SemaphoreSpec

type SemaphoreSpec struct {
	// Permits is the maximum number of concurrent permits allowed
	// +kubebuilder:validation:Minimum=1
	Permits int32 `json:"permits"`

	// TTL is the default time-to-live for permits
	// +optional
	TTL *metav1.Duration `json:"ttl,omitempty"`
}

SemaphoreSpec defines the desired state of Semaphore

func (*SemaphoreSpec) DeepCopy

func (in *SemaphoreSpec) DeepCopy() *SemaphoreSpec

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

func (*SemaphoreSpec) DeepCopyInto

func (in *SemaphoreSpec) DeepCopyInto(out *SemaphoreSpec)

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

type SemaphoreStatus

type SemaphoreStatus struct {
	// InUse is the current number of permits in use
	// +kubebuilder:validation:Minimum=0
	InUse int32 `json:"inUse"`

	// Available is the number of available permits
	// +kubebuilder:validation:Minimum=0
	Available int32 `json:"available"`

	// Phase represents the current state of the semaphore
	Phase SemaphorePhase `json:"phase"`

	// Conditions represent the latest available observations
	Conditions []metav1.Condition `json:"conditions,omitempty"`
}

SemaphoreStatus defines the observed state of Semaphore +kubebuilder:validation:XValidation:rule="self.inUse >= 0 && self.available >= 0",message="inUse and available must be non-negative"

func (*SemaphoreStatus) DeepCopy

func (in *SemaphoreStatus) DeepCopy() *SemaphoreStatus

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

func (*SemaphoreStatus) DeepCopyInto

func (in *SemaphoreStatus) DeepCopyInto(out *SemaphoreStatus)

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

type WaitGroup added in v0.3.0

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

	Spec   WaitGroupSpec   `json:"spec,omitempty"`
	Status WaitGroupStatus `json:"status,omitempty"`
}

WaitGroup is the Schema for the waitgroups API

func (*WaitGroup) DeepCopy added in v0.3.0

func (in *WaitGroup) DeepCopy() *WaitGroup

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

func (*WaitGroup) DeepCopyInto added in v0.3.0

func (in *WaitGroup) DeepCopyInto(out *WaitGroup)

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

func (*WaitGroup) DeepCopyObject added in v0.3.0

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

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

type WaitGroupList added in v0.3.0

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

WaitGroupList contains a list of WaitGroup

func (*WaitGroupList) DeepCopy added in v0.3.0

func (in *WaitGroupList) DeepCopy() *WaitGroupList

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

func (*WaitGroupList) DeepCopyInto added in v0.3.0

func (in *WaitGroupList) DeepCopyInto(out *WaitGroupList)

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

func (*WaitGroupList) DeepCopyObject added in v0.3.0

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

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

type WaitGroupPhase added in v0.3.0

type WaitGroupPhase string

WaitGroupPhase represents the phase of a WaitGroup

const (
	WaitGroupPhaseWaiting WaitGroupPhase = "Waiting"
	WaitGroupPhaseDone    WaitGroupPhase = "Done"
)

type WaitGroupSpec added in v0.3.0

type WaitGroupSpec struct {
	// TTL is the optional time-to-live for cleanup
	// +optional
	TTL *metav1.Duration `json:"ttl,omitempty"`
}

WaitGroupSpec defines the desired state of WaitGroup +kubebuilder:validation:XValidation:rule="!has(self.ttl) || self.ttl.matches('^([0-9]+(\\.[0-9]+)?(ns|us|µs|ms|s|m|h))+$')",message="ttl must be a valid duration (e.g., 30s, 5m, 1h)"

func (*WaitGroupSpec) DeepCopy added in v0.3.0

func (in *WaitGroupSpec) DeepCopy() *WaitGroupSpec

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

func (*WaitGroupSpec) DeepCopyInto added in v0.3.0

func (in *WaitGroupSpec) DeepCopyInto(out *WaitGroupSpec)

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

type WaitGroupStatus added in v0.3.0

type WaitGroupStatus struct {
	// Counter is the current count
	// +kubebuilder:validation:Minimum=0
	Counter int32 `json:"counter"`

	// Phase represents the current state
	// +kubebuilder:validation:Enum=Waiting;Done
	Phase WaitGroupPhase `json:"phase"`

	// Conditions represent the latest available observations
	Conditions []metav1.Condition `json:"conditions,omitempty"`
}

WaitGroupStatus defines the observed state of WaitGroup

func (*WaitGroupStatus) DeepCopy added in v0.3.0

func (in *WaitGroupStatus) DeepCopy() *WaitGroupStatus

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

func (*WaitGroupStatus) DeepCopyInto added in v0.3.0

func (in *WaitGroupStatus) DeepCopyInto(out *WaitGroupStatus)

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