v3alpha1

package
v3.7.2 Latest Latest
Warning

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

Go to latest
Published: Jul 25, 2023 License: Apache-2.0 Imports: 7 Imported by: 1

Documentation

Overview

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

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 (
	// GroupVersion is group version used to register these objects
	GroupVersion = schema.GroupVersion{Group: "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 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 AdditionalLogHeaders

type AdditionalLogHeaders struct {
	HeaderName     string `json:"header_name,omitempty"`
	DuringRequest  *bool  `json:"during_request,omitempty"`
	DuringResponse *bool  `json:"during_response,omitempty"`
	DuringTrailer  *bool  `json:"during_trailer,omitempty"`
}

func (*AdditionalLogHeaders) DeepCopy

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

func (*AdditionalLogHeaders) DeepCopyInto

func (in *AdditionalLogHeaders) DeepCopyInto(out *AdditionalLogHeaders)

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

type AmbassadorConfigSpec

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

	// admin_port is the port where Ambassador's Envoy will listen for
	// low-level admin requests. You should almost never need to change
	// this.
	AdminPort int `json:"admin_port,omitempty"`

	// diag_port is the port where Ambassador will listen for requests
	// to the diagnostic service.
	DiagPort int `json:"diag_port,omitempty"`

	// By default Envoy sets server_name response header to 'envoy'
	// Override it with this variable
	ServerName string `json:"server_name,omitempty"`

	// If present, service_port will be the port Ambassador listens
	// on for microservice access. If not present, Ambassador will
	// use 8443 if TLS is configured, 8080 otherwise.
	ServicePort int `json:"service_port,omitempty"`

	Features *Features `json:"features,omitempty"`

	// run a custom lua script on every request. see below for more details.
	LuaScripts string `json:"lua_scripts,omitempty"`

	// +kubebuilder:validation:Enum={"text", "json"}
	EnvoyLogType string `json:"envoy_log_type,omitempty"`

	// envoy_log_path defines the path of log envoy will use. By default this is standard output
	EnvoyLogPath string `json:"envoy_log_path,omitempty"`

	LoadBalancer *LoadBalancer `json:"load_balancer,omitempty"`

	CircuitBreakers *CircuitBreaker `json:"circuit_breakers,omitempty"`

	// List of HTTP error response overrides.
	// +kubebuilder:validation:MinItems=1
	ErrorResponseOverrides []ErrorResponseOverride `json:"error_response_overrides,omitempty"`

	// List of headers whose names should be rewritten to the case-sensitive value
	// present in the list. Applies to both upstream and downstream headers.
	// +kubebuilder:validation:MinItems=1
	HeaderCaseOverrides []string `json:"header_case_overrides,omitempty"`

	RetryPolicy *RetryPolicy `json:"retry_policy,omitempty"`

	Cors *CORS `json:"cors,omitempty"`

	// Set the default upstream-connection request timeout. If not set (the default), upstream
	// requests will be subject to a 3000 millisecond timeout.
	ClusterRequestTimeout *MillisecondDuration `json:"cluster_request_timeout_ms,omitempty"`

	// Set the default upstream-connection idle timeout. If not set (the default), upstream
	// connections will never be closed due to idling.
	ClusterIdleTimeout *MillisecondDuration `json:"cluster_idle_timeout_ms,omitempty"`

	// Set the default upstream-connection max connection lifetime. If not set (the default), upstream
	// connections may never close.
	ClusterMaxConnectionLifetime *MillisecondDuration `json:"cluster_max_connection_lifetime_ms,omitempty"`

	// RegexType did something in Emissary 1.x and 2.x, but does nothing in 3.x.
	//
	// +kubebuilder:validation:Enum={"safe", "unsafe"}
	RegexType string `json:"regex_type,omitempty"`

	// This field controls the RE2 “program size” which is a rough estimate of how complex a compiled regex is to
	// evaluate.  A regex that has a program size greater than the configured value will fail to compile.
	RegexMaxSize int `json:"regex_max_size,omitempty"`
}

AmbassadorConfigSpec defines the desired state of AmbassadorConfig

func (*AmbassadorConfigSpec) DeepCopy

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

func (*AmbassadorConfigSpec) DeepCopyInto

func (in *AmbassadorConfigSpec) DeepCopyInto(out *AmbassadorConfigSpec)

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

type AmbassadorConfigStatus

type AmbassadorConfigStatus struct {
}

AmbassadorConfigStatus defines the observed state of AmbassadorConfig

func (*AmbassadorConfigStatus) DeepCopy

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

func (*AmbassadorConfigStatus) DeepCopyInto

func (in *AmbassadorConfigStatus) DeepCopyInto(out *AmbassadorConfigStatus)

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 AuthService

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

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

AuthService is the Schema for the authservices API

+kubebuilder:object:root=true

func (*AuthService) DeepCopy

func (in *AuthService) DeepCopy() *AuthService

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

func (*AuthService) DeepCopyInto

func (in *AuthService) DeepCopyInto(out *AuthService)

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

func (*AuthService) DeepCopyObject

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

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

func (*AuthService) Hub

func (*AuthService) Hub()

type AuthServiceIncludeBody

type AuthServiceIncludeBody struct {
	// These aren't pointer types because they are required.
	// +kubebuilder:validation:Required
	MaxBytes int `json:"max_bytes,omitempty"`

	// +kubebuilder:validation:Required
	AllowPartial bool `json:"allow_partial,omitempty"`
}

func (*AuthServiceIncludeBody) DeepCopy

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

func (*AuthServiceIncludeBody) DeepCopyInto

func (in *AuthServiceIncludeBody) DeepCopyInto(out *AuthServiceIncludeBody)

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

type AuthServiceList

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

AuthServiceList contains a list of AuthServices.

+kubebuilder:object:root=true

func (*AuthServiceList) DeepCopy

func (in *AuthServiceList) DeepCopy() *AuthServiceList

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

func (*AuthServiceList) DeepCopyInto

func (in *AuthServiceList) DeepCopyInto(out *AuthServiceList)

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

func (*AuthServiceList) DeepCopyObject

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

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

type AuthServiceSpec

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

	// TODO(lukeshu): In v3alpha2, consider renameing `auth_service` to just `service`, for
	// consistency with the other resource types.
	//
	// +kubebuilder:validation:Required
	AuthService string `json:"auth_service,omitempty"`
	PathPrefix  string `json:"path_prefix,omitempty"`
	TLS         string `json:"tls,omitempty"`
	// +kubebuilder:validation:Enum={"http","grpc"}
	Proto                       string               `json:"proto,omitempty"`
	Timeout                     *MillisecondDuration `json:"timeout_ms,omitempty"`
	AllowedRequestHeaders       []string             `json:"allowed_request_headers,omitempty"`
	AllowedAuthorizationHeaders []string             `json:"allowed_authorization_headers,omitempty"`
	AddAuthHeaders              map[string]string    `json:"add_auth_headers,omitempty"`
	// TODO(lukeshu): In v3alpha2, drop allow_request_body in favor of
	// include_body. allow_request_body has been deprecated for a long time.
	AllowRequestBody  *bool                     `json:"allow_request_body,omitempty"`
	AddLinkerdHeaders *bool                     `json:"add_linkerd_headers,omitempty"`
	FailureModeAllow  *bool                     `json:"failure_mode_allow,omitempty"`
	IncludeBody       *AuthServiceIncludeBody   `json:"include_body,omitempty"`
	StatusOnError     *AuthServiceStatusOnError `json:"status_on_error,omitempty"`

	// ProtocolVersion is the envoy api transport protocol version
	//
	// +kubebuilder:validation:Enum={"v2","v3"}
	ProtocolVersion string            `json:"protocol_version,omitempty"`
	StatsName       string            `json:"stats_name,omitempty"`
	CircuitBreakers []*CircuitBreaker `json:"circuit_breakers,omitempty"`

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

AuthServiceSpec defines the desired state of AuthService

func (*AuthServiceSpec) DeepCopy

func (in *AuthServiceSpec) DeepCopy() *AuthServiceSpec

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

func (*AuthServiceSpec) DeepCopyInto

func (in *AuthServiceSpec) DeepCopyInto(out *AuthServiceSpec)

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

type AuthServiceStatusOnError

type AuthServiceStatusOnError struct {
	Code int `json:"code,omitempty"`
}

TODO(lukeshu): In v3alpha2, consider getting rid of this struct type in favor of just using an int (i.e. `statusOnError: 500` instead of the current `statusOnError: { code: 500 }`).

func (*AuthServiceStatusOnError) DeepCopy

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

func (*AuthServiceStatusOnError) DeepCopyInto

func (in *AuthServiceStatusOnError) DeepCopyInto(out *AuthServiceStatusOnError)

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

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.

func (*ConsulResolver) DeepCopyObject

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

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

func (*ConsulResolver) Hub

func (*ConsulResolver) Hub()

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.

func (*ConsulResolverList) DeepCopyObject

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

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

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 DevPortal

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

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

DevPortal is the Schema for the DevPortals API

DevPortal resources specify the `what` and `how` is shown in a DevPortal:

  1. `what` is in a DevPortal can be controlled with

    - a `selector`, that can be used for filtering `Mappings`.

    - a `docs` listing of (services, url)

  2. `how` is a pointer to some `contents` (a checkout of a Git repository with go-templates/markdown/css).

Multiple `DevPortal`s can exist in the cluster, and the Dev Portal server will show them at different endpoints. A `DevPortal` resource with a special name, `ambassador`, will be used for configuring the default Dev Portal (served at `/docs/` by default).

+kubebuilder:object:root=true +kubebuilder:resource:path=devportals,scope=Namespaced

func (*DevPortal) DeepCopy

func (in *DevPortal) DeepCopy() *DevPortal

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

func (*DevPortal) DeepCopyInto

func (in *DevPortal) DeepCopyInto(out *DevPortal)

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

func (*DevPortal) DeepCopyObject

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

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

func (*DevPortal) Hub

func (*DevPortal) Hub()

type DevPortalContentSpec

type DevPortalContentSpec struct {
	URL    string `json:"url,omitempty"`
	Branch string `json:"branch,omitempty"`
	Dir    string `json:"dir,omitempty"`
}

DevPortalContentSpec defines the content origin

func (*DevPortalContentSpec) DeepCopy

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

func (*DevPortalContentSpec) DeepCopyInto

func (in *DevPortalContentSpec) DeepCopyInto(out *DevPortalContentSpec)

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

type DevPortalDocsSpec

type DevPortalDocsSpec struct {
	// Service is the service being documented
	Service string `json:"service,omitempty"`

	// URL is the URL used for obtaining docs
	URL string `json:"url,omitempty"`

	// Timeout specifies the amount of time devportal will wait
	// for the downstream service to report an openapi spec back
	Timeout *MillisecondDuration `json:"timeout_ms,omitempty"`
}

DevPortalDocsSpec is a static documentation definition: instead of using a Selector for finding documentation for services, users can provide a static list of <service>:<URL> tuples. These services will be shown in the Dev Portal with the documentation obtained from this URL.

func (*DevPortalDocsSpec) DeepCopy

func (in *DevPortalDocsSpec) DeepCopy() *DevPortalDocsSpec

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

func (*DevPortalDocsSpec) DeepCopyInto

func (in *DevPortalDocsSpec) DeepCopyInto(out *DevPortalDocsSpec)

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

type DevPortalList

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

DevPortalList contains a list of DevPortals.

+kubebuilder:object:root=true

func (*DevPortalList) DeepCopy

func (in *DevPortalList) DeepCopy() *DevPortalList

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

func (*DevPortalList) DeepCopyInto

func (in *DevPortalList) DeepCopyInto(out *DevPortalList)

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

func (*DevPortalList) DeepCopyObject

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

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

type DevPortalSearchSpec

type DevPortalSearchSpec struct {
	Enabled *bool `json:"enabled,omitempty"`

	// Type of search.
	// "title-only" does a fuzzy search over openapi and page titles
	// "all-content" will fuzzy search over all openapi and page content.
	// "title-only" is the default.
	// warning:  using all-content may incur a larger memory footprint
	// +kubebuilder:validation:Enum={"title-only", "all-content"}
	Type string `json:"type,omitempty"`
}

DevPortalSearchSpec allows configuration over search functionality for the DevPortal

func (*DevPortalSearchSpec) DeepCopy

func (in *DevPortalSearchSpec) DeepCopy() *DevPortalSearchSpec

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

func (*DevPortalSearchSpec) DeepCopyInto

func (in *DevPortalSearchSpec) DeepCopyInto(out *DevPortalSearchSpec)

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

type DevPortalSelectorSpec

type DevPortalSelectorSpec struct {
	// MatchNamespaces is a list of namespaces that will be included in
	// this DevPortal.
	MatchNamespaces []string `json:"matchNamespaces,omitempty"`

	// MatchLabels specifies the list of labels that must be present
	// in Mappings for being present in this DevPortal.
	MatchLabels map[string]string `json:"matchLabels,omitempty"`
}

DevPortalSelectorSpec is the selector for filtering mappings that are used in this DevPortal. They can be filtered by things like namespace, labels, etc...

func (*DevPortalSelectorSpec) DeepCopy

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

func (*DevPortalSelectorSpec) DeepCopyInto

func (in *DevPortalSelectorSpec) DeepCopyInto(out *DevPortalSelectorSpec)

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

type DevPortalSpec

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

	// Default must be true when this is the default DevPortal
	Default *bool `json:"default,omitempty"`

	// Content specifies where the content shown in the DevPortal come from
	Content *DevPortalContentSpec `json:"content,omitempty"`

	// Docs is a static docs definition
	Docs []*DevPortalDocsSpec `json:"docs,omitempty"`

	// Selector is used for choosing what is shown in the DevPortal
	Selector *DevPortalSelectorSpec `json:"selector,omitempty"`

	// Describes how to display "services" in the DevPortal. Default namespace.name
	// +kubebuilder:validation:Enum={"namespace.name", "name.prefix"}
	NamingScheme string `json:"naming_scheme,omitempty"`

	Search *DevPortalSearchSpec `json:"search,omitempty"`

	// Configures this DevPortal to use server definitions from the openAPI doc instead of
	// rewriting them based on the url used for the connection.
	PreserveServers *bool `json:"preserve_servers,omitempty"`
}

