Skip to content

Conversation

@alespour
Copy link
Contributor

@alespour alespour commented Dec 1, 2025

This PR provides Helm chart for InfluxDB3 Enterprise. Components (ingesters, compactor, queriers and processin engines)
run in full isolation.

Notes:

  • Authentication for /health endpoint is disabled by default for simpler probes configuration
  • Shared options is wired into containers via env vars in configmap
  • Component specific options are wired as env vars directly
  • HA: topology spread not implemented (not sure if in-scope/requested)

Needs clarification:

  • Can compactor run in multiple replicas, or is single replica a hard requirement? As of now, only single replica can run.
  • Is it desirable to pass all influxdb3 options via environment variables, which would allow omitting the command: entry and relying on the default image entrypoint?

Core Templates

  • configmap.yaml - Non-sensitive shared configuration (cluster settings, storage config, resource limits) for all pods
  • serviceaccount.yaml - Kubernetes identity for InfluxDB pods to interact with the cluster API

Secrets

  • secret-object-storage.yaml - Credentials (access keys, service accounts) for accessing S3/Azure/GCS object storage
  • secret-license.yaml - InfluxDB Enterprise license information (email or license file) required for activation
  • secret-tls.yaml - Optional TLS certificates for secure ingress connections

StatefulSets

  • ingester-statefulset.yaml - Deploys ingester nodes with persistent WAL storage for handling data writes
  • querier-statefulset.yaml - Deploys querier nodes
  • compactor-statefulset.yaml - Deploys single compactor node for background data optimization (merging small Parquet files)
  • processor-statefulset.yaml - Optionally deploys Processing Engine nodes for running custom Python plugins

Services

  • ingester-service.yaml - Load balances write traffic across multiple ingester pods
  • querier-service.yaml - Load balances query traffic across multiple querier pods
  • compactor-service.yaml - Provides internal access for compactor metrics and health checks (no external traffic)
  • processor-service.yaml - Provides access to processor pods for metrics, health checks, and HTTP-triggered plugins

Ingress

  • ingress-write.yaml - Routes external write traffic to the ingester service
  • ingress-query.yaml - Routes external query traffic to the querier service
  • ingress-processor.yaml - Optionally routes external HTTP requests to Processing Engine plugins

Storage

  • pvc-object-storage.yaml - PersistentVolumeClaim for file-based object storage (requires RWX storage class)

Security & Monitoring

  • networkpolicy.yaml - Optional network policies to restrict traffic between components and external access
  • servicemonitor.yaml - Optional Prometheus Operator resources for automated metrics collection from all components
  • pdb.yaml - Pod Disruption Budgets for high availability during node maintenance

@alespour alespour marked this pull request as ready for review December 1, 2025 10:54
@alespour alespour requested a review from srebhan December 2, 2025 09:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants