v1beta1

package
v1.1.0 Latest Latest
Warning

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

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

Documentation

Overview

+kubebuilder:object:generate=true +groupName=tpu.gcp.upbound.io +versionName=v1beta1

Index

Constants

View Source
const (
	CRDGroup   = "tpu.gcp.upbound.io"
	CRDVersion = "v1beta1"
)

Package type metadata.

Variables

View Source
var (
	// CRDGroupVersion is the API Group Version used to register the objects
	CRDGroupVersion = schema.GroupVersion{Group: CRDGroup, Version: CRDVersion}

	// SchemeBuilder is used to add go types to the GroupVersionKind scheme
	SchemeBuilder = &scheme.Builder{GroupVersion: CRDGroupVersion}

	// AddToScheme adds the types in this group-version to the given scheme.
	AddToScheme = SchemeBuilder.AddToScheme
)
View Source
var (
	Node_Kind             = "Node"
	Node_GroupKind        = schema.GroupKind{Group: CRDGroup, Kind: Node_Kind}.String()
	Node_KindAPIVersion   = Node_Kind + "." + CRDGroupVersion.String()
	Node_GroupVersionKind = CRDGroupVersion.WithKind(Node_Kind)
)

Repository type metadata.

Functions

This section is empty.

Types

type NetworkEndpointsInitParameters added in v0.35.0

type NetworkEndpointsInitParameters struct {
}

func (*NetworkEndpointsInitParameters) DeepCopy added in v0.35.0

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

func (*NetworkEndpointsInitParameters) DeepCopyInto added in v0.35.0

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

type NetworkEndpointsObservation

type NetworkEndpointsObservation struct {

	// (Output)
	// The IP address of this network endpoint.
	IPAddress *string `json:"ipAddress,omitempty" tf:"ip_address,omitempty"`

	// (Output)
	// The port of this network endpoint.
	Port *float64 `json:"port,omitempty" tf:"port,omitempty"`
}

func (*NetworkEndpointsObservation) DeepCopy

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

func (*NetworkEndpointsObservation) DeepCopyInto

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

type NetworkEndpointsParameters

type NetworkEndpointsParameters struct {
}

func (*NetworkEndpointsParameters) DeepCopy

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

func (*NetworkEndpointsParameters) DeepCopyInto

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

type Node

