v1

package
v4.1.0 Latest Latest
Warning

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

Go to latest
Published: Nov 12, 2024 License: MPL-2.0 Imports: 9 Imported by: 18

Documentation

Overview

+k8s:openapi-gen=true +k8s:deepcopy-gen=package,register +k8s:conversion-gen=github.com/loft-sh/agentapi/v4/pkg/apis/loft/cluster +k8s:defaulter-gen=TypeMeta +groupName=cluster.loft.sh

Index

Constants

View Source
const (
	SleepModeForceAnnotation          = "sleepmode.loft.sh/force"
	SleepModeForceDurationAnnotation  = "sleepmode.loft.sh/force-duration"
	SleepModeSleepAfterAnnotation     = "sleepmode.loft.sh/sleep-after"
	SleepModeDeleteAfterAnnotation    = "sleepmode.loft.sh/delete-after"
	SleepModeSleepScheduleAnnotation  = "sleepmode.loft.sh/sleep-schedule"
	SleepModeWakeupScheduleAnnotation = "sleepmode.loft.sh/wakeup-schedule"
	SleepModeTimezoneAnnotation       = "sleepmode.loft.sh/timezone"

	SleepModeLastActivityAnnotation      = "sleepmode.loft.sh/last-activity"
	SleepModeLastActivityAnnotationInfo  = "sleepmode.loft.sh/last-activity-info"
	SleepModeSleepingSinceAnnotation     = "sleepmode.loft.sh/sleeping-since"
	SleepModeCurrentEpochStartAnnotation = "sleepmode.loft.sh/current-epoch-start"
	SleepModeCurrentEpochSleptAnnotation = "sleepmode.loft.sh/current-epoch-slept"
	SleepModeLastEpochStartAnnotation    = "sleepmode.loft.sh/last-epoch-start"
	SleepModeLastEpochSleptAnnotation    = "sleepmode.loft.sh/last-epoch-slept"
	SleepModeScheduledSleepAnnotation    = "sleepmode.loft.sh/scheduled-sleep"
	SleepModeScheduledWakeupAnnotation   = "sleepmode.loft.sh/scheduled-wakeup"
	SleepModeSleepTypeAnnotation         = "sleepmode.loft.sh/sleep-type"
	SleepModeDisableIngressWakeup        = "sleepmode.loft.sh/disable-ingress-wakeup"
	SleepModeDisableMetricsTracking      = "sleepmode.loft.sh/disable-metrics-tracking"

	// Not yet in spec annotations
	SleepModeIgnoreAll                     = "sleepmode.loft.sh/ignore-all"
	SleepModeIgnoreIngresses               = "sleepmode.loft.sh/ignore-ingresses"
	SleepModeIgnoreGroupsAnnotation        = "sleepmode.loft.sh/ignore-groups"
	SleepModeIgnoreVClustersAnnotation     = "sleepmode.loft.sh/ignore-vclusters"
	SleepModeIgnoreResourcesAnnotation     = "sleepmode.loft.sh/ignore-resources"
	SleepModeIgnoreVerbsAnnotation         = "sleepmode.loft.sh/ignore-verbs"
	SleepModeIgnoreResourceVerbsAnnotation = "sleepmode.loft.sh/ignore-resource-verbs" // format: myresource.mygroup=create update delete, myresource2.mygroup=create update
	SleepModeIgnoreResourceNamesAnnotation = "sleepmode.loft.sh/ignore-resource-names" // format: myresource.mygroup=name1 name2
	SleepModeIgnoreActiveConnections       = "sleepmode.loft.sh/ignore-active-connections"
	SleepModeIgnoreUserAgents              = "sleepmode.loft.sh/ignore-user-agents" // format: useragent1,useragentprefix/*,*

	SleepTypeInactivity     = "inactivitySleep"
	SleepTypeForced         = "forcedSleep"
	SleepTypeForcedDuration = "forcedDurationSleep"
	SleepTypeScheduled      = "scheduledSleep"
)

Variables

View Source
var (
	ApiVersion = builders.NewApiVersion("cluster.loft.sh", "v1").WithResources(
		cluster.ClusterChartInfoStorage,
		cluster.ClusterFeatureStorage,
		cluster.ClusterHelmReleaseStorage,
	)

	// Required by code generated by go2idl
	AddToScheme = (&runtime.SchemeBuilder{
		ApiVersion.SchemeBuilder.AddToScheme,
		RegisterDefaults,
		RegisterConversions,
		addKnownTypes,
		func(scheme *runtime.Scheme) error {
			metav1.AddToGroupVersion(scheme, SchemeGroupVersion)
			return nil
		},
	}).AddToScheme

	SchemeBuilder = ApiVersion.SchemeBuilder

	SchemeGroupVersion = ApiVersion.GroupVersion
)

Functions

func Convert_cluster_Bash_To_v1_Bash

func Convert_cluster_Bash_To_v1_Bash(in *cluster.Bash, out *Bash, s conversion.Scope) error

Convert_cluster_Bash_To_v1_Bash is an autogenerated conversion function.

func Convert_cluster_ChartInfoList_To_v1_ChartInfoList

func Convert_cluster_ChartInfoList_To_v1_ChartInfoList(in *cluster.ChartInfoList, out *ChartInfoList, s conversion.Scope) error

Convert_cluster_ChartInfoList_To_v1_ChartInfoList is an autogenerated conversion function.

func Convert_cluster_ChartInfoSpec_To_v1_ChartInfoSpec

