v1

package
v0.0.0-...-b88d067 Latest Latest
Warning

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

Go to latest
Published: Dec 19, 2024 License: Apache-2.0 Imports: 12 Imported by: 2,034

Documentation

Overview

+groupName=route.openshift.io Package v1 is the v1 version of the API.

Index

Constants

View Source
const (
	// TLSTerminationEdge terminate encryption at the edge router.
	TLSTerminationEdge TLSTerminationType = "edge"
	// TLSTerminationPassthrough terminate encryption at the destination, the destination is responsible for decrypting traffic
	TLSTerminationPassthrough TLSTerminationType = "passthrough"
	// TLSTerminationReencrypt terminate encryption at the edge router and re-encrypt it with a new certificate supplied by the destination
	TLSTerminationReencrypt TLSTerminationType = "reencrypt"

	// InsecureEdgeTerminationPolicyNone disables insecure connections for an edge-terminated route.
	InsecureEdgeTerminationPolicyNone InsecureEdgeTerminationPolicyType = "None"
	// InsecureEdgeTerminationPolicyAllow allows insecure connections for an edge-terminated route.
	InsecureEdgeTerminationPolicyAllow InsecureEdgeTerminationPolicyType = "Allow"
	// InsecureEdgeTerminationPolicyRedirect redirects insecure connections for an edge-terminated route.
	// As an example, for routers that support HTTP and HTTPS, the
	// insecure HTTP connections will be redirected to use HTTPS.
	InsecureEdgeTerminationPolicyRedirect InsecureEdgeTerminationPolicyType = "Redirect"
)
View Source
const (
	// AllowNonDNSCompliantHostAnnotation indicates that the host name in a route
	// configuration is not required to follow strict DNS compliance.
	// Unless the annotation is set to true, the route host name must have at least one label.
	// Labels must have no more than 63 characters from the set of
	// alphanumeric characters, '-' or '.', and must start and end with an alphanumeric
	// character. A trailing dot is not allowed. The total host name length must be no more
	// than 253 characters.
	//
	// When the annotation is set to true, the host name must pass a smaller set of
	// requirements, i.e.: character set as described above, and total host name
	// length must be no more than 253 characters.
	//
	// NOTE: use of this annotation may validate routes that cannot be admitted and will
	// not function.  The annotation is provided to allow a custom scenario, e.g. a custom
	// ingress controller that relies on the route API, but for some customized purpose
	// needs to use routes with invalid hosts.
	AllowNonDNSCompliantHostAnnotation = "route.openshift.io/allow-non-dns-compliant-host"
)

Route Annotations

View Source
const (
	// IngressToRouteIngressClassControllerName is the name of the
	// controller that translates ingresses into routes.  This value is
	// intended to be used for the spec.controller field of ingressclasses.
	IngressToRouteIngressClassControllerName = "openshift.io/ingress-to-route"
)

Ingress-to-route controller

Variables

View Source
var (
	ErrInvalidLengthGenerated        = fmt.Errorf("proto: negative length found during unmarshaling")
	ErrIntOverflowGenerated          = fmt.Errorf("proto: integer overflow")
	ErrUnexpectedEndOfGroupGenerated = fmt.Errorf("proto: unexpected end of group")
)
View Source
var (
	GroupName    = "route.openshift.io"
	GroupVersion = schema.GroupVersion{Group: GroupName, Version: "v1"}

	// Install is a function which adds this version to a scheme
	Install = schemeBuilder.AddToScheme

	// SchemeGroupVersion generated code relies on this name
	// Deprecated
	SchemeGroupVersion = GroupVersion
	// AddToScheme exists solely to keep the old generators creating valid code
	// DEPRECATED
	AddToScheme = schemeBuilder.AddToScheme
)
View Source
var (
	DeprecatedInstallWithoutGroup = legacySchemeBuilder.AddToScheme
)

Functions

func Resource

func Resource(resource string) schema.GroupResource

Resource generated code relies on this being here, but it logically belongs to the group DEPRECATED

Types

type InsecureEdgeTerminationPolicyType

type InsecureEdgeTerminationPolicyType string

InsecureEdgeTerminationPolicyType dictates the behavior of insecure connections to an edge-terminated route.

type LocalObjectReference

type LocalObjectReference struct {
	// name of the referent.
	// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
	// +optional
	Name string `json:"name,omitempty" protobuf:"bytes,1,opt,name=name"`
}

LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace. +structType=atomic

func (*LocalObjectReference) DeepCopy

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

func (*LocalObjectReference) DeepCopyInto

func (in *LocalObjectReference) DeepCopyInto(out *LocalObjectReference)

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

func (*LocalObjectReference) Descriptor

func (*LocalObjectReference) Descriptor() ([]byte, []int)

func (*LocalObjectReference) Marshal

func (m *LocalObjectReference) Marshal() (dAtA []byte, err error)

func (*LocalObjectReference) MarshalTo

func (m *LocalObjectReference) MarshalTo(dAtA []byte) (int, error)

func (*LocalObjectReference) MarshalToSizedBuffer

func (m *LocalObjectReference) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*LocalObjectReference) ProtoMessage

func (*LocalObjectReference) ProtoMessage()

func (*LocalObjectReference) Reset

func (m *LocalObjectReference) Reset()

func (*LocalObjectReference) Size

func (m *LocalObjectReference) Size() (n int)

func (*LocalObjectReference) String

func (this *LocalObjectReference) String() string

func (LocalObjectReference) SwaggerDoc

func (LocalObjectReference) SwaggerDoc() map[string]string

func (*LocalObjectReference) Unmarshal

func (m *LocalObjectReference) Unmarshal(dAtA []byte) error

func (*LocalObjectReference) XXX_DiscardUnknown

func (m *LocalObjectReference) XXX_DiscardUnknown()

func (*LocalObjectReference) XXX_Marshal

func (m *LocalObjectReference) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*LocalObjectReference) XXX_Merge

func (m *LocalObjectReference) XXX_Merge(src proto.Message)

func (*LocalObjectReference) XXX_Size

func (m *LocalObjectReference) XXX_Size() int

func (*LocalObjectReference) XXX_Unmarshal

func (m *LocalObjectReference) XXX_Unmarshal(b []byte) error

type Route

type Route struct {
	metav1.TypeMeta `json:",inline"`

	// metadata is the standard object's metadata.
	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
	metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"`

	// spec is the desired state of the route
	// +kubebuilder:validation:XValidation:rule="!has(self.tls) || self.tls.termination != 'passthrough' || !has(self.httpHeaders)",message="header actions are not permitted when tls termination is passthrough."
	Spec RouteSpec `json:"spec" protobuf:"bytes,2,opt,name=spec"`
	// status is the current state of the route
	// +optional
	Status RouteStatus `json:"status,omitempty" protobuf:"bytes,3,opt,name=status"`
}

A route allows developers to expose services through an HTTP(S) aware load balancing and proxy layer via a public DNS entry. The route may further specify TLS options and a certificate, or specify a public CNAME that the router should also accept for HTTP and HTTPS traffic. An administrator typically configures their router to be visible outside the cluster firewall, and may also add additional security, caching, or traffic controls on the service content. Routers usually talk directly to the service endpoints.

Once a route is created, the `host` field may not be changed. Generally, routers use the oldest route with a given host when resolving conflicts.

Routers are subject to additional customization and may support additional controls via the annotations field.

Because administrators may configure multiple routers, the route status field is used to return information to clients about the names and states of the route under each router. If a client chooses a duplicate name, for instance, the route status conditions are used to indicate the route cannot be chosen.

To enable HTTP/2 ALPN on a route it requires a custom (non-wildcard) certificate. This prevents connection coalescing by clients, notably web browsers. We do not support HTTP/2 ALPN on routes that use the default certificate because of the risk of connection re-use/coalescing. Routes that do not have their own custom certificate will not be HTTP/2 ALPN-enabled on either the frontend or the backend.

Compatibility level 1: Stable within a major release for a minimum of 12 months or 3 minor releases (whichever is longer). +openshift:compatibility-gen:level=1

func (*Route) DeepCopy

func (in *Route) DeepCopy() *Route

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

func (*Route) DeepCopyInto

func (in *Route) DeepCopyInto(out *Route)

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

func (*Route) DeepCopyObject

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

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

func (*Route) Descriptor

func (*Route) Descriptor() ([]byte, []int)

func (*Route) Marshal

func (m *Route) Marshal() (dAtA []byte, err error)

func (*Route) MarshalTo

func (m *Route) MarshalTo(dAtA []byte) (int, error)

func (*Route) MarshalToSizedBuffer

func (m *Route) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*Route) ProtoMessage

func (*Route) ProtoMessage()

func (*Route) Reset

func (m *Route) Reset()

func (*Route) Size

func (m *Route) Size() (n int)

func (*Route) String

func (this *Route) String() string

func (Route) SwaggerDoc

func (Route) SwaggerDoc() map[string]string

func (*Route) Unmarshal

func (m *Route) Unmarshal(dAtA []byte) error

func (*Route) XXX_DiscardUnknown

func (m *Route) XXX_DiscardUnknown()

func (*Route) XXX_Marshal

func (m *Route) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*Route) XXX_Merge

func (m *Route) XXX_Merge(src proto.Message)

func (*Route) XXX_Size

func (m *Route) XXX_Size() int

func (*Route) XXX_Unmarshal

func (m *Route) XXX_Unmarshal(b []byte) error

type RouteHTTPHeader

type RouteHTTPHeader struct {
	// name specifies the name of a header on which to perform an action. Its value must be a valid HTTP header
	// name as defined in RFC 2616 section 4.2.
	// The name must consist only of alphanumeric and the following special characters, "-!#$%&'*+.^_`".
	// The following header names are reserved and may not be modified via this API:
	// Strict-Transport-Security, Proxy, Cookie, Set-Cookie.
	// It must be no more than 255 characters in length.
	// Header name must be unique.
	// +required
	// +kubebuilder:validation:MinLength=1
	// +kubebuilder:validation:MaxLength=255
	// +kubebuilder:validation:Pattern="^[-!#$%&'*+.0-9A-Z^_`a-z|~]+$"
	// +kubebuilder:validation:XValidation:rule="self.lowerAscii() != 'strict-transport-security'",message="strict-transport-security header may not be modified via header actions"
	// +kubebuilder:validation:XValidation:rule="self.lowerAscii() != 'proxy'",message="proxy header may not be modified via header actions"
	// +kubebuilder:validation:XValidation:rule="self.lowerAscii() != 'cookie'",message="cookie header may not be modified via header actions"
	// +kubebuilder:validation:XValidation:rule="self.lowerAscii() != 'set-cookie'",message="set-cookie header may not be modified via header actions"
	Name string `json:"name" protobuf:"bytes,1,opt,name=name"`

	// action specifies actions to perform on headers, such as setting or deleting headers.
	// +required
	Action RouteHTTPHeaderActionUnion `json:"action" protobuf:"bytes,2,opt,name=action"`
}

RouteHTTPHeader specifies configuration for setting or deleting an HTTP header.

func (*RouteHTTPHeader) DeepCopy

func (in *RouteHTTPHeader) DeepCopy() *RouteHTTPHeader

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

func (*RouteHTTPHeader) DeepCopyInto

func (in *RouteHTTPHeader) DeepCopyInto(out *RouteHTTPHeader)

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

func (*RouteHTTPHeader) Descriptor

func (*RouteHTTPHeader) Descriptor() ([]byte, []int)

func (*RouteHTTPHeader) Marshal

func (m *RouteHTTPHeader) Marshal() (dAtA []byte, err error)

func (*RouteHTTPHeader) MarshalTo

func (m *RouteHTTPHeader) MarshalTo(dAtA []byte) (int, error)

func (*RouteHTTPHeader) MarshalToSizedBuffer

func (m *RouteHTTPHeader) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*RouteHTTPHeader) ProtoMessage

func (*RouteHTTPHeader) ProtoMessage()

func (*RouteHTTPHeader) Reset

func (m *RouteHTTPHeader) Reset()

func (*RouteHTTPHeader) Size

func (m *RouteHTTPHeader) Size() (n int)

func (*RouteHTTPHeader) String

func (this *RouteHTTPHeader) String() string

func (RouteHTTPHeader) SwaggerDoc

func (RouteHTTPHeader) SwaggerDoc() map[string]string

func (*RouteHTTPHeader) Unmarshal

func (m *RouteHTTPHeader) Unmarshal(dAtA []byte) error

func (*RouteHTTPHeader) XXX_DiscardUnknown

func (m *RouteHTTPHeader) XXX_DiscardUnknown()

func (*RouteHTTPHeader) XXX_Marshal

func (m *RouteHTTPHeader) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*RouteHTTPHeader) XXX_Merge

func (m *RouteHTTPHeader) XXX_Merge(src proto.Message)

func (*RouteHTTPHeader) XXX_Size

func (m *RouteHTTPHeader) XXX_Size() int

func (*RouteHTTPHeader) XXX_Unmarshal

func (m *RouteHTTPHeader) XXX_Unmarshal(b []byte) error

type RouteHTTPHeaderActionType

type RouteHTTPHeaderActionType string

RouteHTTPHeaderActionType defines actions that can be performed on HTTP headers.

const (
	// Set specifies that an HTTP header should be set.
	Set RouteHTTPHeaderActionType = "Set"
	// Delete specifies that an HTTP header should be deleted.
	Delete RouteHTTPHeaderActionType = "Delete"
)

type RouteHTTPHeaderActionUnion

type RouteHTTPHeaderActionUnion struct {
	// type defines the type of the action to be applied on the header.
	// Possible values are Set or Delete.
	// Set allows you to set HTTP request and response headers.
	// Delete allows you to delete HTTP request and response headers.
	// +unionDiscriminator
	// +kubebuilder:validation:Enum:=Set;Delete
	// +required
	Type RouteHTTPHeaderActionType `json:"type" protobuf:"bytes,1,opt,name=type,casttype=RouteHTTPHeaderActionType"`

	// set defines the HTTP header that should be set: added if it doesn't exist or replaced if it does.
	// This field is required when type is Set and forbidden otherwise.
	// +optional
	// +unionMember
	Set *RouteSetHTTPHeader `json:"set,omitempty" protobuf:"bytes,2,opt,name=set"`
}

RouteHTTPHeaderActionUnion specifies an action to take on an HTTP header. +kubebuilder:validation:XValidation:rule="has(self.type) && self.type == 'Set' ? has(self.set) : !has(self.set)",message="set is required when type is Set, and forbidden otherwise" +union

func (*RouteHTTPHeaderActionUnion) DeepCopy

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

func (*RouteHTTPHeaderActionUnion) DeepCopyInto

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

func (*RouteHTTPHeaderActionUnion) Descriptor

func (*RouteHTTPHeaderActionUnion) Descriptor() ([]byte, []int)

func (*RouteHTTPHeaderActionUnion) Marshal

func (m *RouteHTTPHeaderActionUnion) Marshal() (dAtA []byte, err error)

func (*RouteHTTPHeaderActionUnion) MarshalTo

func (m *RouteHTTPHeaderActionUnion) MarshalTo(dAtA []byte) (int, error)

func (*RouteHTTPHeaderActionUnion) MarshalToSizedBuffer

func (m *RouteHTTPHeaderActionUnion) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*RouteHTTPHeaderActionUnion) ProtoMessage

func (*RouteHTTPHeaderActionUnion) ProtoMessage()

func (*RouteHTTPHeaderActionUnion) Reset

func (m *RouteHTTPHeaderActionUnion) Reset()

func (*RouteHTTPHeaderActionUnion) Size

func (m *RouteHTTPHeaderActionUnion) Size() (n int)

func (*RouteHTTPHeaderActionUnion) String

func (this *RouteHTTPHeaderActionUnion) String() string

func (RouteHTTPHeaderActionUnion) SwaggerDoc

func (RouteHTTPHeaderActionUnion) SwaggerDoc() map[string]string

func (*RouteHTTPHeaderActionUnion) Unmarshal

func (m *RouteHTTPHeaderActionUnion) Unmarshal(dAtA []byte) error

func (*RouteHTTPHeaderActionUnion) XXX_DiscardUnknown

func (m *RouteHTTPHeaderActionUnion) XXX_DiscardUnknown()

func (*RouteHTTPHeaderActionUnion) XXX_Marshal

func (m *RouteHTTPHeaderActionUnion) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*RouteHTTPHeaderActionUnion) XXX_Merge

func (m *RouteHTTPHeaderActionUnion) XXX_Merge(src proto.Message)

func (*RouteHTTPHeaderActionUnion) XXX_Size

func (m *RouteHTTPHeaderActionUnion) XXX_Size() int

func (*RouteHTTPHeaderActionUnion) XXX_Unmarshal

func (m *RouteHTTPHeaderActionUnion) XXX_Unmarshal(b []byte) error

type RouteHTTPHeaderActions

type RouteHTTPHeaderActions struct {
	// response is a list of HTTP response headers to modify.
	// Currently, actions may define to either `Set` or `Delete` headers values.
	// Actions defined here will modify the response headers of all requests made through a route.
	// These actions are applied to a specific Route defined within a cluster i.e. connections made through a route.
	// Route actions will be executed before IngressController actions for response headers.
	// Actions are applied in sequence as defined in this list.
	// A maximum of 20 response header actions may be configured.
	// You can use this field to specify HTTP response headers that should be set or deleted
	// when forwarding responses from your application to the client.
	// Sample fetchers allowed are "res.hdr" and "ssl_c_der".
	// Converters allowed are "lower" and "base64".
	// Example header values: "%[res.hdr(X-target),lower]", "%{+Q}[ssl_c_der,base64]".
	// Note: This field cannot be used if your route uses TLS passthrough.
	// + ---
	// + Note: Any change to regex mentioned below must be reflected in the CRD validation of route in https://github.com/openshift/library-go/blob/master/pkg/route/validation/validation.go and vice-versa.
	// +listType=map
	// +listMapKey=name
	// +optional
	// +kubebuilder:validation:MaxItems=20
	// +kubebuilder:validation:XValidation:rule=`self.all(key, key.action.type == "Delete" || (has(key.action.set) && key.action.set.value.matches('^(?:%(?:%|(?:\\{[-+]?[QXE](?:,[-+]?[QXE])*\\})?\\[(?:res\\.hdr\\([0-9A-Za-z-]+\\)|ssl_c_der)(?:,(?:lower|base64))*\\])|[^%[:cntrl:]])+$')))`,message="Either the header value provided is not in correct format or the sample fetcher/converter specified is not allowed. The dynamic header value will be interpreted as an HAProxy format string as defined in http://cbonte.github.io/haproxy-dconv/2.6/configuration.html#8.2.6 and may use HAProxy's %[] syntax and otherwise must be a valid HTTP header value as defined in https://datatracker.ietf.org/doc/html/rfc7230#section-3.2. Sample fetchers allowed are res.hdr, ssl_c_der. Converters allowed are lower, base64."
	Response []RouteHTTPHeader `json:"response" protobuf:"bytes,1,rep,name=response"`
	// request is a list of HTTP request headers to modify.
	// Currently, actions may define to either `Set` or `Delete` headers values.
	// Actions defined here will modify the request headers of all requests made through a route.
	// These actions are applied to a specific Route defined within a cluster i.e. connections made through a route.
	// Currently, actions may define to either `Set` or `Delete` headers values.
	// Route actions will be executed after IngressController actions for request headers.
	// Actions are applied in sequence as defined in this list.
	// A maximum of 20 request header actions may be configured.
	// You can use this field to specify HTTP request headers that should be set or deleted
	// when forwarding connections from the client to your application.
	// Sample fetchers allowed are "req.hdr" and "ssl_c_der".
	// Converters allowed are "lower" and "base64".
	// Example header values: "%[req.hdr(X-target),lower]", "%{+Q}[ssl_c_der,base64]".
	// Any request header configuration applied directly via a Route resource using this API
	// will override header configuration for a header of the same name applied via
	// spec.httpHeaders.actions on the IngressController or route annotation.
	// Note: This field cannot be used if your route uses TLS passthrough.
	// + ---
	// + Note: Any change to regex mentioned below must be reflected in the CRD validation of route in https://github.com/openshift/library-go/blob/master/pkg/route/validation/validation.go and vice-versa.
	// +listType=map
	// +listMapKey=name
	// +optional
	// +kubebuilder:validation:MaxItems=20
	// +kubebuilder:validation:XValidation:rule=`self.all(key, key.action.type == "Delete" || (has(key.action.set) && key.action.set.value.matches('^(?:%(?:%|(?:\\{[-+]?[QXE](?:,[-+]?[QXE])*\\})?\\[(?:req\\.hdr\\([0-9A-Za-z-]+\\)|ssl_c_der)(?:,(?:lower|base64))*\\])|[^%[:cntrl:]])+$')))`,message="Either the header value provided is not in correct format or the sample fetcher/converter specified is not allowed. The dynamic header value will be interpreted as an HAProxy format string as defined in http://cbonte.github.io/haproxy-dconv/2.6/configuration.html#8.2.6 and may use HAProxy's %[] syntax and otherwise must be a valid HTTP header value as defined in https://datatracker.ietf.org/doc/html/rfc7230#section-3.2. Sample fetchers allowed are req.hdr, ssl_c_der. Converters allowed are lower, base64."
	Request []RouteHTTPHeader `json:"request" protobuf:"bytes,2,rep,name=request"`
}

RouteHTTPHeaderActions defines configuration for actions on HTTP request and response headers.

func (*RouteHTTPHeaderActions) DeepCopy

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

func (*RouteHTTPHeaderActions) DeepCopyInto

func (in *RouteHTTPHeaderActions) DeepCopyInto(out *RouteHTTPHeaderActions)

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

func (*RouteHTTPHeaderActions) Descriptor

func (*RouteHTTPHeaderActions) Descriptor() ([]byte, []int)

func (*RouteHTTPHeaderActions) Marshal

func (m *RouteHTTPHeaderActions) Marshal() (dAtA []byte, err error)

func (*RouteHTTPHeaderActions) MarshalTo

func (m *RouteHTTPHeaderActions) MarshalTo(dAtA []byte) (int, error)

func (*RouteHTTPHeaderActions) MarshalToSizedBuffer

func (m *RouteHTTPHeaderActions) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*RouteHTTPHeaderActions) ProtoMessage

func (*RouteHTTPHeaderActions) ProtoMessage()

func (*RouteHTTPHeaderActions) Reset

func (m *RouteHTTPHeaderActions) Reset()

func (*RouteHTTPHeaderActions) Size

func (m *RouteHTTPHeaderActions) Size() (n int)

func (*RouteHTTPHeaderActions) String

func (this *RouteHTTPHeaderActions) String() string

func (RouteHTTPHeaderActions) SwaggerDoc

func (RouteHTTPHeaderActions) SwaggerDoc() map[string]string

func (*RouteHTTPHeaderActions) Unmarshal

func (m *RouteHTTPHeaderActions) Unmarshal(dAtA []byte) error

func (*RouteHTTPHeaderActions) XXX_DiscardUnknown

func (m *RouteHTTPHeaderActions) XXX_DiscardUnknown()

func (*RouteHTTPHeaderActions) XXX_Marshal

func (m *RouteHTTPHeaderActions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*RouteHTTPHeaderActions) XXX_Merge

func (m *RouteHTTPHeaderActions) XXX_Merge(src proto.Message)

func (*RouteHTTPHeaderActions) XXX_Size

func (m *RouteHTTPHeaderActions) XXX_Size() int

func (*RouteHTTPHeaderActions) XXX_Unmarshal

func (m *RouteHTTPHeaderActions) XXX_Unmarshal(b []byte) error

type RouteHTTPHeaders

type RouteHTTPHeaders struct {
	// actions specifies options for modifying headers and their values.
	// Note that this option only applies to cleartext HTTP connections
	// and to secure HTTP connections for which the ingress controller
	// terminates encryption (that is, edge-terminated or reencrypt
	// connections).  Headers cannot be modified for TLS passthrough
	// connections.
	// Setting the HSTS (`Strict-Transport-Security`) header is not supported via actions.
	// `Strict-Transport-Security` may only be configured using the "haproxy.router.openshift.io/hsts_header"
	// route annotation, and only in accordance with the policy specified in Ingress.Spec.RequiredHSTSPolicies.
	// In case of HTTP request headers, the actions specified in spec.httpHeaders.actions on the Route will be executed after
	// the actions specified in the IngressController's spec.httpHeaders.actions field.
	// In case of HTTP response headers, the actions specified in spec.httpHeaders.actions on the IngressController will be
	// executed after the actions specified in the Route's spec.httpHeaders.actions field.
	// The headers set via this API will not appear in access logs.
	// Any actions defined here are applied after any actions related to the following other fields:
	// cache-control, spec.clientTLS,
	// spec.httpHeaders.forwardedHeaderPolicy, spec.httpHeaders.uniqueId,
	// and spec.httpHeaders.headerNameCaseAdjustments.
	// The following header names are reserved and may not be modified via this API:
	// Strict-Transport-Security, Proxy, Cookie, Set-Cookie.
	// Note that the total size of all net added headers *after* interpolating dynamic values
	// must not exceed the value of spec.tuningOptions.headerBufferMaxRewriteBytes on the
	// IngressController. Please refer to the documentation
	// for that API field for more details.
	// +optional
	Actions RouteHTTPHeaderActions `json:"actions,omitempty" protobuf:"bytes,1,opt,name=actions"`
}

RouteHTTPHeaders defines policy for HTTP headers.

func (*RouteHTTPHeaders) DeepCopy

func (in *RouteHTTPHeaders) DeepCopy() *RouteHTTPHeaders

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

func (*RouteHTTPHeaders) DeepCopyInto

func (in *RouteHTTPHeaders) DeepCopyInto(out *RouteHTTPHeaders)

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

func (*RouteHTTPHeaders) Descriptor

func (*RouteHTTPHeaders) Descriptor() ([]byte, []int)

func (*RouteHTTPHeaders) Marshal

func (m *RouteHTTPHeaders) Marshal() (dAtA []byte, err error)

func (*RouteHTTPHeaders) MarshalTo

func (m *RouteHTTPHeaders) MarshalTo(dAtA []byte) (int, error)

func (*RouteHTTPHeaders) MarshalToSizedBuffer

func (m *RouteHTTPHeaders) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*RouteHTTPHeaders) ProtoMessage

func (*RouteHTTPHeaders) ProtoMessage()

func (*RouteHTTPHeaders) Reset

func (m *RouteHTTPHeaders) Reset()

func (*RouteHTTPHeaders) Size

func (m *RouteHTTPHeaders) Size() (n int)

func (*RouteHTTPHeaders) String

func (this *RouteHTTPHeaders) String() string

func (RouteHTTPHeaders) SwaggerDoc

func (RouteHTTPHeaders) SwaggerDoc() map[string]string

func (*RouteHTTPHeaders) Unmarshal

func (m *RouteHTTPHeaders) Unmarshal(dAtA []byte) error

func (*RouteHTTPHeaders) XXX_DiscardUnknown

func (m *RouteHTTPHeaders) XXX_DiscardUnknown()

func (*RouteHTTPHeaders) XXX_Marshal

func (m *RouteHTTPHeaders) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*RouteHTTPHeaders) XXX_Merge

func (m *RouteHTTPHeaders) XXX_Merge(src proto.Message)

func (*RouteHTTPHeaders) XXX_Size

func (m *RouteHTTPHeaders) XXX_Size() int

func (*RouteHTTPHeaders) XXX_Unmarshal

func (m *RouteHTTPHeaders) XXX_Unmarshal(b []byte) error

type RouteIngress

type RouteIngress struct {
	// host is the host string under which the route is exposed; this value is required
	Host string `json:"host,omitempty" protobuf:"bytes,1,opt,name=host"`
	// Name is a name chosen by the router to identify itself; this value is required
	RouterName string `json:"routerName,omitempty" protobuf:"bytes,2,opt,name=routerName"`
	// conditions is the state of the route, may be empty.
	// +listType=map
	// +listMapKey=type
	Conditions []RouteIngressCondition `json:"conditions,omitempty" protobuf:"bytes,3,rep,name=conditions"`
	// Wildcard policy is the wildcard policy that was allowed where this route is exposed.
	WildcardPolicy WildcardPolicyType `json:"wildcardPolicy,omitempty" protobuf:"bytes,4,opt,name=wildcardPolicy"`
	// CanonicalHostname is the external host name for the router that can be used as a CNAME
	// for the host requested for this route. This value is optional and may not be set in all cases.
	RouterCanonicalHostname string `json:"routerCanonicalHostname,omitempty" protobuf:"bytes,5,opt,name=routerCanonicalHostname"`
}

RouteIngress holds information about the places where a route is exposed.

func (*RouteIngress) DeepCopy

func (in *RouteIngress) DeepCopy() *RouteIngress

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

func (*RouteIngress) DeepCopyInto

func (in *RouteIngress) DeepCopyInto(out *RouteIngress)

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

func (*RouteIngress) Descriptor

func (*RouteIngress) Descriptor() ([]byte, []int)

func (*RouteIngress) Marshal

func (m *RouteIngress) Marshal() (dAtA []byte, err error)

func (*RouteIngress) MarshalTo

func (m *RouteIngress) MarshalTo(dAtA []byte) (int, error)

func (*RouteIngress) MarshalToSizedBuffer

func (m *RouteIngress) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*RouteIngress) ProtoMessage

func (*RouteIngress) ProtoMessage()

func (*RouteIngress) Reset

func (m *RouteIngress) Reset()

func (*RouteIngress) Size

func (m *RouteIngress) Size() (n int)

func (*RouteIngress) String

func (this *RouteIngress) String() string

func (RouteIngress) SwaggerDoc

func (RouteIngress) SwaggerDoc() map[string]string

func (*RouteIngress) Unmarshal

func (m *RouteIngress) Unmarshal(dAtA []byte) error

func (*RouteIngress) XXX_DiscardUnknown

func (m *RouteIngress) XXX_DiscardUnknown()

func (*RouteIngress) XXX_Marshal

func (m *RouteIngress) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*RouteIngress) XXX_Merge

func (m *RouteIngress) XXX_Merge(src proto.Message)

func (*RouteIngress) XXX_Size

func (m *RouteIngress) XXX_Size() int

func (*RouteIngress) XXX_Unmarshal

func (m *RouteIngress) XXX_Unmarshal(b []byte) error

type RouteIngressCondition

type RouteIngressCondition struct {
	// type is the type of the condition.
	// Currently only Admitted or UnservableInFutureVersions.
	Type RouteIngressConditionType `json:"type" protobuf:"bytes,1,opt,name=type,casttype=RouteIngressConditionType"`
	// status is the status of the condition.
	// Can be True, False, Unknown.
	Status corev1.ConditionStatus `json:"status" protobuf:"bytes,2,opt,name=status,casttype=k8s.io/api/core/v1.ConditionStatus"`
	// (brief) reason for the condition's last transition, and is usually a machine and human
	// readable constant
	Reason string `json:"reason,omitempty" protobuf:"bytes,3,opt,name=reason"`
	// Human readable message indicating details about last transition.
	Message string `json:"message,omitempty" protobuf:"bytes,4,opt,name=message"`
	// RFC 3339 date and time when this condition last transitioned
	LastTransitionTime *metav1.Time `json:"lastTransitionTime,omitempty" protobuf:"bytes,5,opt,name=lastTransitionTime"`
}

RouteIngressCondition contains details for the current condition of this route on a particular router.

func (*RouteIngressCondition) DeepCopy

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

func (*RouteIngressCondition) DeepCopyInto

func (in *RouteIngressCondition) DeepCopyInto(out *RouteIngressCondition)

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

func (*RouteIngressCondition) Descriptor

func (*RouteIngressCondition) Descriptor() ([]byte, []int)

func (*RouteIngressCondition) Marshal

func (m *RouteIngressCondition) Marshal() (dAtA []byte, err error)

func (*RouteIngressCondition) MarshalTo

func (m *RouteIngressCondition) MarshalTo(dAtA []byte) (int, error)

func (*RouteIngressCondition) MarshalToSizedBuffer

func (m *RouteIngressCondition) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*RouteIngressCondition) ProtoMessage

func (*RouteIngressCondition) ProtoMessage()

func (*RouteIngressCondition) Reset

func (m *RouteIngressCondition) Reset()

func (*RouteIngressCondition) Size

func (m *RouteIngressCondition) Size() (n int)

func (*RouteIngressCondition) String

func (this *RouteIngressCondition) String() string

func (RouteIngressCondition) SwaggerDoc

func (RouteIngressCondition) SwaggerDoc() map[string]string

func (*RouteIngressCondition) Unmarshal

func (m *RouteIngressCondition) Unmarshal(dAtA []byte) error

func (*RouteIngressCondition) XXX_DiscardUnknown

func (m *RouteIngressCondition) XXX_DiscardUnknown()

func (*RouteIngressCondition) XXX_Marshal

func (m *RouteIngressCondition) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*RouteIngressCondition) XXX_Merge

func (m *RouteIngressCondition) XXX_Merge(src proto.Message)

func (*RouteIngressCondition) XXX_Size

func (m *RouteIngressCondition) XXX_Size() int

func (*RouteIngressCondition) XXX_Unmarshal

func (m *RouteIngressCondition) XXX_Unmarshal(b []byte) error

type RouteIngressConditionType

type RouteIngressConditionType string

RouteIngressConditionType is a valid value for RouteCondition

const (
	// RouteAdmitted means the route is able to service requests for the provided Host
	RouteAdmitted RouteIngressConditionType = "Admitted"
	// RouteUnservableInFutureVersions indicates that the route is using an unsupported
	// configuration that may be incompatible with a future version of OpenShift.
	RouteUnservableInFutureVersions RouteIngressConditionType = "UnservableInFutureVersions"
)

These are valid conditions of pod.

type RouteList

type RouteList struct {
	metav1.TypeMeta `json:",inline"`

	// metadata is the standard list's metadata.
	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
	metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"`

	// items is a list of routes
	Items []Route `json:"items" protobuf:"bytes,2,rep,name=items"`
}

RouteList is a collection of Routes.

Compatibility level 1: Stable within a major release for a minimum of 12 months or 3 minor releases (whichever is longer). +openshift:compatibility-gen:level=1

func (*RouteList) DeepCopy

func (in *RouteList) DeepCopy() *RouteList

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

func (*RouteList) DeepCopyInto

func (in *RouteList) DeepCopyInto(out *RouteList)

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

func (*RouteList) DeepCopyObject

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

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

func (*RouteList) Descriptor

func (*RouteList) Descriptor() ([]byte, []int)

func (*RouteList) Marshal

func (m *RouteList) Marshal() (dAtA []byte, err error)

func (*RouteList) MarshalTo

func (m *RouteList) MarshalTo(dAtA []byte) (int, error)

func (*RouteList) MarshalToSizedBuffer

func (m *RouteList) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*RouteList) ProtoMessage

func (*RouteList) ProtoMessage()

func (*RouteList) Reset

func (m *RouteList) Reset()

func (*RouteList) Size

func (m *RouteList) Size() (n int)

func (*RouteList) String

func (this *RouteList) String() string

func (RouteList) SwaggerDoc

func (RouteList) SwaggerDoc() map[string]string

func (*RouteList) Unmarshal

func (m *RouteList) Unmarshal(dAtA []byte) error

func (*RouteList) XXX_DiscardUnknown

func (m *RouteList) XXX_DiscardUnknown()

func (*RouteList) XXX_Marshal

func (m *RouteList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*RouteList) XXX_Merge

func (m *RouteList) XXX_Merge(src proto.Message)

func (*RouteList) XXX_Size

func (m *RouteList) XXX_Size() int

func (*RouteList) XXX_Unmarshal

func (m *RouteList) XXX_Unmarshal(b []byte) error

type RoutePort

type RoutePort struct {
	// The target port on pods selected by the service this route points to.
	// If this is a string, it will be looked up as a named port in the target
	// endpoints port list. Required
	TargetPort intstr.IntOrString `json:"targetPort" protobuf:"bytes,1,opt,name=targetPort"`
}

RoutePort defines a port mapping from a router to an endpoint in the service endpoints.

func (*RoutePort) DeepCopy

func (in *RoutePort) DeepCopy() *RoutePort

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

func (*RoutePort) DeepCopyInto

func (in *RoutePort) DeepCopyInto(out *RoutePort)

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

func (*RoutePort) Descriptor

func (*RoutePort) Descriptor() ([]byte, []int)

func (*RoutePort) Marshal

func (m *RoutePort) Marshal() (dAtA []byte, err error)

func (*RoutePort) MarshalTo

func (m *RoutePort) MarshalTo(dAtA []byte) (int, error)

func (*RoutePort) MarshalToSizedBuffer

func (m *RoutePort) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*RoutePort) ProtoMessage

func (*RoutePort) ProtoMessage()

func (*RoutePort) Reset

func (m *RoutePort) Reset()

func (*RoutePort) Size

func (m *RoutePort) Size() (n int)

func (*RoutePort) String

func (this *RoutePort) String() string

func (RoutePort) SwaggerDoc

func (RoutePort) SwaggerDoc() map[string]string

func (*RoutePort) Unmarshal

func (m *RoutePort) Unmarshal(dAtA []byte) error

func (*RoutePort) XXX_DiscardUnknown

func (m *RoutePort) XXX_DiscardUnknown()

