v3alpha1

package
v1.5.1 Latest Latest
Warning

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

Go to latest
Published: Apr 21, 2023 License: EUPL-1.2 Imports: 6 Imported by: 0

Documentation

Overview

Package v3alpha1 is the v3alpha1 version of the API.

Index

Constants

View Source
const (
	HostState_Initial = HostState(iota)
	HostState_Pending
	HostState_Ready
	HostState_Error
)
View Source
const (
	HostPhase_NA = HostPhase(iota)
	HostPhase_DefaultsFilled
	HostPhase_ACMEUserPrivateKeyCreated
	HostPhase_ACMEUserRegistered
	HostPhase_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 (
	// SchemeBuilder initializes a scheme builder.
	SchemeBuilder runtime.SchemeBuilder

	// AddToScheme is a global function that registers this API group & version to a scheme
	AddToScheme = SchemeBuilder.AddToScheme
)
View Source
var SchemeGroupVersion = schema.GroupVersion{
	Group:   "getambassador.io",
	Version: "v3alpha1",
}

SchemeGroupVersion is group version used to register these objects. Define your schema name and the version.

Functions

func Kind

func Kind(kind string) schema.GroupKind

Kind takes an unqualified kind and returns back a Group qualified GroupKind TBD - What is this?

func Resource

func Resource(resource string) schema.GroupResource

Resource takes an unqualified resource and returns a Group qualified GroupResource TBD - What is this?

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 Host.
	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 {
	Value  string `json:"value,omitempty"`
	Append *bool  `json:"append,omitempty"`

	// +kubebuilder:validation:Enum={"","string","null"}
	V2Representation string `json:"v2Representation,omitempty"`
}

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.

type AmbassadorID

type AmbassadorID []string

AmbassadorID declares which Ambassador instances should pay attention to this resource. If no value is provided, the default is:

ambassador_id:
- "default"

TODO(lukeshu): In v3alpha2, consider renaming all of the `ambassador_id` (singular) fields to `ambassador_ids` (plural).

func (AmbassadorID) DeepCopy

func (in AmbassadorID) DeepCopy() AmbassadorID

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

func (AmbassadorID) DeepCopyInto

func (in AmbassadorID) DeepCopyInto(out *AmbassadorID)

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

func (AmbassadorID) Matches

func (aid AmbassadorID) Matches(envVar string) bool

type CORS

type CORS struct {
	// +k8s:conversion-gen=false
	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"`

	V2CommaSeparatedOrigins bool `json:"v2CommaSeparatedOrigins,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 CircuitBreaker

type CircuitBreaker struct {
	// +kubebuilder:validation:Enum={"default", "high"}
	Priority           string `json:"priority,omitempty"`
	MaxConnections     *int   `json:"max_connections,omitempty"`
	MaxPendingRequests *int   `json:"max_pending_requests,omitempty"`
	MaxRequests        *int   `json:"max_requests,omitempty"`
	MaxRetries         *int   `json:"max_retries,omitempty"`
}

func (*CircuitBreaker) DeepCopy

func (in *CircuitBreaker) DeepCopy() *CircuitBreaker

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

func (*CircuitBreaker) DeepCopyInto

func (in *CircuitBreaker) DeepCopyInto(out *CircuitBreaker)

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

type ConsulResolver

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

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

ConsulResolver is the Schema for the ConsulResolver API

+kubebuilder:object:root=true

func (*ConsulResolver) DeepCopy

func (in *ConsulResolver) DeepCopy() *ConsulResolver

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

func (*ConsulResolver) DeepCopyInto

func (in *ConsulResolver) DeepCopyInto(out *ConsulResolver)

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

type ConsulResolverList

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

ConsulResolverList contains a list of ConsulResolvers.

+kubebuilder:object:root=true

func (*ConsulResolverList) DeepCopy

func (in *ConsulResolverList) DeepCopy() *ConsulResolverList

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

func (*ConsulResolverList) DeepCopyInto

func (in *ConsulResolverList) DeepCopyInto(out *ConsulResolverList)

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

type ConsulResolverSpec

type ConsulResolverSpec struct {
	AmbassadorID AmbassadorID `json:"ambassador_id,omitempty"`

	Address    string `json:"address,omitempty"`
	Datacenter string `json:"datacenter,omitempty"`
}

ConsulResolver tells Ambassador to use Consul to resolve services. In addition to the AmbassadorID, it needs information about which Consul server and DC to use.

func (*ConsulResolverSpec) DeepCopy

func (in *ConsulResolverSpec) DeepCopy() *ConsulResolverSpec

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

func (*ConsulResolverSpec) DeepCopyInto

func (in *ConsulResolverSpec) DeepCopyInto(out *ConsulResolverSpec)

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"`
	Timeout     *MillisecondDuration `json:"timeout_ms,omitempty"`
}

DocsInfo provides some extra information about the docs for the Mapping. Docs is used by both the agent and the DevPortal.

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 DomainMap

type DomainMap map[string]MappingLabelGroupsArray

A DomainMap is the overall Mapping.spec.Labels type. It maps domains (kind of like namespaces for Mapping labels) to arrays of label groups.

func (DomainMap) DeepCopy

func (in DomainMap) DeepCopy() DomainMap

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

func (DomainMap) DeepCopyInto

func (in DomainMap) DeepCopyInto(out *DomainMap)

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

type ErrorResponseOverride

type ErrorResponseOverride struct {
	// The status code to match on -- not a pointer because it's required.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Minimum=400
	// +kubebuilder:validation:Maximum=599
	OnStatusCode int `json:"on_status_code,omitempty"`

	// The new response body
	// +kubebuilder:validation:Required
	Body ErrorResponseOverrideBody `json:"body,omitempty"`
}

A response rewrite for an HTTP error response

func (*ErrorResponseOverride) DeepCopy

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

func (*ErrorResponseOverride) DeepCopyInto

func (in *ErrorResponseOverride) DeepCopyInto(out *ErrorResponseOverride)

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

type ErrorResponseOverrideBody

type ErrorResponseOverrideBody struct {
	// A format string representing a text response body.
	// Content-Type can be set using the `content_type` field below.
	ErrorResponseTextFormat *string `json:"text_format,omitempty"`

	// A JSON response with content-type: application/json. The values can
	// contain format text like in text_format.
	ErrorResponseJsonFormat *map[string]string `json:"json_format,omitempty"`

	// A format string sourced from a file on the Ambassador container.
	// Useful for larger response bodies that should not be placed inline
	// in configuration.
	ErrorResponseTextFormatSource *ErrorResponseTextFormatSource `json:"text_format_source,omitempty"`

	// The content type to set on the error response body when
	// using text_format or text_format_source. Defaults to 'text/plain'.
	ContentType string `json:"content_type,omitempty"`
}

ErorrResponseOverrideBody specifies the body of an error response

func (*ErrorResponseOverrideBody) DeepCopy

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

func (*ErrorResponseOverrideBody) DeepCopyInto

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

type ErrorResponseTextFormatSource

type ErrorResponseTextFormatSource struct {
	// The name of a file on the Ambassador pod that contains a format text string.
	Filename string `json:"filename"`
}

ErrorResponseTextFormatSource specifies a source for an error response body

func (*ErrorResponseTextFormatSource) DeepCopy

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

func (*ErrorResponseTextFormatSource) DeepCopyInto

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

type GRPCHealthCheck

type GRPCHealthCheck struct {
	// The upstream name parameter which will be sent to gRPC service in the health check message
	// +kubebuilder:validation:Required
	UpstreamName string `json:"upstream_name,omitempty"`
	// The value of the :authority header in the gRPC health check request. If left empty the upstream name will be used.
	Authority string `json:"authority,omitempty"`
}

HealthCheck for gRPC upstreams. Only one of grpc_health_check or http_health_check may be specified

func (*GRPCHealthCheck) DeepCopy

func (in *GRPCHealthCheck) DeepCopy() *GRPCHealthCheck

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

func (*GRPCHealthCheck) DeepCopyInto

func (in *GRPCHealthCheck) DeepCopyInto(out *GRPCHealthCheck)

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

type HTTPHealthCheck

type HTTPHealthCheck struct {
	// +kubebuilder:validation:Required
	Path                 string                 `json:"path,omitempty"`
	Host                 string                 `json:"hostname,omitempty"`
	AddRequestHeaders    map[string]AddedHeader `json:"add_request_headers,omitempty"`
	RemoveRequestHeaders []string               `json:"remove_request_headers,omitempty"`
	ExpectedStatuses     []StatusRange          `json:"expected_statuses,omitempty"`
}

HealthCheck for HTTP upstreams. Only one of http_health_check or grpc_health_check may be specified

func (*HTTPHealthCheck) DeepCopy

func (in *HTTPHealthCheck) DeepCopy() *HTTPHealthCheck

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

func (*HTTPHealthCheck) DeepCopyInto

func (in *HTTPHealthCheck) DeepCopyInto(out *HTTPHealthCheck)

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

type HealthCheck

type HealthCheck struct {
	// Timeout for connecting to the health checking endpoint. Defaults to 3 seconds.
	Timeout *metav1.Duration `json:"timeout,omitempty"`
	// Interval between health checks. Defaults to every 5 seconds.
	Interval *metav1.Duration `json:"interval,omitempty"`
	// Number of non-expected responses for the upstream to be considered unhealthy. A single 503 will mark the upstream as unhealthy regardless of the threshold. Defaults to 2.
	UnhealthyThreshold *int `json:"unhealthy_threshold,omitempty"`
	// Number of expected responses for the upstream to be considered healthy. Defaults to 1.
	HealthyThreshold *int `json:"healthy_threshold,omitempty"`

	// Configuration for where the healthcheck request should be made to
	// +kubebuilder:validation:Required
	HealthCheckLocation HealthCheckLocation `json:"health_check,omitempty"`
}

HealthCheck specifies settings for performing active health checking on upstreams

func (*HealthCheck) DeepCopy

func (in *HealthCheck) DeepCopy() *HealthCheck

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

func (*HealthCheck) DeepCopyInto

func (in *HealthCheck) DeepCopyInto(out *HealthCheck)

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

type HealthCheckLocation

type HealthCheckLocation struct {
	HTTPHealthCheck *HTTPHealthCheck `json:"http,omitempty"`
	GRPCHealthCheck *GRPCHealthCheck `json:"grpc,omitempty"`
}

+kubebuilder:validation:MinProperties=1 +kubebuilder:validation:MaxProperties=1

func (*HealthCheckLocation) DeepCopy

func (in *HealthCheckLocation) DeepCopy() *HealthCheckLocation

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

func (*HealthCheckLocation) DeepCopyInto

func (in *HealthCheckLocation) DeepCopyInto(out *HealthCheckLocation)

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

type Host

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

	Spec   *HostSpec  `json:"spec,omitempty"`
	Status HostStatus `json:"status,omitempty"`
}