DevPortalSpec defines the desired state of DevPortal

func (*DevPortalSpec) DeepCopy

func (in *DevPortalSpec) DeepCopy() *DevPortalSpec

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

func (*DevPortalSpec) DeepCopyInto

func (in *DevPortalSpec) DeepCopyInto(out *DevPortalSpec)

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 DriverConfig

type DriverConfig struct {
	AdditionalLogHeaders []*AdditionalLogHeaders `json:"additional_log_headers,omitempty"`
}

func (*DriverConfig) DeepCopy

func (in *DriverConfig) DeepCopy() *DriverConfig

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

func (*DriverConfig) DeepCopyInto

func (in *DriverConfig) DeepCopyInto(out *DriverConfig)

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 Features

type Features struct {
	// The diagnostic service (at /ambassador/v0/diag/) defaults on, but
	// you can disable the api route. It will remain accessible on
	// diag_port.
	Diagnostics bool `json:"diagnostics,omitempty"`

	// Should we automatically add Linkerd `l5d-dst-override` headers?
	LinkerdHeaders bool `json:"linkerd_headers,omitempty"`

	// Should we enable the gRPC-http11 bridge?
	GrpcHttp11Bridge bool `json:"grpc_http11_bridge,omitempty"`

	// Should we enable the grpc-Web protocol?
	GrpcWeb bool `json:"grpc_web,omitempty"`

	// Should we enable http/1.0 protocol?
	Http10 bool `json:"http10,omitempty"`

	// Should we do IPv4 DNS lookups when contacting services? Defaults to true,
	// but can be overridden in a [`Mapping`](/reference/mappings).
	Ipv4Dns bool `json:"ipv4_dns,omitempty"`

	// Should we do IPv6 DNS lookups when contacting services? Defaults to false,
	// but can be overridden in a [`Mapping`](/reference/mappings).
	Ipv6Dns bool `json:"ipv6_dns,omitempty"`

	// liveness_probe defaults on, but you can disable the api route.
	// It will remain accessible on diag_port.
	LivenessProbe bool `json:"liveness_probe,omitempty"`

	// readiness_probe defaults on, but you can disable the api route.
	// It will remain accessible on diag_port.
	ReadinessProbe bool `json:"readiness_probe,omitempty"`

	// xff_num_trusted_hops controls the how Envoy sets the trusted
	// client IP address of a request. If you have a proxy in front
	// of Ambassador, Envoy will set the trusted client IP to the
	// address of that proxy. To preserve the orginal client IP address,
	// setting x_num_trusted_hops: 1 will tell Envoy to use the client IP
	// address in X-Forwarded-For. Please see the envoy documentation for
	// more information: https://www.envoyproxy.io/docs/envoy/latest/configuration/http_conn_man/headers#x-forwarded-for
	XffNumTrustedHops int `json:"xff_num_trusted_hops,omitempty"`

	// proxy_proto controls whether Envoy will honor the PROXY
	// protocol on incoming requests.
	ProxyProto bool `json:"proxy_proto,omitempty"`

	// remote_address controls whether Envoy will trust the remote
	// address of incoming connections or rely exclusively on the
	// X-Forwarded_For header.
	RemoteAddress bool `json:"remote_address,omitempty"`

	// Ambassador lets through only the HTTP requests with
	// `X-FORWARDED-PROTO: https` header set, and redirects all the other
	// requests to HTTPS if this field is set to true. Note that `use_remote_address`
	// must be set to false for this feature to work as expected.
	XForwardedProtoRedirect bool `json:"x_forwarded_proto_redirect,omitempty"`
}

func (*Features) DeepCopy

func (in *Features) DeepCopy() *Features

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

func (*Features) DeepCopyInto

func (in *Features) DeepCopyInto(out *Features)

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

type GRPCHealthCheck added in v3.4.0

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 added in v3.4.0

func (in *GRPCHealthCheck) DeepCopy() *GRPCHealthCheck

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

func (*GRPCHealthCheck) DeepCopyInto added in v3.4.0

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 added in v3.4.0

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 added in v3.4.0

func (in *HTTPHealthCheck) DeepCopy() *HTTPHealthCheck

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

func (*HTTPHealthCheck) DeepCopyInto added in v3.4.0

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 added in v3.4.0

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 added in v3.4.0

func (in *HealthCheck) DeepCopy() *HealthCheck

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

func (*HealthCheck) DeepCopyInto added in v3.4.0

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 added in v3.4.0

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

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

func (*HealthCheckLocation) DeepCopy added in v3.4.0

func (in *HealthCheckLocation) DeepCopy() *HealthCheckLocation

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

func (*HealthCheckLocation) DeepCopyInto added in v3.4.0

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.

func (*Host) Hub

func (*Host) Hub()

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.

func (*KubernetesEndpointResolver) Hub

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.

func (*KubernetesServiceResolver) DeepCopyObject

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

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

