v3alpha1

package
v2.0.1-rc.1 Latest Latest
Warning

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

Go to latest
Published: Aug 10, 2021 License: Apache-2.0 Imports: 7 Imported by: 0

Documentation

Overview

Package v3alpha1 contains API Schema definitions for the getambassador.io v3alpha1 API group

Index

Constants

View Source
const (
	AmbassadorHostState_Initial = AmbassadorHostState(iota)
	AmbassadorHostState_Pending
	AmbassadorHostState_Ready
	AmbassadorHostState_Error
)
View Source
const (
	AmbassadorHostPhase_NA = AmbassadorHostPhase(iota)
	AmbassadorHostPhase_DefaultsFilled
	AmbassadorHostPhase_ACMEUserPrivateKeyCreated
	AmbassadorHostPhase_ACMEUserRegistered
	AmbassadorHostPhase_ACMECertificateChallenge
)
View Source
const (
	HostTLSCertificateSource_Unknown = "Unknown"
	HostTLSCertificateSource_None    = "None"
	HostTLSCertificateSource_Other   = "Other"
	HostTLSCertificateSource_ACME    = "ACME"
)
View Source
const (
	PreviewURLType_Path = "Path"
)

Variables

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

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

	// AddToScheme adds the types in this group-version to the given scheme.
	AddToScheme = SchemeBuilder.AddToScheme
)

Functions

This section is empty.

Types

type ACMEProviderSpec

type ACMEProviderSpec struct {
	// Specifies who to talk ACME with to get certs. Defaults to Let's
	// Encrypt; if "none" (case-insensitive), do not try to do ACME for
	// this AmbassadorHost.
	Authority string `json:"authority,omitempty"`
	Email     string `json:"email,omitempty"`

	// Specifies the Kubernetes Secret to use to store the private key of the ACME
	// account (essentially, where to store the auto-generated password for the
	// auto-created ACME account).  You should not normally need to set this--the
	// default value is based on a combination of the ACME authority being registered
	// wit and the email address associated with the account.
	//
	// Note that this is a native-Kubernetes-style core.v1.LocalObjectReference, not
	// an Ambassador-style `{name}.{namespace}` string.  Because we're opinionated, it
	// does not support referencing a Secret in another namespace (because most native
	// Kubernetes resources don't support that), but if we ever abandon that opinion
	// and decide to support non-local references it, it would be by adding a
	// `namespace:` field by changing it from a core.v1.LocalObjectReference to a
	// core.v1.SecretReference, not by adopting the `{name}.{namespace}` notation.
	PrivateKeySecret *corev1.LocalObjectReference `json:"privateKeySecret,omitempty"`

	// This is normally set automatically
	Registration string `json:"registration,omitempty"`
}

func (*ACMEProviderSpec) DeepCopy

func (in *ACMEProviderSpec) DeepCopy() *ACMEProviderSpec

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

func (*ACMEProviderSpec) DeepCopyInto

func (in *ACMEProviderSpec) DeepCopyInto(out *ACMEProviderSpec)

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

type AddedHeader

type AddedHeader struct {
	String *string            `json:"-"`
	Bool   *bool              `json:"-"`
	Object *ambv2.UntypedDict `json:"-"`
}

+kubebuilder:validation:Type="d6e-union:string,boolean,object"

func (*AddedHeader) DeepCopy

func (in *AddedHeader) DeepCopy() *AddedHeader

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

func (*AddedHeader) DeepCopyInto

func (in *AddedHeader) DeepCopyInto(out *AddedHeader)

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

func (AddedHeader) MarshalJSON

func (o AddedHeader) MarshalJSON() ([]byte, error)

MarshalJSON is important both so that we generate the proper output, and to trigger controller-gen to not try to generate jsonschema for our sub-fields: https://github.com/kubernetes-sigs/controller-tools/pull/427

func (*AddedHeader) UnmarshalJSON

func (o *AddedHeader) UnmarshalJSON(data []byte) error

type AmbassadorHost

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

	Spec   *AmbassadorHostSpec  `json:"spec,omitempty"`
	Status AmbassadorHostStatus `json:"status,omitempty"`
}

AmbassadorHost is the Schema for the hosts API

+kubebuilder:object:root=true +kubebuilder:subresource:status +kubebuilder:printcolumn:name="Hostname",type=string,JSONPath=`.spec.hostname` +kubebuilder:printcolumn:name="State",type=string,JSONPath=`.status.state` +kubebuilder:printcolumn:name="Phase Completed",type=string,JSONPath=`.status.phaseCompleted` +kubebuilder:printcolumn:name="Phase Pending",type=string,JSONPath=`.status.phasePending` +kubebuilder:printcolumn:name="Age",type=date,JSONPath=`.metadata.creationTimestamp`

