Documentation ¶
Overview ¶
+k8s:deepcopy-gen=package +groupName=networking.internal.knative.dev
Index ¶
- Constants
- Variables
- func Kind(kind string) schema.GroupKind
- func Resource(resource string) schema.GroupResource
- type ClusterIngress
- func (in *ClusterIngress) DeepCopy() *ClusterIngress
- func (in *ClusterIngress) DeepCopyInto(out *ClusterIngress)
- func (in *ClusterIngress) DeepCopyObject() runtime.Object
- func (ci *ClusterIngress) GetGroupVersionKind() schema.GroupVersionKind
- func (ci *ClusterIngress) IsPublic() bool
- func (c *ClusterIngress) SetDefaults()
- func (ci *ClusterIngress) Validate() *apis.FieldError
- type ClusterIngressBackend
- type ClusterIngressBackendSplit
- type ClusterIngressList
- type ClusterIngressRule
- type ClusterIngressTLS
- type HTTPClusterIngressPath
- type HTTPClusterIngressRuleValue
- type HTTPRetry
- type IngressSpec
- type IngressStatus
- func (in *IngressStatus) DeepCopy() *IngressStatus
- func (in *IngressStatus) DeepCopyInto(out *IngressStatus)
- func (cis *IngressStatus) GetCondition(t duckv1alpha1.ConditionType) *duckv1alpha1.Condition
- func (cis *IngressStatus) GetConditions() duckv1alpha1.Conditions
- func (cis *IngressStatus) InitializeConditions()
- func (cis *IngressStatus) IsReady() bool
- func (cis *IngressStatus) MarkLoadBalancerReady(lbs []LoadBalancerIngressStatus)
- func (cis *IngressStatus) MarkNetworkConfigured()
- func (cis *IngressStatus) MarkResourceNotOwned(kind, name string)
- func (cis *IngressStatus) SetConditions(conditions duckv1alpha1.Conditions)
- type IngressVisibility
- type LoadBalancerIngressStatus
- type LoadBalancerStatus
Constants ¶
const ( // DefaultTimeout will be set if timeout not specified. DefaultTimeout = 10 * time.Minute // DefaultRetryCount will be set if Attempts not specified. DefaultRetryCount = 3 )
const ( // ClusterIngressConditionReady is set when the clusterIngress networking setting is // configured and it has a load balancer address. ClusterIngressConditionReady = duckv1alpha1.ConditionReady // ClusterIngressConditionNetworkConfigured is set when the ClusterIngress's underlying // network programming has been configured. This doesn't include conditions of the // backends, so even if this should remain true when network is configured and backends // are not ready. ClusterIngressConditionNetworkConfigured duckv1alpha1.ConditionType = "NetworkConfigured" // ClusterIngressConditionLoadBalancerReady is set when the ClusterIngress has // a ready LoadBalancer. ClusterIngressConditionLoadBalancerReady duckv1alpha1.ConditionType = "LoadBalancerReady" )
ConditionType represents a ClusterIngress condition value
Variables ¶
var ( SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes) AddToScheme = SchemeBuilder.AddToScheme )
var SchemeGroupVersion = schema.GroupVersion{Group: networking.GroupName, Version: "v1alpha1"}
SchemeGroupVersion is group version used to register these objects
Functions ¶
func Resource ¶
func Resource(resource string) schema.GroupResource
Resource takes an unqualified resource and returns a Group qualified GroupResource
Types ¶
type ClusterIngress ¶
type ClusterIngress struct { metav1.TypeMeta `json:",inline"` // Standard object's metadata. // More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata // +optional metav1.ObjectMeta `json:"metadata,omitempty"` // Spec is the desired state of the ClusterIngress. // More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status // +optional Spec IngressSpec `json:"spec,omitempty"` // Status is the current state of the ClusterIngress. // More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status // +optional Status IngressStatus `json:"status,omitempty"` }
ClusterIngress is a collection of rules that allow inbound connections to reach the endpoints defined by a backend. An ClusterIngress can be configured to give services externally-reachable urls, load balance traffic offer name based virtual hosting etc.
This is heavily based on K8s Ingress https://godoc.org/k8s.io/api/extensions/v1beta1#Ingress which some highlighted modifications.
func (*ClusterIngress) DeepCopy ¶
func (in *ClusterIngress) DeepCopy() *ClusterIngress
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterIngress.
func (*ClusterIngress) DeepCopyInto ¶
func (in *ClusterIngress) DeepCopyInto(out *ClusterIngress)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ClusterIngress) DeepCopyObject ¶
func (in *ClusterIngress) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*ClusterIngress) GetGroupVersionKind ¶
func (ci *ClusterIngress) GetGroupVersionKind() schema.GroupVersionKind
func (*ClusterIngress) IsPublic ¶
func (ci *ClusterIngress) IsPublic() bool
IsPublic returns whether the ClusterIngress should be exposed publicly.
func (*ClusterIngress) SetDefaults ¶
func (c *ClusterIngress) SetDefaults()
func (*ClusterIngress) Validate ¶
func (ci *ClusterIngress) Validate() *apis.FieldError
Validate inspects and validates ClusterIngress object.
type ClusterIngressBackend ¶
type ClusterIngressBackend struct { // Specifies the namespace of the referenced service. // // NOTE: This differs from K8s Ingress to allow routing to different namespaces. ServiceNamespace string `json:"serviceNamespace"` // Specifies the name of the referenced service. ServiceName string `json:"serviceName"` // Specifies the port of the referenced service. ServicePort intstr.IntOrString `json:"servicePort"` }
ClusterIngressBackend describes all endpoints for a given service and port.
func (*ClusterIngressBackend) DeepCopy ¶
func (in *ClusterIngressBackend) DeepCopy() *ClusterIngressBackend
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterIngressBackend.
func (*ClusterIngressBackend) DeepCopyInto ¶
func (in *ClusterIngressBackend) DeepCopyInto(out *ClusterIngressBackend)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (ClusterIngressBackend) Validate ¶
func (b ClusterIngressBackend) Validate() *apis.FieldError
Validate inspects the fields of the type ClusterIngressBackend to determine if they are valid.
type ClusterIngressBackendSplit ¶
type ClusterIngressBackendSplit struct { // Specifies the backend receiving the traffic split. ClusterIngressBackend `json:",inline"` // Specifies the split percentage, a number between 0 and 100. If // only one split is specified, we default to 100. // // NOTE: This differs from K8s Ingress to allow percentage split. Percent int `json:"percent,omitempty"` }
ClusterIngressBackend describes all endpoints for a given service and port.
func (*ClusterIngressBackendSplit) DeepCopy ¶
func (in *ClusterIngressBackendSplit) DeepCopy() *ClusterIngressBackendSplit
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterIngressBackendSplit.
func (*ClusterIngressBackendSplit) DeepCopyInto ¶
func (in *ClusterIngressBackendSplit) DeepCopyInto(out *ClusterIngressBackendSplit)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (ClusterIngressBackendSplit) Validate ¶
func (s ClusterIngressBackendSplit) Validate() *apis.FieldError
Validate inspects and validates HTTPClusterIngressPath object.
type ClusterIngressList ¶
type ClusterIngressList struct { metav1.TypeMeta `json:",inline"` // Standard object's metadata. // More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata // +optional metav1.ListMeta `json:"metadata,omitempty"` // Items is the list of ClusterIngress. Items []ClusterIngress `json:"items"` }
ClusterIngressList is a collection of ClusterIngress.
func (*ClusterIngressList) DeepCopy ¶
func (in *ClusterIngressList) DeepCopy() *ClusterIngressList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterIngressList.
func (*ClusterIngressList) DeepCopyInto ¶
func (in *ClusterIngressList) DeepCopyInto(out *ClusterIngressList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ClusterIngressList) DeepCopyObject ¶
func (in *ClusterIngressList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ClusterIngressRule ¶
type ClusterIngressRule struct { // Host is the fully qualified domain name of a network host, as defined // by RFC 3986. Note the following deviations from the "host" part of the // URI as defined in the RFC: // 1. IPs are not allowed. Currently a rule value can only apply to the // IP in the Spec of the parent ClusterIngress. // 2. The `:` delimiter is not respected because ports are not allowed. // Currently the port of an ClusterIngress is implicitly :80 for http and // :443 for https. // Both these may change in the future. // If the host is unspecified, the ClusterIngress routes all traffic based on the // specified ClusterIngressRuleValue. // If multiple matching Hosts were provided, the first rule will take precedent. // +optional Hosts []string `json:"hosts,omitempty"` // HTTP represents a rule to apply against incoming requests. If the // rule is satisfied, the request is routed to the specified backend. HTTP *HTTPClusterIngressRuleValue `json:"http,omitempty"` }
ClusterIngressRule represents the rules mapping the paths under a specified host to the related backend services. Incoming requests are first evaluated for a host match, then routed to the backend associated with the matching ClusterIngressRuleValue.
func (*ClusterIngressRule) DeepCopy ¶
func (in *ClusterIngressRule) DeepCopy() *ClusterIngressRule
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterIngressRule.
func (*ClusterIngressRule) DeepCopyInto ¶
func (in *ClusterIngressRule) DeepCopyInto(out *ClusterIngressRule)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ClusterIngressRule) SetDefaults ¶
func (r *ClusterIngressRule) SetDefaults()
func (*ClusterIngressRule) Validate ¶
func (r *ClusterIngressRule) Validate() *apis.FieldError
Validate inspects and validates ClusterIngressRule object.
type ClusterIngressTLS ¶
type ClusterIngressTLS struct { // Hosts are a list of hosts included in the TLS certificate. The values in // this list must match the name/s used in the tlsSecret. Defaults to the // wildcard host setting for the loadbalancer controller fulfilling this // ClusterIngress, if left unspecified. // +optional Hosts []string `json:"hosts,omitempty"` // SecretName is the name of the secret used to terminate SSL traffic. SecretName string `json:"secretName,omitempty"` // SecretNamespace is the namespace of the secret used to terminate SSL traffic. SecretNamespace string `json:"secretNamespace,omitempty"` // ServerCertificate identifies the certificate filename in the secret. // Defaults to `tls.cert`. // +optional ServerCertificate string `json:"serverCertificate,omitempty"` // PrivateKey identifies the private key filename in the secret. // Defaults to `tls.key`. // +optional PrivateKey string `json:"privateKey,omitempty"` }
ClusterIngressTLS describes the transport layer security associated with an ClusterIngress.
func (*ClusterIngressTLS) DeepCopy ¶
func (in *ClusterIngressTLS) DeepCopy() *ClusterIngressTLS
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterIngressTLS.
func (*ClusterIngressTLS) DeepCopyInto ¶
func (in *ClusterIngressTLS) DeepCopyInto(out *ClusterIngressTLS)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ClusterIngressTLS) SetDefaults ¶
func (t *ClusterIngressTLS) SetDefaults()
func (*ClusterIngressTLS) Validate ¶
func (t *ClusterIngressTLS) Validate() *apis.FieldError
Validate inspects and validates ClusterIngressTLS object.
type HTTPClusterIngressPath ¶
type HTTPClusterIngressPath struct { // Path is an extended POSIX regex as defined by IEEE Std 1003.1, // (i.e this follows the egrep/unix syntax, not the perl syntax) // matched against the path of an incoming request. Currently it can // contain characters disallowed from the conventional "path" // part of a URL as defined by RFC 3986. Paths must begin with // a '/'. If unspecified, the path defaults to a catch all sending // traffic to the backend. // +optional Path string `json:"path,omitempty"` // Splits defines the referenced service endpoints to which the traffic // will be forwarded to. Splits []ClusterIngressBackendSplit `json:"splits"` // AppendHeaders allow specifying additional HTTP headers to add // before forwarding a request to the destination service. // // NOTE: This differs from K8s Ingress which doesn't allow header appending. // +optional AppendHeaders map[string]string `json:"appendHeaders,omitempty"` // Timeout for HTTP requests. // // NOTE: This differs from K8s Ingress which doesn't allow setting timeouts. // +optional Timeout *metav1.Duration `json:"timeout,omitempty"` // Retry policy for HTTP requests. // // NOTE: This differs from K8s Ingress which doesn't allow retry settings. // +optional Retries *HTTPRetry `json:"retries,omitempty"` }
HTTPClusterIngressPath associates a path regex with a backend. Incoming urls matching the path are forwarded to the backend.
func (*HTTPClusterIngressPath) DeepCopy ¶
func (in *HTTPClusterIngressPath) DeepCopy() *HTTPClusterIngressPath
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HTTPClusterIngressPath.
func (*HTTPClusterIngressPath) DeepCopyInto ¶
func (in *HTTPClusterIngressPath) DeepCopyInto(out *HTTPClusterIngressPath)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*HTTPClusterIngressPath) SetDefaults ¶
func (p *HTTPClusterIngressPath) SetDefaults()
func (HTTPClusterIngressPath) Validate ¶
func (h HTTPClusterIngressPath) Validate() *apis.FieldError
Validate inspects and validates HTTPClusterIngressPath object.
type HTTPClusterIngressRuleValue ¶
type HTTPClusterIngressRuleValue struct { // A collection of paths that map requests to backends. // // If they are multiple matching paths, the first match takes precendent. Paths []HTTPClusterIngressPath `json:"paths"` }
HTTPClusterIngressRuleValue is a list of http selectors pointing to backends. In the example: http://<host>/<path>?<searchpart> -> backend where where parts of the url correspond to RFC 3986, this resource will be used to match against everything after the last '/' and before the first '?' or '#'.
func (*HTTPClusterIngressRuleValue) DeepCopy ¶
func (in *HTTPClusterIngressRuleValue) DeepCopy() *HTTPClusterIngressRuleValue
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HTTPClusterIngressRuleValue.
func (*HTTPClusterIngressRuleValue) DeepCopyInto ¶
func (in *HTTPClusterIngressRuleValue) DeepCopyInto(out *HTTPClusterIngressRuleValue)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*HTTPClusterIngressRuleValue) SetDefaults ¶
func (r *HTTPClusterIngressRuleValue) SetDefaults()
func (*HTTPClusterIngressRuleValue) Validate ¶
func (h *HTTPClusterIngressRuleValue) Validate() *apis.FieldError
Validate inspects and validates HTTPClusterIngressRuleValue object.
type HTTPRetry ¶
type HTTPRetry struct { // Number of retries for a given request. Attempts int `json:"attempts"` // Timeout per retry attempt for a given request. format: 1h/1m/1s/1ms. MUST BE >=1ms. PerTryTimeout *metav1.Duration `json:"perTryTimeout"` }
HTTPRetry describes the retry policy to use when a HTTP request fails.
func (*HTTPRetry) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HTTPRetry.
func (*HTTPRetry) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*HTTPRetry) Validate ¶
func (r *HTTPRetry) Validate() *apis.FieldError
Validate inspects and validates HTTPRetry object.
type IngressSpec ¶
type IngressSpec struct { // DeprecatedGeneration was used prior in Kubernetes versions <1.11 // when metadata.generation was not being incremented by the api server // // This property will be dropped in future Knative releases and should // not be used - use metadata.generation // // Tracking issue: https://github.com/knative/serving/issues/643 // // +optional DeprecatedGeneration int64 `json:"generation,omitempty"` // TLS configuration. Currently the ClusterIngress only supports a single TLS // port, 443. If multiple members of this list specify different hosts, they // will be multiplexed on the same port according to the hostname specified // through the SNI TLS extension, if the ingress controller fulfilling the // ingress supports SNI. // +optional TLS []ClusterIngressTLS `json:"tls,omitempty"` // A list of host rules used to configure the ClusterIngress. // +optional Rules []ClusterIngressRule `json:"rules,omitempty"` // Visibility setting. Visibility IngressVisibility `json:"visibility,omitempty"` }
IngressSpec describes the ClusterIngress the user wishes to exist.
In general this follow the same shape as K8s Ingress. Some notable differences: - Backends now can have namespace: - Traffic can be split across multiple backends. - Timeout & Retry can be configured. - Headers can be appended.
func (*IngressSpec) DeepCopy ¶
func (in *IngressSpec) DeepCopy() *IngressSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressSpec.
func (*IngressSpec) DeepCopyInto ¶
func (in *IngressSpec) DeepCopyInto(out *IngressSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*IngressSpec) SetDefaults ¶
func (c *IngressSpec) SetDefaults()
func (*IngressSpec) Validate ¶
func (spec *IngressSpec) Validate() *apis.FieldError
Validate inspects and validates IngressSpec object.
type IngressStatus ¶
type IngressStatus struct { // +optional Conditions duckv1alpha1.Conditions `json:"conditions,omitempty"` // LoadBalancer contains the current status of the load-balancer. // +optional LoadBalancer *LoadBalancerStatus `json:"loadBalancer,omitempty"` // ObservedGeneration is the 'Generation' of the ClusterIngress that // was last processed by the controller. The observed generation is updated // even if the controller failed to process the spec. // +optional ObservedGeneration int64 `json:"observedGeneration,omitempty"` }
IngressStatus describe the current state of the ClusterIngress.
func (*IngressStatus) DeepCopy ¶
func (in *IngressStatus) DeepCopy() *IngressStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressStatus.
func (*IngressStatus) DeepCopyInto ¶
func (in *IngressStatus) DeepCopyInto(out *IngressStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*IngressStatus) GetCondition ¶
func (cis *IngressStatus) GetCondition(t duckv1alpha1.ConditionType) *duckv1alpha1.Condition
func (*IngressStatus) GetConditions ¶
func (cis *IngressStatus) GetConditions() duckv1alpha1.Conditions
GetConditions returns the Conditions array. This enables generic handling of conditions by implementing the duckv1alpha1.Conditions interface.
func (*IngressStatus) InitializeConditions ¶
func (cis *IngressStatus) InitializeConditions()
func (*IngressStatus) IsReady ¶
func (cis *IngressStatus) IsReady() bool
IsReady looks at the conditions and if the Status has a condition ClusterIngressConditionReady returns true if ConditionStatus is True
func (*IngressStatus) MarkLoadBalancerReady ¶
func (cis *IngressStatus) MarkLoadBalancerReady(lbs []LoadBalancerIngressStatus)
MarkLoadBalancerReady marks the Ingress with ClusterIngressConditionLoadBalancerReady, and also populate the address of the load balancer.
func (*IngressStatus) MarkNetworkConfigured ¶
func (cis *IngressStatus) MarkNetworkConfigured()
func (*IngressStatus) MarkResourceNotOwned ¶
func (cis *IngressStatus) MarkResourceNotOwned(kind, name string)
MarkResourceNotOwned changes the "NetworkConfigured" condition to false to reflect that the resource of the given kind and name has already been created, and we do not own it.
func (*IngressStatus) SetConditions ¶
func (cis *IngressStatus) SetConditions(conditions duckv1alpha1.Conditions)
SetConditions sets the Conditions array. This enables generic handling of conditions by implementing the duckv1alpha1.Conditions interface.
type IngressVisibility ¶
type IngressVisibility string
IngressVisibility describes whether the Ingress should be exposed to public gateways or not.
const ( // IngressVisibilityExternalIP is used to denote that the Ingress // should be exposed to an external IP, for example a LoadBalancer // Service. This is the default value for IngressVisibility. IngressVisibilityExternalIP IngressVisibility = "ExternalIP" // IngressVisibilityClusterLocal is used to denote that the Ingress // should be only be exposed locally to the cluster. IngressVisibilityClusterLocal IngressVisibility = "ClusterLocal" )
type LoadBalancerIngressStatus ¶
type LoadBalancerIngressStatus struct { // IP is set for load-balancer ingress points that are IP based // (typically GCE or OpenStack load-balancers) // +optional IP string `json:"ip,omitempty"` // Domain is set for load-balancer ingress points that are DNS based // (typically AWS load-balancers) // +optional Domain string `json:"domain,omitempty"` // DomainInternal is set if there is a cluster-local DNS name to access the Ingress. // // NOTE: This differs from K8s Ingress, since we also desire to have a cluster-local // DNS name to allow routing in case of not having a mesh. // // +optional DomainInternal string `json:"domainInternal,omitempty"` // MeshOnly is set if the ClusterIngress is only load-balanced through a Service mesh. // +optional MeshOnly bool `json:"meshOnly,omitempty"` }
LoadBalancerIngress represents the status of a load-balancer ingress point: traffic intended for the service should be sent to an ingress point.
func (*LoadBalancerIngressStatus) DeepCopy ¶
func (in *LoadBalancerIngressStatus) DeepCopy() *LoadBalancerIngressStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LoadBalancerIngressStatus.
func (*LoadBalancerIngressStatus) DeepCopyInto ¶
func (in *LoadBalancerIngressStatus) DeepCopyInto(out *LoadBalancerIngressStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type LoadBalancerStatus ¶
type LoadBalancerStatus struct { // Ingress is a list containing ingress points for the load-balancer. // Traffic intended for the service should be sent to these ingress points. // +optional Ingress []LoadBalancerIngressStatus `json:"ingress,omitempty"` }
LoadBalancerStatus represents the status of a load-balancer.
func (*LoadBalancerStatus) DeepCopy ¶
func (in *LoadBalancerStatus) DeepCopy() *LoadBalancerStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LoadBalancerStatus.
func (*LoadBalancerStatus) DeepCopyInto ¶
func (in *LoadBalancerStatus) DeepCopyInto(out *LoadBalancerStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.