func (*RoutePort) XXX_Marshal

func (m *RoutePort) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*RoutePort) XXX_Merge

func (m *RoutePort) XXX_Merge(src proto.Message)

func (*RoutePort) XXX_Size

func (m *RoutePort) XXX_Size() int

func (*RoutePort) XXX_Unmarshal

func (m *RoutePort) XXX_Unmarshal(b []byte) error

type RouteSetHTTPHeader

type RouteSetHTTPHeader struct {
	// value specifies a header value.
	// Dynamic values can be added. The value will be interpreted as an HAProxy format string as defined in
	// http://cbonte.github.io/haproxy-dconv/2.6/configuration.html#8.2.6 and may use HAProxy's %[] syntax and
	// otherwise must be a valid HTTP header value as defined in https://datatracker.ietf.org/doc/html/rfc7230#section-3.2.
	// The value of this field must be no more than 16384 characters in length.
	// Note that the total size of all net added headers *after* interpolating dynamic values
	// must not exceed the value of spec.tuningOptions.headerBufferMaxRewriteBytes on the
	// IngressController.
	// + ---
	// + Note: This limit was selected as most common web servers have a limit of 16384 characters or some lower limit.
	// + See <https://www.geekersdigest.com/max-http-request-header-size-server-comparison/>.
	// +required
	// +kubebuilder:validation:MinLength=1
	// +kubebuilder:validation:MaxLength=16384
	Value string `json:"value" protobuf:"bytes,1,opt,name=value"`
}

RouteSetHTTPHeader specifies what value needs to be set on an HTTP header.

func (*RouteSetHTTPHeader) DeepCopy

func (in *RouteSetHTTPHeader) DeepCopy() *RouteSetHTTPHeader

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

func (*RouteSetHTTPHeader) DeepCopyInto

func (in *RouteSetHTTPHeader) DeepCopyInto(out *RouteSetHTTPHeader)

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

func (*RouteSetHTTPHeader) Descriptor

func (*RouteSetHTTPHeader) Descriptor() ([]byte, []int)

func (*RouteSetHTTPHeader) Marshal

func (m *RouteSetHTTPHeader) Marshal() (dAtA []byte, err error)

func (*RouteSetHTTPHeader) MarshalTo

func (m *RouteSetHTTPHeader) MarshalTo(dAtA []byte) (int, error)

func (*RouteSetHTTPHeader) MarshalToSizedBuffer

func (m *RouteSetHTTPHeader) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*RouteSetHTTPHeader) ProtoMessage

func (*RouteSetHTTPHeader) ProtoMessage()

func (*RouteSetHTTPHeader) Reset

func (m *RouteSetHTTPHeader) Reset()

func (*RouteSetHTTPHeader) Size

func (m *RouteSetHTTPHeader) Size() (n int)

func (*RouteSetHTTPHeader) String

func (this *RouteSetHTTPHeader) String() string

func (RouteSetHTTPHeader) SwaggerDoc

func (RouteSetHTTPHeader) SwaggerDoc() map[string]string

func (*RouteSetHTTPHeader) Unmarshal

func (m *RouteSetHTTPHeader) Unmarshal(dAtA []byte) error

func (*RouteSetHTTPHeader) XXX_DiscardUnknown

func (m *RouteSetHTTPHeader) XXX_DiscardUnknown()

func (*RouteSetHTTPHeader) XXX_Marshal

func (m *RouteSetHTTPHeader) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*RouteSetHTTPHeader) XXX_Merge

func (m *RouteSetHTTPHeader) XXX_Merge(src proto.Message)

func (*RouteSetHTTPHeader) XXX_Size

func (m *RouteSetHTTPHeader) XXX_Size() int

func (*RouteSetHTTPHeader) XXX_Unmarshal

func (m *RouteSetHTTPHeader) XXX_Unmarshal(b []byte) error

type RouteSpec

type RouteSpec struct {
	// host is an alias/DNS that points to the service. Optional.
	// If not specified a route name will typically be automatically
	// chosen.
	// Must follow DNS952 subdomain conventions.
	//
	// +optional
	// +kubebuilder:validation:MaxLength=253
	// +kubebuilder:validation:Pattern=`^([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])(\.([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]{0,61}[a-zA-Z0-9]))*$`
	Host string `json:"host,omitempty" protobuf:"bytes,1,opt,name=host"`
	// subdomain is a DNS subdomain that is requested within the ingress controller's
	// domain (as a subdomain). If host is set this field is ignored. An ingress
	// controller may choose to ignore this suggested name, in which case the controller
	// will report the assigned name in the status.ingress array or refuse to admit the
	// route. If this value is set and the server does not support this field host will
	// be populated automatically. Otherwise host is left empty. The field may have
	// multiple parts separated by a dot, but not all ingress controllers may honor
	// the request. This field may not be changed after creation except by a user with
	// the update routes/custom-host permission.
	//
	// Example: subdomain `frontend` automatically receives the router subdomain
	// `apps.mycluster.com` to have a full hostname `frontend.apps.mycluster.com`.
	//
	// +optional
	// +kubebuilder:validation:MaxLength=253
	// +kubebuilder:validation:Pattern=`^([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])(\.([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]{0,61}[a-zA-Z0-9]))*$`
	Subdomain string `json:"subdomain,omitempty" protobuf:"bytes,8,opt,name=subdomain"`

	// path that the router watches for, to route traffic for to the service. Optional
	//
	// +optional
	// +kubebuilder:validation:Pattern=`^/`
	Path string `json:"path,omitempty" protobuf:"bytes,2,opt,name=path"`

	// to is an object the route should use as the primary backend. Only the Service kind
	// is allowed, and it will be defaulted to Service. If the weight field (0-256 default 100)
	// is set to zero, no traffic will be sent to this backend.
	To RouteTargetReference `json:"to" protobuf:"bytes,3,opt,name=to"`

	// alternateBackends allows up to 3 additional backends to be assigned to the route.
	// Only the Service kind is allowed, and it will be defaulted to Service.
	// Use the weight field in RouteTargetReference object to specify relative preference.
	//
	// +kubebuilder:validation:MaxItems=3
	// +listType=map
	// +listMapKey=name
	// +listMapKey=kind
	AlternateBackends []RouteTargetReference `json:"alternateBackends,omitempty" protobuf:"bytes,4,rep,name=alternateBackends"`

	// If specified, the port to be used by the router. Most routers will use all
	// endpoints exposed by the service by default - set this value to instruct routers
	// which port to use.
	Port *RoutePort `json:"port,omitempty" protobuf:"bytes,5,opt,name=port"`

	// The tls field provides the ability to configure certificates and termination for the route.
	TLS *TLSConfig `json:"tls,omitempty" protobuf:"bytes,6,opt,name=tls"`

	// Wildcard policy if any for the route.
	// Currently only 'Subdomain' or 'None' is allowed.
	//
	// +kubebuilder:validation:Enum=None;Subdomain;""
	// +kubebuilder:default=None
	WildcardPolicy WildcardPolicyType `json:"wildcardPolicy,omitempty" protobuf:"bytes,7,opt,name=wildcardPolicy"`

	// httpHeaders defines policy for HTTP headers.
	//
	// +optional
	HTTPHeaders *RouteHTTPHeaders `json:"httpHeaders,omitempty" protobuf:"bytes,9,opt,name=httpHeaders"`
}

RouteSpec describes the hostname or path the route exposes, any security information, and one to four backends (services) the route points to. Requests are distributed among the backends depending on the weights assigned to each backend. When using roundrobin scheduling the portion of requests that go to each backend is the backend weight divided by the sum of all of the backend weights. When the backend has more than one endpoint the requests that end up on the backend are roundrobin distributed among the endpoints. Weights are between 0 and 256 with default 100. Weight 0 causes no requests to the backend. If all weights are zero the route will be considered to have no backends and return a standard 503 response.