func (*AmbassadorHost) DeepCopy

func (in *AmbassadorHost) DeepCopy() *AmbassadorHost

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

func (*AmbassadorHost) DeepCopyInto

func (in *AmbassadorHost) DeepCopyInto(out *AmbassadorHost)

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

func (*AmbassadorHost) DeepCopyObject

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

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

type AmbassadorHostList

type AmbassadorHostList struct {
	metav1.TypeMeta `json:""`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []AmbassadorHost `json:"items"`
}

AmbassadorHostList contains a list of AmbassadorHosts.

+kubebuilder:object:root=true

func (*AmbassadorHostList) DeepCopy

func (in *AmbassadorHostList) DeepCopy() *AmbassadorHostList

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

func (*AmbassadorHostList) DeepCopyInto

func (in *AmbassadorHostList) DeepCopyInto(out *AmbassadorHostList)

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

func (*AmbassadorHostList) DeepCopyObject

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

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

type AmbassadorHostPhase

type AmbassadorHostPhase int

+kubebuilder:validation:Type=string +kubebuilder:validation:Enum={"NA","DefaultsFilled","ACMEUserPrivateKeyCreated","ACMEUserRegistered","ACMECertificateChallenge"}

func (AmbassadorHostPhase) MarshalJSON

func (o AmbassadorHostPhase) MarshalJSON() ([]byte, error)

func (AmbassadorHostPhase) String

func (o AmbassadorHostPhase) String() string

func (*AmbassadorHostPhase) UnmarshalJSON

func (o *AmbassadorHostPhase) UnmarshalJSON(data []byte) error

type AmbassadorHostSpec

type AmbassadorHostSpec struct {
	// Common to all Ambassador objects (and optional).
	AmbassadorID ambv2.AmbassadorID `json:"ambassador_id,omitempty"`

	// Hostname by which the Ambassador can be reached.
	Hostname string `json:"hostname,omitempty"`

	// Selector by which we can find further configuration.
	Selector *metav1.LabelSelector `json:"selector,omitempty"`

	// Specifies whether/who to talk ACME with to automatically manage the $tlsSecret.
	AcmeProvider *ambv2.ACMEProviderSpec `json:"acmeProvider,omitempty"`

	// Name of the Kubernetes secret into which to save generated
	// certificates.  If ACME is enabled (see $acmeProvider), then the
	// default is $hostname; otherwise the default is "".  If the value
	// is "", then we do not do TLS for this AmbassadorHost.
	//
	// Note that this is a native-Kubernetes-style core.v1.LocalObjectReference, not
	// an Ambassador-style `{name}.{namespace}` string.  Because we're opinionated, it
	// does not support referencing a Secret in another namespace (because most native
	// Kubernetes resources don't support that), but if we ever abandon that opinion
	// and decide to support non-local references it, it would be by adding a
	// `namespace:` field by changing it from a core.v1.LocalObjectReference to a
	// core.v1.SecretReference, not by adopting the `{name}.{namespace}` notation.
	TLSSecret *corev1.LocalObjectReference `json:"tlsSecret,omitempty"`

	// Request policy definition.
	RequestPolicy *RequestPolicy `json:"requestPolicy,omitempty"`

	// Configuration for the Preview URL feature of Service Preview. Defaults to preview URLs not enabled.
	PreviewUrl *PreviewURLSpec `json:"previewUrl,omitempty"`

	// Name of the TLSContext the AmbassadorHost resource is linked with.
	// It is not valid to specify both `tlsContext` and `tls`.
	//
	// Note that this is a native-Kubernetes-style core.v1.LocalObjectReference, not
	// an Ambassador-style `{name}.{namespace}` string.  Because we're opinionated, it
	// does not support referencing a Secret in another namespace (because most native
	// Kubernetes resources don't support that), but if we ever abandon that opinion
	// and decide to support non-local references it, it would be by adding a
	// `namespace:` field by changing it from a core.v1.LocalObjectReference to a
	// core.v1.SecretReference, not by adopting the `{name}.{namespace}` notation.
	TLSContext *corev1.LocalObjectReference `json:"tlsContext,omitempty"`

	// TLS configuration.  It is not valid to specify both
	// `tlsContext` and `tls`.
	TLS *ambv2.TLSConfig `json:"tls,omitempty"`
}

AmbassadorHostSpec defines the desired state of AmbassadorHost

func (*AmbassadorHostSpec) DeepCopy

func (in *AmbassadorHostSpec) DeepCopy() *AmbassadorHostSpec

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

func (*AmbassadorHostSpec) DeepCopyInto

func (in *AmbassadorHostSpec) DeepCopyInto(out *AmbassadorHostSpec)

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

type AmbassadorHostState

type AmbassadorHostState int

The first value listed in the Enum marker becomes the "zero" value, and it would be great if "Pending" could be the default value; but it's Important that the "zero" value be able to be shown as empty/omitted from display, and we really do want `kubectl get hosts` to say "Pending" in the "STATE" column, and not leave the column empty.

+kubebuilder:validation:Type=string +kubebuilder:validation:Enum={"Initial","Pending","Ready","Error"}

func (AmbassadorHostState) MarshalJSON

func (o AmbassadorHostState) MarshalJSON() ([]byte, error)

func (AmbassadorHostState) String

func (o AmbassadorHostState) String() string

func (*AmbassadorHostState) UnmarshalJSON

func (o *AmbassadorHostState) UnmarshalJSON(data []byte) error

type AmbassadorHostStatus

type AmbassadorHostStatus struct {
	TLSCertificateSource AmbassadorHostTLSCertificateSource `json:"tlsCertificateSource,omitempty"`

	State AmbassadorHostState `json:"state,omitempty"`

	// phaseCompleted and phasePending are valid when state==Pending or
	// state==Error.
	PhaseCompleted AmbassadorHostPhase `json:"phaseCompleted,omitempty"`
	// phaseCompleted and phasePending are valid when state==Pending or
	// state==Error.
	PhasePending AmbassadorHostPhase `json:"phasePending,omitempty"`

	// errorReason, errorTimestamp, and errorBackoff are valid when state==Error.
	ErrorReason    string           `json:"errorReason,omitempty"`
	ErrorTimestamp *metav1.Time     `json:"errorTimestamp,omitempty"`
	ErrorBackoff   *metav1.Duration `json:"errorBackoff,omitempty"`
}

AmbassadorHostStatus defines the observed state of AmbassadorHost

func (*AmbassadorHostStatus) DeepCopy

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

func (*AmbassadorHostStatus) DeepCopyInto

func (in *AmbassadorHostStatus) DeepCopyInto(out *AmbassadorHostStatus)

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

type AmbassadorHostTLSCertificateSource

type AmbassadorHostTLSCertificateSource string

+kubebuilder:validation:Enum={"Unknown","None","Other","ACME"}

type AmbassadorListener

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

	Spec *AmbassadorListenerSpec `json:"spec,omitempty"`
}

AmbassadorListener is the Schema for the hosts API

+kubebuilder:object:root=true +kubebuilder:printcolumn:name="Port",type=string,JSONPath=`.spec.port` +kubebuilder:printcolumn:name="Protocol",type=string,JSONPath=`.spec.protocol` +kubebuilder:printcolumn:name="Stack",type=string,JSONPath=`.spec.protocolStack` +kubebuilder:printcolumn:name="StatsPrefix",type=string,JSONPath=`.spec.statsPrefix` +kubebuilder:printcolumn:name="Security",type=string,JSONPath=`.spec.securityModel` +kubebuilder:printcolumn:name="L7Depth",type=string,JSONPath=`.spec.l7Depth`

func (*AmbassadorListener) DeepCopy

func (in *AmbassadorListener) DeepCopy() *AmbassadorListener

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

func (*AmbassadorListener) DeepCopyInto

func (in *AmbassadorListener) DeepCopyInto(out *AmbassadorListener)

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

func (*AmbassadorListener) DeepCopyObject

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

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

type AmbassadorListenerList

type AmbassadorListenerList struct {
	metav1.TypeMeta `json:""`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []AmbassadorListener `json:"items"`
}

AmbassadorListenerList contains a list of AmbassadorListener.

+kubebuilder:object:root=true

func (*AmbassadorListenerList) DeepCopy

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

func (*AmbassadorListenerList) DeepCopyInto

func (in *AmbassadorListenerList) DeepCopyInto(out *AmbassadorListenerList)

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

func (*AmbassadorListenerList) DeepCopyObject

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

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

type AmbassadorListenerSpec

