knuu

package
v0.13.2 Latest Latest
Warning

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

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

Documentation

Overview

Package knuu provides the core functionality of knuu.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Identifier deprecated added in v0.4.0

func Identifier() string

Deprecated: Identifier is deprecated, use Scope() instead.

func ImageBuilder added in v0.11.0

func ImageBuilder() builder.Builder

func Initialize

func Initialize() error

Initialize initializes knuu with a unique scope

func InitializeWithIdentifier deprecated added in v0.4.0

func InitializeWithIdentifier(uniqueIdentifier string) error

Deprecated: InitializeWithIdentifier is deprecated, use InitializeWithScope(scope string) instead.

func InitializeWithScope added in v0.13.2

func InitializeWithScope(scope string) error

InitializeWithScope initializes knuu with a given scope

func IsInitialized added in v0.7.0

func IsInitialized() bool

IsInitialized returns true if knuu is initialized, and false otherwise

func Scope added in v0.13.2

func Scope() string

Scope returns the scope of the current knuu instance

func SetImageBuilder added in v0.11.0

func SetImageBuilder(b builder.Builder)

Types

type Action added in v0.13.2

type Action struct {
	Key    string `yaml:"key,omitempty"`
	Value  string `yaml:"value,omitempty"`
	Action string `yaml:"action,omitempty"`
}

type Attributes added in v0.13.2

type Attributes struct {
	Actions []Action `yaml:"actions,omitempty"`
}

type BasicAuthOTLP added in v0.10.0

type BasicAuthOTLP struct {
	ClientAuth ClientAuth `yaml:"client_auth,omitempty"`
}

type Batch added in v0.10.0

type Batch struct{}

type ClientAuth added in v0.10.0

type ClientAuth struct {
	Username string `yaml:"username,omitempty"`
	Password string `yaml:"password,omitempty"`
}

type Executor

type Executor struct {
	// contains filtered or unexported fields
}

func NewExecutor

func NewExecutor() (*Executor, error)

func (*Executor) Destroy

func (e *Executor) Destroy() error

func (*Executor) ExecuteCommand

func (e *Executor) ExecuteCommand(command ...string) (string, error)

func (*Executor) ExecuteCommandWithContext added in v0.11.0

func (e *Executor) ExecuteCommandWithContext(ctx context.Context, command ...string) (string, error)

type Exporters added in v0.10.0

type Exporters struct {
	OTLPHTTP              OTLPHTTPExporter              `yaml:"otlphttp,omitempty"`
	Jaeger                JaegerExporter                `yaml:"jaeger,omitempty"`
	Prometheus            PrometheusExporter            `yaml:"prometheus,omitempty"`
	PrometheusRemoteWrite PrometheusRemoteWriteExporter `yaml:"prometheusremotewrite,omitempty"`
}

type Extensions added in v0.10.0

type Extensions struct {
	BasicAuthOTLP BasicAuthOTLP `yaml:"basicauth/otlp,omitempty"`
}

type Instance

type Instance struct {
	BitTwister *btConfig
	// contains filtered or unexported fields
}

Instance represents a instance

func NewInstance

func NewInstance(name string) (*Instance, error)

NewInstance creates a new instance of the Instance struct

func (*Instance) AddCapabilities added in v0.11.0

func (i *Instance) AddCapabilities(capabilities []string) error

AddCapabilities adds multiple capabilities to the instance This function can only be called in the state 'Preparing' or 'Committed'

func (*Instance) AddCapability added in v0.11.0

func (i *Instance) AddCapability(capability string) error

AddCapability adds a capability to the instance This function can only be called in the state 'Preparing' or 'Committed'

func (*Instance) AddFile

func (i *Instance) AddFile(src string, dest string, chown string) error

AddFile adds a file to the instance This function can only be called in the state 'Preparing'

func (*Instance) AddFileBytes

func (i *Instance) AddFileBytes(bytes []byte, dest string, chown string) error

AddFileBytes adds a file with the given content to the instance This function can only be called in the state 'Preparing'

func (*Instance) AddFolder added in v0.7.0

func (i *Instance) AddFolder(src string, dest string, chown string) error

AddFolder adds a folder to the instance This function can only be called in the state 'Preparing' or 'Committed'

func (*Instance) AddPolicyRule added in v0.8.2

func (i *Instance) AddPolicyRule(rule rbacv1.PolicyRule) error

AddPolicyRule adds a policy rule to the instance This function can only be called in the states 'Preparing' and 'Committed'

func (*Instance) AddPortTCP

func (i *Instance) AddPortTCP(port int) error

AddPortTCP adds a TCP port to the instance This function can be called in the states 'Preparing' and 'Committed'

func (*Instance) AddPortUDP

func (i *Instance) AddPortUDP(port int) error

AddPortUDP adds a UDP port to the instance This function can be called in the states 'Preparing' and 'Committed'

func (*Instance) AddSidecar added in v0.9.0

func (i *Instance) AddSidecar(sidecar *Instance) error

AddSidecar adds a sidecar to the instance This function can only be called in the state 'Preparing' or 'Committed'

func (*Instance) AddVolume

func (i *Instance) AddVolume(path, size string) error

AddVolume adds a volume to the instance The owner of the volume is set to 0, if you want to set a custom owner use AddVolumeWithOwner This function can only be called in the states 'Preparing' and 'Committed'

func (*Instance) AddVolumeWithOwner added in v0.7.2

func (i *Instance) AddVolumeWithOwner(path, size string, owner int64) error

AddVolumeWithOwner adds a volume to the instance with the given owner This function can only be called in the states 'Preparing' and 'Committed'

func (*Instance) Clone added in v0.3.0

func (i *Instance) Clone() (*Instance, error)

Clone creates a clone of the instance This function can only be called in the state 'Committed' When cloning an instance that is a sidecar, the clone will be not a sidecar When cloning an instance with sidecars, the sidecars will be cloned as well

func (*Instance) CloneWithName added in v0.9.0

func (i *Instance) CloneWithName(name string) (*Instance, error)

CloneWithName creates a clone of the instance with a given name This function can only be called in the state 'Committed' When cloning an instance that is a sidecar, the clone will be not a sidecar When cloning an instance with sidecars, the sidecars will be cloned as well

func (*Instance) Commit

func (i *Instance) Commit() error

Commit commits the instance This function can only be called in the state 'Preparing'

func (*Instance) CreatePool

func (i *Instance) CreatePool(amount int) (*InstancePool, error)

CreatePool creates a pool of instances This function can only be called in the state 'Committed'

func (*Instance) Destroy

func (i *Instance) Destroy() error

Destroy destroys the instance This function can only be called in the state 'Started' or 'Destroyed'

func (*Instance) DisableBitTwister added in v0.11.0

func (i *Instance) DisableBitTwister() error

func (*Instance) DisableNetwork added in v0.7.0

func (i *Instance) DisableNetwork() error

DisableNetwork disables the network of the instance This does not apply to executor instances This function can only be called in the state 'Started'

func (*Instance) EnableBitTwister added in v0.11.0

func (i *Instance) EnableBitTwister() error

func (*Instance) EnableNetwork added in v0.7.0

func (i *Instance) EnableNetwork() error

EnableNetwork enables the network of the instance This function can only be called in the state 'Started'

func (*Instance) ExecuteCommand

func (i *Instance) ExecuteCommand(command ...string) (string, error)

ExecuteCommand executes the given command in the instance This function can only be called in the states 'Preparing' and 'Started'

func (*Instance) ExecuteCommandWithContext added in v0.11.0

func (i *Instance) ExecuteCommandWithContext(ctx context.Context, command ...string) (string, error)

ExecuteCommandWithContext executes the given command in the instance This function can only be called in the states 'Preparing' and 'Started' The context can be used to cancel the command and it is only possible in start state

func (*Instance) GetFileBytes

func (i *Instance) GetFileBytes(file string) ([]byte, error)

GetFileBytes returns the content of the given file This function can only be called in the states 'Preparing' and 'Committed'

func (*Instance) GetIP

func (i *Instance) GetIP() (string, error)

GetIP returns the IP of the instance This function can only be called in the states 'Preparing' and 'Started'

func (*Instance) IsInState

func (i *Instance) IsInState(states ...InstanceState) bool

IsInState checks if the instance is in one of the provided states

func (*Instance) IsRunning added in v0.7.0

func (i *Instance) IsRunning() (bool, error)

IsRunning returns true if the instance is running This function can only be called in the state 'Started'

func (*Instance) NetworkIsDisabled added in v0.9.0

func (i *Instance) NetworkIsDisabled() (bool, error)

NetworkIsDisabled returns true if the network of the instance is disabled This function can only be called in the state 'Started'

func (*Instance) PortForwardTCP added in v0.5.0

func (i *Instance) PortForwardTCP(port int) (int, error)

PortForwardTCP forwards the given port to a random port on the host This function can only be called in the state 'Started'

func (*Instance) SetArgs

func (i *Instance) SetArgs(args ...string) error

SetArgs sets the arguments passed to the instance This function can only be called in the states 'Preparing' or 'Committed'

func (*Instance) SetBandwidthLimit added in v0.11.0

func (i *Instance) SetBandwidthLimit(limit int64) error

SetBandwidthLimit sets the bandwidth limit of the instance bandwidth limit in bps (e.g. 1000 for 1Kbps) Currently, only one of bandwidth, jitter, latency or packet loss can be set This function can only be called in the state 'Commited'

func (*Instance) SetCPU added in v0.4.0

func (i *Instance) SetCPU(request string) error

SetCPU sets the CPU of the instance This function can only be called in the states 'Preparing' and 'Committed'

func (*Instance) SetCommand

func (i *Instance) SetCommand(command ...string) error

SetCommand sets the command to run in the instance This function can only be called when the instance is in state 'Preparing' or 'Committed'

func (*Instance) SetEnvironmentVariable

func (i *Instance) SetEnvironmentVariable(key, value string) error

SetEnvironmentVariable sets the given environment variable in the instance This function can only be called in the states 'Preparing' and 'Committed'

func (*Instance) SetGitRepo added in v0.11.0

func (i *Instance) SetGitRepo(ctx context.Context, gitContext builder.GitContext) error

SetGitRepo builds the image from the given git repo, pushes it to the registry under the given name and sets the image of the instance.

func (*Instance) SetImage

func (i *Instance) SetImage(image string) error

SetImage sets the image of the instance. When calling in state 'Started', make sure to call AddVolume() before. It is only allowed in the 'None' and 'Started' states.

func (*Instance) SetImageInstant added in v0.7.0

func (i *Instance) SetImageInstant(image string) error

SetImageInstant sets the image of the instance without a grace period. Instant means that the pod is replaced without a grace period of 1 second. It is only allowed in the 'Running' state.

func (*Instance) SetJaegerEndpoint added in v0.10.0

func (i *Instance) SetJaegerEndpoint(grpcPort, thriftCompactPort, thriftHttpPort int) error

SetJaegerEndpoint sets the Jaeger endpoint for the instance This function can only be called in the state 'Preparing' or 'Committed'

func (*Instance) SetJaegerExporter added in v0.10.0

func (i *Instance) SetJaegerExporter(endpoint string) error

SetJaegerExporter sets the Jaeger exporter for the instance This function can only be called in the state 'Preparing' or 'Committed'

func (*Instance) SetLatencyAndJitter added in v0.11.0

func (i *Instance) SetLatencyAndJitter(latency, jitter int64) error

SetLatency sets the latency of the instance latency in ms (e.g. 1000 for 1s) jitter in ms (e.g. 1000 for 1s) Currently, only one of bandwidth, jitter, latency or packet loss can be set This function can only be called in the state 'Commited'

func (*Instance) SetLivenessProbe added in v0.8.2

func (i *Instance) SetLivenessProbe(livenessProbe *v1.Probe) error

SetLivenessProbe sets the liveness probe of the instance A live probe is a probe that is used to determine if the instance is still alive, and should be restarted if not See usage documentation: https://pkg.go.dev/k8s.io/api/core/v1@v0.27.3#Probe This function can only be called in the states 'Preparing' and 'Committed'

func (*Instance) SetMemory added in v0.4.0

func (i *Instance) SetMemory(request, limit string) error

SetMemory sets the memory of the instance This function can only be called in the states 'Preparing' and 'Committed'

func (*Instance) SetOtelCollectorVersion added in v0.10.0

func (i *Instance) SetOtelCollectorVersion(version string) error

SetOtelCollectorVersion sets the OpenTelemetry collector version for the instance This function can only be called in the state 'Preparing' or 'Committed'

func (*Instance) SetOtelEndpoint added in v0.10.0

func (i *Instance) SetOtelEndpoint(port int) error

SetOtelEndpoint sets the OpenTelemetry endpoint for the instance This function can only be called in the state 'Preparing' or 'Committed'

func (*Instance) SetOtlpExporter added in v0.10.0

func (i *Instance) SetOtlpExporter(endpoint, username, password string) error

SetOtlpExporter sets the OTLP exporter for the instance This function can only be called in the state 'Preparing' or 'Committed'

func (*Instance) SetPacketLoss added in v0.11.0

func (i *Instance) SetPacketLoss(packetLoss int32) error

SetPacketLoss sets the packet loss of the instance packet loss in percent (e.g. 10 for 10%) Currently, only one of bandwidth, jitter, latency or packet loss can be set This function can only be called in the state 'Commited'

func (*Instance) SetPrivileged added in v0.11.0

func (i *Instance) SetPrivileged(privileged bool) error

SetPrivileged sets the privileged status for the instance This function can only be called in the state 'Preparing' or 'Committed'

func (*Instance) SetPrometheusEndpoint added in v0.10.0

func (i *Instance) SetPrometheusEndpoint(port int, jobName, scapeInterval string) error

SetPrometheusEndpoint sets the Prometheus endpoint for the instance This function can only be called in the state 'Preparing' or 'Committed'

func (*Instance) SetPrometheusExporter added in v0.13.1

func (i *Instance) SetPrometheusExporter(endpoint string) error

SetPrometheusExporter sets the Prometheus exporter for the instance This function can only be called in the state 'Preparing' or 'Committed'

func (*Instance) SetPrometheusRemoteWriteExporter added in v0.13.1

func (i *Instance) SetPrometheusRemoteWriteExporter(endpoint string) error

SetPrometheusRemoteWriteExporter sets the Prometheus remote write exporter for the instance This function can only be called in the state 'Preparing' or 'Committed'

func (*Instance) SetReadinessProbe added in v0.8.2

func (i *Instance) SetReadinessProbe(readinessProbe *v1.Probe) error

SetReadinessProbe sets the readiness probe of the instance A readiness probe is a probe that is used to determine if the instance is ready to receive traffic See usage documentation: https://pkg.go.dev/k8s.io/api/core/v1@v0.27.3#Probe This function can only be called in the states 'Preparing' and 'Committed'

func (*Instance) SetStartupProbe added in v0.8.2

func (i *Instance) SetStartupProbe(startupProbe *v1.Probe) error

SetStartupProbe sets the startup probe of the instance A startup probe is a probe that is used to determine if the instance is ready to receive traffic after a startup See usage documentation: https://pkg.go.dev/k8s.io/api/core/v1@v0.27.3#Probe This function can only be called in the states 'Preparing' and 'Committed'

func (*Instance) SetUser added in v0.7.0

func (i *Instance) SetUser(user string) error

SetUser sets the user for the instance This function can only be called in the state 'Preparing'

func (*Instance) Start

func (i *Instance) Start() error

Start starts the instance and waits for it to be ready This function can only be called in the state 'Committed' and 'Stopped'

func (*Instance) StartWithoutWait added in v0.9.0

func (i *Instance) StartWithoutWait() error

StartWithoutWait starts the instance without waiting for it to be ready This function can only be called in the state 'Committed' or 'Stopped'

func (*Instance) Stop added in v0.7.0

func (i *Instance) Stop() error

Stop stops the instance CAUTION: In order to keep data of the instance, you need to use AddVolume() before. This function can only be called in the state 'Started'

func (*Instance) WaitInstanceIsRunning

func (i *Instance) WaitInstanceIsRunning() error

WaitInstanceIsRunning waits until the instance is running This function can only be called in the state 'Started'

func (*Instance) WaitInstanceIsStopped added in v0.7.0

func (i *Instance) WaitInstanceIsStopped() error

WaitInstanceIsStopped waits until the instance is not running anymore This function can only be called in the state 'Stopped'

type InstancePool

type InstancePool struct {
	// contains filtered or unexported fields
}

InstancePool is a struct that represents a pool of instances

func (*InstancePool) Destroy

func (i *InstancePool) Destroy() error