func (*KubernetesServiceResolver) Hub

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.

func (*KubernetesServiceResolverList) DeepCopyObject

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

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

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.

func (*Listener) Hub

func (*Listener) Hub()

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 LogService

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

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

LogService is the Schema for the logservices API

+kubebuilder:object:root=true

func (*LogService) DeepCopy

func (in *LogService) DeepCopy() *LogService

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

func (*LogService) DeepCopyInto

func (in *LogService) DeepCopyInto(out *LogService)

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

func (*LogService) DeepCopyObject

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

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

func (*LogService) Hub

func (*LogService) Hub()

type LogServiceList

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

LogServiceList contains a list of LogServices.

+kubebuilder:object:root=true

func (*LogServiceList) DeepCopy

func (in *LogServiceList) DeepCopy() *LogServiceList

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

func (*LogServiceList) DeepCopyInto

func (in *LogServiceList) DeepCopyInto(out *LogServiceList)

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

func (*LogServiceList) DeepCopyObject

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

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

type LogServiceSpec

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

	Service string `json:"service,omitempty"`

	// ProtocolVersion is the envoy api transport protocol version
	//
	// +kubebuilder:validation:Enum={"v2","v3"}
	ProtocolVersion string `json:"protocol_version,omitempty"`

	// +kubebuilder:validation:Enum={"tcp","http"}
	Driver                string          `json:"driver,omitempty"`
	DriverConfig          *DriverConfig   `json:"driver_config,omitempty"`
	FlushIntervalTime     *SecondDuration `json:"flush_interval_time,omitempty"`
	FlushIntervalByteSize *int            `json:"flush_interval_byte_size,omitempty"`

	// TODO(lukeshu): In v3alpha2, drop this LogService.spec.grpc.  Due to sloppy implementation
	// it is required to be present, and required to be 'true'.  It is silly to have a required
	// field with only one valid value, we should just remove the thing.
	GRPC *bool `json:"grpc,omitempty"`

	StatsName string `json:"stats_name,omitempty"`
}