type AmbassadorListenerSpec struct {
	AmbassadorID ambv2.AmbassadorID `json:"ambassador_id,omitempty"`

	// Port is the network port. Only one AmbassadorListener can use a given port.
	// +kubebuilder:validation:Minimum=1
	// +kubebuilder:validation:Maximum=65535
	// +kubebuilder:validation:Required
	Port int32 `json:"port"`

	// Protocol is a shorthand for certain predefined stacks. Exactly one of Protocol
	// or ProtocolStack must be supplied.
	Protocol ProtocolType `json:"protocol,omitempty"`

	// ProtocolStack explicitly specifies the protocol stack to set up. Exactly one of Protocol
	// or ProtocolStack must be supplied.
	ProtocolStack []ProtocolStackElement `json:"protocolStack,omitempty"`

	// SecurityModel specifies how to determine whether connections to this port are secure
	// or insecure.
	// +kubebuilder:validation:Required
	SecurityModel SecurityModelType `json:"securityModel"`

	// StatsPrefix specifies the prefix for statistics sent by Envoy about this
	// AmbassadorListener. The default depends on the protocol: "ingress-http",
	// "ingress-https", "ingress-tls-$port", or "ingress-$port".
	StatsPrefix string `json:"statsPrefix,omitempty"`

	// L7Depth specifies how many layer 7 load balancers are between us and the edge of
	// the network.
	L7Depth int32 `json:"l7Depth,omitempty"`

	// HostBinding allows restricting which Hosts will be used for this AmbassadorListener.
	// +kubebuilder:validation:Required
	HostBinding HostBindingType `json:"hostBinding"`
}

AmbassadorListenerSpec defines the desired state of this Port

func (*AmbassadorListenerSpec) DeepCopy

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

func (*AmbassadorListenerSpec) DeepCopyInto

func (in *AmbassadorListenerSpec) DeepCopyInto(out *AmbassadorListenerSpec)

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

type AmbassadorMapping

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

	Spec   AmbassadorMappingSpec    `json:"spec,omitempty"`
	Status *AmbassadorMappingStatus `json:"status,omitempty"`
}

AmbassadorMapping is the Schema for the mappings API

+kubebuilder:object:root=true +kubebuilder:subresource:status +kubebuilder:printcolumn:name="Source Host",type=string,JSONPath=`.spec.host` +kubebuilder:printcolumn:name="Source Prefix",type=string,JSONPath=`.spec.prefix` +kubebuilder:printcolumn:name="Dest Service",type=string,JSONPath=`.spec.service` +kubebuilder:printcolumn:name="State",type=string,JSONPath=`.status.state` +kubebuilder:printcolumn:name="Reason",type=string,JSONPath=`.status.reason`

func (*AmbassadorMapping) DeepCopy

func (in *AmbassadorMapping) DeepCopy() *AmbassadorMapping

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

func (*AmbassadorMapping) DeepCopyInto

func (in *AmbassadorMapping) DeepCopyInto(out *AmbassadorMapping)

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

func (*AmbassadorMapping) DeepCopyObject

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

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

type AmbassadorMappingList

type AmbassadorMappingList struct {
	metav1.TypeMeta `json:""`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []AmbassadorMapping `json:"items"`
}

AmbassadorMappingList contains a list of AmbassadorMappings.

+kubebuilder:object:root=true

func (*AmbassadorMappingList) DeepCopy

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

func (*AmbassadorMappingList) DeepCopyInto

func (in *AmbassadorMappingList) DeepCopyInto(out *AmbassadorMappingList)

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

func (*AmbassadorMappingList) DeepCopyObject

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

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

type AmbassadorMappingSpec