Host 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 (*Host) DeepCopy

func (in *Host) DeepCopy() *Host

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

func (*Host) DeepCopyInto

func (in *Host) DeepCopyInto(out *Host)

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

func (*Host) DeepCopyObject

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

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

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 Listener.

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 HostList

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

HostList contains a list of Hosts.

+kubebuilder:object:root=true

func (*HostList) DeepCopy

func (in *HostList) DeepCopy() *HostList

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

func (*HostList) DeepCopyInto

func (in *HostList) DeepCopyInto(out *HostList)

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

func (*HostList) DeepCopyObject

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

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

type HostPhase

type HostPhase int

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

func (HostPhase) MarshalJSON

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

func (HostPhase) String

func (o HostPhase) String() string

func (*HostPhase) UnmarshalJSON

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

type HostSpec

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

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

	// DEPRECATED: Selector by which we can find further configuration. Use MappingSelector instead.
	//
	// TODO(lukeshu): In v3alpha2, figure out how to get rid of HostSpec.DeprecatedSelector.
	DeprecatedSelector *metav1.LabelSelector `json:"selector,omitempty"`

	// Selector for Mappings we'll associate with this Host. At the moment, Selector and
	// MappingSelector are synonyms, but that will change soon.
	MappingSelector *metav1.LabelSelector `json:"mappingSelector,omitempty"`

	// Specifies whether/who to talk ACME with to automatically manage the $tlsSecret.
	AcmeProvider *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 Host.
	TLSSecret *corev1.SecretReference `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 Host 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 *TLSConfig `json:"tls,omitempty"`
}

HostSpec defines the desired state of Host

func (*HostSpec) DeepCopy

func (in *HostSpec) DeepCopy() *HostSpec

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

func (*HostSpec) DeepCopyInto

func (in *HostSpec) DeepCopyInto(out *HostSpec)

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

type HostState

type HostState 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 (HostState) MarshalJSON

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

func (HostState) String

func (o HostState) String() string

func (*HostState) UnmarshalJSON

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

type HostStatus

type HostStatus struct {
	TLSCertificateSource HostTLSCertificateSource `json:"tlsCertificateSource,omitempty"`

	State HostState `json:"state,omitempty"`

	// phaseCompleted and phasePending are valid when state==Pending or
	// state==Error.
	PhaseCompleted HostPhase `json:"phaseCompleted,omitempty"`
	// phaseCompleted and phasePending are valid when state==Pending or
	// state==Error.
	PhasePending HostPhase `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"`
}