func Convert_cluster_ChartInfoSpec_To_v1_ChartInfoSpec(in *cluster.ChartInfoSpec, out *ChartInfoSpec, s conversion.Scope) error

Convert_cluster_ChartInfoSpec_To_v1_ChartInfoSpec is an autogenerated conversion function.

func Convert_cluster_ChartInfoStatus_To_v1_ChartInfoStatus

func Convert_cluster_ChartInfoStatus_To_v1_ChartInfoStatus(in *cluster.ChartInfoStatus, out *ChartInfoStatus, s conversion.Scope) error

Convert_cluster_ChartInfoStatus_To_v1_ChartInfoStatus is an autogenerated conversion function.

func Convert_cluster_ChartInfo_To_v1_ChartInfo

func Convert_cluster_ChartInfo_To_v1_ChartInfo(in *cluster.ChartInfo, out *ChartInfo, s conversion.Scope) error

Convert_cluster_ChartInfo_To_v1_ChartInfo is an autogenerated conversion function.

func Convert_cluster_ChartSecretRef_To_v1_ChartSecretRef

func Convert_cluster_ChartSecretRef_To_v1_ChartSecretRef(in *cluster.ChartSecretRef, out *ChartSecretRef, s conversion.Scope) error

Convert_cluster_ChartSecretRef_To_v1_ChartSecretRef is an autogenerated conversion function.

func Convert_cluster_Chart_To_v1_Chart

func Convert_cluster_Chart_To_v1_Chart(in *cluster.Chart, out *Chart, s conversion.Scope) error

Convert_cluster_Chart_To_v1_Chart is an autogenerated conversion function.

func Convert_cluster_FeatureList_To_v1_FeatureList

func Convert_cluster_FeatureList_To_v1_FeatureList(in *cluster.FeatureList, out *FeatureList, s conversion.Scope) error

Convert_cluster_FeatureList_To_v1_FeatureList is an autogenerated conversion function.

func Convert_cluster_FeatureSpec_To_v1_FeatureSpec

func Convert_cluster_FeatureSpec_To_v1_FeatureSpec(in *cluster.FeatureSpec, out *FeatureSpec, s conversion.Scope) error

Convert_cluster_FeatureSpec_To_v1_FeatureSpec is an autogenerated conversion function.

func Convert_cluster_FeatureStatus_To_v1_FeatureStatus

func Convert_cluster_FeatureStatus_To_v1_FeatureStatus(in *cluster.FeatureStatus, out *FeatureStatus, s conversion.Scope) error

Convert_cluster_FeatureStatus_To_v1_FeatureStatus is an autogenerated conversion function.

func Convert_cluster_Feature_To_v1_Feature

func Convert_cluster_Feature_To_v1_Feature(in *cluster.Feature, out *Feature, s conversion.Scope) error

Convert_cluster_Feature_To_v1_Feature is an autogenerated conversion function.

func Convert_cluster_HelmReleaseConfig_To_v1_HelmReleaseConfig

func Convert_cluster_HelmReleaseConfig_To_v1_HelmReleaseConfig(in *cluster.HelmReleaseConfig, out *HelmReleaseConfig, s conversion.Scope) error

Convert_cluster_HelmReleaseConfig_To_v1_HelmReleaseConfig is an autogenerated conversion function.

func Convert_cluster_HelmReleaseList_To_v1_HelmReleaseList

func Convert_cluster_HelmReleaseList_To_v1_HelmReleaseList(in *cluster.HelmReleaseList, out *HelmReleaseList, s conversion.Scope) error

Convert_cluster_HelmReleaseList_To_v1_HelmReleaseList is an autogenerated conversion function.

func Convert_cluster_HelmReleaseSpec_To_v1_HelmReleaseSpec

func Convert_cluster_HelmReleaseSpec_To_v1_HelmReleaseSpec(in *cluster.HelmReleaseSpec, out *HelmReleaseSpec, s conversion.Scope) error

Convert_cluster_HelmReleaseSpec_To_v1_HelmReleaseSpec is an autogenerated conversion function.

func Convert_cluster_HelmReleaseStatus_To_v1_HelmReleaseStatus

func Convert_cluster_HelmReleaseStatus_To_v1_HelmReleaseStatus(in *cluster.HelmReleaseStatus, out *HelmReleaseStatus, s conversion.Scope) error

Convert_cluster_HelmReleaseStatus_To_v1_HelmReleaseStatus is an autogenerated conversion function.

func Convert_cluster_HelmRelease_To_v1_HelmRelease

func Convert_cluster_HelmRelease_To_v1_HelmRelease(in *cluster.HelmRelease, out *HelmRelease, s conversion.Scope) error

Convert_cluster_HelmRelease_To_v1_HelmRelease is an autogenerated conversion function.

func Convert_cluster_Info_To_v1_Info

func Convert_cluster_Info_To_v1_Info(in *cluster.Info, out *Info, s conversion.Scope) error

Convert_cluster_Info_To_v1_Info is an autogenerated conversion function.

func Convert_cluster_Maintainer_To_v1_Maintainer

func Convert_cluster_Maintainer_To_v1_Maintainer(in *cluster.Maintainer, out *Maintainer, s conversion.Scope) error

Convert_cluster_Maintainer_To_v1_Maintainer is an autogenerated conversion function.

func Convert_cluster_Metadata_To_v1_Metadata

func Convert_cluster_Metadata_To_v1_Metadata(in *cluster.Metadata, out *Metadata, s conversion.Scope) error