LogServiceSpec defines the desired state of LogService

func (*LogServiceSpec) DeepCopy

func (in *LogServiceSpec) DeepCopy() *LogServiceSpec

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

func (*LogServiceSpec) DeepCopyInto

func (in *LogServiceSpec) DeepCopyInto(out *LogServiceSpec)

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.

func (*Mapping) Hub

func (*Mapping) Hub()

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 Module

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

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

A Module defines system-wide configuration. The type of module is controlled by the .metadata.name; valid names are "ambassador" or "tls".

https://www.getambassador.io/docs/edge-stack/latest/topics/running/ambassador/#the-ambassador-module https://www.getambassador.io/docs/edge-stack/latest/topics/running/tls/#tls-module-deprecated

+kubebuilder:object:root=true

func (*Module) DeepCopy

func (in *Module) DeepCopy() *Module

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

func (*Module) DeepCopyInto

func (in *Module) DeepCopyInto(out *Module)

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

func (*Module) DeepCopyObject

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

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

func (*Module) Hub

func (*Module) Hub()

type ModuleList

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

ModuleList contains a list of Modules.

+kubebuilder:object:root=true

func (*ModuleList) DeepCopy

func (in *ModuleList) DeepCopy() *ModuleList

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

func (*ModuleList) DeepCopyInto