HostStatus defines the observed state of Host

func (*HostStatus) DeepCopy

func (in *HostStatus) DeepCopy() *HostStatus

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

func (*HostStatus) DeepCopyInto

func (in *HostStatus) DeepCopyInto(out *HostStatus)

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

type HostTLSCertificateSource

type HostTLSCertificateSource string

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

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 KubernetesEndpointResolver

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

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

KubernetesEndpointResolver is the Schema for the kubernetesendpointresolver API

+kubebuilder:object:root=true

func (*KubernetesEndpointResolver) DeepCopy

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

func (*KubernetesEndpointResolver) DeepCopyInto

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

func (*KubernetesEndpointResolver) DeepCopyObject

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

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

type KubernetesEndpointResolverList

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

KubernetesEndpointResolverList contains a list of KubernetesEndpointResolvers.

+kubebuilder:object:root=true

func (*KubernetesEndpointResolverList) DeepCopy

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

func (*KubernetesEndpointResolverList) DeepCopyInto

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

func (*KubernetesEndpointResolverList) DeepCopyObject

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

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

type KubernetesEndpointResolverSpec

type KubernetesEndpointResolverSpec struct {
	AmbassadorID AmbassadorID `json:"ambassador_id,omitempty"`
}

KubernetesEndpointResolver tells Ambassador to use Kubernetes Endpoints resources to resolve services. It actually has no spec other than the AmbassadorID.

func (*KubernetesEndpointResolverSpec) DeepCopy

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

func (*KubernetesEndpointResolverSpec) DeepCopyInto

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

type KubernetesServiceResolver

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

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