Destroy destroys all instances in the instance pool

func (*InstancePool) Instances

func (i *InstancePool) Instances() []*Instance

Instances returns the instances in the instance pool

func (*InstancePool) Start

func (i *InstancePool) Start() error

Start starts all instances in the instance pool

func (*InstancePool) StartWithoutWait added in v0.9.0

func (i *InstancePool) StartWithoutWait() error

StartWithoutWait starts all instances in the instance pool without waiting for them to be running

func (*InstancePool) WaitInstancePoolIsRunning

func (i *InstancePool) WaitInstancePoolIsRunning() error

WaitInstancePoolIsRunning waits until all instances in the instance pool are running

type InstanceState added in v0.3.0

type InstanceState int

InstanceState represents the state of the instance

const (
	None InstanceState = iota
	Preparing
	Committed
	Started
	Stopped
	Destroyed
)

Possible states of the instance

func (InstanceState) String added in v0.3.0

func (s InstanceState) String() string

String returns the string representation of the state

type InstanceType added in v0.7.0

type InstanceType int

InstanceType represents the type of the instance

const (
	BasicInstance InstanceType = iota
	ExecutorInstance
	TimeoutHandlerInstance
)

Possible types of the instance

func (InstanceType) String added in v0.7.0

func (s InstanceType) String() string

String returns the string representation of the type

type Jaeger added in v0.10.0

type Jaeger struct {
	Protocols JaegerProtocols `yaml:"protocols,omitempty"`
}

type JaegerExporter added in v0.10.0

type JaegerExporter struct {
	Endpoint string `yaml:"endpoint,omitempty"`
	TLS      TLS    `yaml:"tls,omitempty"`
}

type JaegerGRPC added in v0.10.0

type JaegerGRPC struct {
	Endpoint string `yaml:"endpoint,omitempty"`
}

type JaegerProtocols added in v0.10.0

type JaegerProtocols struct {
	GRPC          JaegerGRPC          `yaml:"grpc,omitempty"`
	ThriftCompact JaegerThriftCompact `yaml:"thrift_compact,omitempty"`
	ThriftHTTP    JaegerThriftHTTP    `yaml:"thrift_http,omitempty"`
}

type JaegerThriftCompact added in v0.10.0

type JaegerThriftCompact struct {
	Endpoint string `yaml:"endpoint,omitempty"`
}

type JaegerThriftHTTP added in v0.10.0

type JaegerThriftHTTP struct {
	Endpoint string `yaml:"endpoint,omitempty"`
}

type MemoryLimiter added in v0.10.0

type MemoryLimiter struct {
	LimitMiB      int    `yaml:"limit_mib,omitempty"`
	SpikeLimitMiB int    `yaml:"spike_limit_mib,omitempty"`
	CheckInterval string `yaml:"check_interval,omitempty"`
}

type Metrics added in v0.10.0

type Metrics struct {
	Receivers  []string `yaml:"receivers,omitempty"`
	Exporters  []string `yaml:"exporters,omitempty"`
	Processors []string `yaml:"processors,omitempty"`
}

type MetricsTelemetry added in v0.13.2

type MetricsTelemetry struct {
	Address string `yaml:"address,omitempty"`
	Level   string `yaml:"level,omitempty"` // Options are basic, normal, detailed
}

type OTLP added in v0.10.0

type OTLP struct {
	Protocols OTLPProtocols `yaml:"protocols,omitempty"`
}

type OTLPAuth added in v0.10.0

type OTLPAuth struct {
	Authenticator string `yaml:"authenticator,omitempty"`
}

type OTLPHTTP added in v0.10.0

type OTLPHTTP struct {
	Endpoint string `yaml:"endpoint,omitempty"`
}

type OTLPHTTPExporter added in v0.10.0

type OTLPHTTPExporter struct {
	Auth     OTLPAuth `yaml:"auth,omitempty"`
	Endpoint string   `yaml:"endpoint,omitempty"`
}

type OTLPProtocols added in v0.10.0

type OTLPProtocols struct {
	HTTP OTLPHTTP `yaml:"http,omitempty"`
}

type OTelConfig added in v0.10.0