The `tls` field is optional and allows specific certificates or behavior for the route. Routers typically configure a default certificate on a wildcard domain to terminate routes without explicit certificates, but custom hostnames usually must choose passthrough (send traffic directly to the backend via the TLS Server-Name- Indication field) or provide a certificate.

func (*RouteSpec) DeepCopy

func (in *RouteSpec) DeepCopy() *RouteSpec

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

func (*RouteSpec) DeepCopyInto

func (in *RouteSpec) DeepCopyInto(out *RouteSpec)

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

func (*RouteSpec) Descriptor

func (*RouteSpec) Descriptor() ([]byte, []int)

func (*RouteSpec) Marshal

func (m *RouteSpec) Marshal() (dAtA []byte, err error)

func (*RouteSpec) MarshalTo

func (m *RouteSpec) MarshalTo(dAtA []byte) (int, error)

func (*RouteSpec) MarshalToSizedBuffer

func (m *RouteSpec) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*RouteSpec) ProtoMessage

func (*RouteSpec) ProtoMessage()

func (*RouteSpec) Reset

func (m *RouteSpec) Reset()

func (*RouteSpec) Size

func (m *RouteSpec) Size() (n int)

func (*RouteSpec) String

func (this *RouteSpec) String() string

func (RouteSpec) SwaggerDoc

func (RouteSpec) SwaggerDoc() map[string]string

func (*RouteSpec) Unmarshal

func (m *RouteSpec) Unmarshal(dAtA []byte) error

func (*RouteSpec) XXX_DiscardUnknown

func (m *RouteSpec) XXX_DiscardUnknown()

func (*RouteSpec) XXX_Marshal

func (m *RouteSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*RouteSpec) XXX_Merge

func (m *RouteSpec) XXX_Merge(src proto.Message)

func (*RouteSpec) XXX_Size

func (m *RouteSpec) XXX_Size() int

func (*RouteSpec) XXX_Unmarshal

func (m *RouteSpec) XXX_Unmarshal(b []byte) error

type RouteStatus

type RouteStatus struct {
	// ingress describes the places where the route may be exposed. The list of
	// ingress points may contain duplicate Host or RouterName values. Routes
	// are considered live once they are `Ready`
	// +listType=atomic
	Ingress []RouteIngress `json:"ingress,omitempty" protobuf:"bytes,1,rep,name=ingress"`
}

RouteStatus provides relevant info about the status of a route, including which routers acknowledge it.

func (*RouteStatus) DeepCopy

func (in *RouteStatus) DeepCopy() *RouteStatus

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

func (*RouteStatus) DeepCopyInto

func (in *RouteStatus) DeepCopyInto(out *RouteStatus)

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

func (*RouteStatus) Descriptor

func (*RouteStatus) Descriptor() ([]byte, []int)

func (*RouteStatus) Marshal

func (m *RouteStatus) Marshal() (dAtA []byte, err error)

func (*RouteStatus) MarshalTo

func (m *RouteStatus) MarshalTo(dAtA []byte) (int, error)

func (*RouteStatus) MarshalToSizedBuffer

func (m *RouteStatus) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*RouteStatus) ProtoMessage

func (*RouteStatus) ProtoMessage()

func (*RouteStatus) Reset

func (m *RouteStatus) Reset()

func (*RouteStatus) Size

func (m *RouteStatus) Size() (n int)

func (*RouteStatus) String

func (this *RouteStatus) String() string

func (RouteStatus) SwaggerDoc

func (RouteStatus) SwaggerDoc() map[string]string

func (*RouteStatus) Unmarshal

func (m *RouteStatus) Unmarshal(dAtA []byte) error

func (*RouteStatus) XXX_DiscardUnknown

func (m *RouteStatus) XXX_DiscardUnknown()

func (*RouteStatus) XXX_Marshal

func (m *RouteStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*RouteStatus) XXX_Merge

func (m *RouteStatus) XXX_Merge(src proto.Message)

func (*RouteStatus) XXX_Size

func (m *RouteStatus) XXX_Size() int

func (*RouteStatus) XXX_Unmarshal

func (m *RouteStatus) XXX_Unmarshal(b []byte) error

type RouteTargetReference

type RouteTargetReference struct {
	// The kind of target that the route is referring to. Currently, only 'Service' is allowed
	//
	// +kubebuilder:validation:Enum=Service;""
	// +kubebuilder:default=Service
	Kind string `json:"kind" protobuf:"bytes,1,opt,name=kind"`

	// name of the service/target that is being referred to. e.g. name of the service
	//
	// +kubebuilder:validation:MinLength=1
	Name string `json:"name" protobuf:"bytes,2,opt,name=name"`

	// weight as an integer between 0 and 256, default 100, that specifies the target's relative weight
	// against other target reference objects. 0 suppresses requests to this backend.
	//
	// +optional
	// +kubebuilder:validation:Minimum=0
	// +kubebuilder:validation:Maximum=256
	// +kubebuilder:default=100
	Weight *int32 `json:"weight" protobuf:"varint,3,opt,name=weight"`
}

RouteTargetReference specifies the target that resolve into endpoints. Only the 'Service' kind is allowed. Use 'weight' field to emphasize one over others.

func (*RouteTargetReference) DeepCopy

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

func (*RouteTargetReference) DeepCopyInto

func (in *RouteTargetReference) DeepCopyInto(out *RouteTargetReference)

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

func (*RouteTargetReference) Descriptor

func (*RouteTargetReference) Descriptor() ([]byte, []int)

func (*RouteTargetReference) Marshal

func (m *RouteTargetReference) Marshal() (dAtA []byte, err error)

func (*RouteTargetReference) MarshalTo

func (m *RouteTargetReference) MarshalTo(dAtA []byte) (int, error)

func (*RouteTargetReference) MarshalToSizedBuffer

func (m *RouteTargetReference) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*RouteTargetReference) ProtoMessage

func (*RouteTargetReference) ProtoMessage()

func (*RouteTargetReference) Reset

func (m *RouteTargetReference) Reset()

func (*RouteTargetReference) Size

func (m *RouteTargetReference) Size() (n int)

func (*RouteTargetReference) String

func (this *RouteTargetReference) String() string

func (RouteTargetReference) SwaggerDoc

func (RouteTargetReference) SwaggerDoc() map[string]string

func (*RouteTargetReference) Unmarshal

func (m *RouteTargetReference) Unmarshal(dAtA []byte) error

func (*RouteTargetReference) XXX_DiscardUnknown

func (m *RouteTargetReference) XXX_DiscardUnknown()

func (*RouteTargetReference) XXX_Marshal

func (m *RouteTargetReference) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*RouteTargetReference) XXX_Merge

func (m *RouteTargetReference) XXX_Merge(src proto.Message)

func (*RouteTargetReference) XXX_Size

func (m *RouteTargetReference) XXX_Size() int

func (*RouteTargetReference) XXX_Unmarshal

func (m *RouteTargetReference) XXX_Unmarshal(b []byte) error

type RouterShard

type RouterShard struct {
	// shardName uniquely identifies a router shard in the "set" of
	// routers used for routing traffic to the services.
	ShardName string `json:"shardName" protobuf:"bytes,1,opt,name=shardName"`

	// dnsSuffix for the shard ala: shard-1.v3.openshift.com
	DNSSuffix string `json:"dnsSuffix" protobuf:"bytes,2,opt,name=dnsSuffix"`
}