KubernetesServiceResolver is the Schema for the kubernetesserviceresolver API

+kubebuilder:object:root=true

func (*KubernetesServiceResolver) DeepCopy

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

func (*KubernetesServiceResolver) DeepCopyInto

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

type KubernetesServiceResolverList

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

KubernetesServiceResolverList contains a list of KubernetesServiceResolvers.

+kubebuilder:object:root=true

func (*KubernetesServiceResolverList) DeepCopy

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

func (*KubernetesServiceResolverList) DeepCopyInto

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

type KubernetesServiceResolverSpec

type KubernetesServiceResolverSpec struct {
	AmbassadorID AmbassadorID `json:"ambassador_id,omitempty"`
}

KubernetesServiceResolver tells Ambassador to use Kubernetes Service resources to resolve services. It actually has no spec other than the AmbassadorID.

func (*KubernetesServiceResolverSpec) DeepCopy

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

func (*KubernetesServiceResolverSpec) DeepCopyInto

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

type Listener

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

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

Listener 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` +kubebuilder:storageversion

func (*Listener) DeepCopy

func (in *Listener) DeepCopy() *Listener

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

func (*Listener) DeepCopyInto

func (in *Listener) DeepCopyInto(out *Listener)

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

func (*Listener) DeepCopyObject

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

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

type ListenerList

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

ListenerList contains a list of Listener.

+kubebuilder:object:root=true

func (*ListenerList) DeepCopy

func (in *ListenerList) DeepCopy() *ListenerList

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

func (*ListenerList) DeepCopyInto

func (in *ListenerList) DeepCopyInto(out *ListenerList)

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

func (*ListenerList) DeepCopyObject

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

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

type ListenerSpec

type ListenerSpec struct {
	AmbassadorID AmbassadorID `json:"ambassador_id,omitempty"`

	// Port is the network port. Only one Listener 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
	// Listener. 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 Listener.
	// +kubebuilder:validation:Required
	HostBinding HostBindingType `json:"hostBinding"`
}

ListenerSpec defines the desired state of this Port

func (*ListenerSpec) DeepCopy

func (in *ListenerSpec) DeepCopy() *ListenerSpec

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

func (*ListenerSpec) DeepCopyInto

func (in *ListenerSpec) DeepCopyInto(out *ListenerSpec)

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 Mapping

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

	Spec   MappingSpec    `json:"spec,omitempty"`
	Status *MappingStatus `json:"status,omitempty"`
}

Mapping 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 (*Mapping) DeepCopy

func (in *Mapping) DeepCopy() *Mapping

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

func (*Mapping) DeepCopyInto

func (in *Mapping) DeepCopyInto(out *Mapping)

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

func (*Mapping) DeepCopyObject

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

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

type MappingLabelGroup

type MappingLabelGroup map[string]MappingLabelsArray

A MappingLabelGroup is a single element of a MappingLabelGroupsArray: a second map, where the key is a human-readable name that identifies the group.

+kubebuilder:validation:MinProperties=1 +kubebuilder:validation:MaxProperties=1

func (MappingLabelGroup) DeepCopy

func (in MappingLabelGroup) DeepCopy() MappingLabelGroup

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

func (MappingLabelGroup) DeepCopyInto

func (in MappingLabelGroup) DeepCopyInto(out *MappingLabelGroup)

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

type MappingLabelGroupsArray

type MappingLabelGroupsArray []MappingLabelGroup

A MappingLabelGroupsArray is an array of MappingLabelGroups. I know, complex.

func (MappingLabelGroupsArray) DeepCopy

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

func (MappingLabelGroupsArray) DeepCopyInto

func (in MappingLabelGroupsArray) DeepCopyInto(out *MappingLabelGroupsArray)

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

type MappingLabelSpecifier

type MappingLabelSpecifier struct {
	// Sets the label "source_cluster=«Envoy source cluster name»".
	SourceCluster *MappingLabelSpecifier_SourceCluster `json:"source_cluster,omitempty"`

	// Sets the label "destination_cluster=«Envoy destination cluster name»".
	DestinationCluster *MappingLabelSpecifier_DestinationCluster `json:"destination_cluster,omitempty"`

	// If the «header_name» header is set, then set the label "«key»=«Value of the
	// «header_name» header»"; otherwise skip applying this label group.
	RequestHeaders *MappingLabelSpecifier_RequestHeaders `json:"request_headers,omitempty"`

	// Sets the label "remote_address=«IP address of the client»".
	RemoteAddress *MappingLabelSpecifier_RemoteAddress `json:"remote_address,omitempty"`

	// Sets the label "«key»=«value»" (where by default «key»
	// is "generic_key").
	GenericKey *MappingLabelSpecifier_GenericKey `json:"generic_key,omitempty"`
}

A MappingLabelSpecifier (finally!) defines a single label.

This mimics envoy/config/route/v3/route_components.proto:RateLimit:Action:action_specifier.

+kubebuilder:validation:MinProperties=1 +kubebuilder:validation:MaxProperties=1

func (*MappingLabelSpecifier) DeepCopy

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

func (*MappingLabelSpecifier) DeepCopyInto

func (in *MappingLabelSpecifier) DeepCopyInto(out *MappingLabelSpecifier)

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

type MappingLabelSpecifier_DestinationCluster

type MappingLabelSpecifier_DestinationCluster struct {
	// +kubebuilder:validation:Enum={"destination_cluster"}
	// +kubebuilder:validation:Required
	Key string `json:"key"`
}

func (*MappingLabelSpecifier_DestinationCluster) DeepCopy

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

func (*MappingLabelSpecifier_DestinationCluster) DeepCopyInto

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

type MappingLabelSpecifier_GenericKey

type MappingLabelSpecifier_GenericKey struct {
	// The default is "generic_key".
	Key string `json:"key,omitempty"`

	// +kubebuilder:validation:Required
	Value string `json:"value"`

	V2Shorthand bool `json:"v2Shorthand,omitempty"`
}

func (*MappingLabelSpecifier_GenericKey) DeepCopy

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

func (*MappingLabelSpecifier_GenericKey) DeepCopyInto

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

type MappingLabelSpecifier_RemoteAddress

type MappingLabelSpecifier_RemoteAddress struct {
	// +kubebuilder:validation:Enum={"remote_address"}
	// +kubebuilder:validation:Required
	Key string `json:"key"`
}

func (*MappingLabelSpecifier_RemoteAddress) DeepCopy

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

func (*MappingLabelSpecifier_RemoteAddress) DeepCopyInto

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

type MappingLabelSpecifier_RequestHeaders

type MappingLabelSpecifier_RequestHeaders struct {
	// +kubebuilder:validation:Required
	Key string `json:"key"`

	// +kubebuilder:validation:Required
	HeaderName string `json:"header_name"`

	OmitIfNotPresent *bool `json:"omit_if_not_present,omitempty"`
}

func (*MappingLabelSpecifier_RequestHeaders) DeepCopy

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

func (*MappingLabelSpecifier_RequestHeaders) DeepCopyInto

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

type MappingLabelSpecifier_SourceCluster

type MappingLabelSpecifier_SourceCluster struct {
	// +kubebuilder:validation:Enum={"source_cluster"}
	// +kubebuilder:validation:Required
	Key string `json:"key"`
}

func (*MappingLabelSpecifier_SourceCluster) DeepCopy

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

func (*MappingLabelSpecifier_SourceCluster) DeepCopyInto

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

type MappingLabelsArray

type MappingLabelsArray []MappingLabelSpecifier

A MappingLabelsArray is the value in the MappingLabelGroup: an array of label specifiers.

func (MappingLabelsArray) DeepCopy

func (in MappingLabelsArray) DeepCopy() MappingLabelsArray

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

func (MappingLabelsArray) DeepCopyInto

func (in MappingLabelsArray) DeepCopyInto(out *MappingLabelsArray)

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

type MappingList

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

MappingList contains a list of Mappings.

+kubebuilder:object:root=true

func (*MappingList) DeepCopy

func (in *MappingList) DeepCopy() *MappingList

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

func (*MappingList) DeepCopyInto

func (in *MappingList) DeepCopyInto(out *MappingList)

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

func (*MappingList) DeepCopyObject

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

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

type MappingSpec

type MappingSpec struct {
	AmbassadorID 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"`
	DNSType            string                  `json:"dns_type,omitempty"`
	Docs               *DocsInfo               `json:"docs,omitempty"`
	EnableIPv4         *bool                   `json:"enable_ipv4,omitempty"`
	EnableIPv6         *bool                   `json:"enable_ipv6,omitempty"`
	CircuitBreakers    []*CircuitBreaker       `json:"circuit_breakers,omitempty"`
	KeepAlive          *KeepAlive              `json:"keepalive,omitempty"`
	CORS               *CORS                   `json:"cors,omitempty"`
	RetryPolicy        *RetryPolicy            `json:"retry_policy,omitempty"`
	RespectDNSTTL      *bool                   `json:"respect_dns_ttl,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 *RegexMap `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                 *RegexMap            `json:"regex_rewrite,omitempty"`
	Shadow                       *bool                `json:"shadow,omitempty"`
	ConnectTimeout               *MillisecondDuration `json:"connect_timeout_ms,omitempty"`
	ClusterIdleTimeout           *MillisecondDuration `json:"cluster_idle_timeout_ms,omitempty"`
	ClusterMaxConnectionLifetime *MillisecondDuration `json:"cluster_max_connection_lifetime_ms,omitempty"`
	// The timeout for requests that use this Mapping. Overrides `cluster_request_timeout_ms` set on the Ambassador Module, if it exists.
	Timeout     *MillisecondDuration `json:"timeout_ms,omitempty"`
	IdleTimeout *MillisecondDuration `json:"idle_timeout_ms,omitempty"`
	TLS         string               `json:"tls,omitempty"`
	// +kubebuilder:validation:MinItems=1
	HealthChecks []HealthCheck `json:"health_checks,omitempty"`

	// use_websocket is deprecated, and is equivlaent to setting
	// `allow_upgrade: ["websocket"]`
	//
	// TODO(lukeshu): In v3alpha2, get rid of MappingSpec.DeprecatedUseWebsocket.
	DeprecatedUseWebsocket *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 Mapping. Replaces all of the `error_response_overrides`
	// set on the Ambassador module, if any.
	// +kubebuilder:validation:MinItems=1
	ErrorResponseOverrides []ErrorResponseOverride `json:"error_response_overrides,omitempty"`
	Modules                []UntypedDict           `json:"modules,omitempty"`

	// Exact match for the hostname of a request if HostRegex is false; regex match for the
	// hostname if HostRegex is true.
	//
	// Host specifies both a match for the ':authority' header of a request, as well as a match
	// criterion for Host CRDs: a Mapping that specifies Host will not associate with a Host that
	// doesn't have a matching Hostname.
	//
	// If both Host and Hostname are set, an error is logged, Host is ignored, and Hostname is
	// used.
	//
	// DEPRECATED: Host is either an exact match or a regex, depending on HostRegex. Use HostName instead.
	//
	// TODO(lukeshu): In v3alpha2, get rid of MappingSpec.host and MappingSpec.host_regex in
	// favor of a MappingSpec.deprecated_hostname_regex.
	DeprecatedHost string `json:"host,omitempty"`
	// DEPRECATED: Host is either an exact match or a regex, depending on HostRegex. Use HostName instead.
	//
	// TODO(lukeshu): In v3alpha2, get rid of MappingSpec.host and MappingSpec.host_regex in
	// favor of a MappingSpec.deprecated_hostname_regex.
	DeprecatedHostRegex *bool `json:"host_regex,omitempty"`
	// Hostname is a DNS glob specifying the hosts to which this Mapping applies.
	//
	// Hostname specifies both a match for the ':authority' header of a request, as well as a
	// match criterion for Host CRDs: a Mapping that specifies Hostname will not associate with
	// a Host that doesn't have a matching Hostname.
	//
	// If both Host and Hostname are set, an error is logged, Host is ignored, and Hostname is
	// used.
	Hostname string `json:"hostname,omitempty"`

	Headers              map[string]string `json:"headers,omitempty"`
	RegexHeaders         map[string]string `json:"regex_headers,omitempty"`
	Labels               DomainMap         `json:"labels,omitempty"`
	EnvoyOverride        *UntypedDict      `json:"envoy_override,omitempty"`
	LoadBalancer         *LoadBalancer     `json:"load_balancer,omitempty"`
	QueryParameters      map[string]string `json:"query_parameters,omitempty"`
	RegexQueryParameters map[string]string `json:"regex_query_parameters,omitempty"`
	StatsName            string            `json:"stats_name,omitempty"`

	V2ExplicitTLS         *V2ExplicitTLS `json:"v2ExplicitTLS,omitempty"`
	V2BoolHeaders         []string       `json:"v2BoolHeaders,omitempty"`
	V2BoolQueryParameters []string       `json:"v2BoolQueryParameters,omitempty"`
}