type AmbassadorMappingSpec struct {
	AmbassadorID ambv2.AmbassadorID `json:"ambassador_id,omitempty"`

	// +kubebuilder:validation:Required
	Prefix      string `json:"prefix,omitempty"`
	PrefixRegex *bool  `json:"prefix_regex,omitempty"`
	PrefixExact *bool  `json:"prefix_exact,omitempty"`
	// +kubebuilder:validation:Required
	Service            string                  `json:"service,omitempty"`
	AddRequestHeaders  map[string]AddedHeader  `json:"add_request_headers,omitempty"`
	AddResponseHeaders map[string]AddedHeader  `json:"add_response_headers,omitempty"`
	AddLinkerdHeaders  *bool                   `json:"add_linkerd_headers,omitempty"`
	AutoHostRewrite    *bool                   `json:"auto_host_rewrite,omitempty"`
	CaseSensitive      *bool                   `json:"case_sensitive,omitempty"`
	Docs               *DocsInfo               `json:"docs,omitempty"`
	EnableIPv4         *bool                   `json:"enable_ipv4,omitempty"`
	EnableIPv6         *bool                   `json:"enable_ipv6,omitempty"`
	CircuitBreakers    []*ambv2.CircuitBreaker `json:"circuit_breakers,omitempty"`
	KeepAlive          *KeepAlive              `json:"keepalive,omitempty"`
	CORS               *CORS                   `json:"cors,omitempty"`
	RetryPolicy        *RetryPolicy            `json:"retry_policy,omitempty"`
	GRPC               *bool                   `json:"grpc,omitempty"`
	HostRedirect       *bool                   `json:"host_redirect,omitempty"`
	HostRewrite        string                  `json:"host_rewrite,omitempty"`
	Method             string                  `json:"method,omitempty"`
	MethodRegex        *bool                   `json:"method_regex,omitempty"`
	OutlierDetection   string                  `json:"outlier_detection,omitempty"`
	// Path replacement to use when generating an HTTP redirect. Used with `host_redirect`.
	PathRedirect string `json:"path_redirect,omitempty"`
	// Prefix rewrite to use when generating an HTTP redirect. Used with `host_redirect`.
	PrefixRedirect string `json:"prefix_redirect,omitempty"`
	// Prefix regex rewrite to use when generating an HTTP redirect. Used with `host_redirect`.
	RegexRedirect map[string]ambv2.BoolOrString `json:"regex_redirect,omitempty"`
	// The response code to use when generating an HTTP redirect. Defaults to 301. Used with
	// `host_redirect`.
	// +kubebuilder:validation:Enum={301,302,303,307,308}
	RedirectResponseCode           *int                          `json:"redirect_response_code,omitempty"`
	Priority                       string                        `json:"priority,omitempty"`
	Precedence                     *int                          `json:"precedence,omitempty"`
	ClusterTag                     string                        `json:"cluster_tag,omitempty"`
	RemoveRequestHeaders           []string                      `json:"remove_request_headers,omitempty"`
	RemoveResponseHeaders          []string                      `json:"remove_response_headers,omitempty"`
	Resolver                       string                        `json:"resolver,omitempty"`
	Rewrite                        *string                       `json:"rewrite,omitempty"`
	RegexRewrite                   map[string]ambv2.BoolOrString `json:"regex_rewrite,omitempty"`
	Shadow                         *bool                         `json:"shadow,omitempty"`
	ConnectTimeoutMs               *int                          `json:"connect_timeout_ms,omitempty"`
	ClusterIdleTimeoutMs           *int                          `json:"cluster_idle_timeout_ms,omitempty"`
	ClusterMaxConnectionLifetimeMs int                           `json:"cluster_max_connection_lifetime_ms,omitempty"`
	// The timeout for requests that use this AmbassadorMapping. Overrides `cluster_request_timeout_ms` set on the Ambassador Module, if it exists.
	TimeoutMs     *int                `json:"timeout_ms,omitempty"`
	IdleTimeoutMs *int                `json:"idle_timeout_ms,omitempty"`
	TLS           *ambv2.BoolOrString `json:"tls,omitempty"`

	// use_websocket is deprecated, and is equivlaent to setting
	// `allow_upgrade: ["websocket"]`
	UseWebsocket *bool `json:"use_websocket,omitempty"`

	// A case-insensitive list of the non-HTTP protocols to allow
	// "upgrading" to from HTTP via the "Connection: upgrade"
	// mechanism[1].  After the upgrade, Ambassador does not
	// interpret the traffic, and behaves similarly to how it does
	// for TCPMappings.
	//
	// [1]: https://tools.ietf.org/html/rfc7230#section-6.7
	//
	// For example, if your upstream service supports WebSockets,
	// you would write
	//
	//    allow_upgrade:
	//    - websocket
	//
	// Or if your upstream service supports upgrading from HTTP to
	// SPDY (as the Kubernetes apiserver does for `kubectl exec`
	// functionality), you would write
	//
	//    allow_upgrade:
	//    - spdy/3.1
	AllowUpgrade []string `json:"allow_upgrade,omitempty"`

	Weight                *int              `json:"weight,omitempty"`
	BypassAuth            *bool             `json:"bypass_auth,omitempty"`
	AuthContextExtensions map[string]string `json:"auth_context_extensions,omitempty"`
	// If true, bypasses any `error_response_overrides` set on the Ambassador module.
	BypassErrorResponseOverrides *bool `json:"bypass_error_response_overrides,omitempty"`
	// Error response overrides for this AmbassadorMapping. Replaces all of the `error_response_overrides`
	// set on the Ambassador module, if any.
	// +kubebuilder:validation:MinItems=1
	ErrorResponseOverrides []ambv2.ErrorResponseOverride `json:"error_response_overrides,omitempty"`
	Modules                []ambv2.UntypedDict           `json:"modules,omitempty"`
	Host                   string                        `json:"host,omitempty"`
	Hostname               string                        `json:"hostname,omitempty"`
	HostRegex              *bool                         `json:"host_regex,omitempty"`
	Headers                map[string]ambv2.BoolOrString `json:"headers,omitempty"`
	RegexHeaders           map[string]ambv2.BoolOrString `json:"regex_headers,omitempty"`
	Labels                 ambv2.DomainMap               `json:"labels,omitempty"`
	EnvoyOverride          *ambv2.UntypedDict            `json:"envoy_override,omitempty"`
	LoadBalancer           *ambv2.LoadBalancer           `json:"load_balancer,omitempty"`
	QueryParameters        map[string]ambv2.BoolOrString `json:"query_parameters,omitempty"`
	RegexQueryParameters   map[string]ambv2.BoolOrString `json:"regex_query_parameters,omitempty"`
	StatsName              string                        `json:"stats_name,omitempty"`
}