RouterShard has information of a routing shard and is used to generate host names and routing table entries when a routing shard is allocated for a specific route. Caveat: This is WIP and will likely undergo modifications when sharding support is added.

func (*RouterShard) DeepCopy

func (in *RouterShard) DeepCopy() *RouterShard

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

func (*RouterShard) DeepCopyInto

func (in *RouterShard) DeepCopyInto(out *RouterShard)

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

func (*RouterShard) Descriptor

func (*RouterShard) Descriptor() ([]byte, []int)

func (*RouterShard) Marshal

func (m *RouterShard) Marshal() (dAtA []byte, err error)

func (*RouterShard) MarshalTo

func (m *RouterShard) MarshalTo(dAtA []byte) (int, error)

func (*RouterShard) MarshalToSizedBuffer

func (m *RouterShard) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*RouterShard) ProtoMessage

func (*RouterShard) ProtoMessage()

func (*RouterShard) Reset

func (m *RouterShard) Reset()

func (*RouterShard) Size

func (m *RouterShard) Size() (n int)

func (*RouterShard) String

func (this *RouterShard) String() string

func (RouterShard) SwaggerDoc

func (RouterShard) SwaggerDoc() map[string]string

func (*RouterShard) Unmarshal

func (m *RouterShard) Unmarshal(dAtA []byte) error

func (*RouterShard) XXX_DiscardUnknown

func (m *RouterShard) XXX_DiscardUnknown()

func (*RouterShard) XXX_Marshal

func (m *RouterShard) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*RouterShard) XXX_Merge

func (m *RouterShard) XXX_Merge(src proto.Message)

func (*RouterShard) XXX_Size

func (m *RouterShard) XXX_Size() int

func (*RouterShard) XXX_Unmarshal

func (m *RouterShard) XXX_Unmarshal(b []byte) error

type TLSConfig

type TLSConfig struct {
	// termination indicates termination type.
	//
	// * edge - TLS termination is done by the router and http is used to communicate with the backend (default)
	// * passthrough - Traffic is sent straight to the destination without the router providing TLS termination
	// * reencrypt - TLS termination is done by the router and https is used to communicate with the backend
	//
	// Note: passthrough termination is incompatible with httpHeader actions
	// +kubebuilder:validation:Enum=edge;reencrypt;passthrough
	Termination TLSTerminationType `json:"termination" protobuf:"bytes,1,opt,name=termination,casttype=TLSTerminationType"`

	// certificate provides certificate contents. This should be a single serving certificate, not a certificate
	// chain. Do not include a CA certificate.
	Certificate string `json:"certificate,omitempty" protobuf:"bytes,2,opt,name=certificate"`

	// key provides key file contents
	Key string `json:"key,omitempty" protobuf:"bytes,3,opt,name=key"`

	// caCertificate provides the cert authority certificate contents
	CACertificate string `json:"caCertificate,omitempty" protobuf:"bytes,4,opt,name=caCertificate"`

	// destinationCACertificate provides the contents of the ca certificate of the final destination.  When using reencrypt
	// termination this file should be provided in order to have routers use it for health checks on the secure connection.
	// If this field is not specified, the router may provide its own destination CA and perform hostname validation using
	// the short service name (service.namespace.svc), which allows infrastructure generated certificates to automatically
	// verify.
	DestinationCACertificate string `json:"destinationCACertificate,omitempty" protobuf:"bytes,5,opt,name=destinationCACertificate"`

	// insecureEdgeTerminationPolicy indicates the desired behavior for insecure connections to a route. While
	// each router may make its own decisions on which ports to expose, this is normally port 80.
	//
	// If a route does not specify insecureEdgeTerminationPolicy, then the default behavior is "None".
	//
	// * Allow - traffic is sent to the server on the insecure port (edge/reencrypt terminations only).
	//
	// * None - no traffic is allowed on the insecure port (default).
	//
	// * Redirect - clients are redirected to the secure port.
	//
	// +kubebuilder:validation:Enum=Allow;None;Redirect;""
	InsecureEdgeTerminationPolicy InsecureEdgeTerminationPolicyType `` /* 147-byte string literal not displayed */

	// externalCertificate provides certificate contents as a secret reference.
	// This should be a single serving certificate, not a certificate
	// chain. Do not include a CA certificate. The secret referenced should
	// be present in the same namespace as that of the Route.
	// Forbidden when `certificate` is set.
	//
	// +openshift:enable:FeatureGate=RouteExternalCertificate
	// +optional
	ExternalCertificate *LocalObjectReference `json:"externalCertificate,omitempty" protobuf:"bytes,7,opt,name=externalCertificate"`
}

TLSConfig defines config used to secure a route and provide termination

+kubebuilder:validation:XValidation:rule="has(self.termination) && has(self.insecureEdgeTerminationPolicy) ? !((self.termination=='passthrough') && (self.insecureEdgeTerminationPolicy=='Allow')) : true", message="cannot have both spec.tls.termination: passthrough and spec.tls.insecureEdgeTerminationPolicy: Allow" +openshift:validation:FeatureGateAwareXValidation:featureGate=RouteExternalCertificate,rule="!(has(self.certificate) && has(self.externalCertificate))", message="cannot have both spec.tls.certificate and spec.tls.externalCertificate"

func (*TLSConfig) DeepCopy

func (in *TLSConfig) DeepCopy() *TLSConfig

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

func (*TLSConfig) DeepCopyInto

func (in *TLSConfig) DeepCopyInto(out *TLSConfig)

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

func (*TLSConfig) Descriptor

func (*TLSConfig) Descriptor() ([]byte, []int)

func (*TLSConfig) Marshal

func (m *TLSConfig) Marshal() (dAtA []byte, err error)

func (*TLSConfig) MarshalTo

func (m *TLSConfig) MarshalTo(dAtA []byte) (int, error)

func (*TLSConfig) MarshalToSizedBuffer

func (m *TLSConfig) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*TLSConfig) ProtoMessage

func (*TLSConfig) ProtoMessage()

func (*TLSConfig) Reset

func (m *TLSConfig) Reset()

func (*TLSConfig) Size

func (m *TLSConfig) Size() (n int)

func (*TLSConfig) String

func (this *TLSConfig) String() string

func (TLSConfig) SwaggerDoc

func (TLSConfig) SwaggerDoc() map[string]string

func (*TLSConfig) Unmarshal

func (m *TLSConfig) Unmarshal(dAtA []byte) error

func (*TLSConfig) XXX_DiscardUnknown

func (m *TLSConfig) XXX_DiscardUnknown()

func (*TLSConfig) XXX_Marshal

func (m *TLSConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*TLSConfig) XXX_Merge

func (m *TLSConfig) XXX_Merge(src proto.Message)

func (*TLSConfig) XXX_Size

func (m *TLSConfig) XXX_Size() int

func (*TLSConfig) XXX_Unmarshal

func (m *TLSConfig) XXX_Unmarshal(b []byte) error

type TLSTerminationType

type TLSTerminationType string

TLSTerminationType dictates where the secure communication will stop TODO: Reconsider this type in v2

type WildcardPolicyType

type WildcardPolicyType string

WildcardPolicyType indicates the type of wildcard support needed by routes.

const (
	// WildcardPolicyNone indicates no wildcard support is needed.
	WildcardPolicyNone WildcardPolicyType = "None"

	// WildcardPolicySubdomain indicates the host needs wildcard support for the subdomain.
	// Example: For host = "www.acme.test", indicates that the router
	//          should support requests for *.acme.test
	//          Note that this will not match acme.test only *.acme.test
	WildcardPolicySubdomain WildcardPolicyType = "Subdomain"
)

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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