MappingSpec defines the desired state of Mapping

func (*MappingSpec) DeepCopy

func (in *MappingSpec) DeepCopy() *MappingSpec

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

func (*MappingSpec) DeepCopyInto

func (in *MappingSpec) DeepCopyInto(out *MappingSpec)

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

type MappingStatus

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

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

MappingStatus defines the observed state of Mapping

func (*MappingStatus) DeepCopy

func (in *MappingStatus) DeepCopy() *MappingStatus

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

func (*MappingStatus) DeepCopyInto

func (in *MappingStatus) DeepCopyInto(out *MappingStatus)

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

type MillisecondDuration

type MillisecondDuration struct {
	time.Duration `json:"-"`
}

TODO(lukeshu): In v3alpha2, change all of the `{foo}_ms`/`MillisecondDuration` fields to `{foo}`/`metav1.Duration`.

+kubebuilder:validation:Type="integer"

func (*MillisecondDuration) DeepCopy

func (in *MillisecondDuration) DeepCopy() *MillisecondDuration

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

func (*MillisecondDuration) DeepCopyInto

func (in *MillisecondDuration) DeepCopyInto(out *MillisecondDuration)

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

func (MillisecondDuration) MarshalJSON

func (d MillisecondDuration) MarshalJSON() ([]byte, error)