func (in *ModuleList) DeepCopyInto(out *ModuleList)

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

func (*ModuleList) DeepCopyObject

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

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

type ModuleSpec

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

	// TODO(lukeshu): In v3alpha2, change the default from `diagnostics.enabled=true` to
	// `diagnostics.enabled=false`.  This needs conversion support in apiext.  See the related
	// comment in irambassador.py.
	//
	// TODO(lukeshu): Structurally type ModuleSpec.Config.
	//
	// +kubebuilder:validation:Required
	Config UntypedDict `json:"config,omitempty"`
}

TODO(lukeshu): In v3alpha2, get rid of unnecessary nesting and move `ModuleSpec.config.*` to `ModuleSpec.*`.

func (*ModuleSpec) DeepCopy

func (in *ModuleSpec) DeepCopy() *ModuleSpec

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

func (*ModuleSpec) DeepCopyInto

func (in *ModuleSpec) DeepCopyInto(out *ModuleSpec)

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 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 PropagationMode

type PropagationMode string

+kubebuilder:validation:Enum=ENVOY;LIGHTSTEP;B3;TRACE_CONTEXT

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 RateLimitService

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

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

RateLimitService is the Schema for the ratelimitservices API

+kubebuilder:object:root=true

func (*RateLimitService) DeepCopy

func (in *RateLimitService) DeepCopy() *RateLimitService

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

func (*RateLimitService) DeepCopyInto

func (in *RateLimitService) DeepCopyInto(out *RateLimitService)

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

func (*RateLimitService) DeepCopyObject

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

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

func (*RateLimitService) Hub

func (*RateLimitService) Hub()

type RateLimitServiceList

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

RateLimitServiceList contains a list of RateLimitServices.

+kubebuilder:object:root=true

func (*RateLimitServiceList) DeepCopy

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

func (*RateLimitServiceList) DeepCopyInto

