Documentation ¶
Overview ¶
Package v3alpha1 contains API Schema definitions for the getambassador.io v3alpha1 API group
Index ¶
- Constants
- Variables
- type ACMEProviderSpec
- type AddedHeader
- type AmbassadorHost
- type AmbassadorHostList
- type AmbassadorHostPhase
- type AmbassadorHostSpec
- type AmbassadorHostState
- type AmbassadorHostStatus
- type AmbassadorHostTLSCertificateSource
- type AmbassadorListener
- type AmbassadorListenerList
- type AmbassadorListenerSpec
- type AmbassadorMapping
- type AmbassadorMappingList
- type AmbassadorMappingSpec
- type AmbassadorMappingStatus
- type AmbassadorTCPMapping
- type AmbassadorTCPMappingList
- type AmbassadorTCPMappingSpec
- type CORS
- type DocsInfo
- type HostBindingType
- type InsecureRequestPolicy
- type KeepAlive
- type LoadBalancer
- type LoadBalancerCookie
- type NamespaceBindingType
- type NamespaceFromType
- type PreviewURLSpec
- type PreviewURLType
- type ProtocolStackElement
- type ProtocolType
- type RequestPolicy
- type RetryPolicy
- type SecurityModelType
Constants ¶
const ( AmbassadorHostState_Initial = AmbassadorHostState(iota) AmbassadorHostState_Pending AmbassadorHostState_Ready AmbassadorHostState_Error )
const ( AmbassadorHostPhase_NA = AmbassadorHostPhase(iota) AmbassadorHostPhase_DefaultsFilled AmbassadorHostPhase_ACMEUserPrivateKeyCreated AmbassadorHostPhase_ACMEUserRegistered AmbassadorHostPhase_ACMECertificateChallenge )
const ( HostTLSCertificateSource_Unknown = "Unknown" HostTLSCertificateSource_None = "None" HostTLSCertificateSource_Other = "Other" HostTLSCertificateSource_ACME = "ACME" )
const (
PreviewURLType_Path = "Path"
)
Variables ¶
var ( // GroupVersion is group version used to register these objects GroupVersion = schema.GroupVersion{Group: "x.getambassador.io", Version: "v3alpha1"} // SchemeBuilder is used to add go types to the GroupVersionKind scheme SchemeBuilder = &scheme.Builder{GroupVersion: GroupVersion} // AddToScheme adds the types in this group-version to the given scheme. AddToScheme = SchemeBuilder.AddToScheme )
Functions ¶
This section is empty.
Types ¶
type ACMEProviderSpec ¶
type ACMEProviderSpec struct { // Specifies who to talk ACME with to get certs. Defaults to Let's // Encrypt; if "none" (case-insensitive), do not try to do ACME for // this AmbassadorHost. Authority string `json:"authority,omitempty"` Email string `json:"email,omitempty"` // Specifies the Kubernetes Secret to use to store the private key of the ACME // account (essentially, where to store the auto-generated password for the // auto-created ACME account). You should not normally need to set this--the // default value is based on a combination of the ACME authority being registered // wit and the email address associated with the account. // // Note that this is a native-Kubernetes-style core.v1.LocalObjectReference, not // an Ambassador-style `{name}.{namespace}` string. Because we're opinionated, it // does not support referencing a Secret in another namespace (because most native // Kubernetes resources don't support that), but if we ever abandon that opinion // and decide to support non-local references it, it would be by adding a // `namespace:` field by changing it from a core.v1.LocalObjectReference to a // core.v1.SecretReference, not by adopting the `{name}.{namespace}` notation. PrivateKeySecret *corev1.LocalObjectReference `json:"privateKeySecret,omitempty"` // This is normally set automatically Registration string `json:"registration,omitempty"` }
func (*ACMEProviderSpec) DeepCopy ¶
func (in *ACMEProviderSpec) DeepCopy() *ACMEProviderSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ACMEProviderSpec.
func (*ACMEProviderSpec) DeepCopyInto ¶
func (in *ACMEProviderSpec) DeepCopyInto(out *ACMEProviderSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type AddedHeader ¶
type AddedHeader struct { String *string `json:"-"` Bool *bool `json:"-"` Object *ambv2.UntypedDict `json:"-"` }
+kubebuilder:validation:Type="d6e-union:string,boolean,object"
func (*AddedHeader) DeepCopy ¶
func (in *AddedHeader) DeepCopy() *AddedHeader
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AddedHeader.
func (*AddedHeader) DeepCopyInto ¶
func (in *AddedHeader) DeepCopyInto(out *AddedHeader)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (AddedHeader) MarshalJSON ¶
func (o AddedHeader) MarshalJSON() ([]byte, error)
MarshalJSON is important both so that we generate the proper output, and to trigger controller-gen to not try to generate jsonschema for our sub-fields: https://github.com/kubernetes-sigs/controller-tools/pull/427
func (*AddedHeader) UnmarshalJSON ¶
func (o *AddedHeader) UnmarshalJSON(data []byte) error
type AmbassadorHost ¶
type AmbassadorHost struct { metav1.TypeMeta `json:""` metav1.ObjectMeta `json:"metadata,omitempty"` Spec *AmbassadorHostSpec `json:"spec,omitempty"` Status AmbassadorHostStatus `json:"status,omitempty"` }
AmbassadorHost is the Schema for the hosts API
+kubebuilder:object:root=true +kubebuilder:subresource:status +kubebuilder:printcolumn:name="Hostname",type=string,JSONPath=`.spec.hostname` +kubebuilder:printcolumn:name="State",type=string,JSONPath=`.status.state` +kubebuilder:printcolumn:name="Phase Completed",type=string,JSONPath=`.status.phaseCompleted` +kubebuilder:printcolumn:name="Phase Pending",type=string,JSONPath=`.status.phasePending` +kubebuilder:printcolumn:name="Age",type=date,JSONPath=`.metadata.creationTimestamp`
func (*AmbassadorHost) DeepCopy ¶
func (in *AmbassadorHost) DeepCopy() *AmbassadorHost
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AmbassadorHost.
func (*AmbassadorHost) DeepCopyInto ¶
func (in *AmbassadorHost) DeepCopyInto(out *AmbassadorHost)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*AmbassadorHost) DeepCopyObject ¶
func (in *AmbassadorHost) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type AmbassadorHostList ¶
type AmbassadorHostList struct { metav1.TypeMeta `json:""` metav1.ListMeta `json:"metadata,omitempty"` Items []AmbassadorHost `json:"items"` }
AmbassadorHostList contains a list of AmbassadorHosts.
+kubebuilder:object:root=true
func (*AmbassadorHostList) DeepCopy ¶
func (in *AmbassadorHostList) DeepCopy() *AmbassadorHostList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AmbassadorHostList.
func (*AmbassadorHostList) DeepCopyInto ¶
func (in *AmbassadorHostList) DeepCopyInto(out *AmbassadorHostList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*AmbassadorHostList) DeepCopyObject ¶
func (in *AmbassadorHostList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type AmbassadorHostPhase ¶
type AmbassadorHostPhase int
+kubebuilder:validation:Type=string +kubebuilder:validation:Enum={"NA","DefaultsFilled","ACMEUserPrivateKeyCreated","ACMEUserRegistered","ACMECertificateChallenge"}
func (AmbassadorHostPhase) MarshalJSON ¶
func (o AmbassadorHostPhase) MarshalJSON() ([]byte, error)
func (AmbassadorHostPhase) String ¶
func (o AmbassadorHostPhase) String() string
func (*AmbassadorHostPhase) UnmarshalJSON ¶
func (o *AmbassadorHostPhase) UnmarshalJSON(data []byte) error
type AmbassadorHostSpec ¶
type AmbassadorHostSpec struct { // Common to all Ambassador objects (and optional). AmbassadorID ambv2.AmbassadorID `json:"ambassador_id,omitempty"` // Hostname by which the Ambassador can be reached. Hostname string `json:"hostname,omitempty"` // Selector by which we can find further configuration. Selector *metav1.LabelSelector `json:"selector,omitempty"` // Specifies whether/who to talk ACME with to automatically manage the $tlsSecret. AcmeProvider *ambv2.ACMEProviderSpec `json:"acmeProvider,omitempty"` // Name of the Kubernetes secret into which to save generated // certificates. If ACME is enabled (see $acmeProvider), then the // default is $hostname; otherwise the default is "". If the value // is "", then we do not do TLS for this AmbassadorHost. // // Note that this is a native-Kubernetes-style core.v1.LocalObjectReference, not // an Ambassador-style `{name}.{namespace}` string. Because we're opinionated, it // does not support referencing a Secret in another namespace (because most native // Kubernetes resources don't support that), but if we ever abandon that opinion // and decide to support non-local references it, it would be by adding a // `namespace:` field by changing it from a core.v1.LocalObjectReference to a // core.v1.SecretReference, not by adopting the `{name}.{namespace}` notation. TLSSecret *corev1.LocalObjectReference `json:"tlsSecret,omitempty"` // Request policy definition. RequestPolicy *RequestPolicy `json:"requestPolicy,omitempty"` // Configuration for the Preview URL feature of Service Preview. Defaults to preview URLs not enabled. PreviewUrl *PreviewURLSpec `json:"previewUrl,omitempty"` // Name of the TLSContext the AmbassadorHost resource is linked with. // It is not valid to specify both `tlsContext` and `tls`. // // Note that this is a native-Kubernetes-style core.v1.LocalObjectReference, not // an Ambassador-style `{name}.{namespace}` string. Because we're opinionated, it // does not support referencing a Secret in another namespace (because most native // Kubernetes resources don't support that), but if we ever abandon that opinion // and decide to support non-local references it, it would be by adding a // `namespace:` field by changing it from a core.v1.LocalObjectReference to a // core.v1.SecretReference, not by adopting the `{name}.{namespace}` notation. TLSContext *corev1.LocalObjectReference `json:"tlsContext,omitempty"` // TLS configuration. It is not valid to specify both // `tlsContext` and `tls`. TLS *ambv2.TLSConfig `json:"tls,omitempty"` }
AmbassadorHostSpec defines the desired state of AmbassadorHost
func (*AmbassadorHostSpec) DeepCopy ¶
func (in *AmbassadorHostSpec) DeepCopy() *AmbassadorHostSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AmbassadorHostSpec.
func (*AmbassadorHostSpec) DeepCopyInto ¶
func (in *AmbassadorHostSpec) DeepCopyInto(out *AmbassadorHostSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type AmbassadorHostState ¶
type AmbassadorHostState int
The first value listed in the Enum marker becomes the "zero" value, and it would be great if "Pending" could be the default value; but it's Important that the "zero" value be able to be shown as empty/omitted from display, and we really do want `kubectl get hosts` to say "Pending" in the "STATE" column, and not leave the column empty.
+kubebuilder:validation:Type=string +kubebuilder:validation:Enum={"Initial","Pending","Ready","Error"}
func (AmbassadorHostState) MarshalJSON ¶
func (o AmbassadorHostState) MarshalJSON() ([]byte, error)
func (AmbassadorHostState) String ¶
func (o AmbassadorHostState) String() string
func (*AmbassadorHostState) UnmarshalJSON ¶
func (o *AmbassadorHostState) UnmarshalJSON(data []byte) error
type AmbassadorHostStatus ¶
type AmbassadorHostStatus struct { TLSCertificateSource AmbassadorHostTLSCertificateSource `json:"tlsCertificateSource,omitempty"` State AmbassadorHostState `json:"state,omitempty"` // phaseCompleted and phasePending are valid when state==Pending or // state==Error. PhaseCompleted AmbassadorHostPhase `json:"phaseCompleted,omitempty"` // phaseCompleted and phasePending are valid when state==Pending or // state==Error. PhasePending AmbassadorHostPhase `json:"phasePending,omitempty"` // errorReason, errorTimestamp, and errorBackoff are valid when state==Error. ErrorReason string `json:"errorReason,omitempty"` ErrorTimestamp *metav1.Time `json:"errorTimestamp,omitempty"` ErrorBackoff *metav1.Duration `json:"errorBackoff,omitempty"` }
AmbassadorHostStatus defines the observed state of AmbassadorHost
func (*AmbassadorHostStatus) DeepCopy ¶
func (in *AmbassadorHostStatus) DeepCopy() *AmbassadorHostStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AmbassadorHostStatus.
func (*AmbassadorHostStatus) DeepCopyInto ¶
func (in *AmbassadorHostStatus) DeepCopyInto(out *AmbassadorHostStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type AmbassadorHostTLSCertificateSource ¶
type AmbassadorHostTLSCertificateSource string
+kubebuilder:validation:Enum={"Unknown","None","Other","ACME"}
type AmbassadorListener ¶
type AmbassadorListener struct { metav1.TypeMeta `json:""` metav1.ObjectMeta `json:"metadata,omitempty"` Spec *AmbassadorListenerSpec `json:"spec,omitempty"` }
AmbassadorListener is the Schema for the hosts API
+kubebuilder:object:root=true +kubebuilder:printcolumn:name="Port",type=string,JSONPath=`.spec.port` +kubebuilder:printcolumn:name="Protocol",type=string,JSONPath=`.spec.protocol` +kubebuilder:printcolumn:name="Stack",type=string,JSONPath=`.spec.protocolStack` +kubebuilder:printcolumn:name="StatsPrefix",type=string,JSONPath=`.spec.statsPrefix` +kubebuilder:printcolumn:name="Security",type=string,JSONPath=`.spec.securityModel` +kubebuilder:printcolumn:name="L7Depth",type=string,JSONPath=`.spec.l7Depth`
func (*AmbassadorListener) DeepCopy ¶
func (in *AmbassadorListener) DeepCopy() *AmbassadorListener
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AmbassadorListener.
func (*AmbassadorListener) DeepCopyInto ¶
func (in *AmbassadorListener) DeepCopyInto(out *AmbassadorListener)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*AmbassadorListener) DeepCopyObject ¶
func (in *AmbassadorListener) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type AmbassadorListenerList ¶
type AmbassadorListenerList struct { metav1.TypeMeta `json:""` metav1.ListMeta `json:"metadata,omitempty"` Items []AmbassadorListener `json:"items"` }
AmbassadorListenerList contains a list of AmbassadorListener.
+kubebuilder:object:root=true
func (*AmbassadorListenerList) DeepCopy ¶
func (in *AmbassadorListenerList) DeepCopy() *AmbassadorListenerList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AmbassadorListenerList.
func (*AmbassadorListenerList) DeepCopyInto ¶
func (in *AmbassadorListenerList) DeepCopyInto(out *AmbassadorListenerList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*AmbassadorListenerList) DeepCopyObject ¶
func (in *AmbassadorListenerList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type AmbassadorListenerSpec ¶
type AmbassadorListenerSpec struct { AmbassadorID ambv2.AmbassadorID `json:"ambassador_id,omitempty"` // Port is the network port. Only one AmbassadorListener can use a given port. // +kubebuilder:validation:Minimum=1 // +kubebuilder:validation:Maximum=65535 // +kubebuilder:validation:Required Port int32 `json:"port"` // Protocol is a shorthand for certain predefined stacks. Exactly one of Protocol // or ProtocolStack must be supplied. Protocol ProtocolType `json:"protocol,omitempty"` // ProtocolStack explicitly specifies the protocol stack to set up. Exactly one of Protocol // or ProtocolStack must be supplied. ProtocolStack []ProtocolStackElement `json:"protocolStack,omitempty"` // SecurityModel specifies how to determine whether connections to this port are secure // or insecure. // +kubebuilder:validation:Required SecurityModel SecurityModelType `json:"securityModel"` // StatsPrefix specifies the prefix for statistics sent by Envoy about this // AmbassadorListener. The default depends on the protocol: "ingress-http", // "ingress-https", "ingress-tls-$port", or "ingress-$port". StatsPrefix string `json:"statsPrefix,omitempty"` // L7Depth specifies how many layer 7 load balancers are between us and the edge of // the network. L7Depth int32 `json:"l7Depth,omitempty"` // HostBinding allows restricting which Hosts will be used for this AmbassadorListener. // +kubebuilder:validation:Required HostBinding HostBindingType `json:"hostBinding"` }
AmbassadorListenerSpec defines the desired state of this Port
func (*AmbassadorListenerSpec) DeepCopy ¶
func (in *AmbassadorListenerSpec) DeepCopy() *AmbassadorListenerSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AmbassadorListenerSpec.
func (*AmbassadorListenerSpec) DeepCopyInto ¶
func (in *AmbassadorListenerSpec) DeepCopyInto(out *AmbassadorListenerSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type AmbassadorMapping ¶
type AmbassadorMapping struct { metav1.TypeMeta `json:""` metav1.ObjectMeta `json:"metadata,omitempty"` Spec AmbassadorMappingSpec `json:"spec,omitempty"` Status *AmbassadorMappingStatus `json:"status,omitempty"` }
AmbassadorMapping is the Schema for the mappings API
+kubebuilder:object:root=true +kubebuilder:subresource:status +kubebuilder:printcolumn:name="Source Host",type=string,JSONPath=`.spec.host` +kubebuilder:printcolumn:name="Source Prefix",type=string,JSONPath=`.spec.prefix` +kubebuilder:printcolumn:name="Dest Service",type=string,JSONPath=`.spec.service` +kubebuilder:printcolumn:name="State",type=string,JSONPath=`.status.state` +kubebuilder:printcolumn:name="Reason",type=string,JSONPath=`.status.reason`
func (*AmbassadorMapping) DeepCopy ¶
func (in *AmbassadorMapping) DeepCopy() *AmbassadorMapping
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AmbassadorMapping.
func (*AmbassadorMapping) DeepCopyInto ¶
func (in *AmbassadorMapping) DeepCopyInto(out *AmbassadorMapping)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*AmbassadorMapping) DeepCopyObject ¶
func (in *AmbassadorMapping) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type AmbassadorMappingList ¶
type AmbassadorMappingList struct { metav1.TypeMeta `json:""` metav1.ListMeta `json:"metadata,omitempty"` Items []AmbassadorMapping `json:"items"` }
AmbassadorMappingList contains a list of AmbassadorMappings.
+kubebuilder:object:root=true
func (*AmbassadorMappingList) DeepCopy ¶
func (in *AmbassadorMappingList) DeepCopy() *AmbassadorMappingList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AmbassadorMappingList.
func (*AmbassadorMappingList) DeepCopyInto ¶
func (in *AmbassadorMappingList) DeepCopyInto(out *AmbassadorMappingList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*AmbassadorMappingList) DeepCopyObject ¶
func (in *AmbassadorMappingList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type AmbassadorMappingSpec ¶
type AmbassadorMappingSpec struct { AmbassadorID ambv2.AmbassadorID `json:"ambassador_id,omitempty"` // +kubebuilder:validation:Required Prefix string `json:"prefix,omitempty"` PrefixRegex *bool `json:"prefix_regex,omitempty"` PrefixExact *bool `json:"prefix_exact,omitempty"` // +kubebuilder:validation:Required Service string `json:"service,omitempty"` AddRequestHeaders map[string]AddedHeader `json:"add_request_headers,omitempty"` AddResponseHeaders map[string]AddedHeader `json:"add_response_headers,omitempty"` AddLinkerdHeaders *bool `json:"add_linkerd_headers,omitempty"` AutoHostRewrite *bool `json:"auto_host_rewrite,omitempty"` CaseSensitive *bool `json:"case_sensitive,omitempty"` Docs *DocsInfo `json:"docs,omitempty"` EnableIPv4 *bool `json:"enable_ipv4,omitempty"` EnableIPv6 *bool `json:"enable_ipv6,omitempty"` CircuitBreakers []*ambv2.CircuitBreaker `json:"circuit_breakers,omitempty"` KeepAlive *KeepAlive `json:"keepalive,omitempty"` CORS *CORS `json:"cors,omitempty"` RetryPolicy *RetryPolicy `json:"retry_policy,omitempty"` GRPC *bool `json:"grpc,omitempty"` HostRedirect *bool `json:"host_redirect,omitempty"` HostRewrite string `json:"host_rewrite,omitempty"` Method string `json:"method,omitempty"` MethodRegex *bool `json:"method_regex,omitempty"` OutlierDetection string `json:"outlier_detection,omitempty"` // Path replacement to use when generating an HTTP redirect. Used with `host_redirect`. PathRedirect string `json:"path_redirect,omitempty"` // Prefix rewrite to use when generating an HTTP redirect. Used with `host_redirect`. PrefixRedirect string `json:"prefix_redirect,omitempty"` // Prefix regex rewrite to use when generating an HTTP redirect. Used with `host_redirect`. RegexRedirect map[string]ambv2.BoolOrString `json:"regex_redirect,omitempty"` // The response code to use when generating an HTTP redirect. Defaults to 301. Used with // `host_redirect`. // +kubebuilder:validation:Enum={301,302,303,307,308} RedirectResponseCode *int `json:"redirect_response_code,omitempty"` Priority string `json:"priority,omitempty"` Precedence *int `json:"precedence,omitempty"` ClusterTag string `json:"cluster_tag,omitempty"` RemoveRequestHeaders []string `json:"remove_request_headers,omitempty"` RemoveResponseHeaders []string `json:"remove_response_headers,omitempty"` Resolver string `json:"resolver,omitempty"` Rewrite *string `json:"rewrite,omitempty"` RegexRewrite map[string]ambv2.BoolOrString `json:"regex_rewrite,omitempty"` Shadow *bool `json:"shadow,omitempty"` ConnectTimeoutMs *int `json:"connect_timeout_ms,omitempty"` ClusterIdleTimeoutMs *int `json:"cluster_idle_timeout_ms,omitempty"` ClusterMaxConnectionLifetimeMs int `json:"cluster_max_connection_lifetime_ms,omitempty"` // The timeout for requests that use this AmbassadorMapping. Overrides `cluster_request_timeout_ms` set on the Ambassador Module, if it exists. TimeoutMs *int `json:"timeout_ms,omitempty"` IdleTimeoutMs *int `json:"idle_timeout_ms,omitempty"` TLS *ambv2.BoolOrString `json:"tls,omitempty"` // use_websocket is deprecated, and is equivlaent to setting // `allow_upgrade: ["websocket"]` UseWebsocket *bool `json:"use_websocket,omitempty"` // A case-insensitive list of the non-HTTP protocols to allow // "upgrading" to from HTTP via the "Connection: upgrade" // mechanism[1]. After the upgrade, Ambassador does not // interpret the traffic, and behaves similarly to how it does // for TCPMappings. // // [1]: https://tools.ietf.org/html/rfc7230#section-6.7 // // For example, if your upstream service supports WebSockets, // you would write // // allow_upgrade: // - websocket // // Or if your upstream service supports upgrading from HTTP to // SPDY (as the Kubernetes apiserver does for `kubectl exec` // functionality), you would write // // allow_upgrade: // - spdy/3.1 AllowUpgrade []string `json:"allow_upgrade,omitempty"` Weight *int `json:"weight,omitempty"` BypassAuth *bool `json:"bypass_auth,omitempty"` AuthContextExtensions map[string]string `json:"auth_context_extensions,omitempty"` // If true, bypasses any `error_response_overrides` set on the Ambassador module. BypassErrorResponseOverrides *bool `json:"bypass_error_response_overrides,omitempty"` // Error response overrides for this AmbassadorMapping. Replaces all of the `error_response_overrides` // set on the Ambassador module, if any. // +kubebuilder:validation:MinItems=1 ErrorResponseOverrides []ambv2.ErrorResponseOverride `json:"error_response_overrides,omitempty"` Modules []ambv2.UntypedDict `json:"modules,omitempty"` Host string `json:"host,omitempty"` Hostname string `json:"hostname,omitempty"` HostRegex *bool `json:"host_regex,omitempty"` Headers map[string]ambv2.BoolOrString `json:"headers,omitempty"` RegexHeaders map[string]ambv2.BoolOrString `json:"regex_headers,omitempty"` Labels ambv2.DomainMap `json:"labels,omitempty"` EnvoyOverride *ambv2.UntypedDict `json:"envoy_override,omitempty"` LoadBalancer *ambv2.LoadBalancer `json:"load_balancer,omitempty"` QueryParameters map[string]ambv2.BoolOrString `json:"query_parameters,omitempty"` RegexQueryParameters map[string]ambv2.BoolOrString `json:"regex_query_parameters,omitempty"` StatsName string `json:"stats_name,omitempty"` }
AmbassadorMappingSpec defines the desired state of AmbassadorMapping
func (*AmbassadorMappingSpec) DeepCopy ¶
func (in *AmbassadorMappingSpec) DeepCopy() *AmbassadorMappingSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AmbassadorMappingSpec.
func (*AmbassadorMappingSpec) DeepCopyInto ¶
func (in *AmbassadorMappingSpec) DeepCopyInto(out *AmbassadorMappingSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type AmbassadorMappingStatus ¶
type AmbassadorMappingStatus struct { // +kubebuilder:validation:Enum={"","Inactive","Running"} State string `json:"state,omitempty"` Reason string `json:"reason,omitempty"` }
AmbassadorMappingStatus defines the observed state of AmbassadorMapping
func (*AmbassadorMappingStatus) DeepCopy ¶
func (in *AmbassadorMappingStatus) DeepCopy() *AmbassadorMappingStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AmbassadorMappingStatus.
func (*AmbassadorMappingStatus) DeepCopyInto ¶
func (in *AmbassadorMappingStatus) DeepCopyInto(out *AmbassadorMappingStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type AmbassadorTCPMapping ¶
type AmbassadorTCPMapping struct { metav1.TypeMeta `json:""` metav1.ObjectMeta `json:"metadata,omitempty"` Spec AmbassadorTCPMappingSpec `json:"spec,omitempty"` }
AmbassadorTCPMapping is the Schema for the tcpmappings API
+kubebuilder:object:root=true
func (*AmbassadorTCPMapping) DeepCopy ¶
func (in *AmbassadorTCPMapping) DeepCopy() *AmbassadorTCPMapping
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AmbassadorTCPMapping.
func (*AmbassadorTCPMapping) DeepCopyInto ¶
func (in *AmbassadorTCPMapping) DeepCopyInto(out *AmbassadorTCPMapping)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*AmbassadorTCPMapping) DeepCopyObject ¶
func (in *AmbassadorTCPMapping) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type AmbassadorTCPMappingList ¶
type AmbassadorTCPMappingList struct { metav1.TypeMeta `json:""` metav1.ListMeta `json:"metadata,omitempty"` Items []AmbassadorTCPMapping `json:"items"` }
AmbassadorTCPMappingList contains a list of AmbassadorTCPMappings.
+kubebuilder:object:root=true
func (*AmbassadorTCPMappingList) DeepCopy ¶
func (in *AmbassadorTCPMappingList) DeepCopy() *AmbassadorTCPMappingList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AmbassadorTCPMappingList.
func (*AmbassadorTCPMappingList) DeepCopyInto ¶
func (in *AmbassadorTCPMappingList) DeepCopyInto(out *AmbassadorTCPMappingList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*AmbassadorTCPMappingList) DeepCopyObject ¶
func (in *AmbassadorTCPMappingList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type AmbassadorTCPMappingSpec ¶
type AmbassadorTCPMappingSpec struct { AmbassadorID ambv2.AmbassadorID `json:"ambassador_id,omitempty"` // Port isn't a pointer because it's required. // +kubebuilder:validation:Required Port int `json:"port,omitempty"` Host string `json:"host,omitempty"` Address string `json:"address,omitempty"` // +kubebuilder:validation:Required Service string `json:"service,omitempty"` EnableIPv4 *bool `json:"enable_ipv4,omitempty"` EnableIPv6 *bool `json:"enable_ipv6,omitempty"` CircuitBreakers []ambv2.CircuitBreaker `json:"circuit_breakers,omitempty"` // FIXME(lukeshu): Surely this should be an 'int'? IdleTimeoutMs string `json:"idle_timeout_ms,omitempty"` Resolver string `json:"resolver,omitempty"` TLS *ambv2.BoolOrString `json:"tls,omitempty"` Weight *int `json:"weight,omitempty"` ClusterTag string `json:"cluster_tag,omitempty"` StatsName string `json:"stats_name,omitempty"` }
AmbassadorTCPMappingSpec defines the desired state of AmbassadorTCPMapping
func (*AmbassadorTCPMappingSpec) DeepCopy ¶
func (in *AmbassadorTCPMappingSpec) DeepCopy() *AmbassadorTCPMappingSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AmbassadorTCPMappingSpec.
func (*AmbassadorTCPMappingSpec) DeepCopyInto ¶
func (in *AmbassadorTCPMappingSpec) DeepCopyInto(out *AmbassadorTCPMappingSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type CORS ¶
type CORS struct { Origins []string `json:"origins,omitempty"` Methods []string `json:"methods,omitempty"` Headers []string `json:"headers,omitempty"` Credentials *bool `json:"credentials,omitempty"` ExposedHeaders []string `json:"exposed_headers,omitempty"` MaxAge string `json:"max_age,omitempty"` }
func (*CORS) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CORS.
func (*CORS) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type DocsInfo ¶
type DocsInfo struct { Path string `json:"path,omitempty"` URL string `json:"url,omitempty"` Ignored *bool `json:"ignored,omitempty"` DisplayName string `json:"display_name,omitempty"` }
DocsInfo provides some extra information about the docs for the AmbassadorMapping. Docs is used by both the agent and the DevPortal.
func (*DocsInfo) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DocsInfo.
func (*DocsInfo) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type HostBindingType ¶
type HostBindingType struct { Namespace NamespaceBindingType `json:"namespace"` Selector *metav1.LabelSelector `json:"selector,omitempty"` }
HostBindingType defines how we specify Hosts to bind to this AmbassadorListener.
func (*HostBindingType) DeepCopy ¶
func (in *HostBindingType) DeepCopy() *HostBindingType
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HostBindingType.
func (*HostBindingType) DeepCopyInto ¶
func (in *HostBindingType) DeepCopyInto(out *HostBindingType)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type InsecureRequestPolicy ¶
type InsecureRequestPolicy struct { // +kubebuilder:validation:Enum={"Redirect","Reject","Route"} Action string `json:"action,omitempty"` AdditionalPort *int `json:"additionalPort,omitempty"` }
func (*InsecureRequestPolicy) DeepCopy ¶
func (in *InsecureRequestPolicy) DeepCopy() *InsecureRequestPolicy
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KeepAlive.
func (*KeepAlive) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type LoadBalancer ¶
type LoadBalancer struct { // +kubebuilder:validation:Enum={"round_robin","ring_hash","maglev","least_request"} // +kubebuilder:validation:Required Policy string `json:"policy,omitempty"` Cookie *LoadBalancerCookie `json:"cookie,omitempty"` Header string `json:"header,omitempty"` SourceIp *bool `json:"source_ip,omitempty"` }
func (*LoadBalancer) DeepCopy ¶
func (in *LoadBalancer) DeepCopy() *LoadBalancer
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LoadBalancer.
func (*LoadBalancer) DeepCopyInto ¶
func (in *LoadBalancer) DeepCopyInto(out *LoadBalancer)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type LoadBalancerCookie ¶
type LoadBalancerCookie struct { // +kubebuilder:validation:Required Name string `json:"name,omitempty"` Path string `json:"path,omitempty"` Ttl string `json:"ttl,omitempty"` }
func (*LoadBalancerCookie) DeepCopy ¶
func (in *LoadBalancerCookie) DeepCopy() *LoadBalancerCookie
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LoadBalancerCookie.
func (*LoadBalancerCookie) DeepCopyInto ¶
func (in *LoadBalancerCookie) DeepCopyInto(out *LoadBalancerCookie)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type NamespaceBindingType ¶
type NamespaceBindingType struct {
From NamespaceFromType `json:"from,omitempty"`
}
NamespaceBindingType defines we we specify which namespaces to look for Hosts in.
func (*NamespaceBindingType) DeepCopy ¶
func (in *NamespaceBindingType) DeepCopy() *NamespaceBindingType
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NamespaceBindingType.
func (*NamespaceBindingType) DeepCopyInto ¶
func (in *NamespaceBindingType) DeepCopyInto(out *NamespaceBindingType)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type NamespaceFromType ¶
type NamespaceFromType string
NamespaceFromType defines how we evaluate a NamespaceBindingType. +kubebuilder:validation:Enum=SELF;ALL;SELECTOR
const ( // SELFNamespaceFromType specifies that an AmbassadorListener should consider Hosts only in the // AmbassadorListener's namespaces. SELFNamespaceFromType NamespaceFromType = "SELF" // ALLNamespaceFromType specifies that an AmbassadorListener should consider Hosts in ALL // namespaces. This is the simplest way to build an AmbassadorListener that matches all Hosts. ALLNamespaceFromType NamespaceFromType = "ALL" )
type PreviewURLSpec ¶
type PreviewURLSpec struct { // Is the Preview URL feature enabled? Enabled *bool `json:"enabled,omitempty"` // What type of Preview URL is allowed? Type PreviewURLType `json:"type,omitempty"` }
func (*PreviewURLSpec) DeepCopy ¶
func (in *PreviewURLSpec) DeepCopy() *PreviewURLSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PreviewURLSpec.
func (*PreviewURLSpec) DeepCopyInto ¶
func (in *PreviewURLSpec) DeepCopyInto(out *PreviewURLSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PreviewURLType ¶
type PreviewURLType string
What type of Preview URL is allowed?
- path
- wildcard
- datawire // FIXME rename this before release
+kubebuilder:validation:Enum={"Path"}
type ProtocolStackElement ¶
type ProtocolStackElement string
ProtocolStackElement defines specific layers that may be combined in a protocol stack for processing connections to a port. +kubebuilder:validation:Enum=HTTP;PROXY;TLS;TCP;UDP
const ( // HTTPProtocolStackElement represents the HTTP protocol. HTTPProtocolStackElement ProtocolStackElement = "HTTP" // PROXYProtocolStackElement represents the HAProxy PROXY protocol. PROXYProtocolStackElement ProtocolStackElement = "PROXY" // TLSProtocolStackElement represents the TLS protocol. TLSProtocolStackElement ProtocolStackElement = "TLS" // TCPProtocolStackElement represents raw TCP sessions. TCPProtocolStackElement ProtocolStackElement = "TCP" // UDPProtocolStackElement represents UDP packets. UDPProtocolStackElement ProtocolStackElement = "UDP" )
type ProtocolType ¶
type ProtocolType string
ProtocolType defines shorthands for well-known protocol stacks. +kubebuilder:validation:Enum=HTTP;HTTPS;HTTPPROXY;HTTPSPROXY;TCP;TLS;UDP
const ( // HTTPProtocolType accepts cleartext HTTP/1.1 sessions over TCP. // HTTP;TCP HTTPProtocolType ProtocolType = "HTTP" // HTTPSProtocolType accepts encrypted HTTP/1.1 or HTTP/2 sessions using TLS over TCP. // TLS;HTTP;TCP HTTPSProtocolType ProtocolType = "HTTPS" // HTTPPROXYProtocolType accepts cleartext HTTP/1.1 sessions using the HAProxy PROXY protocol over TCP. // PROXY;HTTP;TCP HTTPPROXYProtocolType ProtocolType = "HTTPPROXY" // HTTPSPROXYProtocolType accepts encrypted HTTP/1.1 or HTTP/2 sessions using the HAProxy PROXY protocol over TLS over TCP. // TLS;PROXY;HTTP;TCP HTTPSPROXYProtocolType ProtocolType = "HTTPSPROXY" // RAWTCPProtocolType accepts raw TCP sessions. // TCP RAWTCPProtocolType ProtocolType = "TCP" // TLSProtocolType accepts TLS over TCP. // TLS;TCP TLSProtocolType ProtocolType = "TLS" // UDPProtocolType accepts UDP packets. // UDP UDPProtocolType ProtocolType = "UDP" )
type RequestPolicy ¶
type RequestPolicy struct {
Insecure InsecureRequestPolicy `json:"insecure,omitempty"`
}
func (*RequestPolicy) DeepCopy ¶
func (in *RequestPolicy) DeepCopy() *RequestPolicy
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RequestPolicy.
func (*RequestPolicy) DeepCopyInto ¶
func (in *RequestPolicy) DeepCopyInto(out *RequestPolicy)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RetryPolicy ¶
type RetryPolicy struct { // +kubebuilder:validation:Enum={"5xx","gateway-error","connect-failure","retriable-4xx","refused-stream","retriable-status-codes"} RetryOn string `json:"retry_on,omitempty"` NumRetries *int `json:"num_retries,omitempty"` PerTryTimeout string `json:"per_try_timeout,omitempty"` }
func (*RetryPolicy) DeepCopy ¶
func (in *RetryPolicy) DeepCopy() *RetryPolicy
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RetryPolicy.
func (*RetryPolicy) DeepCopyInto ¶
func (in *RetryPolicy) DeepCopyInto(out *RetryPolicy)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type SecurityModelType ¶
type SecurityModelType string
SecurityModelType defines the mechanisms we can use to determine whether connections to a port are secure or insecure. +kubebuilder:validation:Enum=XFP;SECURE;INSECURE
const ( // XFPSecurityModelType specifies that connections on this port use X-Forwarded-Proto to // determine security: if the protocol is HTTPS, the connection is secure; otherwise // it is insecure. XFPSecurityModelType SecurityModelType = "XFP" // SECURESecurityModelType specifies that connections on this port are always secure SECURESecurityModelType SecurityModelType = "SECURE" // INSECURESecurityModelType specifies that connections on this port are never secure INSECURESecurityModelType SecurityModelType = "INSECURE" )