func (*MillisecondDuration) UnmarshalJSON

func (d *MillisecondDuration) UnmarshalJSON(data []byte) error

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 Listener should consider Hosts only in the
	// Listener's namespaces.
	SELFNamespaceFromType NamespaceFromType = "SELF"

	// ALLNamespaceFromType specifies that an Listener should consider Hosts in ALL
	// namespaces. This is the simplest way to build an Listener 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 RegexMap

type RegexMap struct {
	Pattern      string `json:"pattern,omitempty"`
	Substitution string `json:"substitution,omitempty"`
}

func (*RegexMap) DeepCopy

func (in *RegexMap) DeepCopy() *RegexMap

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

func (*RegexMap) DeepCopyInto

func (in *RegexMap) DeepCopyInto(out *RegexMap)

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

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 SecondDuration

type SecondDuration struct {
	time.Duration `json:"-"`
}

TODO(lukeshu): In v3alpha2, change all of the `{foo}s`/`SecondDuration` fields to `{foo}`/`metav1.Duration`.

+kubebuilder:validation:Type="integer"

func (*SecondDuration) DeepCopy

func (in *SecondDuration) DeepCopy() *SecondDuration

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

func (*SecondDuration) DeepCopyInto

func (in *SecondDuration) DeepCopyInto(out *SecondDuration)

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

