![]() |
VOOZH | about |
Ingress is a critical component of your BYOC (Bring Your Own Cloud) Logs deployment. The Helm chart automatically creates two ingress configurations called public ingress and internal ingress. If the AWS Load Balancer Controller is installed on the cluster, it provisions one ALB per ingress configuration. Each load balancer can be further configured using ingress annotations.
/cloudprem) perform mutual TLS authentication. Exposing any other endpoints through the public ingress introduces a security risk, as those endpoints would be accessible over the internet without authentication. Always restrict non-gRPC endpoints to the internal ingress.The public ingress is essential for enabling Datadog’s control plane and query service to manage and query BYOC Logs clusters over the public internet. It provides secure access to the BYOC Logs gRPC API through the following mechanisms:
X-Amzn-Mtls-Clientcert headerThis setup ensures that only authenticated Datadog services can access the BYOC Logs cluster while maintaining secure encrypted communication end-to-end.
The Datadog control plane and query services connect to BYOC Logs clusters using a set of fixed IP ranges, which can be retrieved for each Datadog site from the Datadog IP Ranges API, specifically under the “webhooks” section. For example, to fetch the IP ranges for the datadoghq.eu site, you can run:
curl -X GET "https://ip-ranges.datadoghq.eu/" \
-H "Accept: application/json" |
jq '.webhooks'
The internal ingress enables log ingestion from Datadog Agents and other log collectors within your environment through HTTP.
By default, the chart creates an internal AWS Application Load Balancer (ALB) to route HTTP traffic to the appropriate BYOC Logs services based on the requested API endpoint path. However, if you prefer to use your own ingress controller (such as HAProxy, NGINX, or Traefik), you can disable the default internal ALB and configure your controller with the following routing rules:
rules:
- http:
paths:
# Ingest (Quickwit, ES, Datadog) endpoints to indexers
- path: /api/v1/*/ingest
pathType: ImplementationSpecific
backend:
service:
name: <RELEASE_NAME>-indexer
port:
name: rest
- path: /api/v1/_elastic/bulk
pathType: Prefix
backend:
service:
name: <RELEASE_NAME>-indexer
port:
name: rest
- path: /api/v1/_elastic/*/_bulk
pathType: ImplementationSpecific
backend:
service:
name: <RELEASE_NAME>-indexer
port:
name: rest
- path: /api/v2/logs
pathType: Prefix
backend:
service:
name: <RELEASE_NAME>-indexer
port:
name: rest
# Index management API endpoints to metastores
- path: /api/v1/indexes
pathType: Prefix
backend:
service:
name: <RELEASE_NAME>-metastore
port:
name: rest
# Everything else to searchers
- path: /*
pathType: ImplementationSpecific
backend:
service:
name: <RELEASE_NAME>-searcher
port:
name: rest
Additional helpful documentation, links, and articles:
| |