AmbassadorMappingSpec defines the desired state of AmbassadorMapping

func (*AmbassadorMappingSpec) DeepCopy

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

func (*AmbassadorMappingSpec) DeepCopyInto

func (in *AmbassadorMappingSpec) DeepCopyInto(out *AmbassadorMappingSpec)

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

type AmbassadorMappingStatus

type AmbassadorMappingStatus struct {
	// +kubebuilder:validation:Enum={"","Inactive","Running"}
	State string `json:"state,omitempty"`

	Reason string `json:"reason,omitempty"`
}

AmbassadorMappingStatus defines the observed state of AmbassadorMapping

func (*AmbassadorMappingStatus) DeepCopy

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

func (*AmbassadorMappingStatus) DeepCopyInto

func (in *AmbassadorMappingStatus) DeepCopyInto(out *AmbassadorMappingStatus)

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

type AmbassadorTCPMapping

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

	Spec AmbassadorTCPMappingSpec `json:"spec,omitempty"`
}

AmbassadorTCPMapping is the Schema for the tcpmappings API

+kubebuilder:object:root=true

func (*AmbassadorTCPMapping) DeepCopy

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

func (*AmbassadorTCPMapping) DeepCopyInto

func (in *AmbassadorTCPMapping) DeepCopyInto(out *AmbassadorTCPMapping)

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

func (*AmbassadorTCPMapping) DeepCopyObject

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

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

type AmbassadorTCPMappingList

type AmbassadorTCPMappingList struct {
	metav1.TypeMeta `json:""`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []AmbassadorTCPMapping `json:"items"`
}

AmbassadorTCPMappingList contains a list of AmbassadorTCPMappings.

+kubebuilder:object:root=true

func (*AmbassadorTCPMappingList) DeepCopy

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

func (*AmbassadorTCPMappingList) DeepCopyInto

func (in *AmbassadorTCPMappingList) DeepCopyInto(out *AmbassadorTCPMappingList)

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

func (*AmbassadorTCPMappingList) DeepCopyObject

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

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

type AmbassadorTCPMappingSpec

type AmbassadorTCPMappingSpec struct {
	AmbassadorID ambv2.AmbassadorID `json:"ambassador_id,omitempty"`

	// Port isn't a pointer because it's required.
	// +kubebuilder:validation:Required
	Port    int    `json:"port,omitempty"`
	Host    string `json:"host,omitempty"`
	Address string `json:"address,omitempty"`
	// +kubebuilder:validation:Required
	Service         string                 `json:"service,omitempty"`
	EnableIPv4      *bool                  `json:"enable_ipv4,omitempty"`
	EnableIPv6      *bool                  `json:"enable_ipv6,omitempty"`
	CircuitBreakers []ambv2.CircuitBreaker `json:"circuit_breakers,omitempty"`

	// FIXME(lukeshu): Surely this should be an 'int'?
	IdleTimeoutMs string `json:"idle_timeout_ms,omitempty"`

	Resolver   string              `json:"resolver,omitempty"`
	TLS        *ambv2.BoolOrString `json:"tls,omitempty"`
	Weight     *int                `json:"weight,omitempty"`
	ClusterTag string              `json:"cluster_tag,omitempty"`
	StatsName  string              `json:"stats_name,omitempty"`
}

AmbassadorTCPMappingSpec defines the desired state of AmbassadorTCPMapping

func (*AmbassadorTCPMappingSpec) DeepCopy

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

func (*AmbassadorTCPMappingSpec) DeepCopyInto

func (in *AmbassadorTCPMappingSpec) DeepCopyInto(out *AmbassadorTCPMappingSpec)

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

type CORS

type CORS struct {
	Origins        []string `json:"origins,omitempty"`
	Methods        []string `json:"methods,omitempty"`
	Headers        []string `json:"headers,omitempty"`
	Credentials    *bool    `json:"credentials,omitempty"`
	ExposedHeaders []string `json:"exposed_headers,omitempty"`
	MaxAge         string   `json:"max_age,omitempty"`
}

func (*CORS) DeepCopy

func (in *CORS) DeepCopy() *CORS

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

func (*CORS) DeepCopyInto

func (in *CORS) DeepCopyInto(out *CORS)

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

type DocsInfo

type DocsInfo struct {
	Path        string `json:"path,omitempty"`
	URL         string `json:"url,omitempty"`
	Ignored     *bool  `json:"ignored,omitempty"`
	DisplayName string `json:"display_name,omitempty"`
}

