networking.internal.knative.dev / v1alpha1 / Ingress
- string
.apiVersion
APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
- string
.kind
Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
- object
.metadata
- object
.spec
Spec is the desired state of the Ingress. More info: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
- string
.spec .httpOption
HTTPOption is the option of HTTP. It has the following two values:
HTTPOptionEnabled
,HTTPOptionRedirected
- array
.spec .rules
A list of host rules used to configure the Ingress.
- array
.spec .rules[] .hosts
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:
- IPs are not allowed. Currently a rule value can only apply to the IP in the Spec of the parent .
- The
:
delimiter is not respected because ports are not allowed. Currently the port of an Ingress is implicitly :80 for http and :443 for https. Both these may change in the future. If the host is unspecified, the Ingress routes all traffic based on the specified IngressRuleValue. If multiple matching Hosts were provided, the first rule will take precedent.
- object
.spec .rules[] .http
HTTP represents a rule to apply against incoming requests. If the rule is satisfied, the request is routed to the specified backend.
- array required
.spec .rules[] .http .paths
A collection of paths that map requests to backends.
If they are multiple matching paths, the first match takes precedence.
- object
.spec .rules[] .http .paths[] .appendHeaders
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.
- object
.spec .rules[] .http .paths[] .headers
Headers defines header matching rules which is a map from a header name to HeaderMatch which specify a matching condition. When a request matched with all the header matching rules, the request is routed by the corresponding ingress rule. If it is empty, the headers are not used for matching
- string
.spec .rules[] .http .paths[] .path
Path represents a literal prefix to which this rule should apply. 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.
- string
.spec .rules[] .http .paths[] .rewriteHost
RewriteHost rewrites the incoming request’s host header.
This field is currently experimental and not supported by all Ingress implementations.
- array required
.spec .rules[] .http .paths[] .splits
Splits defines the referenced service endpoints to which the traffic will be forwarded to.
- object
.spec .rules[] .http .paths[] .splits[] .appendHeaders
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.
- integer
.spec .rules[] .http .paths[] .splits[] .percent
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.
- string required
.spec .rules[] .http .paths[] .splits[] .serviceName
Specifies the name of the referenced service.
- string required
.spec .rules[] .http .paths[] .splits[] .serviceNamespace
Specifies the namespace of the referenced service.
NOTE: This differs from K8s Ingress to allow routing to different namespaces.
- integer | string required
.spec .rules[] .http .paths[] .splits[] .servicePort
Specifies the port of the referenced service.
- string
.spec .rules[] .visibility
Visibility signifies whether this rule should
ClusterLocal
. If it’s not specified then it defaults toExternalIP
. - array
.spec .tls
TLS configuration. Currently Ingress 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.
- array
.spec .tls[] .hosts
Hosts is 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 Ingress, if left unspecified.
- string
.spec .tls[] .secretName
SecretName is the name of the secret used to terminate SSL traffic.
- string
.spec .tls[] .secretNamespace
SecretNamespace is the namespace of the secret used to terminate SSL traffic. If not set the namespace should be assumed to be the same as the Ingress. If set the secret should have the same namespace as the Ingress otherwise the behaviour is undefined and not supported.
- object
.status
Status is the current state of the Ingress. More info: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
- object
.status .annotations
Annotations is additional Status fields for the Resource to save some additional State as well as convey more information to the user. This is roughly akin to Annotations on any k8s resource, just the reconciler conveying richer information outwards.
- array
.status .conditions
Conditions the latest available observations of a resource’s current state.
- string
.status .conditions[] .lastTransitionTime
LastTransitionTime is the last time the condition transitioned from one status to another. We use VolatileTime in place of metav1.Time to exclude this from creating equality.Semantic differences (all other things held constant).
- string
.status .conditions[] .message
A human readable message indicating details about the transition.
- string
.status .conditions[] .reason
The reason for the condition’s last transition.
- string
.status .conditions[] .severity
Severity with which to treat failures of this type of condition. When this is not specified, it defaults to Error.
- string required
.status .conditions[] .status
Status of the condition, one of True, False, Unknown.
- string required
.status .conditions[] .type
Type of condition.
- integer
.status .observedGeneration
ObservedGeneration is the ‘Generation’ of the Service that was last processed by the controller.
- object
.status .privateLoadBalancer
PrivateLoadBalancer contains the current status of the load-balancer.
- array
.status .privateLoadBalancer .ingress
Ingress is a list containing ingress points for the load-balancer. Traffic intended for the service should be sent to these ingress points.
- string
.status .privateLoadBalancer .ingress[] .domain
Domain is set for load-balancer ingress points that are DNS based (typically AWS load-balancers)
- string
.status .privateLoadBalancer .ingress[] .domainInternal
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.
- string
.status .privateLoadBalancer .ingress[] .ip
IP is set for load-balancer ingress points that are IP based (typically GCE or OpenStack load-balancers)
- boolean
.status .privateLoadBalancer .ingress[] .meshOnly
MeshOnly is set if the Ingress is only load-balanced through a Service mesh.
- object
.status .publicLoadBalancer
PublicLoadBalancer contains the current status of the load-balancer.
- array
.status .publicLoadBalancer .ingress
Ingress is a list containing ingress points for the load-balancer. Traffic intended for the service should be sent to these ingress points.
- string
.status .publicLoadBalancer .ingress[] .domain
Domain is set for load-balancer ingress points that are DNS based (typically AWS load-balancers)
- string
.status .publicLoadBalancer .ingress[] .domainInternal
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.
- string
.status .publicLoadBalancer .ingress[] .ip
IP is set for load-balancer ingress points that are IP based (typically GCE or OpenStack load-balancers)
- boolean
.status .publicLoadBalancer .ingress[] .meshOnly
MeshOnly is set if the Ingress is only load-balanced through a Service mesh.