Convert_cluster_Metadata_To_v1_Metadata is an autogenerated conversion function.

func Convert_cluster_ProjectSecretRef_To_v1_ProjectSecretRef

func Convert_cluster_ProjectSecretRef_To_v1_ProjectSecretRef(in *cluster.ProjectSecretRef, out *ProjectSecretRef, s conversion.Scope) error

Convert_cluster_ProjectSecretRef_To_v1_ProjectSecretRef is an autogenerated conversion function.

func Convert_v1_Bash_To_cluster_Bash

func Convert_v1_Bash_To_cluster_Bash(in *Bash, out *cluster.Bash, s conversion.Scope) error

Convert_v1_Bash_To_cluster_Bash is an autogenerated conversion function.

func Convert_v1_ChartInfoList_To_cluster_ChartInfoList

func Convert_v1_ChartInfoList_To_cluster_ChartInfoList(in *ChartInfoList, out *cluster.ChartInfoList, s conversion.Scope) error

Convert_v1_ChartInfoList_To_cluster_ChartInfoList is an autogenerated conversion function.

func Convert_v1_ChartInfoSpec_To_cluster_ChartInfoSpec

func Convert_v1_ChartInfoSpec_To_cluster_ChartInfoSpec(in *ChartInfoSpec, out *cluster.ChartInfoSpec, s conversion.Scope) error

Convert_v1_ChartInfoSpec_To_cluster_ChartInfoSpec is an autogenerated conversion function.

func Convert_v1_ChartInfoStatus_To_cluster_ChartInfoStatus

func Convert_v1_ChartInfoStatus_To_cluster_ChartInfoStatus(in *ChartInfoStatus, out *cluster.ChartInfoStatus, s conversion.Scope) error

Convert_v1_ChartInfoStatus_To_cluster_ChartInfoStatus is an autogenerated conversion function.

func Convert_v1_ChartInfo_To_cluster_ChartInfo

func Convert_v1_ChartInfo_To_cluster_ChartInfo(in *ChartInfo, out *cluster.ChartInfo, s conversion.Scope) error

Convert_v1_ChartInfo_To_cluster_ChartInfo is an autogenerated conversion function.

func Convert_v1_ChartSecretRef_To_cluster_ChartSecretRef

func Convert_v1_ChartSecretRef_To_cluster_ChartSecretRef(in *ChartSecretRef, out *cluster.ChartSecretRef, s conversion.Scope) error

Convert_v1_ChartSecretRef_To_cluster_ChartSecretRef is an autogenerated conversion function.

func Convert_v1_Chart_To_cluster_Chart

func Convert_v1_Chart_To_cluster_Chart(in *Chart, out *cluster.Chart, s conversion.Scope) error

Convert_v1_Chart_To_cluster_Chart is an autogenerated conversion function.

func Convert_v1_FeatureList_To_cluster_FeatureList

func Convert_v1_FeatureList_To_cluster_FeatureList(in *FeatureList, out *cluster.FeatureList, s conversion.Scope) error

Convert_v1_FeatureList_To_cluster_FeatureList is an autogenerated conversion function.

func Convert_v1_FeatureSpec_To_cluster_FeatureSpec

func Convert_v1_FeatureSpec_To_cluster_FeatureSpec(in *FeatureSpec, out *cluster.FeatureSpec, s conversion.Scope) error

Convert_v1_FeatureSpec_To_cluster_FeatureSpec is an autogenerated conversion function.

func Convert_v1_FeatureStatus_To_cluster_FeatureStatus

func Convert_v1_FeatureStatus_To_cluster_FeatureStatus(in *FeatureStatus, out *cluster.FeatureStatus, s conversion.Scope) error

Convert_v1_FeatureStatus_To_cluster_FeatureStatus is an autogenerated conversion function.

func Convert_v1_Feature_To_cluster_Feature

func Convert_v1_Feature_To_cluster_Feature(in *Feature, out *cluster.Feature, s conversion.Scope) error

Convert_v1_Feature_To_cluster_Feature is an autogenerated conversion function.

func Convert_v1_HelmReleaseConfig_To_cluster_HelmReleaseConfig

func Convert_v1_HelmReleaseConfig_To_cluster_HelmReleaseConfig(in *HelmReleaseConfig, out *cluster.HelmReleaseConfig, s conversion.Scope) error

Convert_v1_HelmReleaseConfig_To_cluster_HelmReleaseConfig is an autogenerated conversion function.

func Convert_v1_HelmReleaseList_To_cluster_HelmReleaseList

func Convert_v1_HelmReleaseList_To_cluster_HelmReleaseList(in *HelmReleaseList, out *cluster.HelmReleaseList, s conversion.Scope) error

Convert_v1_HelmReleaseList_To_cluster_HelmReleaseList is an autogenerated conversion function.

func Convert_v1_HelmReleaseSpec_To_cluster_HelmReleaseSpec

func Convert_v1_HelmReleaseSpec_To_cluster_HelmReleaseSpec(in *HelmReleaseSpec, out *cluster.HelmReleaseSpec, s conversion.Scope) error

Convert_v1_HelmReleaseSpec_To_cluster_HelmReleaseSpec is an autogenerated conversion function.

func Convert_v1_HelmReleaseStatus_To_cluster_HelmReleaseStatus

func Convert_v1_HelmReleaseStatus_To_cluster_HelmReleaseStatus(in *HelmReleaseStatus, out *cluster.HelmReleaseStatus, s conversion.Scope) error

