Documentation ¶
Overview ¶
Package v3alpha1 contains API Schema definitions for the getambassador.io v3alpha1 API group
Index ¶
- Constants
- Variables
- type ACMEProviderSpec
- type AddedHeader
- type AdditionalLogHeaders
- type AmbassadorConfigSpec
- type AmbassadorConfigStatus
- type AmbassadorID
- type AuthService
- type AuthServiceIncludeBody
- type AuthServiceList
- type AuthServiceSpec
- type AuthServiceStatusOnError
- type CORS
- type CircuitBreaker
- type ConsulResolver
- type ConsulResolverList
- type ConsulResolverSpec
- type DevPortal
- type DevPortalContentSpec
- type DevPortalDocsSpec
- type DevPortalList
- type DevPortalSearchSpec
- type DevPortalSelectorSpec
- type DevPortalSpec
- type DocsInfo
- type DomainMap
- type DriverConfig
- type ErrorResponseOverride
- type ErrorResponseOverrideBody
- type ErrorResponseTextFormatSource
- type Features
- type GRPCHealthCheck
- type HTTPHealthCheck
- type HealthCheck
- type HealthCheckLocation
- type Host
- type HostBindingType
- type HostList
- type HostPhase
- type HostSpec
- type HostState
- type HostStatus
- type HostTLSCertificateSource
- type InsecureRequestPolicy
- type KeepAlive
- type KubernetesEndpointResolver
- type KubernetesEndpointResolverList
- type KubernetesEndpointResolverSpec
- type KubernetesServiceResolver
- type KubernetesServiceResolverList
- type KubernetesServiceResolverSpec
- type Listener
- type ListenerList
- type ListenerSpec
- type LoadBalancer
- type LoadBalancerCookie
- type LogService
- type LogServiceList
- type LogServiceSpec
- type Mapping
- type MappingLabelGroup
- type MappingLabelGroupsArray
- type MappingLabelSpecifier
- type MappingLabelSpecifier_DestinationCluster
- type MappingLabelSpecifier_GenericKey
- type MappingLabelSpecifier_RemoteAddress
- type MappingLabelSpecifier_RequestHeaders
- type MappingLabelSpecifier_SourceCluster
- type MappingLabelsArray
- type MappingList
- type MappingSpec
- type MappingStatus
- type MillisecondDuration
- type Module
- type ModuleList
- type ModuleSpec
- type NamespaceBindingType
- type NamespaceFromType
- type PreviewURLSpec
- type PreviewURLType
- type PropagationMode
- type ProtocolStackElement
- type ProtocolType
- type RateLimitService
- type RateLimitServiceList
- type RateLimitServiceSpec
- type RegexMap
- type RequestPolicy
- type RetryPolicy
- type SecondDuration
- type SecurityModelType
- type StatusRange
- type TCPMapping
- type TCPMappingList
- type TCPMappingSpec
- type TLSConfig
- type TLSContext
- type TLSContextList
- type TLSContextSpec
- type TraceConfig
- type TraceSampling
- type TracingCustomTag
- type TracingCustomTagTypeEnvironment
- type TracingCustomTagTypeLiteral
- type TracingCustomTagTypeRequestHeader
- type TracingService
- type TracingServiceList
- type TracingServiceSpec
- type UntypedDict
- type V2ExplicitTLS
Constants ¶
const ( HostState_Initial = HostState(iota) HostState_Pending HostState_Ready HostState_Error )
const ( HostPhase_NA = HostPhase(iota) HostPhase_DefaultsFilled HostPhase_ACMEUserPrivateKeyCreated HostPhase_ACMEUserRegistered HostPhase_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: "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 ¶
func (in *AdditionalLogHeaders) DeepCopy() *AdditionalLogHeaders
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 ¶
func (in *AmbassadorConfigSpec) DeepCopy() *AmbassadorConfigSpec
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 ¶
func (in *AmbassadorConfigStatus) DeepCopy() *AmbassadorConfigStatus
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 ¶
func (in *AuthServiceIncludeBody) DeepCopy() *AuthServiceIncludeBody
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 ¶
func (in *AuthServiceStatusOnError) DeepCopy() *AuthServiceStatusOnError
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 ¶
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 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:
`what` is in a DevPortal can be controlled with
- a `selector`, that can be used for filtering `Mappings`.
- a `docs` listing of (services, url)
`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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DevPortal.
func (*DevPortal) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*DevPortal) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
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 ¶
func (in *DevPortalContentSpec) DeepCopy() *DevPortalContentSpec
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 ¶
func (in *DevPortalSelectorSpec) DeepCopy() *DevPortalSelectorSpec
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 ¶
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 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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DomainMap.
func (DomainMap) DeepCopyInto ¶
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 ¶
func (in *ErrorResponseOverride) DeepCopy() *ErrorResponseOverride
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 ¶
func (in *ErrorResponseOverrideBody) DeepCopy() *ErrorResponseOverrideBody
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ErrorResponseOverrideBody.
func (*ErrorResponseOverrideBody) DeepCopyInto ¶
func (in *ErrorResponseOverrideBody) DeepCopyInto(out *ErrorResponseOverrideBody)
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 ¶
func (in *ErrorResponseTextFormatSource) DeepCopy() *ErrorResponseTextFormatSource
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ErrorResponseTextFormatSource.
func (*ErrorResponseTextFormatSource) DeepCopyInto ¶
func (in *ErrorResponseTextFormatSource) DeepCopyInto(out *ErrorResponseTextFormatSource)
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Features.
func (*Features) DeepCopyInto ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Host.
func (*Host) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Host) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type HostBindingType ¶
type HostBindingType struct { Namespace NamespaceBindingType `json:"namespace"` Selector *metav1.LabelSelector `json:"selector,omitempty"` }
HostBindingType defines how we specify Hosts to bind to this Listener.
func (*HostBindingType) DeepCopy ¶
func (in *HostBindingType) DeepCopy() *HostBindingType
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HostBindingType.
func (*HostBindingType) DeepCopyInto ¶
func (in *HostBindingType) DeepCopyInto(out *HostBindingType)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type HostList ¶
type HostList struct { metav1.TypeMeta `json:""` metav1.ListMeta `json:"metadata,omitempty"` Items []Host `json:"items"` }
HostList contains a list of Hosts.
+kubebuilder:object:root=true
func (*HostList) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HostList.
func (*HostList) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*HostList) DeepCopyObject ¶
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 (*HostPhase) UnmarshalJSON ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HostSpec.
func (*HostSpec) DeepCopyInto ¶
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 (*HostState) UnmarshalJSON ¶
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 ¶
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 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 ¶
func (in *KubernetesEndpointResolver) DeepCopy() *KubernetesEndpointResolver
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubernetesEndpointResolver.
func (*KubernetesEndpointResolver) DeepCopyInto ¶
func (in *KubernetesEndpointResolver) DeepCopyInto(out *KubernetesEndpointResolver)
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 ¶
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 ¶
func (in *KubernetesEndpointResolverList) DeepCopy() *KubernetesEndpointResolverList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubernetesEndpointResolverList.
func (*KubernetesEndpointResolverList) DeepCopyInto ¶
func (in *KubernetesEndpointResolverList) DeepCopyInto(out *KubernetesEndpointResolverList)
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 ¶
func (in *KubernetesEndpointResolverSpec) DeepCopy() *KubernetesEndpointResolverSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubernetesEndpointResolverSpec.
func (*KubernetesEndpointResolverSpec) DeepCopyInto ¶
func (in *KubernetesEndpointResolverSpec) DeepCopyInto(out *KubernetesEndpointResolverSpec)
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 ¶
func (in *KubernetesServiceResolver) DeepCopy() *KubernetesServiceResolver
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubernetesServiceResolver.
func (*KubernetesServiceResolver) DeepCopyInto ¶
func (in *KubernetesServiceResolver) DeepCopyInto(out *KubernetesServiceResolver)
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 ¶
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 ¶
func (in *KubernetesServiceResolverList) DeepCopy() *KubernetesServiceResolverList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubernetesServiceResolverList.
func (*KubernetesServiceResolverList) DeepCopyInto ¶
func (in *KubernetesServiceResolverList) DeepCopyInto(out *KubernetesServiceResolverList)
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 ¶
func (in *KubernetesServiceResolverSpec) DeepCopy() *KubernetesServiceResolverSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubernetesServiceResolverSpec.
func (*KubernetesServiceResolverSpec) DeepCopyInto ¶
func (in *KubernetesServiceResolverSpec) DeepCopyInto(out *KubernetesServiceResolverSpec)
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Listener.
func (*Listener) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Listener) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ListenerList ¶
type ListenerList struct { metav1.TypeMeta `json:""` metav1.ListMeta `json:"metadata,omitempty"` Items []Listener `json:"items"` }
ListenerList contains a list of Listener.
+kubebuilder:object:root=true
func (*ListenerList) DeepCopy ¶
func (in *ListenerList) DeepCopy() *ListenerList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ListenerList.
func (*ListenerList) DeepCopyInto ¶
func (in *ListenerList) DeepCopyInto(out *ListenerList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ListenerList) DeepCopyObject ¶
func (in *ListenerList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ListenerSpec ¶
type ListenerSpec struct { AmbassadorID AmbassadorID `json:"ambassador_id,omitempty"` // Port is the network port. Only one Listener can use a given port. // +kubebuilder:validation:Minimum=1 // +kubebuilder:validation:Maximum=65535 // +kubebuilder:validation:Required Port int32 `json:"port"` // Protocol is a shorthand for certain predefined stacks. Exactly one of Protocol // or ProtocolStack must be supplied. Protocol ProtocolType `json:"protocol,omitempty"` // ProtocolStack explicitly specifies the protocol stack to set up. Exactly one of Protocol // or ProtocolStack must be supplied. ProtocolStack []ProtocolStackElement `json:"protocolStack,omitempty"` // SecurityModel specifies how to determine whether connections to this port are secure // or insecure. // +kubebuilder:validation:Required SecurityModel SecurityModelType `json:"securityModel"` // StatsPrefix specifies the prefix for statistics sent by Envoy about this // Listener. The default depends on the protocol: "ingress-http", // "ingress-https", "ingress-tls-$port", or "ingress-$port". StatsPrefix string `json:"statsPrefix,omitempty"` // L7Depth specifies how many layer 7 load balancers are between us and the edge of // the network. L7Depth int32 `json:"l7Depth,omitempty"` // HostBinding allows restricting which Hosts will be used for this Listener. // +kubebuilder:validation:Required HostBinding HostBindingType `json:"hostBinding"` }
ListenerSpec defines the desired state of this Port
func (*ListenerSpec) DeepCopy ¶
func (in *ListenerSpec) DeepCopy() *ListenerSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ListenerSpec.
func (*ListenerSpec) DeepCopyInto ¶
func (in *ListenerSpec) DeepCopyInto(out *ListenerSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type LoadBalancer ¶
type LoadBalancer struct { // +kubebuilder:validation:Enum={"round_robin","ring_hash","maglev","least_request"} // +kubebuilder:validation:Required Policy string `json:"policy,omitempty"` Cookie *LoadBalancerCookie `json:"cookie,omitempty"` Header string `json:"header,omitempty"` SourceIp *bool `json:"source_ip,omitempty"` }
func (*LoadBalancer) DeepCopy ¶
func (in *LoadBalancer) DeepCopy() *LoadBalancer
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LoadBalancer.
func (*LoadBalancer) DeepCopyInto ¶
func (in *LoadBalancer) DeepCopyInto(out *LoadBalancer)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type LoadBalancerCookie ¶
type LoadBalancerCookie struct { // +kubebuilder:validation:Required Name string `json:"name,omitempty"` Path string `json:"path,omitempty"` Ttl string `json:"ttl,omitempty"` }
func (*LoadBalancerCookie) DeepCopy ¶
func (in *LoadBalancerCookie) DeepCopy() *LoadBalancerCookie
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LoadBalancerCookie.
func (*LoadBalancerCookie) DeepCopyInto ¶
func (in *LoadBalancerCookie) DeepCopyInto(out *LoadBalancerCookie)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type 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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Mapping.
func (*Mapping) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Mapping) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type MappingLabelGroup ¶
type MappingLabelGroup map[string]MappingLabelsArray
A MappingLabelGroup is a single element of a MappingLabelGroupsArray: a second map, where the key is a human-readable name that identifies the group.
+kubebuilder:validation:MinProperties=1 +kubebuilder:validation:MaxProperties=1
func (MappingLabelGroup) DeepCopy ¶
func (in MappingLabelGroup) DeepCopy() MappingLabelGroup
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MappingLabelGroup.
func (MappingLabelGroup) DeepCopyInto ¶
func (in MappingLabelGroup) DeepCopyInto(out *MappingLabelGroup)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type MappingLabelGroupsArray ¶
type MappingLabelGroupsArray []MappingLabelGroup
A MappingLabelGroupsArray is an array of MappingLabelGroups. I know, complex.
func (MappingLabelGroupsArray) DeepCopy ¶
func (in MappingLabelGroupsArray) DeepCopy() MappingLabelGroupsArray
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 ¶
func (in *MappingLabelSpecifier) DeepCopy() *MappingLabelSpecifier
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 ¶
func (in *MappingLabelSpecifier_DestinationCluster) DeepCopy() *MappingLabelSpecifier_DestinationCluster
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MappingLabelSpecifier_DestinationCluster.
func (*MappingLabelSpecifier_DestinationCluster) DeepCopyInto ¶
func (in *MappingLabelSpecifier_DestinationCluster) DeepCopyInto(out *MappingLabelSpecifier_DestinationCluster)
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 ¶
func (in *MappingLabelSpecifier_GenericKey) DeepCopy() *MappingLabelSpecifier_GenericKey
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MappingLabelSpecifier_GenericKey.
func (*MappingLabelSpecifier_GenericKey) DeepCopyInto ¶
func (in *MappingLabelSpecifier_GenericKey) DeepCopyInto(out *MappingLabelSpecifier_GenericKey)
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 ¶
func (in *MappingLabelSpecifier_RemoteAddress) DeepCopy() *MappingLabelSpecifier_RemoteAddress
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MappingLabelSpecifier_RemoteAddress.
func (*MappingLabelSpecifier_RemoteAddress) DeepCopyInto ¶
func (in *MappingLabelSpecifier_RemoteAddress) DeepCopyInto(out *MappingLabelSpecifier_RemoteAddress)
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 ¶
func (in *MappingLabelSpecifier_RequestHeaders) DeepCopy() *MappingLabelSpecifier_RequestHeaders
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MappingLabelSpecifier_RequestHeaders.
func (*MappingLabelSpecifier_RequestHeaders) DeepCopyInto ¶
func (in *MappingLabelSpecifier_RequestHeaders) DeepCopyInto(out *MappingLabelSpecifier_RequestHeaders)
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 ¶
func (in *MappingLabelSpecifier_SourceCluster) DeepCopy() *MappingLabelSpecifier_SourceCluster
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MappingLabelSpecifier_SourceCluster.
func (*MappingLabelSpecifier_SourceCluster) DeepCopyInto ¶
func (in *MappingLabelSpecifier_SourceCluster) DeepCopyInto(out *MappingLabelSpecifier_SourceCluster)
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 ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Module.
func (*Module) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Module) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
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 ¶
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 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 ¶
func (in *RateLimitServiceList) DeepCopy() *RateLimitServiceList
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 ¶
func (in *RateLimitServiceSpec) DeepCopy() *RateLimitServiceSpec
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RegexMap.
func (*RegexMap) DeepCopyInto ¶
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 ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TLSConfig.
func (*TLSConfig) DeepCopyInto ¶
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"` 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
func (in *TracingCustomTagTypeEnvironment) DeepCopy() *TracingCustomTagTypeEnvironment
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TracingCustomTagTypeEnvironment.
func (*TracingCustomTagTypeEnvironment) DeepCopyInto ¶ added in v3.2.0
func (in *TracingCustomTagTypeEnvironment) DeepCopyInto(out *TracingCustomTagTypeEnvironment)
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
func (in *TracingCustomTagTypeLiteral) DeepCopy() *TracingCustomTagTypeLiteral
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TracingCustomTagTypeLiteral.
func (*TracingCustomTagTypeLiteral) DeepCopyInto ¶ added in v3.2.0
func (in *TracingCustomTagTypeLiteral) DeepCopyInto(out *TracingCustomTagTypeLiteral)
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
func (in *TracingCustomTagTypeRequestHeader) DeepCopy() *TracingCustomTagTypeRequestHeader
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TracingCustomTagTypeRequestHeader.
func (*TracingCustomTagTypeRequestHeader) DeepCopyInto ¶ added in v3.2.0
func (in *TracingCustomTagTypeRequestHeader) DeepCopyInto(out *TracingCustomTagTypeRequestHeader)
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.
Source Files ¶
- common.go
- crd_authservice.go
- crd_devportal.go
- crd_host.go
- crd_listener.go
- crd_logservice.go
- crd_mapping.go
- crd_module.go
- crd_ratelimitservice.go
- crd_resolver.go
- crd_tcpmapping.go
- crd_tlscontext.go
- crd_tracingservice.go
- doc.go
- handwritten.enum.go
- zz_generated.conversion-hub.go
- zz_generated.deepcopy.go