DocsInfo provides some extra information about the docs for the AmbassadorMapping (used by the Dev Portal)

func (*DocsInfo) DeepCopy

func (in *DocsInfo) DeepCopy() *DocsInfo

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

func (*DocsInfo) DeepCopyInto

func (in *DocsInfo) DeepCopyInto(out *DocsInfo)

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

type HostBindingType

type HostBindingType struct {
	Namespace NamespaceBindingType  `json:"namespace"`
	Selector  *metav1.LabelSelector `json:"selector,omitempty"`
}

HostBindingType defines how we specify Hosts to bind to this AmbassadorListener.

func (*HostBindingType) DeepCopy

func (in *HostBindingType) DeepCopy() *HostBindingType

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

func (*HostBindingType) DeepCopyInto

func (in *HostBindingType) DeepCopyInto(out *HostBindingType)

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

type InsecureRequestPolicy

type InsecureRequestPolicy struct {
	// +kubebuilder:validation:Enum={"Redirect","Reject","Route"}
	Action         string `json:"action,omitempty"`
	AdditionalPort *int   `json:"additionalPort,omitempty"`
}

func (*InsecureRequestPolicy) DeepCopy

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

func (*InsecureRequestPolicy) DeepCopyInto

func (in *InsecureRequestPolicy) DeepCopyInto(out *InsecureRequestPolicy)

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

type KeepAlive

type KeepAlive struct {
	Probes   *int `json:"probes,omitempty"`
	IdleTime *int `json:"idle_time,omitempty"`
	Interval *int `json:"interval,omitempty"`
}

func (*KeepAlive) DeepCopy

func (in *KeepAlive) DeepCopy() *KeepAlive

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

func (*KeepAlive) DeepCopyInto

func (in *KeepAlive) DeepCopyInto(out *KeepAlive)

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

type LoadBalancer

type LoadBalancer struct {
	// +kubebuilder:validation:Enum={"round_robin","ring_hash","maglev","least_request"}
	// +kubebuilder:validation:Required
	Policy   string              `json:"policy,omitempty"`
	Cookie   *LoadBalancerCookie `json:"cookie,omitempty"`
	Header   string              `json:"header,omitempty"`
	SourceIp *bool               `json:"source_ip,omitempty"`
}

func (*LoadBalancer) DeepCopy

func (in *LoadBalancer) DeepCopy() *LoadBalancer

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

func (*LoadBalancer) DeepCopyInto

func (in *LoadBalancer) DeepCopyInto(out *LoadBalancer)

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

type LoadBalancerCookie

type LoadBalancerCookie struct {
	// +kubebuilder:validation:Required
	Name string `json:"name,omitempty"`
	Path string `json:"path,omitempty"`
	Ttl  string `json:"ttl,omitempty"`
}

func (*LoadBalancerCookie) DeepCopy

func (in *LoadBalancerCookie) DeepCopy() *LoadBalancerCookie

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

func (*LoadBalancerCookie) DeepCopyInto

func (in *LoadBalancerCookie) DeepCopyInto(out *LoadBalancerCookie)

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

type NamespaceBindingType

type NamespaceBindingType struct {
	From NamespaceFromType `json:"from,omitempty"`
}

NamespaceBindingType defines we we specify which namespaces to look for Hosts in.

func (*NamespaceBindingType) DeepCopy

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

func (*NamespaceBindingType) DeepCopyInto

func (in *NamespaceBindingType) DeepCopyInto(out *NamespaceBindingType)

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

type NamespaceFromType

type NamespaceFromType string

NamespaceFromType defines how we evaluate a NamespaceBindingType. +kubebuilder:validation:Enum=SELF;ALL;SELECTOR

const (
	// SELFNamespaceFromType specifies that an AmbassadorListener should consider Hosts only in the
	// AmbassadorListener's namespaces.
	SELFNamespaceFromType NamespaceFromType = "SELF"

	// ALLNamespaceFromType specifies that an AmbassadorListener should consider Hosts in ALL
	// namespaces. This is the simplest way to build an AmbassadorListener that matches all Hosts.
	ALLNamespaceFromType NamespaceFromType = "ALL"
)

type PreviewURLSpec

type PreviewURLSpec struct {
	// Is the Preview URL feature enabled?
	Enabled *bool `json:"enabled,omitempty"`

	// What type of Preview URL is allowed?
	Type PreviewURLType `json:"type,omitempty"`
}

func (*PreviewURLSpec) DeepCopy

func (in *PreviewURLSpec) DeepCopy() *PreviewURLSpec

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

func (*PreviewURLSpec) DeepCopyInto