Convert_v1_HelmReleaseStatus_To_cluster_HelmReleaseStatus is an autogenerated conversion function.

func Convert_v1_HelmRelease_To_cluster_HelmRelease

func Convert_v1_HelmRelease_To_cluster_HelmRelease(in *HelmRelease, out *cluster.HelmRelease, s conversion.Scope) error

Convert_v1_HelmRelease_To_cluster_HelmRelease is an autogenerated conversion function.

func Convert_v1_Info_To_cluster_Info

func Convert_v1_Info_To_cluster_Info(in *Info, out *cluster.Info, s conversion.Scope) error

Convert_v1_Info_To_cluster_Info is an autogenerated conversion function.

func Convert_v1_Maintainer_To_cluster_Maintainer

func Convert_v1_Maintainer_To_cluster_Maintainer(in *Maintainer, out *cluster.Maintainer, s conversion.Scope) error

Convert_v1_Maintainer_To_cluster_Maintainer is an autogenerated conversion function.

func Convert_v1_Metadata_To_cluster_Metadata

func Convert_v1_Metadata_To_cluster_Metadata(in *Metadata, out *cluster.Metadata, s conversion.Scope) error

Convert_v1_Metadata_To_cluster_Metadata is an autogenerated conversion function.

func Convert_v1_ProjectSecretRef_To_cluster_ProjectSecretRef

func Convert_v1_ProjectSecretRef_To_cluster_ProjectSecretRef(in *ProjectSecretRef, out *cluster.ProjectSecretRef, s conversion.Scope) error

Convert_v1_ProjectSecretRef_To_cluster_ProjectSecretRef is an autogenerated conversion function.

func Kind

func Kind(kind string) schema.GroupKind

Required by code generated by go2idl Kind takes an unqualified kind and returns a Group qualified GroupKind

func RegisterConversions

func RegisterConversions(s *runtime.Scheme) error

RegisterConversions adds conversion functions to the given scheme. Public to allow building arbitrary schemes.

func RegisterDefaults

func RegisterDefaults(scheme *runtime.Scheme) error

RegisterDefaults adds defaulters functions to the given scheme. Public to allow building arbitrary schemes. All generated defaulters are covering - they call all nested defaulters.

func Resource

func Resource(resource string) schema.GroupResource

Required by code generated by go2idl Resource takes an unqualified resource and returns a Group qualified GroupResource

func SleepModeConfigAnnotationKeys

func SleepModeConfigAnnotationKeys() []string

SleepModeConfigAnnotationKeys returns relevant annotation keys that are evaluated in apimachinery/v2/pkg/sleepmode/extractSleepModeConfigs function. This is primarily used for knowing which annotations to copy from spaces to vcluster instances when importing vclusters to a project.

func SleepModeStatusAnnotationKeys

func SleepModeStatusAnnotationKeys() []string

Types

type Bash

type Bash struct {
	// Script is the script to execute.
	// +optional
	Script string `json:"script,omitempty"`

	// Image is the image to use for this app
	// +optional
	Image string `json:"image,omitempty"`

	// ClusterRole is the cluster role to use for this job
	// +optional
	ClusterRole string `json:"clusterRole,omitempty"`

	// PodSecurityContext for the bash pod.
	// +optional
	PodSecurityContext *corev1.PodSecurityContext `json:"podSecurityContext,omitempty"`

	// SecurityContext for the bash container.
	// +optional
	SecurityContext *corev1.SecurityContext `json:"securityContext,omitempty"`
}

func (*Bash) DeepCopy

func (in *Bash) DeepCopy() *Bash

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

func (*Bash) DeepCopyInto

func (in *Bash) DeepCopyInto(out *Bash)

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

type Chart

type Chart struct {
	// Name is the chart name in the repository
	Name string `json:"name,omitempty"`

	// Version is the chart version in the repository
	// +optional
	Version string `json:"version,omitempty"`

	// RepoURL is the repo url where the chart can be found
	// +optional
	RepoURL string `json:"repoURL,omitempty"`

	// The username that is required for this repository
	// +optional
	Username string `json:"username,omitempty"`

	// The username that is required for this repository
	// +optional
	UsernameRef *ChartSecretRef `json:"usernameRef,omitempty"`

	// The password that is required for this repository
	// +optional
	Password string `json:"password,omitempty"`

	// The password that is required for this repository
	// +optional
	PasswordRef *ChartSecretRef `json:"passwordRef,omitempty"`

	// If tls certificate checks for the chart download should be skipped
	// +optional
	InsecureSkipTlsVerify bool `json:"insecureSkipTlsVerify,omitempty"`
}

Chart describes a chart

func (*Chart) DeepCopy

func (in *Chart) DeepCopy() *Chart

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

func (*Chart) DeepCopyInto

func (in *Chart) DeepCopyInto(out *Chart)

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

type ChartInfo

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

	Spec   ChartInfoSpec   `json:"spec,omitempty"`
	Status ChartInfoStatus `json:"status,omitempty"`
}

+k8s:openapi-gen=true +resource:path=chartinfos,rest=ChartInfoREST

func (*ChartInfo) DeepCopy

func (in *ChartInfo) DeepCopy() *ChartInfo

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

func (*ChartInfo) DeepCopyInto

func (in *ChartInfo) DeepCopyInto(out *ChartInfo)

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

func (*ChartInfo) DeepCopyObject

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

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

type ChartInfoList

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

func (*ChartInfoList) DeepCopy

