Configure Nginx Ingress
An ingress controller is required for external access to the Kloudfuse cluster. For HTTPS and TLS configuration, see HTTPS/TLS Setup.
X-Request-ID Forwarding
The bundled ingress-nginx controller forwards a request-correlation header to Kloudfuse automatically. If you disable it (see the Disable option below) and run your own NGINX controller — for example the standalone setup in Standalone Nginx Ingress — you must reproduce this configuration yourself.
|
Kloudfuse expects every request that reaches its services to carry an
If you run your own NGINX ingress configuration, add the following to the
controller so it preserves an incoming |
controller:
# Forward X-Request-ID to all backends.
proxySetHeaders:
X-Request-ID: $kf_req_id
config:
# Keep generate-request-id at its default ("true"). The built-in $req_id is
# used by the auth subrequest and error pages; disabling it leaves those with
# an empty X-Request-ID when the incoming header is missing.
generate-request-id: "true"
http-snippet: |
# Preserve incoming X-Request-ID; generate one (via the core $request_id,
# which is always present) when the header is missing.
map $http_x_request_id $kf_req_id {
default $http_x_request_id;
"" $request_id;
}
Ingress Internal Annotations
By default, the ingress internal service is disabled. If you enable it, you must annotate it with cloud-specific values.
Include one of these configurations in your custom_values.yaml file:
The internal ingress service must be annotated with Google’s load balancer information.
Update the custom_values.yaml with this configuration:
ingress-nginx:
controller:
service:
internal:
enabled: true
annotations:
networking.gke.io/load-balancer-type: "Internal"
cloud.google.com/load-balancer-type: "Internal"
The internal ingress service must be annotated with AWS load balancer information.
Update the custom_values.yaml with this configuration:
ingress-nginx:
controller:
service:
internal:
enabled: true
annotations:
service.beta.kubernetes.io/aws-load-balancer-internal: "true"
To ensure that Kloudfuse is available on a public endpoint, create a public IP address in the same resource group as the AKS cluster. Add inbound security rules for HTTP and HTTPS as required.
The internal ingress service must be annotated with Azure load balancer information.
Update the custom_values.yaml with this configuration:
ingress-nginx:
controller:
service:
loadBalancerIP: "<<PUBLIC IP ADDRESS>>"
externalTrafficPolicy: "Local"
internal:
enabled: true
annotations:
service.beta.kubernetes.io/azure-load-balancer-internal: "true"
On Azure, you must disable TLS verification for the observability agent.
Update the custom_values.yaml with this configuration:
kfuse-observability-agent:
datadog:
datadog:
kubelet:
tlsVerify: false
In some cases, having the Kloudfuse installed Nginx Ingress is not preferred.
Update the custom_values.yaml with this configuration:
ingress-nginx:
enabled: false