func (in *RateLimitServiceList) DeepCopyInto(out *RateLimitServiceList)

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

func (*RateLimitServiceList) DeepCopyObject

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

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

type RateLimitServiceSpec

type RateLimitServiceSpec struct {
	// Common to all Ambassador objects.
	AmbassadorID AmbassadorID `json:"ambassador_id,omitempty"`

	// +kubebuilder:validation:Required
	Service string               `json:"service,omitempty"`
	Timeout *MillisecondDuration `json:"timeout_ms,omitempty"`
	Domain  string               `json:"domain,omitempty"`
	TLS     string               `json:"tls,omitempty"`

	// ProtocolVersion is the envoy api transport protocol version
	//
	// +kubebuilder:validation:Enum={"v2","v3"}
	ProtocolVersion string `json:"protocol_version,omitempty"`
	StatsName       string `json:"stats_name,omitempty"`

	// FailureModeDeny when set to true, envoy will deny traffic if it
	// is unable to communicate with the rate limit service.
	FailureModeDeny bool `json:"failure_mode_deny,omitempty"`

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

RateLimitServiceSpec defines the desired state of RateLimitService

func (*RateLimitServiceSpec) DeepCopy

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

func (*RateLimitServiceSpec) DeepCopyInto

func (in *RateLimitServiceSpec) DeepCopyInto(out *RateLimitServiceSpec)

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

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 added in v3.4.0

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 added in v3.4.0

func (in *StatusRange) DeepCopy() *StatusRange

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

func (*StatusRange) DeepCopyInto added in v3.4.0

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.

func (*TCPMapping) Hub

func (*TCPMapping) Hub()

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.

func (*TLSContext) Hub

func (*TLSContext) Hub()

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 TraceConfig

type TraceConfig struct {
	AccessTokenFile   string `json:"access_token_file,omitempty"`
	CollectorCluster  string `json:"collector_cluster,omitempty"`
	CollectorEndpoint string `json:"collector_endpoint,omitempty"`
	// +kubebuilder:validation:Enum=HTTP_JSON_V1;HTTP_JSON;HTTP_PROTO
	CollectorEndpointVersion string            `json:"collector_endpoint_version,omitempty"`
	CollectorHostname        string            `json:"collector_hostname,omitempty"`
	PropagationModes         []PropagationMode `json:"propagation_modes,omitempty"`
	TraceID128Bit            *bool             `json:"trace_id_128bit,omitempty"`
	SharedSpanContext        *bool             `json:"shared_span_context,omitempty"`
	ServiceName              string            `json:"service_name,omitempty"`
}

func (*TraceConfig) DeepCopy

func (in *TraceConfig) DeepCopy() *TraceConfig

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

func (*TraceConfig) DeepCopyInto

func (in *TraceConfig) DeepCopyInto(out *TraceConfig)

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

type TraceSampling

type TraceSampling struct {
	Client  *int `json:"client,omitempty"`
	Random  *int `json:"random,omitempty"`
	Overall *int `json:"overall,omitempty"`
}

func (*TraceSampling) DeepCopy

func (in *TraceSampling) DeepCopy() *TraceSampling

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

func (*TraceSampling) DeepCopyInto

func (in *TraceSampling) DeepCopyInto(out *TraceSampling)

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

type TracingCustomTag added in v3.2.0

type TracingCustomTag struct {
	// +kubebuilder:validation:Required
	Tag string `json:"tag"`

	// Literal explicitly specifies the protocol stack to set up. Exactly one of Literal,
	// Environment or Header must be supplied.
	Literal *TracingCustomTagTypeLiteral `json:"literal,omitempty"`
	// Environment explicitly specifies the protocol stack to set up. Exactly one of Literal,
	// Environment or Header must be supplied.
	Environment *TracingCustomTagTypeEnvironment `json:"environment,omitempty"`
	// Header explicitly specifies the protocol stack to set up. Exactly one of Literal,
	// Environment or Header must be supplied.
	Header *TracingCustomTagTypeRequestHeader `json:"request_header,omitempty"`
}

TracingCustomTag provides a data structure for capturing envoy's `type.tracing.v3.CustomTag`

func (*TracingCustomTag) DeepCopy added in v3.2.0

func (in *TracingCustomTag) DeepCopy() *TracingCustomTag

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

func (*TracingCustomTag) DeepCopyInto added in v3.2.0

func (in *TracingCustomTag) DeepCopyInto(out *TracingCustomTag)

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

type TracingCustomTagTypeEnvironment added in v3.2.0

type TracingCustomTagTypeEnvironment struct {
	// +kubebuilder:validation:Required
	Name         string  `json:"name"`
	DefaultValue *string `json:"default_value,omitempty"`
}

TracingCustomTagTypeEnvironment provides a data structure for capturing envoy's `type.tracing.v3.CustomTag.Environment`

func (*TracingCustomTagTypeEnvironment) DeepCopy added in v3.2.0

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

func (*TracingCustomTagTypeEnvironment) DeepCopyInto added in v3.2.0

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

type TracingCustomTagTypeLiteral added in v3.2.0

type TracingCustomTagTypeLiteral struct {
	// +kubebuilder:validation:Required
	Value string `json:"value"`
}

TracingCustomTagTypeLiteral provides a data structure for capturing envoy's `type.tracing.v3.CustomTag.Literal`

func (*TracingCustomTagTypeLiteral) DeepCopy added in v3.2.0

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

func (*TracingCustomTagTypeLiteral) DeepCopyInto added in v3.2.0

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

type TracingCustomTagTypeRequestHeader added in v3.2.0

type TracingCustomTagTypeRequestHeader struct {
	// +kubebuilder:validation:Required
	Name         string  `json:"name"`
	DefaultValue *string `json:"default_value,omitempty"`
}

TracingCustomTagTypeRequestHeader provides a data structure for capturing envoy's `type.tracing.v3.CustomTag.Header`

func (*TracingCustomTagTypeRequestHeader) DeepCopy added in v3.2.0

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

func (*TracingCustomTagTypeRequestHeader) DeepCopyInto added in v3.2.0

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

type TracingService

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

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

TracingService is the Schema for the tracingservices API

+kubebuilder:object:root=true

func (*TracingService) DeepCopy

func (in *TracingService) DeepCopy() *TracingService

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

func (*TracingService) DeepCopyInto

func (in *TracingService) DeepCopyInto(out *TracingService)

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

func (*TracingService) DeepCopyObject

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

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

func (*TracingService) Hub

func (*TracingService) Hub()

type TracingServiceList

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

TracingServiceList contains a list of TracingServices.

+kubebuilder:object:root=true

func (*TracingServiceList) DeepCopy

func (in *TracingServiceList) DeepCopy() *TracingServiceList

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

func (*TracingServiceList) DeepCopyInto

func (in *TracingServiceList) DeepCopyInto(out *TracingServiceList)

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

func (*TracingServiceList) DeepCopyObject

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

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

type TracingServiceSpec

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

	// +kubebuilder:validation:Enum={"lightstep","zipkin","datadog","opentelemetry"}
	// +kubebuilder:validation:Required
	Driver string `json:"driver,omitempty"`
	// +kubebuilder:validation:Required
	Service  string         `json:"service,omitempty"`
	Sampling *TraceSampling `json:"sampling,omitempty"`
	// Deprecated: tag_headers is deprecated. Use custom_tags instead.
	// `tag_headers: ["header"]` can be defined as `custom_tags: [{"request_header": {"name": "header"}}]`.
	DeprecatedTagHeaders []string           `json:"tag_headers,omitempty"`
	CustomTags           []TracingCustomTag `json:"custom_tags,omitempty"`
	Config               *TraceConfig       `json:"config,omitempty"`
	StatsName            string             `json:"stats_name,omitempty"`
}

TracingServiceSpec defines the desired state of TracingService

func (*TracingServiceSpec) DeepCopy

func (in *TracingServiceSpec) DeepCopy() *TracingServiceSpec

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

func (*TracingServiceSpec) DeepCopyInto

func (in *TracingServiceSpec) DeepCopyInto(out *TracingServiceSpec)

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