type OTelConfig struct {
	Extensions Extensions `yaml:"extensions,omitempty"`
	Receivers  Receivers  `yaml:"receivers,omitempty"`
	Exporters  Exporters  `yaml:"exporters,omitempty"`
	Service    Service    `yaml:"service,omitempty"`
	Processors Processors `yaml:"processors,omitempty"`
}

type ObsyConfig added in v0.10.0

type ObsyConfig struct {
	// contains filtered or unexported fields
}

ObsyConfig represents the configuration for the obsy sidecar

type Pipelines added in v0.10.0

type Pipelines struct {
	Metrics Metrics `yaml:"metrics,omitempty"`
	Traces  Traces  `yaml:"traces,omitempty"`
}

type Preloader added in v0.7.0

type Preloader struct {
	// contains filtered or unexported fields
}

Preloader is a struct that contains the list of preloaded images. A preloader makes sure that the images are preloaded before the test suite starts. Hint: If you use a Preloader per test suite, you can save resources

func NewPreloader added in v0.7.0

func NewPreloader() (*Preloader, error)

NewPreloader creates a new preloader

func (*Preloader) AddImage added in v0.7.0

func (p *Preloader) AddImage(image string) error

AddImage adds an image to the list of preloaded images

func (*Preloader) EmptyImages added in v0.7.0

func (p *Preloader) EmptyImages() error

EmptyImages empties the list of preloaded images

func (*Preloader) Images added in v0.7.0

func (p *Preloader) Images() []string

Images returns the list of preloaded images

func (*Preloader) RemoveImage added in v0.7.0

func (p *Preloader) RemoveImage(image string) error

RemoveImage removes an image from the list of preloaded images

type Processors added in v0.10.0

type Processors struct {
	Batch         Batch         `yaml:"batch,omitempty"`
	MemoryLimiter MemoryLimiter `yaml:"memory_limiter,omitempty"`
	Attributes    Attributes    `yaml:"attributes,omitempty"`
}

type Prometheus added in v0.10.0

type Prometheus struct {
	Config PrometheusConfig `yaml:"config,omitempty"`
}

type PrometheusConfig added in v0.10.0

type PrometheusConfig struct {
	ScrapeConfigs []ScrapeConfig `yaml:"scrape_configs,omitempty"`
}

type PrometheusExporter added in v0.13.1

type PrometheusExporter struct {
	Endpoint string `yaml:"endpoint,omitempty"`
}

type PrometheusRemoteWriteExporter added in v0.13.1

type PrometheusRemoteWriteExporter struct {
	Endpoint string `yaml:"endpoint,omitempty"`
	TLS      TLS    `yaml:"tls,omitempty"`
}

type Receivers added in v0.10.0

type Receivers struct {
	OTLP       OTLP       `yaml:"otlp,omitempty"`
	Prometheus Prometheus `yaml:"prometheus,omitempty"`
	Jaeger     Jaeger     `yaml:"jaeger,omitempty"`
}

type ScrapeConfig added in v0.10.0

type ScrapeConfig struct {
	JobName        string         `yaml:"job_name,omitempty"`
	ScrapeInterval string         `yaml:"scrape_interval,omitempty"`
	StaticConfigs  []StaticConfig `yaml:"static_configs,omitempty"`
}

type SecurityContext added in v0.11.0

type SecurityContext struct {
	// contains filtered or unexported fields
}

SecurityContext represents the security settings for a container

type Service added in v0.10.0

type Service struct {
	Extensions []string  `yaml:"extensions,omitempty"`
	Pipelines  Pipelines `yaml:"pipelines,omitempty"`
	Telemetry  Telemetry `yaml:"telemetry,omitempty"` // Added Telemetry field
}

type StaticConfig added in v0.10.0

type StaticConfig struct {
	Targets []string `yaml:"targets,omitempty"`
}

type TLS added in v0.10.0

type TLS struct {
	Insecure bool `yaml:"insecure,omitempty"`
}

type Telemetry added in v0.13.2

type Telemetry struct {
	Metrics MetricsTelemetry `yaml:"metrics,omitempty"`
}

type Traces added in v0.10.0

type Traces struct {
	Receivers  []string `yaml:"receivers,omitempty"`
	Exporters  []string `yaml:"exporters,omitempty"`
	Processors []string `yaml:"processors,omitempty"`
}

Jump to

Keyboard shortcuts

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