func (in *ChartInfoList) DeepCopy() *ChartInfoList

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

func (*ChartInfoList) DeepCopyInto

func (in *ChartInfoList) DeepCopyInto(out *ChartInfoList)

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

func (*ChartInfoList) DeepCopyObject

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

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

type ChartInfoSpec

type ChartInfoSpec struct {
	// Chart holds information about a chart that should get deployed
	// +optional
	Chart Chart `json:"chart,omitempty"`
}

func (*ChartInfoSpec) DeepCopy

func (in *ChartInfoSpec) DeepCopy() *ChartInfoSpec

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

func (*ChartInfoSpec) DeepCopyInto

func (in *ChartInfoSpec) DeepCopyInto(out *ChartInfoSpec)

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

type ChartInfoStatus

type ChartInfoStatus struct {
	// Metadata provides information about a chart
	// +optional
	Metadata *Metadata `json:"metadata,omitempty"`

	// Readme is the readme of the chart
	// +optional
	Readme string `json:"readme,omitempty"`

	// Values are the default values of the chart
	// +optional
	Values string `json:"values,omitempty"`
}

func (*ChartInfoStatus) DeepCopy

func (in *ChartInfoStatus) DeepCopy() *ChartInfoStatus

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

func (*ChartInfoStatus) DeepCopyInto

func (in *ChartInfoStatus) DeepCopyInto(out *ChartInfoStatus)

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

type ChartSecretRef

type ChartSecretRef struct {
	// ProjectSecretRef holds the reference to a project secret
	// +optional
	ProjectSecretRef *ProjectSecretRef `json:"projectSecretRef,omitempty"`
}

func (*ChartSecretRef) DeepCopy

func (in *ChartSecretRef) DeepCopy() *ChartSecretRef

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

func (*ChartSecretRef) DeepCopyInto

func (in *ChartSecretRef) DeepCopyInto(out *ChartSecretRef)

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

type EpochInfo

type EpochInfo struct {
	// Timestamp when the epoch has started
	// +optional
	Start int64 `json:"start,omitempty"`
	// Amount of milliseconds the space has slept in the epoch
	// +optional
	Slept int64 `json:"slept,omitempty"`
}

EpochInfo holds information about how long the space was sleeping in the epoch

func (*EpochInfo) DeepCopy

func (in *EpochInfo) DeepCopy() *EpochInfo

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

func (*EpochInfo) DeepCopyInto

func (in *EpochInfo) DeepCopyInto(out *EpochInfo)

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

type Feature

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

	Spec   FeatureSpec   `json:"spec,omitempty"`
	Status FeatureStatus `json:"status,omitempty"`
}

Feature holds the feature information +k8s:openapi-gen=true +resource:path=features,rest=FeatureREST

func (*Feature) DeepCopy

func (in *Feature) DeepCopy() *Feature

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

func (*Feature) DeepCopyInto

func (in *Feature) DeepCopyInto(out *Feature)

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

func (*Feature) DeepCopyObject

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

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

type FeatureList

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

func (*FeatureList) DeepCopy

func (in *FeatureList) DeepCopy() *FeatureList

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

func (*FeatureList) DeepCopyInto

func (in *FeatureList) DeepCopyInto(out *FeatureList)

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

func (*FeatureList) DeepCopyObject

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

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

type FeatureSpec

type FeatureSpec struct {
}

FeatureSpec holds the specification

func (*FeatureSpec) DeepCopy

func (in *FeatureSpec) DeepCopy() *FeatureSpec

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

func (*FeatureSpec) DeepCopyInto

func (in *FeatureSpec) DeepCopyInto(out *FeatureSpec)

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

type FeatureStatus

type FeatureStatus struct {
	// Feature contains all feature details (as typically returned by license service)
	licenseapi.Feature `json:",inline"`

	// Internal marks internal features that should not be shown on the license view
	// +optional
	Internal bool `json:"internal,omitempty"`

	// Used marks features that are currently used in the product
	// +optional
	Used bool `json:"used,omitempty"`
}

FeatureStatus holds the status

func (*FeatureStatus) DeepCopy

func (in *FeatureStatus) DeepCopy() *FeatureStatus

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

func (*FeatureStatus) DeepCopyInto

func (in *FeatureStatus) DeepCopyInto(out *FeatureStatus)

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

type HelmRelease

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

	Spec   HelmReleaseSpec   `json:"spec,omitempty"`
	Status HelmReleaseStatus `json:"status,omitempty"`
}

+k8s:openapi-gen=true +resource:path=helmreleases,rest=HelmReleaseREST

func (*HelmRelease) DeepCopy

func (in *HelmRelease) DeepCopy() *HelmRelease

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

func (*HelmRelease) DeepCopyInto

func (in *HelmRelease) DeepCopyInto(out *HelmRelease)

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

func (*HelmRelease) DeepCopyObject

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

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

type HelmReleaseApp

type HelmReleaseApp struct {
	// Name is the name of the app this release refers to
	// +optional
	Name string `json:"name,omitempty"`

	// Revision is the revision of the app this release refers to
	// +optional
	Revision string `json:"version,omitempty"`
}

func (*HelmReleaseApp) DeepCopy

func (in *HelmReleaseApp) DeepCopy() *HelmReleaseApp

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

func (*HelmReleaseApp) DeepCopyInto

func (in *HelmReleaseApp) DeepCopyInto(out *HelmReleaseApp)

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

type HelmReleaseConfig