func (SecondDuration) MarshalJSON

func (d SecondDuration) MarshalJSON() ([]byte, error)

func (*SecondDuration) UnmarshalJSON

func (d *SecondDuration) UnmarshalJSON(data []byte) error

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"
)

type StatusRange

type StatusRange struct {
	// Start of the statuses to include. Must be between 100 and 599 (inclusive)
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Minimum=100
	// +kubebuilder:validation:Maximum=599
	Min int `json:"min,omitempty"`
	// End of the statuses to include. Must be between 100 and 599 (inclusive)
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Minimum=100
	// +kubebuilder:validation:Maximum=599
	Max int `json:"max,omitempty"`
}

A range of response statuses from Start to End inclusive

func (*StatusRange) DeepCopy

func (in *StatusRange) DeepCopy() *StatusRange

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

func (*StatusRange) DeepCopyInto

func (in *StatusRange) DeepCopyInto(out *StatusRange)

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

type TCPMapping

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

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

TCPMapping is the Schema for the tcpmappings API

+kubebuilder:object:root=true

func (*TCPMapping) DeepCopy

func (in *TCPMapping) DeepCopy() *TCPMapping

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

func (*TCPMapping) DeepCopyInto

func (in *TCPMapping) DeepCopyInto(out *TCPMapping)

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

func (*TCPMapping) DeepCopyObject

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

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

type TCPMappingList

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

TCPMappingList contains a list of TCPMappings.

+kubebuilder:object:root=true

func (*TCPMappingList) DeepCopy

func (in *TCPMappingList) DeepCopy() *TCPMappingList

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

func (*TCPMappingList) DeepCopyInto

func (in *TCPMappingList) DeepCopyInto(out *TCPMappingList)

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

func (*TCPMappingList) DeepCopyObject

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

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

type TCPMappingSpec

type TCPMappingSpec struct {
	AmbassadorID 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 []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        string `json:"tls,omitempty"`
	Weight     *int   `json:"weight,omitempty"`
	ClusterTag string `json:"cluster_tag,omitempty"`
	StatsName  string `json:"stats_name,omitempty"`

	V2ExplicitTLS *V2ExplicitTLS `json:"v2ExplicitTLS,omitempty"`
}

TCPMappingSpec defines the desired state of TCPMapping

func (*TCPMappingSpec) DeepCopy

func (in *TCPMappingSpec) DeepCopy() *TCPMappingSpec

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

func (*TCPMappingSpec) DeepCopyInto

func (in *TCPMappingSpec) DeepCopyInto(out *TCPMappingSpec)

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

type TLSConfig

type TLSConfig struct {
	CertChainFile         string   `json:"cert_chain_file,omitempty"`
	PrivateKeyFile        string   `json:"private_key_file,omitempty"`
	CASecret              string   `json:"ca_secret,omitempty"`
	CAcertChainFile       string   `json:"cacert_chain_file,omitempty"`
	CRLSecret             string   `json:"crl_secret,omitempty"`
	AlpnProtocols         string   `json:"alpn_protocols,omitempty"`
	CertRequired          *bool    `json:"cert_required,omitempty"`
	MinTLSVersion         string   `json:"min_tls_version,omitempty"`
	MaxTLSVersion         string   `json:"max_tls_version,omitempty"`
	CipherSuites          []string `json:"cipher_suites,omitempty"`
	ECDHCurves            []string `json:"ecdh_curves,omitempty"`
	RedirectCleartextFrom *int     `json:"redirect_cleartext_from,omitempty"`
	SNI                   string   `json:"sni,omitempty"`
}

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.

type TLSContext

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

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

TLSContext is the Schema for the tlscontexts API

+kubebuilder:object:root=true

func (*TLSContext) DeepCopy

func (in *TLSContext) DeepCopy() *TLSContext

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

func (*TLSContext) DeepCopyInto

func (in *TLSContext) DeepCopyInto(out *TLSContext)

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

func (*TLSContext) DeepCopyObject

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

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

type TLSContextList

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

TLSContextList contains a list of TLSContexts.

+kubebuilder:object:root=true

func (*TLSContextList) DeepCopy

func (in *TLSContextList) DeepCopy() *TLSContextList

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

func (*TLSContextList) DeepCopyInto

func (in *TLSContextList) DeepCopyInto(out *TLSContextList)

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

func (*TLSContextList) DeepCopyObject

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

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

type TLSContextSpec