func (in *PreviewURLSpec) DeepCopyInto(out *PreviewURLSpec)

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

type PreviewURLType

type PreviewURLType string

What type of Preview URL is allowed?

  • path
  • wildcard
  • datawire // FIXME rename this before release

+kubebuilder:validation:Enum={"Path"}

type ProtocolStackElement

type ProtocolStackElement string

ProtocolStackElement defines specific layers that may be combined in a protocol stack for processing connections to a port. +kubebuilder:validation:Enum=HTTP;PROXY;TLS;TCP;UDP

const (
	// HTTPProtocolStackElement represents the HTTP protocol.
	HTTPProtocolStackElement ProtocolStackElement = "HTTP"

	// PROXYProtocolStackElement represents the HAProxy PROXY protocol.
	PROXYProtocolStackElement ProtocolStackElement = "PROXY"

	// TLSProtocolStackElement represents the TLS protocol.
	TLSProtocolStackElement ProtocolStackElement = "TLS"

	// TCPProtocolStackElement represents raw TCP sessions.
	TCPProtocolStackElement ProtocolStackElement = "TCP"

	// UDPProtocolStackElement represents UDP packets.
	UDPProtocolStackElement ProtocolStackElement = "UDP"
)

type ProtocolType

type ProtocolType string

ProtocolType defines shorthands for well-known protocol stacks. +kubebuilder:validation:Enum=HTTP;HTTPS;HTTPPROXY;HTTPSPROXY;TCP;TLS;UDP

const (
	// HTTPProtocolType accepts cleartext HTTP/1.1 sessions over TCP.
	// HTTP;TCP
	HTTPProtocolType ProtocolType = "HTTP"

	// HTTPSProtocolType accepts encrypted HTTP/1.1 or HTTP/2 sessions using TLS over TCP.
	// TLS;HTTP;TCP
	HTTPSProtocolType ProtocolType = "HTTPS"

	// HTTPPROXYProtocolType accepts cleartext HTTP/1.1 sessions using the HAProxy PROXY protocol over TCP.
	// PROXY;HTTP;TCP
	HTTPPROXYProtocolType ProtocolType = "HTTPPROXY"

	// HTTPSPROXYProtocolType accepts encrypted HTTP/1.1 or HTTP/2 sessions using the HAProxy PROXY protocol over TLS over TCP.
	// TLS;PROXY;HTTP;TCP
	HTTPSPROXYProtocolType ProtocolType = "HTTPSPROXY"

	// RAWTCPProtocolType accepts raw TCP sessions.
	// TCP
	RAWTCPProtocolType ProtocolType = "TCP"

	// TLSProtocolType accepts TLS over TCP.
	// TLS;TCP
	TLSProtocolType ProtocolType = "TLS"

	// UDPProtocolType accepts UDP packets.
	// UDP
	UDPProtocolType ProtocolType = "UDP"
)

type RequestPolicy

type RequestPolicy struct {
	Insecure InsecureRequestPolicy `json:"insecure,omitempty"`
}

func (*RequestPolicy) DeepCopy

func (in *RequestPolicy) DeepCopy() *RequestPolicy

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

func (*RequestPolicy) DeepCopyInto

func (in *RequestPolicy) DeepCopyInto(out *RequestPolicy)

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

type RetryPolicy

type RetryPolicy struct {
	// +kubebuilder:validation:Enum={"5xx","gateway-error","connect-failure","retriable-4xx","refused-stream","retriable-status-codes"}
	RetryOn       string `json:"retry_on,omitempty"`
	NumRetries    *int   `json:"num_retries,omitempty"`
	PerTryTimeout string `json:"per_try_timeout,omitempty"`
}

func (*RetryPolicy) DeepCopy

func (in *RetryPolicy) DeepCopy() *RetryPolicy

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

func (*RetryPolicy) DeepCopyInto

func (in *RetryPolicy) DeepCopyInto(out *RetryPolicy)

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

type SecurityModelType

type SecurityModelType string

SecurityModelType defines the mechanisms we can use to determine whether connections to a port are secure or insecure. +kubebuilder:validation:Enum=XFP;SECURE;INSECURE

const (
	// XFPSecurityModelType specifies that connections on this port use X-Forwarded-Proto to
	// determine security: if the protocol is HTTPS, the connection is secure; otherwise
	// it is insecure.
	XFPSecurityModelType SecurityModelType = "XFP"

	// SECURESecurityModelType specifies that connections on this port are always secure
	SECURESecurityModelType SecurityModelType = "SECURE"

	// INSECURESecurityModelType specifies that connections on this port are never secure
	INSECURESecurityModelType SecurityModelType = "INSECURE"
)

Jump to

Keyboard shortcuts

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