type HelmReleaseConfig struct {
	// Chart holds information about a chart that should get deployed
	// +optional
	Chart Chart `json:"chart,omitempty"`

	// Manifests holds kube manifests that will be deployed as a chart
	// +optional
	Manifests string `json:"manifests,omitempty"`

	// Bash holds the bash script to execute in a container in the target
	// +optional
	Bash *Bash `json:"bash,omitempty"`

	// Values is the set of extra Values added to the chart.
	// These values merge with the default values inside of the chart.
	// You can use golang templating in here with values from parameters.
	// +optional
	Values string `json:"values,omitempty"`

	// Parameters are additional helm chart values that will get merged
	// with config and are then used to deploy the helm chart.
	// +optional
	Parameters string `json:"parameters,omitempty"`

	// Annotations are extra annotations for this helm release
	// +optional
	Annotations map[string]string `json:"annotations,omitempty"`
}

func (*HelmReleaseConfig) DeepCopy

func (in *HelmReleaseConfig) DeepCopy() *HelmReleaseConfig

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

func (*HelmReleaseConfig) DeepCopyInto

func (in *HelmReleaseConfig) DeepCopyInto(out *HelmReleaseConfig)

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

type HelmReleaseList

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

func (*HelmReleaseList) DeepCopy

func (in *HelmReleaseList) DeepCopy() *HelmReleaseList

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

func (*HelmReleaseList) DeepCopyInto

func (in *HelmReleaseList) DeepCopyInto(out *HelmReleaseList)

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

func (*HelmReleaseList) DeepCopyObject

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

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

type HelmReleaseSpec

type HelmReleaseSpec struct {
	HelmReleaseConfig `json:",inline"`
}

func (*HelmReleaseSpec) DeepCopy

func (in *HelmReleaseSpec) DeepCopy() *HelmReleaseSpec

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

func (*HelmReleaseSpec) DeepCopyInto

func (in *HelmReleaseSpec) DeepCopyInto(out *HelmReleaseSpec)

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

type HelmReleaseStatus

type HelmReleaseStatus struct {
	// Revision is an int which represents the revision of the release.
	Revision int `json:"version,omitempty"`

	// Info provides information about a release
	// +optional
	Info *Info `json:"info,omitempty"`

	// Metadata provides information about a chart
	// +optional
	Metadata *Metadata `json:"metadata,omitempty"`
}

func (*HelmReleaseStatus) DeepCopy

func (in *HelmReleaseStatus) DeepCopy() *HelmReleaseStatus

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

func (*HelmReleaseStatus) DeepCopyInto

func (in *HelmReleaseStatus) DeepCopyInto(out *HelmReleaseStatus)

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

type Info

type Info struct {
	// FirstDeployed is when the release was first deployed.
	// +optional
	FirstDeployed metav1.Time `json:"first_deployed,omitempty"`
	// LastDeployed is when the release was last deployed.
	// +optional
	LastDeployed metav1.Time `json:"last_deployed,omitempty"`
	// Deleted tracks when this object was deleted.
	// +optional
	Deleted metav1.Time `json:"deleted"`
	// Description is human-friendly "log entry" about this release.
	// +optional
	Description string `json:"description,omitempty"`
	// Status is the current state of the release
	// +optional
	Status Status `json:"status,omitempty"`
	// Contains the rendered templates/NOTES.txt if available
	// +optional
	Notes string `json:"notes,omitempty"`
}

Info describes release information.

func (*Info) DeepCopy

func (in *Info) DeepCopy() *Info

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

func (*Info) DeepCopyInto

func (in *Info) DeepCopyInto(out *Info)

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

type LastActivityInfo

type LastActivityInfo struct {
	// Subject is the user or team where this activity was recorded
	// +optional
	Subject string `json:"subject,omitempty"`

	// Host is the host where this activity was recorded
	// +optional
	Host string `json:"host,omitempty"`

	// Verb is the verb that was used for the request
	// +optional
	Verb string `json:"verb,omitempty"`

	// APIGroup is the api group that was used for the request
	// +optional
	APIGroup string `json:"apiGroup,omitempty"`

	// Resource is the resource of the request
	// +optional
	Resource string `json:"resource,omitempty"`

	// Subresource is the subresource of the request
	// +optional
	Subresource string `json:"subresource,omitempty"`

	// Name is the name of the resource
	// +optional
	Name string `json:"name,omitempty"`

	// VirtualCluster is the virtual cluster this activity happened in
	// +optional
	VirtualCluster string `json:"virtualCluster,omitempty"`

	// MetricsRefreshInterval is the activity refresh interval. This is used to prevent sleeping instances if the last
	// activity metrics have not been refreshed within the interval. Useful for metrics based activty tracking.
	MetricsRefreshInterval int64 `json:"metricsRefreshInterval,omitempty"`
}

LastActivityInfo holds information about the last activity

func (*LastActivityInfo) DeepCopy

func (in *LastActivityInfo) DeepCopy() *LastActivityInfo

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

func (*LastActivityInfo) DeepCopyInto

func (in *LastActivityInfo) DeepCopyInto(out *LastActivityInfo)

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

type Maintainer

type Maintainer struct {
	// Name is a user name or organization name
	// +optional
	Name string `json:"name,omitempty"`
	// Email is an optional email address to contact the named maintainer
	// +optional
	Email string `json:"email,omitempty"`
	// URL is an optional URL to an address for the named maintainer
	// +optional
	URL string `json:"url,omitempty"`
}

Maintainer describes a Chart maintainer.

func (*Maintainer) DeepCopy

func (in *Maintainer) DeepCopy() *Maintainer

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

func (*Maintainer) DeepCopyInto

func (in *Maintainer) DeepCopyInto(out *Maintainer)

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

type Metadata

type Metadata struct {
	// The name of the chart
	// +optional
	Name string `json:"name,omitempty"`
	// The URL to a relevant project page, git repo, or contact person
	// +optional
	Home string `json:"home,omitempty"`
	// Source is the URL to the source code of this chart
	// +optional
	Sources []string `json:"sources,omitempty"`
	// A SemVer 2 conformant version string of the chart
	// +optional
	Version string `json:"version,omitempty"`
	// A one-sentence description of the chart
	// +optional
	Description string `json:"description,omitempty"`
	// A list of string keywords
	// +optional
	Keywords []string `json:"keywords,omitempty"`
	// A list of name and URL/email address combinations for the maintainer(s)
	// +optional
	Maintainers []*Maintainer `json:"maintainers,omitempty"`
	// The URL to an icon file.
	// +optional
	Icon string `json:"icon,omitempty"`
	// The API Version of this chart.
	// +optional
	APIVersion string `json:"apiVersion,omitempty"`
	// The condition to check to enable chart
	// +optional
	Condition string `json:"condition,omitempty"`
	// The tags to check to enable chart
	// +optional
	Tags string `json:"tags,omitempty"`
	// The version of the application enclosed inside of this chart.
	// +optional
	AppVersion string `json:"appVersion,omitempty"`
	// Whether or not this chart is deprecated
	// +optional
	Deprecated bool `json:"deprecated,omitempty"`
	// Annotations are additional mappings uninterpreted by Helm,
	// made available for inspection by other applications.
	// +optional
	Annotations map[string]string `json:"annotations,omitempty"`
	// KubeVersion is a SemVer constraint specifying the version of Kubernetes required.
	// +optional
	KubeVersion string `json:"kubeVersion,omitempty"`
	// Specifies the chart type: application or library
	// +optional
	Type string `json:"type,omitempty"`
	// Urls where to find the chart contents
	// +optional
	Urls []string `json:"urls,omitempty"`
}

Metadata for a Chart file. This models the structure of a Chart.yaml file.

func (*Metadata) DeepCopy

func (in *Metadata) DeepCopy() *Metadata

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

func (*Metadata) DeepCopyInto

func (in *Metadata) DeepCopyInto(out *Metadata)

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

type ProjectSecretRef

type ProjectSecretRef struct {
	// Project is the project name where the secret is located in.
	// +optional
	Project string `json:"project,omitempty"`

	// Name of the project secret to use.
	// +optional
	Name string `json:"name,omitempty"`

	// Key of the project secret to use.
	// +optional
	Key string `json:"key,omitempty"`
}

func (*ProjectSecretRef) DeepCopy

func (in *ProjectSecretRef) DeepCopy() *ProjectSecretRef

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

func (*ProjectSecretRef) DeepCopyInto

func (in *ProjectSecretRef) DeepCopyInto(out *ProjectSecretRef)

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

type SleepModeConfig

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

	Spec   SleepModeConfigSpec   `json:"spec,omitempty"`
	Status SleepModeConfigStatus `json:"status,omitempty"`
}

SleepModeConfig holds the sleepmode information

func (*SleepModeConfig) DeepCopy

func (in *SleepModeConfig) DeepCopy() *SleepModeConfig

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

func (*SleepModeConfig) DeepCopyInto

func (in *SleepModeConfig) DeepCopyInto(out *SleepModeConfig)

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

func (*SleepModeConfig) DeepCopyObject

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

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

type SleepModeConfigSpec

type SleepModeConfigSpec struct {
	// If force sleep is true the space will sleep
	// +optional
	ForceSleep bool `json:"forceSleep,omitempty"`

	// If force sleep duration is set, this will force the space to sleep
	// for the given duration. It also implies that forceSleep is true.
	// During this period loft will also block certain requests to that space.
	// If this is set to 0, it means the space will sleep until it is manually
	// woken up via the cli or ui.
	// +optional
	ForceSleepDuration *int64 `json:"forceSleepDuration,omitempty"`

	// DeleteAfter specifies after how many seconds of inactivity the space should be deleted
	// +optional
	DeleteAfter int64 `json:"deleteAfter,omitempty"`

	// SleepAfter specifies after how many seconds of inactivity the space should sleep
	// +optional
	SleepAfter int64 `json:"sleepAfter,omitempty"`

	// SleepSchedule specifies scheduled space sleep in Cron format, see https://en.wikipedia.org/wiki/Cron.
	// Note: timezone defined in the schedule string will be ignored. Use ".Spec.Timezone" field instead.
	// +optional
	SleepSchedule string `json:"sleepSchedule,omitempty"`

	// WakeupSchedule specifies scheduled wakeup from sleep in Cron format, see https://en.wikipedia.org/wiki/Cron.
	// Note: timezone defined in the schedule string will be ignored. Use ".Spec.Timezone" field instead.
	// +optional
	WakeupSchedule string `json:"wakeupSchedule,omitempty"`

	// Timezone specifies time zone used for scheduled space operations. Defaults to UTC.
	// Accepts the same format as time.LoadLocation() in Go (https://pkg.go.dev/time#LoadLocation).
	// The value should be a location name corresponding to a file in the IANA Time Zone database, such as "America/New_York".
	// See also: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
	// +optional
	Timezone string `json:"timezone,omitempty"`

	// IgnoreActiveConnections ignores active connections on the namespace
	// +optional
	IgnoreActiveConnections bool `json:"ignoreActiveConnections,omitempty"`

	// IgnoreAll ignores all requests
	// +optional
	IgnoreAll bool `json:"ignoreAll,omitempty"`

	// IgnoreIngresses ignores all ingresses
	// +optional
	IgnoreIngresses bool `json:"ignoreIngresses,omitempty"`

	// IgnoreVClusters ignores vcluster requests
	// +optional
	IgnoreVClusters bool `json:"ignoreVClusters,omitempty"`

	// IgnoreGroups are ignored user groups
	// +optional
	IgnoreGroups string `json:"ignoreGroups,omitempty"`

	// IgnoreVerbs are ignored request verbs
	// +optional
	IgnoreVerbs string `json:"ignoreVerbs,omitempty"`

	// IgnoreResources are ignored request resources
	// +optional
	IgnoreResources string `json:"ignoreResources,omitempty"`

	// IgnoreResourceVerbs are ignored resource verbs
	// +optional
	IgnoreResourceVerbs string `json:"ignoreResourceVerbs,omitempty"`

	// IgnoreResourceNames are ignored resources and names
	// +optional
	IgnoreResourceNames string `json:"ignoreResourceNames,omitempty"`

	// IgnoreUseragents are ignored user agents with trailing wildcards '*' allowed.
	// comma separated
	// +optional
	IgnoreUseragents string `json:"ignoreUserAgents,omitempty"`
}