type TLSContextSpec struct {
	AmbassadorID AmbassadorID `json:"ambassador_id,omitempty"`

	Hosts           []string `json:"hosts,omitempty"`
	Secret          string   `json:"secret,omitempty"`
	CertChainFile   string   `json:"cert_chain_file,omitempty"`
	PrivateKeyFile  string   `json:"private_key_file,omitempty"`
	CASecret        string   `json:"ca_secret,omitempty"`
	CACertChainFile string   `json:"cacert_chain_file,omitempty"`
	CRLSecret       string   `json:"crl_secret,omitempty"`
	ALPNProtocols   string   `json:"alpn_protocols,omitempty"`
	CertRequired    *bool    `json:"cert_required,omitempty"`
	// +kubebuilder:validation:Enum={"v1.0", "v1.1", "v1.2", "v1.3"}
	MinTLSVersion string `json:"min_tls_version,omitempty"`
	// +kubebuilder:validation:Enum={"v1.0", "v1.1", "v1.2", "v1.3"}
	MaxTLSVersion         string   `json:"max_tls_version,omitempty"`
	CipherSuites          []string `json:"cipher_suites,omitempty"`
	ECDHCurves            []string `json:"ecdh_curves,omitempty"`
	SecretNamespacing     *bool    `json:"secret_namespacing,omitempty"`
	RedirectCleartextFrom *int     `json:"redirect_cleartext_from,omitempty"`
	SNI                   string   `json:"sni,omitempty"`
}

TLSContextSpec defines the desired state of TLSContext

func (*TLSContextSpec) DeepCopy

func (in *TLSContextSpec) DeepCopy() *TLSContextSpec

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

func (*TLSContextSpec) DeepCopyInto

func (in *TLSContextSpec) DeepCopyInto(out *TLSContextSpec)

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

type UntypedDict

type UntypedDict struct {
	// We have to hide this from controller-gen inside of a struct
	// (instead of just `type UntypedDict map[string]json.RawMessage`)
	// so that controller-gen doesn't generate an `items` field in the
	// schema.
	Values map[string]json.RawMessage `json:"-"`
}

UntypedDict is relatively opaque as a Go type, but it preserves its contents in a roundtrippable way.

+kubebuilder:validation:Type="object" +kubebuilder:pruning:PreserveUnknownFields

func (*UntypedDict) DeepCopy

func (in *UntypedDict) DeepCopy() *UntypedDict

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

func (*UntypedDict) DeepCopyInto

func (in *UntypedDict) DeepCopyInto(out *UntypedDict)

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

func (UntypedDict) MarshalJSON

func (u UntypedDict) MarshalJSON() ([]byte, error)

func (*UntypedDict) UnmarshalJSON

func (u *UntypedDict) UnmarshalJSON(data []byte) error

type V2ExplicitTLS

type V2ExplicitTLS struct {
	// TLS controls whether and how to represent the "tls" field when
	// its value could be implied by the "service" field.  In v2, there
	// were a lot of different ways to spell an "empty" value, and this
	// field specifies which way to spell it (and will therefore only
	// be used if the value will indeed be empty).
	//
	//  | Value        | Representation                        | Meaning of representation          |
	//  |--------------+---------------------------------------+------------------------------------|
	//  | ""           | omit the field                        | defer to service (no TLSContext)   |
	//  | "null"       | store an explicit "null" in the field | defer to service (no TLSContext)   |
	//  | "string"     | store an empty string in the field    | defer to service (no TLSContext)   |
	//  | "bool:false" | store a Boolean "false" in the field  | defer to service (no TLSContext)   |
	//  | "bool:true"  | store a Boolean "true" in the field   | originate TLS (no TLSContext)      |
	//
	// If the meaning of the representation contradicts anything else
	// (if a TLSContext is to be used, or in the case of "bool:true" if
	// TLS is not to be originated), then this field is ignored.
	//
	// +kubebuilder:validation:Enum={"","null","bool:true","bool:false","string"}
	TLS string `json:"tls,omitempty"`

	// ServiceScheme specifies how to spell and capitalize the scheme-part of the
	// service URL.
	//
	// Acceptable values are "http://" (case-insensitive), "https://"
	// (case-insensitive), or "".  The value is used if it agrees with
	// whether or not this resource enables TLS origination, or if
	// something else in the resource overrides the scheme.
	//
	// +kubebuilder:validation:Pattern="^([hH][tT][tT][pP][sS]?://)?$"
	ServiceScheme *string `json:"serviceScheme,omitempty"`
}

V2ExplicitTLS controls some vanity/stylistic elements when converting from v3alpha1 to v2. The values in an V2ExplicitTLS should not in any way affect the runtime operation of Emissary; except that it may affect internal names in the Envoy config, which may in turn affect stats names. But it should not affect any end-user observable behavior.

func (*V2ExplicitTLS) DeepCopy

func (in *V2ExplicitTLS) DeepCopy() *V2ExplicitTLS

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

func (*V2ExplicitTLS) DeepCopyInto

func (in *V2ExplicitTLS) DeepCopyInto(out *V2ExplicitTLS)

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

Jump to

Keyboard shortcuts

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