type Node struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`
	// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.acceleratorType) || (has(self.initProvider) && has(self.initProvider.acceleratorType))",message="spec.forProvider.acceleratorType is a required parameter"
	// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.tensorflowVersion) || (has(self.initProvider) && has(self.initProvider.tensorflowVersion))",message="spec.forProvider.tensorflowVersion is a required parameter"
	Spec   NodeSpec   `json:"spec"`
	Status NodeStatus `json:"status,omitempty"`
}

Node is the Schema for the Nodes API. A Cloud TPU instance. +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].status" +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +kubebuilder:printcolumn:name="EXTERNAL-NAME",type="string",JSONPath=".metadata.annotations.crossplane\\.io/external-name" +kubebuilder:printcolumn:name="AGE",type="date",JSONPath=".metadata.creationTimestamp" +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,gcp}

func (*Node) DeepCopy

func (in *Node) DeepCopy() *Node

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

func (*Node) DeepCopyInto

func (in *Node) DeepCopyInto(out *Node)

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

func (*Node) DeepCopyObject

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

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

func (*Node) GetCondition

func (mg *Node) GetCondition(ct xpv1.ConditionType) xpv1.Condition

GetCondition of this Node.

func (*Node) GetConnectionDetailsMapping

func (tr *Node) GetConnectionDetailsMapping() map[string]string

GetConnectionDetailsMapping for this Node

func (*Node) GetDeletionPolicy

func (mg *Node) GetDeletionPolicy() xpv1.DeletionPolicy

GetDeletionPolicy of this Node.

func (*Node) GetID

func (tr *Node) GetID() string

GetID returns ID of underlying Terraform resource of this Node

func (*Node) GetInitParameters added in v0.35.0

func (tr *Node) GetInitParameters() (map[string]any, error)

GetInitParameters of this Node

func (*Node) GetManagementPolicies added in v0.35.0

func (mg *Node) GetManagementPolicies() xpv1.ManagementPolicies

GetManagementPolicies of this Node.

func (*Node) GetMergedParameters added in v0.40.0

func (tr *Node) GetMergedParameters(shouldMergeInitProvider bool) (map[string]any, error)

GetInitParameters of this Node

func (*Node) GetObservation

func (tr *Node) GetObservation() (map[string]any, error)

GetObservation of this Node

func (*Node) GetParameters

func (tr *Node) GetParameters() (map[string]any, error)

GetParameters of this Node

func (*Node) GetProviderConfigReference

func (mg *Node) GetProviderConfigReference() *xpv1.Reference

GetProviderConfigReference of this Node.

func (*Node) GetPublishConnectionDetailsTo

func (mg *Node) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo

GetPublishConnectionDetailsTo of this Node.

func (*Node) GetTerraformResourceType

func (mg *Node) GetTerraformResourceType() string

GetTerraformResourceType returns Terraform resource type for this Node

func (*Node) GetTerraformSchemaVersion

func (tr *Node) GetTerraformSchemaVersion() int

GetTerraformSchemaVersion returns the associated Terraform schema version

func (*Node) GetWriteConnectionSecretToReference

func (mg *Node) GetWriteConnectionSecretToReference() *xpv1.SecretReference

GetWriteConnectionSecretToReference of this Node.

func (*Node) Hub added in v0.41.2

func (tr *Node) Hub()

Hub marks this type as a conversion hub.

func (*Node) LateInitialize

func (tr *Node) LateInitialize(attrs []byte) (bool, error)

LateInitialize this Node using its observed tfState. returns True if there are any spec changes for the resource.

func (*Node) ResolveReferences

func (mg *Node) ResolveReferences(ctx context.Context, c client.Reader) error

func (*Node) SetConditions

func (mg *Node) SetConditions(c ...xpv1.Condition)

SetConditions of this Node.

func (*Node) SetDeletionPolicy

func (mg *Node) SetDeletionPolicy(r xpv1.DeletionPolicy)

SetDeletionPolicy of this Node.

func (*Node) SetManagementPolicies added in v0.35.0

func (mg *Node) SetManagementPolicies(r xpv1.ManagementPolicies)

SetManagementPolicies of this Node.

func (*Node) SetObservation

func (tr *Node) SetObservation(obs map[string]any) error

SetObservation for this Node

func (*Node) SetParameters

func (tr *Node) SetParameters(params map[string]any) error

SetParameters for this Node

func (*Node) SetProviderConfigReference

func (mg *Node) SetProviderConfigReference(r *xpv1.Reference)

SetProviderConfigReference of this Node.

func (*Node) SetPublishConnectionDetailsTo

func (mg *Node) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo)

SetPublishConnectionDetailsTo of this Node.

func (*Node) SetWriteConnectionSecretToReference

func (mg *Node) SetWriteConnectionSecretToReference(r *xpv1.SecretReference)

SetWriteConnectionSecretToReference of this Node.

type NodeInitParameters added in v0.35.0

type NodeInitParameters struct {

	// The type of hardware accelerators associated with this node.
	AcceleratorType *string `json:"acceleratorType,omitempty" tf:"accelerator_type,omitempty"`

	// The CIDR block that the TPU node will use when selecting an IP
	// address. This CIDR block must be a /29 block; the Compute Engine
	// networks API forbids a smaller block, and using a larger block would
	// be wasteful (a node can only consume one IP address).
	// Errors will occur if the CIDR block has already been used for a
	// currently existing TPU node, the CIDR block conflicts with any
	// subnetworks in the user's provided network, or the provided network
	// is peered with another network that is using that CIDR block.
	CidrBlock *string `json:"cidrBlock,omitempty" tf:"cidr_block,omitempty"`

	// The user-supplied description of the TPU. Maximum of 512 characters.
	Description *string `json:"description,omitempty" tf:"description,omitempty"`

	// Resource labels to represent user provided metadata.
	// Note: This field is non-authoritative, and will only manage the labels present in your configuration.
	// Please refer to the field effective_labels for all of the labels present on the resource.
	// +mapType=granular
	Labels map[string]*string `json:"labels,omitempty" tf:"labels,omitempty"`

	// The name of a network to peer the TPU node to. It must be a
	// preexisting Compute Engine network inside of the project on which
	// this API has been activated. If none is provided, "default" will be
	// used.
	// +crossplane:generate:reference:type=github.com/upbound/provider-gcp/apis/servicenetworking/v1beta1.Connection
	// +crossplane:generate:reference:extractor=github.com/crossplane/upjet/pkg/resource.ExtractParamPath("network",false)
	Network *string `json:"network,omitempty" tf:"network,omitempty"`

	// Reference to a Connection in servicenetworking to populate network.
	// +kubebuilder:validation:Optional
	NetworkRef *v1.Reference `json:"networkRef,omitempty" tf:"-"`

	// Selector for a Connection in servicenetworking to populate network.
	// +kubebuilder:validation:Optional
	NetworkSelector *v1.Selector `json:"networkSelector,omitempty" tf:"-"`

	// The ID of the project in which the resource belongs.
	// If it is not provided, the provider project is used.
	Project *string `json:"project,omitempty" tf:"project,omitempty"`

	// Sets the scheduling options for this TPU instance.
	// Structure is documented below.
	SchedulingConfig []SchedulingConfigInitParameters `json:"schedulingConfig,omitempty" tf:"scheduling_config,omitempty"`

	// The version of Tensorflow running in the Node.
	TensorflowVersion *string `json:"tensorflowVersion,omitempty" tf:"tensorflow_version,omitempty"`

	// Whether the VPC peering for the node is set up through Service Networking API.
	// The VPC Peering should be set up before provisioning the node. If this field is set,
	// cidr_block field should not be specified. If the network that you want to peer the
	// TPU Node to is a Shared VPC network, the node must be created with this this field enabled.
	UseServiceNetworking *bool `json:"useServiceNetworking,omitempty" tf:"use_service_networking,omitempty"`
}

func (*NodeInitParameters) DeepCopy added in v0.35.0

func (in *NodeInitParameters) DeepCopy() *NodeInitParameters

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

func (*NodeInitParameters) DeepCopyInto added in v0.35.0

func (in *NodeInitParameters) DeepCopyInto(out *NodeInitParameters)

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

type NodeList

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

NodeList contains a list of Nodes

func (*NodeList) DeepCopy

func (in *NodeList) DeepCopy() *NodeList

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

func (*NodeList) DeepCopyInto

func (in *NodeList) DeepCopyInto(out *NodeList)

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

func (*NodeList) DeepCopyObject

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

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

func (*NodeList) GetItems

func (l *NodeList) GetItems() []resource.Managed

GetItems of this NodeList.

type NodeObservation

type NodeObservation struct {

	// The type of hardware accelerators associated with this node.
	AcceleratorType *string `json:"acceleratorType,omitempty" tf:"accelerator_type,omitempty"`

	// The CIDR block that the TPU node will use when selecting an IP
	// address. This CIDR block must be a /29 block; the Compute Engine
	// networks API forbids a smaller block, and using a larger block would
	// be wasteful (a node can only consume one IP address).
	// Errors will occur if the CIDR block has already been used for a
	// currently existing TPU node, the CIDR block conflicts with any
	// subnetworks in the user's provided network, or the provided network
	// is peered with another network that is using that CIDR block.
	CidrBlock *string `json:"cidrBlock,omitempty" tf:"cidr_block,omitempty"`

	// The user-supplied description of the TPU. Maximum of 512 characters.
	Description *string `json:"description,omitempty" tf:"description,omitempty"`

	// +mapType=granular
	EffectiveLabels map[string]*string `json:"effectiveLabels,omitempty" tf:"effective_labels,omitempty"`

	// an identifier for the resource with format projects/{{project}}/locations/{{zone}}/nodes/{{name}}
	ID *string `json:"id,omitempty" tf:"id,omitempty"`

	// Resource labels to represent user provided metadata.
	// Note: This field is non-authoritative, and will only manage the labels present in your configuration.
	// Please refer to the field effective_labels for all of the labels present on the resource.
	// +mapType=granular
	Labels map[string]*string `json:"labels,omitempty" tf:"labels,omitempty"`

	// The name of a network to peer the TPU node to. It must be a
	// preexisting Compute Engine network inside of the project on which
	// this API has been activated. If none is provided, "default" will be
	// used.
	Network *string `json:"network,omitempty" tf:"network,omitempty"`

	// The network endpoints where TPU workers can be accessed and sent work.
	// It is recommended that Tensorflow clients of the node first reach out
	// to the first (index 0) entry.
	// Structure is documented below.
	NetworkEndpoints []NetworkEndpointsObservation `json:"networkEndpoints,omitempty" tf:"network_endpoints,omitempty"`

	// The ID of the project in which the resource belongs.
	// If it is not provided, the provider project is used.
	Project *string `json:"project,omitempty" tf:"project,omitempty"`

	// Sets the scheduling options for this TPU instance.
	// Structure is documented below.
	SchedulingConfig []SchedulingConfigObservation `json:"schedulingConfig,omitempty" tf:"scheduling_config,omitempty"`

	// The service account used to run the tensor flow services within the
	// node. To share resources, including Google Cloud Storage data, with
	// the Tensorflow job running in the Node, this account must have
	// permissions to that data.
	ServiceAccount *string `json:"serviceAccount,omitempty" tf:"service_account,omitempty"`

	// The version of Tensorflow running in the Node.
	TensorflowVersion *string `json:"tensorflowVersion,omitempty" tf:"tensorflow_version,omitempty"`

	// The combination of labels configured directly on the resource
	// and default labels configured on the provider.
	// +mapType=granular
	TerraformLabels map[string]*string `json:"terraformLabels,omitempty" tf:"terraform_labels,omitempty"`

	// Whether the VPC peering for the node is set up through Service Networking API.
	// The VPC Peering should be set up before provisioning the node. If this field is set,
	// cidr_block field should not be specified. If the network that you want to peer the
	// TPU Node to is a Shared VPC network, the node must be created with this this field enabled.
	UseServiceNetworking *bool `json:"useServiceNetworking,omitempty" tf:"use_service_networking,omitempty"`

	// The GCP location for the TPU. If it is not provided, the provider zone is used.
	Zone *string `json:"zone,omitempty" tf:"zone,omitempty"`
}

func (*NodeObservation) DeepCopy

func (in *NodeObservation) DeepCopy() *NodeObservation

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

func (*NodeObservation) DeepCopyInto

func (in *NodeObservation) DeepCopyInto(out *NodeObservation)

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

type NodeParameters

type NodeParameters struct {

	// The type of hardware accelerators associated with this node.
	// +kubebuilder:validation:Optional
	AcceleratorType *string `json:"acceleratorType,omitempty" tf:"accelerator_type,omitempty"`

	// The CIDR block that the TPU node will use when selecting an IP
	// address. This CIDR block must be a /29 block; the Compute Engine
	// networks API forbids a smaller block, and using a larger block would
	// be wasteful (a node can only consume one IP address).
	// Errors will occur if the CIDR block has already been used for a
	// currently existing TPU node, the CIDR block conflicts with any
	// subnetworks in the user's provided network, or the provided network
	// is peered with another network that is using that CIDR block.
	// +kubebuilder:validation:Optional
	CidrBlock *string `json:"cidrBlock,omitempty" tf:"cidr_block,omitempty"`

	// The user-supplied description of the TPU. Maximum of 512 characters.
	// +kubebuilder:validation:Optional
	Description *string `json:"description,omitempty" tf:"description,omitempty"`

	// Resource labels to represent user provided metadata.
	// Note: This field is non-authoritative, and will only manage the labels present in your configuration.
	// Please refer to the field effective_labels for all of the labels present on the resource.
	// +kubebuilder:validation:Optional
	// +mapType=granular
	Labels map[string]*string `json:"labels,omitempty" tf:"labels,omitempty"`

	// The name of a network to peer the TPU node to. It must be a
	// preexisting Compute Engine network inside of the project on which
	// this API has been activated. If none is provided, "default" will be
	// used.
	// +crossplane:generate:reference:type=github.com/upbound/provider-gcp/apis/servicenetworking/v1beta1.Connection
	// +crossplane:generate:reference:extractor=github.com/crossplane/upjet/pkg/resource.ExtractParamPath("network",false)
	// +kubebuilder:validation:Optional
	Network *string `json:"network,omitempty" tf:"network,omitempty"`

	// Reference to a Connection in servicenetworking to populate network.
	// +kubebuilder:validation:Optional
	NetworkRef *v1.Reference `json:"networkRef,omitempty" tf:"-"`

	// Selector for a Connection in servicenetworking to populate network.
	// +kubebuilder:validation:Optional
	NetworkSelector *v1.Selector `json:"networkSelector,omitempty" tf:"-"`

	// The ID of the project in which the resource belongs.
	// If it is not provided, the provider project is used.
	// +kubebuilder:validation:Optional
	Project *string `json:"project,omitempty" tf:"project,omitempty"`

	// Sets the scheduling options for this TPU instance.
	// Structure is documented below.
	// +kubebuilder:validation:Optional
	SchedulingConfig []SchedulingConfigParameters `json:"schedulingConfig,omitempty" tf:"scheduling_config,omitempty"`

	// The version of Tensorflow running in the Node.
	// +kubebuilder:validation:Optional
	TensorflowVersion *string `json:"tensorflowVersion,omitempty" tf:"tensorflow_version,omitempty"`

	// Whether the VPC peering for the node is set up through Service Networking API.
	// The VPC Peering should be set up before provisioning the node. If this field is set,
	// cidr_block field should not be specified. If the network that you want to peer the
	// TPU Node to is a Shared VPC network, the node must be created with this this field enabled.
	// +kubebuilder:validation:Optional
	UseServiceNetworking *bool `json:"useServiceNetworking,omitempty" tf:"use_service_networking,omitempty"`

	// The GCP location for the TPU. If it is not provided, the provider zone is used.
	// +kubebuilder:validation:Required
	Zone *string `json:"zone" tf:"zone,omitempty"`
}

func (*NodeParameters) DeepCopy

func (in *NodeParameters) DeepCopy() *NodeParameters

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

func (*NodeParameters) DeepCopyInto

func (in *NodeParameters) DeepCopyInto(out *NodeParameters)

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

type NodeSpec

type NodeSpec struct {
	v1.ResourceSpec `json:",inline"`
	ForProvider     NodeParameters `json:"forProvider"`
	// THIS IS A BETA FIELD. It will be honored
	// unless the Management Policies feature flag is disabled.
	// InitProvider holds the same fields as ForProvider, with the exception
	// of Identifier and other resource reference fields. The fields that are
	// in InitProvider are merged into ForProvider when the resource is created.
	// The same fields are also added to the terraform ignore_changes hook, to
	// avoid updating them after creation. This is useful for fields that are
	// required on creation, but we do not desire to update them after creation,
	// for example because of an external controller is managing them, like an
	// autoscaler.
	InitProvider NodeInitParameters `json:"initProvider,omitempty"`
}

NodeSpec defines the desired state of Node

func (*NodeSpec) DeepCopy

func (in *NodeSpec) DeepCopy() *NodeSpec

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

func (*NodeSpec) DeepCopyInto

func (in *NodeSpec) DeepCopyInto(out *NodeSpec)

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

type NodeStatus

type NodeStatus struct {
	v1.ResourceStatus `json:",inline"`
	AtProvider        NodeObservation `json:"atProvider,omitempty"`
}

NodeStatus defines the observed state of Node.

func (*NodeStatus) DeepCopy

func (in *NodeStatus) DeepCopy() *NodeStatus

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

func (*NodeStatus) DeepCopyInto

func (in *NodeStatus) DeepCopyInto(out *NodeStatus)

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

type SchedulingConfigInitParameters added in v0.35.0

type SchedulingConfigInitParameters struct {

	// Defines whether the TPU instance is preemptible.
	Preemptible *bool `json:"preemptible,omitempty" tf:"preemptible,omitempty"`
}

func (*SchedulingConfigInitParameters) DeepCopy added in v0.35.0

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

func (*SchedulingConfigInitParameters) DeepCopyInto added in v0.35.0

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

type SchedulingConfigObservation

type SchedulingConfigObservation struct {

	// Defines whether the TPU instance is preemptible.
	Preemptible *bool `json:"preemptible,omitempty" tf:"preemptible,omitempty"`
}

func (*SchedulingConfigObservation) DeepCopy

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

func (*SchedulingConfigObservation) DeepCopyInto

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

type SchedulingConfigParameters

type SchedulingConfigParameters struct {

	// Defines whether the TPU instance is preemptible.
	// +kubebuilder:validation:Optional
	Preemptible *bool `json:"preemptible" tf:"preemptible,omitempty"`
}

func (*SchedulingConfigParameters) DeepCopy

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

func (*SchedulingConfigParameters) DeepCopyInto

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