func (*SleepModeConfigSpec) DeepCopy

func (in *SleepModeConfigSpec) DeepCopy() *SleepModeConfigSpec

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

func (*SleepModeConfigSpec) DeepCopyInto

func (in *SleepModeConfigSpec) DeepCopyInto(out *SleepModeConfigSpec)

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

type SleepModeConfigStatus

type SleepModeConfigStatus struct {
	// LastActivity indicates the last activity in the namespace
	// +optional
	LastActivity int64 `json:"lastActivity,omitempty"`

	// LastActivityInfo holds information about the last activity within this space
	// +optional
	LastActivityInfo *LastActivityInfo `json:"lastActivityInfo,omitempty"`

	// SleepingSince specifies since when the space is sleeping (if this is not specified, loft assumes the space is not sleeping)
	// +optional
	SleepingSince int64 `json:"sleepingSince,omitempty"`

	// Optional info that indicates how long the space was sleeping in the current epoch
	// +optional
	CurrentEpoch *EpochInfo `json:"currentEpoch,omitempty"`

	// Optional info that indicates how long the space was sleeping in the current epoch
	// +optional
	LastEpoch *EpochInfo `json:"lastEpoch,omitempty"`

	// This is a calculated field that will be returned but not saved and describes the percentage since the space
	// was created or the last 30 days the space has slept
	// +optional
	SleptLastThirtyDays *float64 `json:"sleptLastThirtyDays,omitempty"`

	// This is a calculated field that will be returned but not saved and describes the percentage since the space
	// was created or the last 7 days the space has slept
	// +optional
	SleptLastSevenDays *float64 `json:"sleptLastSevenDays,omitempty"`

	// Indicates time of the next scheduled sleep based on .Spec.SleepSchedule and .Spec.ScheduleTimeZone
	// The time is a Unix time, the number of seconds elapsed since January 1, 1970 UTC
	// +optional
	ScheduledSleep *int64 `json:"scheduledSleep,omitempty"`

	// Indicates time of the next scheduled wakeup based on .Spec.WakeupSchedule and .Spec.ScheduleTimeZone
	// The time is a Unix time, the number of seconds elapsed since January 1, 1970 UTC
	// +optional
	ScheduledWakeup *int64 `json:"scheduledWakeup,omitempty"`

	// SleepType specifies a type of sleep, which has effect on which actions will cause the space to wake up.
	// +optional
	SleepType string `json:"sleepType,omitempty"`
}

func (*SleepModeConfigStatus) DeepCopy

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

func (*SleepModeConfigStatus) DeepCopyInto

func (in *SleepModeConfigStatus) DeepCopyInto(out *SleepModeConfigStatus)

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

type Status

type Status string

Status is the status of a release

const (
	// StatusUnknown indicates that a release is in an uncertain state.
	StatusUnknown Status = "unknown"
	// StatusDeployed indicates that the release has been pushed to Kubernetes.
	StatusDeployed Status = "deployed"
	// StatusUninstalled indicates that a release has been uninstalled from Kubernetes.
	StatusUninstalled Status = "uninstalled"
	// StatusSuperseded indicates that this release object is outdated and a newer one exists.
	StatusSuperseded Status = "superseded"
	// StatusFailed indicates that the release was not successfully deployed.
	StatusFailed Status = "failed"
	// StatusUninstalling indicates that a uninstall operation is underway.
	StatusUninstalling Status = "uninstalling"
	// StatusPendingInstall indicates that an install operation is underway.
	StatusPendingInstall Status = "pending-install"
	// StatusPendingUpgrade indicates that an upgrade operation is underway.
	StatusPendingUpgrade Status = "pending-upgrade"
	// StatusPendingRollback indicates that an rollback operation is underway.
	StatusPendingRollback Status = "pending-rollback"
)

Describe the status of a release NOTE: Make sure to update cmd/helm/status.go when adding or modifying any of these statuses.

func (Status) String

func (x Status) String() string

Jump to

Keyboard shortcuts

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