InfluxDB Clustered release notes
Checkpoint releases
Some InfluxDB Clustered releases are checkpoint releases that introduce a breaking change to an InfluxDB component. When upgrading InfluxDB Clustered, always upgrade to each checkpoint release first, before proceeding to newer versions.
Checkpoint releases are only made when absolutely necessary and are clearly identified below with the icon.
20250925-1878107
Quickstart
spec:
package:
image: us-docker.pkg.dev/influxdb2-artifacts/clustered/influxdb:20250925-1878107Release artifacts
Highlights
Rename and undelete tables
Tables can now be renamed and undeleted with influxctl v2.10.5 or later.
To enable hard delete of soft-deleted namespaces:
- Set
INFLUXDB_IOX_ENABLE_NAMESPACE_ROW_DELETIONtotrue. - If needed, adjust how long a namespace remains soft-deleted (and eligible for undeletion) by setting
INFLUXDB_IOX_GC_NAMESPACE_CUTOFF(default:14d) - If needed, adjust how long the garbage collector should sleep between runs of the namespace deletion task with
INFLUXDB_IOX_GC_NAMESPACE_SLEEP_INTERVALThe default is24hwhich should be suitable for ongoing cleanup, but if there is a backlog of soft-deleted namespaces to clean up, you may want to run this more frequently until the garbage collector has caught up. - If needed, adjust the maximum number of namespaces that will get hard deleted in one run of the namespace deletion task with
INFLUXDB_IOX_GC_NAMESPACE_LIMITThe default is1000which should be suitable for ongoing cleanup, but if you have a large number of namespaces and you’re running the task very frequently, you may need to lower this to delete fewer records per run if each individual run is timing out.
To enable hard delete of soft-deleted tables in active namespaces (soft-deleted tables in soft-deleted namespaces get cleaned up when the namespace gets cleaned up):
- Set
INFLUXDB_IOX_ENABLE_TABLE_ROW_DELETIONtotrue, and if needed, adjust these settings that work in the same way as the corresponding namespace flags:INFLUXDB_IOX_GC_TABLE_CUTOFF(default:14d)INFLUXDB_IOX_GC_TABLE_SLEEP_INTERVAL(default:24h)INFLUXDB_IOX_GC_TABLE_LIMIT(default:1000)
Changes
- Update Prometheus to
2.55.1.
Database Engine
- Update DataFusion to
49. - Improve performance of retention checking and reduce memory impact of Data Snapshots.
Known Bugs
Customers who specify the S3 bucket in spec.package.spec.objectStore.s3.endpoint
(for example: “https://$BUCKET.$REGION.amazonaws.com”) and the bucket in
spec.package.spec.objectStore.bucket need to disable the
CATALOG_BACKUP_DATA_SNAPSHOT feature:
spec:
package:
spec:
+ components:
+ garbage-collector:
+ template:
+ containers:
+ iox:
+ env:
+ INFLUXDB_IOX_CREATE_CATALOG_BACKUP_DATA_SNAPSHOT_FILES: 'false'
+ INFLUXDB_IOX_DELETE_USING_CATALOG_BACKUP_DATA_SNAPSHOT_FILES: 'false'20250814-1819052
Quickstart
spec:
package:
image: us-docker.pkg.dev/influxdb2-artifacts/clustered/influxdb:20250814-1819052Release artifacts
Bug Fixes
- Fix incorrect service address for tokens in Clustered auth sidecar. If you were overriding the
AUTHZ_TOKEN_SVC_ADDRESSenvironment variable in yourAppInstance, you can now remove that override. - Remove default
fallbackScrapeProtocolenvironment variable for prometheus-operator. - Update Grafana to
12.1.1to address CVE-2025-6023 and CVE-2025-6197.
Changes
Database Engine
- Update DataFusion to v48.
- Tweak compaction to reduce write amplification and querier cache churn in some circumstances.
20250721-1796368
Quickstart
spec:
package:
image: us-docker.pkg.dev/influxdb2-artifacts/clustered/influxdb:20250721-1796368Release artifacts
Highlights
Support for InfluxQL INTEGRAL()
InfluxQL INTEGRAL() function is now supported in the InfluxDB 3.0 database engine.
Bug Fixes
- Fix
SHOW TABLEStimeout when a database has a large number of tables.
20250707-1777929
Quickstart
spec:
package:
image: us-docker.pkg.dev/influxdb2-artifacts/clustered/influxdb:20250707-1777929Release artifacts
Highlights
Database rename and undelete
Databases can now be renamed and undeleted with influxctl v2.10.2 or later.
Table delete and list
Tables can now be deleted and listed with influxctl v2.10.2 or later.
Faster ingester recovery
Persist queue workers now scale up when the queue is saturated to allow ingesters to get through the backlog quickly and restore write availability.
Changes
Database Engine
- Update DataFusion to
47and Apache Arrow to55.
20250618-1758428
Quickstart
spec:
package:
image: us-docker.pkg.dev/influxdb2-artifacts/clustered/influxdb:20250618-1758428Release artifacts
Bug Fixes
- Update Grafana to
12.0.1-security-01to address CVE-2025-3415, CVE-2025-4123, and CVE-2025-3580.
Changes
Database Engine
- Update DataFusion to
45and Apache Arrow to54.
20250613-1754010
Quickstart
spec:
package:
image: us-docker.pkg.dev/influxdb2-artifacts/clustered/influxdb:20250613-1754010Release artifacts
Bug Fixes
- Remove default CPU and memory limits for the Catalog service and Prometheus.
- Add time formatting checks to reject invalid custom partitioning requests.
- Ensure that an incorrect backup is not created when
pg_dumperrs during data snapshot backups.
Changes
Deployment
- Add support for Prometheus v3 when using the observability feature.
- Refresh dependencies to address security vulnerabilities and improve stability.
Configuration
Change the default of
INFLUXDB_IOX_CREATE_CATALOG_BACKUP_INTERVALfrom1hto4h.Introduce the following environment variables to help in cases where the object store is large enough that the garbage collector cannot keep up when cleaning obsolete objects:
INFLUXDB_IOX_GC_PRIMARY_OBJECTSTORE_PARTITIONSINFLUXDB_IOX_GC_SECONDARY_OBJECTSTORE_PARTITIONS
Increasing these settings will add load to the object store and should not be modified unnecessarily.
20250508-1719206
Quickstart
spec:
package:
image: us-docker.pkg.dev/influxdb2-artifacts/clustered/influxdb:20250508-1719206Release artifacts
Changes
Deployment
- Expose the v0 REST API for the management and authorization service (Granite).
Database Engine
- Reuse database names after deletion.
- Create database tokens with expiration dates.
- Revoke database tokens rather than deleting them.
20250212-1570743
Quickstart
spec:
package:
image: us-docker.pkg.dev/influxdb2-artifacts/clustered/influxdb:20250212-1570743Release artifacts
Bug Fixes
This release fixes a bug in the 20241217-1494922 release where the default Prometheus CPU limit was set to an integer instead of a string.
Changes
Deployment
- Expose the Prometheus
retentionperiod to let users set a custom retention period for Prometheus metrics.
Database Engine
- Upgrade DataFusion
- Add the ability to restore a cluster from a Catalog store snapshot.
20241217-1494922
Quickstart
spec:
package:
image: us-docker.pkg.dev/influxdb2-artifacts/clustered/influxdb:20241217-1494922Release artifacts
Bug Fixes
This fixes a bug present in release 20241024-1354148, in
which core pods used an invalid DSN (omitting the ? in the query string)
when attempting to connect to PostgreSQL. core pods now properly populate the
DSN before connecting.
Changes
Deployment
- Entitlements associated with a
LicenseCustom Resource (CR), including the license expiration date, are now exposed in theentitlementsproperty of that CR’sspec. - Reduced default log level from
debugtoinfoin auth sidecar.
Database Engine
- Datafusion upgrades
- Upgrade Rust to 1.83.0
20241024-1354148
Quickstart
spec:
package:
image: us-docker.pkg.dev/influxdb2-artifacts/clustered/influxdb:20241022-1346953Release artifacts
Known Bugs
core service DSN parsing errors
This release has a known bug in the core pods with respect to handling of
options in Postgres DSNs. This bug can be seen in the core-MMMMMMMMMM-NNNNN
logs that look like the following:
2024-11-04T01:00:00.000Z | 3: error returned from database: database "influxdb&options=-c%20search_path=" does not exist
2024-11-04T01:00:19.000Z | 4: database "influxdb&options=-c%20search_path=" does not existDue to incorrect parsing of the
POSTGRES_DSN environment variable, the influxdb&options=-c%20search_path= string is
interpreted as the database name.
To work around this bug, in your AppInstance,
include a spec.package.spec.images.overrides section to override the
core pods built-in image with an image that has the bugfix for the DSN
parsing error–for example:
apiVersion: kubecfg.dev/v1alpha1
kind: AppInstance
metadata:
name: influxdb
namespace: influxdb
spec:
package:
image: us-docker.pkg.dev/influxdb2-artifacts/clustered/influxdb:20241024-1354148
apiVersion: influxdata.com/v1alpha1
spec:
images:
overrides:
- name: 'influxdb2-artifacts/granite/granite'
newFQIN: 'us-docker.pkg.dev/influxdb2-artifacts/granite/granite:7acf9ca6e1ad15db80b22cd0bc071acdb561eb51'
# ...[remaining configuration]clustered-auth service routes to removed gateway service instead of core service
If you have the clusteredAuth feature flag enabled, the clustered-auth service will be deployed.
The service currently routes to the recently removed gateway service instead of the new core service.
Temporary workaround for service routing
Until you upgrade to release 20250805-1812019, you need to override the clustered-auth
service to point to the new core service by adding the following env overrides to your AppInstance:
apiVersion: kubecfg.dev/v1alpha1
kind: AppInstance
metadata:
name: influxdb
namespace: influxdb
spec:
package:
image: us-docker.pkg.dev/influxdb2-artifacts/clustered/influxdb:20241024-1354148
apiVersion: influxdata.com/v1alpha1
spec:
components:
querier:
template:
containers:
clustered-auth:
env:
AUTHZ_TOKEN_SVC_ADDRESS: 'http://core:8091/'
router:
template:
containers:
clustered-auth:
env:
AUTHZ_TOKEN_SVC_ADDRESS: 'http://core:8091/'
# ...remaining configuration...Highlights
AppInstance image override bug fix
In 20240925-1257864, the AppInstance image override was broken with the introduction of strict always-on license enforcement. This release fixes that bug.
This bug is expected to have an outsized impact on customers running InfluxDB Clustered in air-gapped environments where the deployment model involves overriding the default image repository to point to images copied to an air-gapped registry.
This release is an alternative to 20240925-1257864 for customers who depend on this image override feature.
Upgrade bug fix
20240925-1257864 introduced a schema migration bug that
caused an init container in the account Pods to hang indefinitely.
This would only affect InfluxDB Clustered during an upgrade; not a fresh install.
The 20240925-1257864 release has been removed from the release notes, but
relevant updates are included as part of this 20241024-1354148 release.
For customers who experience this bug when attempting to upgrade to 20240925-1257864, upgrade to this 20241024-1354148 instead.
Default to partial write semantics
In InfluxDB Clustered 20240925-1257864+, “partial writes” are enabled by default. With partial writes enabled, InfluxDB accepts write requests with invalid or malformed lines of line protocol and successfully write valid lines and rejects invalid lines. Previously, if any line protocol in a batch was invalid, the entire batch was rejected and no data was written.
To disable partial writes and revert back to the previous behavior, set the
INFLUXDB_IOX_PARTIAL_WRITES_ENABLED environment variable on your cluster’s
Ingester to false. Define this environment variable in the
spec.package.spec.components.ingester.template.containers.iox.env property in
your AppInstance resource.
For more information about defining variables in your InfluxDB cluster, see Manage environment variables in your InfluxDB Cluster.
Write API behaviors
When submitting a write request that includes invalid or malformed line protocol, The InfluxDB write API returns a 400 response code and does the following:
With partial writes enabled:
- Writes all valid points and rejects all invalid points.
- Includes details about the rejected points (up to 100 points) in the response body.
With partial writes disabled:
- Rejects all points in the batch.
- Includes an error message and the first malformed line of line protocol in the response body.
Deploy and use the Catalog service by default
The Catalog service is a new IOx component that centralizes access to the InfluxDB Catalog among Ingesters, Queriers, Compactors, and Garbage Collectors. This is expected to improve Catalog query performance overall with an expected drop in ninety-ninth percentile (p99) latencies.
Upgrade notes
License now required
A valid license token is now required to start up your InfluxDB Cluster. To avoid possible complications, ensure you have a valid license token. If you do not, contact your InfluxData sales representative to get a license token before upgrading to this release.
Removed prometheusOperator feature flag
The prometheusOperator feature flag has been removed.
If you current have this feature flag enabled in your AppInstance resource,
remove it before upgrading to this release.
This flag was deprecated in a previous release, but from this release forward,
enabling this feature flag may cause errors.
The installation of the Prometheus operator should be handled externally.
Changes
Deployment
- Enable overriding the default CPU and memory resource requests and limits for the Garbage collector and Catalog services.
- Remove the Gateway service and implement the newly introduced Core service.
- Fix logic related to applying default resource limits for IOx components.
- Support
ResourceQuotas with theenableDefaultResourceLimitsfeature flag. This causes resource limits to be applied even to containers that don’t normally have limits applied. - Introduces the
nodeAffinityand CPU/Memory requests setting for “granite” components. Previously, these settings were only available for core IOx components. - Prior to this release, many of the IOx dashboards deployed with the
grafanafeature flag were showing “no data.” This has been fixed and now all dashboards should display actual data.
Database Engine
- Adjusted compactor concurrency scaling heuristic to improve performance as memory and CPU scale.
- Adjusted default
INFLUXDB_IOX_COMPACTION_PARTITION_MINUTE_THRESHOLDfrom20mto100mto help compactor more quickly rediscover cool partitions.
Configuration
- Introduces the
podAntiAffinitysetting for InfluxDB Clustered components. Previously, the scheduling of pods was influenced by the Kubernetes scheduler’s default behavior. For further details, see the Kubernetes pod affinity documentation.
20240819-1176644
Quickstart
spec:
package:
image: us-docker.pkg.dev/influxdb2-artifacts/clustered/influxdb:20240819-1176644Release artifacts
Highlights
admin section is no longer required
Previously, an identity provider setup was required through the admin section
of the AppInstance resource, for example:
apiVersion: kubecfg.dev/v1alpha1
kind: AppInstance
metadata:
name: influxdb
namespace: influxdb
spec:
package:
image: <IMAGE>
apiVersion: influxdata.com/v1alpha1
spec:
## ...snip
admin:
users:
- ...
dsn:
valueFrom:
...
identityProvider: <PROVIDER>
jwksEndpoint: <JWKS_ENDPOINT>This section is no longer required and will no longer result in a schema
validation error when omitted.
When the admin section is omitted, the admin-token Secret can be used
instead to get started quickly.
We recommend OAuth for production; however, the admin-token lets you run an
InfluxDB Cluster without having to integrate with an identity provider.**
Upgrade notes
This release includes some preparatory work for changes being made to database schemas and tooling for internal services. It does not have an impact to customer workloads.
Changes
Deployment
- Various Grafana dashboard updates.
- A best-effort, pre-populated
influxctlconfig file is provided as aConfigMapfor your convenience. - Limit garbage collector replicas to 1, see the documentation for further details.
Database engine
- Improved efficiency of system table queries.
- Fixes for InfluxQL handling of
0divisor. - Improve router performance when retrieving statistics.
- Support InfluxQL queries over FlightSQL.
- Various dependency updates.
Configuration
- Added schema definitions for
admin.users.
20240717-1117630
Quickstart
spec:
package:
image: us-docker.pkg.dev/influxdb2-artifacts/clustered/influxdb:20240717-1117630Release artifacts
Highlights
Experimental license enforcement
This release introduces a new feature flag, useLicensedBinaries, that causes
InfluxDB to execute IOx components a container image implementing a new license
enforcement mechanism. License enforcement mechanisms include:
- A proper
LicenseCustom Resource manifest must be installed in the namespace to which InfluxDB Clustered is deployed. Only oneLicensenamediox-licensemay be deployed per namespace. - Without a valid
License, IOx pods crashloop with error logs indicating that no valid license can be loaded.- A valid
Licenseis one that is properly signed by InfluxData and has not exceeded its hard expiration date.
- A valid
- One month before the
Licenseexpires, all components begin logging pending expiry warning messages. These are visible withkubectl log -n <namespace> <pod>. - If a valid
Licenseexpires while the system is running, it enters a grace period. - During the
License’s grace period, the following happens:- Throughout the grace period, all components gradually increase the frequency of license expiry warnings.
- One week into the grace period, the InfluxDB 3 Querier begins returning
FailedPreconditiongRPC responses for the first 5 minutes of every hour. - One month into the grace period, the InfluxDB 3 Querier begins returning
FailedPreconditiongRPC responses 100% of the time until the grace period ends.
- At the end of the
Licensegrace period, all IOx components shutdown as this is the “hard expiration” date when the binaries no longer consider theLicensevalid.
This feature is being released on an experimental, opt-in basis while we work
with a small group of customers before making requiring licenses to run
InfluxDB Clustered. Before enabling the feature, please be sure you have a
License manifest provided to you by your InfluxData sales representative.
Default querier count increased
Prior to this release, the number of queriers which were spawned from the
default configuration was 1.
This has now been increased to 3. If you have previously overwritten the default
in the AppInstance resource, it is no longer required:
apiVersion: kubecfg.dev/v1alpha1
kind: AppInstance
metadata:
name: influxdb
namespace: influxdb
spec:
...
resources:
querier:
requests:
#replicas: 3 # No longer required!If you wish to keep the number of queriers to 1, you must override the
replicas as shown above.
Refer to the schema for further details.
This new configuration serves as a scalable default installation for InfluxDB Clustered.
Changes
Deployment
- Ingesters now have a
terminationGracePeriodSecondsvalue of600to provid enough time to persist all buffered data.
Database engine
- Changed default
INFLUXDB_IOX_COMPACTION_*_CONCURRENCYto be set based on available memory rather than available cores. - Improved metadata caching and queries.
- Improved cache read efficiency.
- Improved cache cleaning.
- Fixed some I/O delays on query planning.
- Better handling for resizing worker pools.
- Faster recovery from ingester crashes.
- Faster graceful shutdown of terminating ingester pods.
- Fixed a rare issue where ingesters could become unresponsive after hitting memory limits.
- Added per-table column limit, to prevent unintended schema expansion.
- Reduced intermediate compactor writes to object storage.
- Increase compactor throughput.
- Numerous telemetry improvements.
- Reduced write thrashing in the catalog.
- Fixed errors with queries that use gap filling.
- Fixed errors with multiple rounds of bulk ingestion.
- Tuned garbage collector.
- Fixed some intermittent failures in bulk ingest.
- Reduced some network gossip between IOx pods.
- Fixed some inconsistent results on leading edge queries.
- Fixed WAL storage leak during ingester crash recovery.
- Improved garbage collection of data beyond the retention limit.
20240605-1035562
Quickstart
spec:
package:
image: us-docker.pkg.dev/influxdb2-artifacts/clustered/influxdb:20240605-1035562Release artifacts
Highlights
Multiple improvements to compaction, pruning, and performance of concurrent queries.
Feature flag: noPrometheus
The introduction of the noPrometheus feature flag removes the StatefulSet
and other resources related to a bare-bones installation of Prometheus that
could be used for basic monitoring of InfluxDB Clustered.
This feature flag is useful in cases where you already have an installation of Prometheus and you wish to use it to monitor your InfluxDB cluster.
Refer to the AppInstance schema for further details regarding feature flags.
Upgrade notes
Air-gapped installations need to prefetch the new granite image.
us-docker.pkg.dev/influxdb2-artifacts/granite/granite@sha256:1683f97386f8af9ce60662ae4ff423770fee166b11378583e211ea30dc849633For more information, see the documentation.
Changes
Deployment
- Updated Granite components to reference a single image, reducing the overall image size.
- Added Grafana licensing dashboard.
- Added the
noPrometheusfeature flag.
Database engine
- Ingesters now provide a soft, best-effort memory limit.
- Provided by
INFLUXDB_IOX_RAM_SOFT_LIMIT_BYTES, which applies a ceiling from a percentage of the container memory to avoidOOMKilledscenarios. - Upon reaching this limit, InfluxDB Clustered attempts to persist all buffered data is and returns a resource exhaustion error for write requests until memory usage is below 50%.
- Provided by
- Catalog cache write batching.
- Multiple compactor improvements.
- Improved performance of some metadata queries.
- Improved concurrent query performance.
- Adjusted querier partitions assigned to large queries to reduce latency of sub-second queries and prevent resource bottlenecks cause by long running queries.
- This can be tuned with the
INFLUXDB_IOX_NUM_QUERY_PARTITIONSenvironment variable.
- Improved reporting for InfluxQL syntax errors.
20240430-976585
Quickstart
spec:
package:
image: us-docker.pkg.dev/influxdb2-artifacts/clustered/influxdb:20240430-976585Release artifacts
Highlights
Added configuration settings for an optional Prometheus
ServiceMonitorunderobservability.serviceMonitor- The feature flag is now deprecated, and will be removed in a future release.
Using this setting will delete and recreate the existing serviceMonitor resource that was provided by the feature flag.
Deployment
- Removed Nginx server snippet annotations (
nginx.ingress.kubernetes.io/server-snippet). - Added
observabilitykey in theAppInstanceresource.
Database engine
- Improved
NULLhandling for InfluxQL.
20240418-955990
Quickstart
spec:
package:
image: us-docker.pkg.dev/influxdb2-artifacts/clustered/influxdb:20240418-955990Release artifacts
Highlights
Minimum influxctl version
If a user observes an unimplemented gRPC error when running influxctl database
commands, then the user should upgrade to influxctl v2.8.0 or later and
ensure they are running InfluxDB Clustered 20240326-922145
or newer.
If upgrading InfluxDB Clustered is not an option, you can continue to use a
version of influxctl prior to v2.8.0.
Changes
Deployment
- Routers now calculate the value of write replication based on the number of
running ingesters.
- This can be tuned through the
INFLUXDB_IOX_RPC_WRITE_REPLICASenvironment variable; however, high values can impact the performance of the system.
- This can be tuned through the
Database engine
- Router cache entries for namespace and retention periods are updated
immediately via gossip.
- Pod restarts are no longer required to immediately see updates.
- Fixes to InfluxQL gap-filling mechanism,
FILL.
20240326-922145
Quickstart
spec:
package:
image: us-docker.pkg.dev/influxdb2-artifacts/clustered/influxdb:20240326-922145Release artifacts
Highlights
Lower defaults for garbage collection
Prior to this release, the garbage collector was set at 100 days before objects, that were no longer returned by queries, were deleted from object store. This has been reduced to 30 days. High values lead to a situation where there are many dangling objects and therefore many unnecessary references in the catalog, which increases operational burden and cost.
Added support for nodeAffinity at the per-component level
Introduces the nodeAffinity setting for individual components within
InfluxDB Clustered. Previously, the scheduling of pods was influenced by the
Kubernetes scheduler’s default behavior. For further details, please consult the
documentation.
Changes
Deployment
- Support for environment variable modifications to specific components.
- Update optional Grafana component to version 10.3.4.
- This upgrade from 9.x brings with it support for the SQL query type in the InfluxDB data source.
Database engine
Various additional metrics and performance improvements.
Improve compactor concurrency heuristics.
Fix gRPC reflection to only include services served by a particular listening port.
arrow.flight.protocol.FlightServiceis known to be missing in theiox-shared-querier’s reflection service even thoughiox-shared-querierdoes run that gRPC service.
20240227-883344
Quickstart
spec:
package:
image: us-docker.pkg.dev/influxdb2-artifacts/clustered/influxdb:20240227-883344Release artifacts
Changes
Deployment
- Gossip communication between the
global-router,iox-shared-compactor, and iox-shared-ingester` now works as expected. - Provide sane defaults to the
global-routerfor maximum number of concurrent requests. - Lower the number of ndots for
dnsConfigfor IOx components.
Database engine
SHOW TAG VALUESno longer causes a crash in the querier when the database has a large number of measurements.- Number of partitions scanned over in the querier is now limited for safety.
20240214-863513
Quickstart
spec:
package:
image: us-docker.pkg.dev/influxdb2-artifacts/clustered/influxdb:20240214-863513Release artifacts
Highlights
Grafana dashboards by default
Previously, the grafana feature flag had to be enabled in order to have these
dashboards created. This now occurs by default and the feature flag is reserved
entirely for the creation of a Grafana Deployment and remains experimental.
The contents of these dashboards are placed within various ConfigMap resources,
under common format grafana-dashboard-<uid>. They can either be imported or
mounted into your existing Grafana instance.
Upgrade notes
Consolidated authentication
An authentication component, previously known as authz, has been consolidated
into the token-management service.
Now there is a temporary Job in place, delete-authz-schema, that
automatically removes the authz schema from the configured PostgreSQL database.
Changes
Documentation
- Fixed Google example in
example-customer.ymlfile.
Deployment
- Fixed a logical error in the configuration when using Google Workload Identity
caused the
INFLUXDB_IOX_OBJECT_STOREvariable to be set tomemoryinstead ofgoogle. - Compactor configuration concurrency is now derived from CPU limit of the pod.
- Compactor now has a lower L1 compaction threshold.
Database engine
- Correctly validate string length for column sizes.
- FlightSQL support for prepared statements.
- Improve metrics exposed by the compactor.
- Further optimizations to
LIMITqueries. - Add
SPREAD,MODE, andELAPSEDsupport for InfluxQL. - Add
EXPLAINto all supported statements in InfluxQL. - Tracing correctly exposes HTTP path metrics.
- Dependency updates.
20240111-824437
Quickstart
spec:
package:
image: us-docker.pkg.dev/influxdb2-artifacts/clustered/influxdb:20240111-824437Release artifacts
Highlights
Ingress improvements
- Ingress no longer requires a host name to be specified.
- When a TLS secret is not specified, the TLS annotations are not generated.
Istio support
This release includes first class support for Istio via the Gateway and
VirtualService resources.
This is enabled through the ingress key of the AppInstance resource–for example:
package:
spec:
ingress:
template:
kind: 'Gateway'
apiVersion: 'networking.istio.io/v1beta1'
## At present the 'selector' field is only used for Istio, this maps
## directly to the Gateway selector to decide which Istio ingress controller
## pods should serve the configured Gateway.
selector:
istio: 'ingressgateway'Note that the use of Gateway implies the need for VirtualService resources,
these are automatically created for you.
Upgrade notes
As part of a partition_id migration that runs, if you have more than 10
million rows in the parquet_file table, reach out to your Sales representative
before proceeding. You can confirm this with the following query:
SELECT count(*) FROM iox_catalog.parquet_fileChanges
Database engine
partition_idis now used to consistently address a partition in the catalog. This requires a migration which may take some time to complete.- Bug fixes and dependency updates.
20231213-791734
Quickstart
spec:
package:
image: us-docker.pkg.dev/influxdb2-artifacts/clustered/influxdb:20231213-791734Release artifacts
Highlights
Labels/annotations
- You can now add custom annotations and labels in pods by specifying them under
spec.package.spec.components.*.metadata - Common settings for all components can be specified under
spec.package.spec.components.common. This is useful when you need to configure common node selectors, taint tolerations, and annotations to adapt the workload to requirements of your specific execution environment.
Contour ingress support
Services are now properly annotated to support the Contour Ingress controller.
Changes
Database engine
- Empty string values for
AWS_ACCESS_KEY_IDandAWS_SECRET_ACCESS_KEYare ignored. - Dependency updates.
- Query performance improvements.
- Ingester active persist tasks are tracked as a metric.
- WAL rotation logs moved from debug to info log level.
- Fixed an issue where the compactor could get stuck until reboot.
- Fixed an issue where the compactor might panic.
- Added L2 -> L2 compactions when there are many small L2 files.
20231117-750011
Quickstart
spec:
package:
image: us-docker.pkg.dev/influxdb2-artifacts/clustered/influxdb:20231117-750011Release artifacts
Highlights
![Important] This release fixes a regression in the database engine that was introduced in 20231115-746129.
Changes
Deployment
- Add support for tuning per-component log filters.
- Add support for
tolerationsat the per-component level.
20231115-746129
Quickstart
spec:
package:
image: us-docker.pkg.dev/influxdb2-artifacts/clustered/influxdb:20231115-746129Release artifacts
Highlights
Ingress templating
This update enables custom annotations on the Ingress resources.
This is useful when configuration ingress alongside third-party software, such
as cert-manager.
OpenShift Route
Along with the ingress templating feature, this version includes OpenShift
Route support.
Specify the apiVersion and kind of the ingress configuration to align
with Routes and change the typical Ingress objects to their Route equivalent.
spec:
package:
spec:
ingress:
template:
apiVersion: "route.openshift.io/v1"
kind: "Route"Support for Google Cloud Storage (GCS)
We now expose a google object within the objectStore configuration, which
enables support for using Google Cloud’s GCS as a backing object store for IOx
components. This supports both
GKE workload identity
and IAM Service Account
authentication methods.
Support for bypassing identity provider configuration for database/token management
We now generate a valid access token for managing Databases and Tokens and store
it as a secret within the namespace that InfluxDB is deployed. Use this token in
lieu of configuring an identity provider with influxctl for interacting with
the cluster.
This access token is intended only for testing and is not recommended for use in production.
This feature requires influxctl version 2.2.0 or later. To use the access
token, you first need to copy it to a file by running the following command:
kubectl get secrets/admin-token --template={{.data.token}} -n <your_influxdb_namespace> | base64 -d > token.jsonAfter that, you need to tell influxctl where to find the access token by
adding the following lines to your profile.toml file.
[profile.auth.token]
token_file = "/path/to/token.json"This is a long-lived access token. Currently, the only way to revoke the token is to perform the following actions in this order:
- Delete the
rsa-keyssecret from your Clustered context and namespace. - Rerun the
key-genjob. - Restart the
authzservice.
If you want to create a new admin token after revoking the existing one, re-run
the create-admin-token job.
Changes
Deployment
- Increase HTTP write request limit from 10 MB to 50 MB.
- Added support for Telegraf Operator.
We have added the
telegraf.influxdata.com/portannotation to all the pods. No configuration is required. We don’t yet provide a way to specify thetelegraf.influxdata.com/classannotation, which means the pods use the default Telegraf operator class (calleddefault). - Implement
ingress.templateforIngressand openshiftRoute. - Add
nodeSelectorsupport. - Add Google Cloud support.
- Fix JSONSchema for
valueandvalueFromconfiguration. - Remove
AWS_ACCESS_KEY_IDand AWS_SECRET_ACCESS_KEY` environment variabless when EKS IRSA is enabled.
Database engine
- Ingester performance improvements.
- Query pruning improvements where, in many cases, less data is fetched.
- New compactor metrics.
- Compactor tuning: autoscale L1 compaction threshold based on load.
- FlightSQL query gRPC keep-alive fixes.
- Log some querier configs during startup.
- Bulk ingest gRPC API improvements.
- Add
partition_templatecolumn tosystem.tablestable. - Add
last_new_file_created_at,last_deleted_file_at,num_files,total_size_mbcolumns tosystem.partitionstable. - Enable gossip cache distribution for faster cache coherence between nodes.
20231024-711448
Quickstart
spec:
package:
image: us-docker.pkg.dev/influxdb2-artifacts/clustered/influxdb:20231024-711448Release artifacts
Highlights
Additional AppInstance parameters
This includes an addition to the AppInstance package specification with a
new key: hostingEnvironment.
Going forward, this object will be updated with various environment-specific
functionality aimed at where you host InfluxDB Clustered, such as aws or
openshift.
EKS IRSA
With the addition of the hostingEnvironment configuration to the AppInstance
resource, InfluxDB now supports passing an eksRoleArn.
This role ARN is placed onto the IOx ServiceAccount.
Please ensure that the role you provide has AWS S3 permissions.
OpenShift
InfluxDB Clustered now also support the openshift key under the
hostingEnvironment object. This specifies OpenShift tailored configuration for
your environment.
At the moment this simplifies the installation process by removing
securityContext from all pods since it is specified by your cluster’s
configuration instead.
Ingress configuration
A backwards-compatible change to the ingress configuration that makes the ingress use more fine-grained rules to avoid overriding other ingress rules. You may want to review the details if you have customized the Kubernetes manifests regarding the ingress resources.
v1 write endpoint
An endpoint has been exposed for the v1 write path, under /write.
Changes
Database engine
- Honor
SSL_CERT_FILEfor PostgreSQL connections. - Wait for gRPC when shutting down the querier.
Deployment
- Add defined
resourcestoauthzpuller.
20231004-666907
Quickstart
spec:
package:
image: us-docker.pkg.dev/influxdb2-artifacts/clustered/influxdb:20231004-666907Release artifacts
Highlights
Object store custom certificates
Support for custom certificates has been implemented since version 20230912-619813. Unfortunately, due to a bug, our Object store client didn’t use the custom certificates. This release fixes that so you can use the existing configuration for custom certificates to also specify the certificate and certficate authority used by your object store.
Resource limits
Until now, the configuration spec only exposed the Kubernetes resource requests and not the limits. Setting the limits is important for proper cluster capacity configuration. This release fixes this deficiency.
See Scale components in your cluster.
Object store configuration
A backwards-compatible change has been made to object store configuration. This now enables the use of Azure blob storage.
Installation documentation moved to the documentation site
The “Install InfluxDB Clustered” instructions (formerly known as “GETTING_STARTED”) are now available on the public InfluxDB Clustered documentation.
The example-customer.yml (also known as myinfluxdb.yml) example
configuration file still lives in the release bundle alongside the RELEASE_NOTES.
Upgrade notes
You must update to this release before updating to any subsequent release. This ensure as schema migration is sequenced properly otherwise a Kubernetes cluster running pods with different versions will impact write availability.
Changes
Deployment
- Add support for setting resource limits.
Documentation
- Prior to this release, the example query for the sample data
(
air-sensor-data.lp) was incorrect.
Database engine
- Use system certificate store.
20230922-650371
Quickstart
spec:
package:
image: us-docker.pkg.dev/influxdb2-artifacts/clustered/influxdb:20230922-650371Release artifacts
Highlights
Configuration simplification
This release simplifies the configuration of the admin interface.
The internalSigningKey configuration section is now optional and is
autogenerated.
Upgrade notes
We simplified the ingress rules, which may require some changes if you have custom Ingress resources pointing to the underlying services. Otherwise, no changes are necessary.
Details
- Ingress that previously pointed to the
accountservice should now point to thegatewayservice–for example:/account.v1.AccountService. - Ingress that previously pointed to the
authzservice can be removed–for example:/authz.public.v1.AuthzPublicService. - Ingress that previously pointed to the
database-managementservice should now point to thegatewayservice–for example:/database_management.v1.DatabaseService. - Ingress that previously pointed to the
token-managementservice should now point to thegatewayservice–for example:/token_management.public.v1.TokenManagementPublicService.
Changes
Deployment
- Update reference version of kubit to 0.0.11.
- Update the default number of routers to match ingesters (3).
- Ensure custom certificates are available to all components.
Database engine
- Catalog cache convergence improvements.
- Retry after out of memeory (OOM) errors.
20230915-630658
Quickstart
spec:
package:
image: us-docker.pkg.dev/influxdb2-artifacts/clustered/influxdb:20230915-630658Highlights
Persistent volume fixes
This release fixes am issue involving volume permissions in some volume provisioners (for example, EBS). No action is required for upgrades.
Changes
- Removed the “Generate internal signing key” section from the “Getting started” documentation.
- Updated
Volumepermissions to fix issues in some environments.
20230914-628600
Quickstart
spec:
package:
image: us-docker.pkg.dev/influxdb2-artifacts/clustered/influxdb:20230914-628600Highlights
Updated Azure AD documentation
The Appendix / Configuring Identity Provider / Azure section of the
“Geting started” documentation has been updated:
- https://login.microsoftonline.com/{AZURE_TENANT_ID}/.well-known/openid-configuration
+ https://login.microsoftonline.com/{AZURE_TENANT_ID}/v2.0/.well-known/openid-configuration
Changes
Deployment
- Documentation fixes.
- Generate JWT signing keys automatically.
Database engine
- Various minor fixes.
20230912-619813
Quickstart
spec:
package:
image: us-docker.pkg.dev/influxdb2-artifacts/clustered/influxdb:20230912-619813Highlights
Custom CA certificates
InfluxDB processes inbound API requests (ingress) and issues outbound API
request to external services (egress).
The ingress transport security parameters (TLS) are configured in the
ingress section. InfluxDB can work with any certificate signed with any
Certificate Authority (accepting that CA is then a matter of InfluxDB client’s
configuration, outside of the scope of this document).
Egress connections to TLS secured endpoints (https or TLS secured postgres)
are verified by a set of built-in certificate authorities (we use Debian’s
ca-certificates).
You may need to override the list of accepted CAs if your InfluxDB cluster is configured to access dependencies that use certificates issued by your private CA. In some cases your network setup may even involve an auditing MitM proxy that issues their own certificates.
This release includes an optional feature that allows you to specify your own CA list. The custom CA replaces the standard set of CA certificates. The custom certificate file can contain one or more PEM encoded CA certificates.
kubectl -n influxdb create configmap custom-ca --from-file=ca.pem....
kind: AppInstance
spec:
...
spec:
...
egress:
customCertificates:
valueFrom:
configMapKeyRef:
key: ca.pem
name: custom-ca
...Changes
Deployment
- Allow users to specify custom certificate authorities for egress calls.
Database engine
- Fix health probe livelock.
- Handle oversized files in the compactor.
- Various minor optimizations.
20230911-604209
Quickstart
spec:
package:
image: us-docker.pkg.dev/influxdb2-artifacts/clustered/influxdb:20230911-604209Highlights
This release contains a breaking change to the monitoring subsystem that requires manual intervention to unblock. More details in the Upgrade notes section below.
Upgrade notes
Prometheus StatefulSet
This release contains a change to the prometheus StatefulSet resources that
cannot be reconciled automatically by the operator.
You must delete the stateful set manually.
The operator will then automatically re-create the resources.
kubectl -n influxdb delete sts prometheusChanges
Documentation
- Update active directory documentation.
Deployment
- Set
serviceNamein Prometheus deployment. - Ensure granite ingress has hostname declared.
Database engine
- Various dependency updates.
- Adjust compactor catalog query rate limiter for small clusters.
20230908-600131
Quickstart
spec:
package:
image: us-docker.pkg.dev/influxdb2-artifacts/clustered/influxdb:20230908-600131Highlights
Default storage class
The storageClassName parameters are no longer required.
InfluxDB uses the cluster’s default storage class unless you override it in your
configuration.
Changes
Deployment
- Remove unnecessary Grafana dashboards.
- Make storage class optional.
20230907-597343
Quickstart
spec:
package:
image: us-docker.pkg.dev/influxdb2-artifacts/clustered/influxdb:20230907-597343Upgrade Notes
This release requires a new configuration block:
monitoringStorage:
storage: 1Gi
storageClassName: <your_storage_class>Changes
Deployment
- Make gRPC ingress work with the Traefik ingress controller.
- Add
hostsfield to ingress specification. - Several fixes in ingress layer for the admin control plane.
Database engine
- Add support for
FILL(linear)for selector functions in InfluxQL. - Prevent sort order mismatches from creating overlapping chains.
- Minor performance optimizations.
- Change
logleveltoinfoon “No compaction job found” errors.
Was this page helpful?
Thank you for your feedback!
Support and feedback
Thank you for being part of our community! We welcome and encourage your feedback and bug reports for InfluxDB Clustered and this documentation. To find support, use the following resources:
Customers with an annual or support contract can contact InfluxData Support.