| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| 6.8.0 source code.tar.gz | 2026-08-11 | 1.3 MB | |
| 6.8.0 source code.zip | 2026-08-11 | 1.8 MB | |
| README.md | 2026-08-11 | 13.6 kB | |
| Totals: 3 Items | 3.1 MB | 2 | |
What's Changed
New or updated images
| component | image |
|---|---|
| operator | ghcr.io/kube-logging/logging-operator:6.8.0 |
| axosyslog | ghcr.io/axoflow/axosyslog:4.26.0 |
| fluentd | ghcr.io/kube-logging/logging-operator/fluentd:6.8.0-full |
| syslog-ng-reloader | ghcr.io/kube-logging/logging-operator/syslog-ng-reloader:6.8.0 |
| config-reloader | ghcr.io/kube-logging/logging-operator/config-reloader:6.8.0 |
| fluentd-drain-watch | ghcr.io/kube-logging/logging-operator/fluentd-drain-watch:6.8.0 |
| buffer-volume-metrics | ghcr.io/kube-logging/logging-operator/node-exporter:6.8.0 |
| axosyslog exporter | ghcr.io/axoflow/axosyslog-metrics-exporter:0.0.16 |
| custom-runner | ghcr.io/kube-logging/custom-runner:v1.0.0 |
| fluentd-version | rubygems.org/gems/fluentd/versions/1.19.3 |
| fluentbit-version | ghcr.io/fluent/fluent-bit:5.1.0 |
Install with helm
:::bash
helm install logging-operator oci://ghcr.io/kube-logging/helm-charts/logging-operator --version=6.8.0
Breaking changes
A duplicate parser name stops Fluent Bit from starting
Fluent Bit 5.1.0 makes a duplicate parser name fatal where 5.0 logged a warning and carried on.
A customParsers entry reusing a built-in name, such as json, docker, cri or
kube-custom, now crash-loops the DaemonSet. The parser the operator generates itself does not
collide. This is not in the Fluent Bit release notes; we found it while testing the bump.
Rename any colliding parser before upgrading, or pin the Fluent Bit image to 5.0.5.
Sidecar images older than custom-runner 1.0.0 no longer start
The config-reloader and buffer-metrics sidecars are now given an explicit -metrics-port, a flag
custom-runner gained in 1.0.0. Go rejects flags it does not know, so an older runner exits with
flag provided but not defined and the container crash-loops.
Move any configReloadImage or bufferVolumeMetricsImage pin to 6.8.0, or drop it and take
the default.
A syslog-ng image with only repository set now resolves to the pinned tag
syslogNGImage and metricsExporterImage were defaulted as whole structs, so setting just
repository, which is what you do to point at a registry mirror, left the tag empty and the
image resolved to :latest. Each field is defaulted on its own now, so the same spec pulls the
tag this release pins. If your mirror does not carry that tag, the pull fails.
Set tag explicitly if you were relying on :latest.
The syslog-ng metrics service overrides are applied
metricsService and bufferVolumeMetricsService have been on the CRD since syslog-ng support
landed, but nothing read them. They are merged into the generated Services now, so a value set
once and forgotten because it did nothing takes effect on upgrade.
Check both fields before upgrading.
Worth knowing
DB_Sync now reaches Fluent Bit. The operator wrote this setting as DB_Sync, which Fluent
Bit does not recognise, so it was dropped from the generated config. It renders as DB.sync now
and takes effect. The CRD field keeps its name and nothing needs editing, but the agent syncs its
position database as configured rather than not at all.
The syslog-ng config-reloader reports readiness. It has a readiness probe on the runner's
/readyz, which answers 503 naming the path when a configured file watch could not be
registered, the state where the reloader keeps running while silently never reloading again. A
pod that turns NotReady on upgrade was already failing to reload; the probe only makes it
visible.
IPv6
enabledIPv6 produced Services the cluster could not accept, and listeners that did not match
those Services. This release fixes three separate faults and changes what the flag does.
The operator now asks the API server which IP families it can allocate and names only those. A cluster without an IPv6 range no longer has its Services rejected. syslog-ng also binds its source for IPv6 under the same flag; previously only the Service changed, so an IPv6 primary address pointed at a listener that was still IPv4 only and log ingestion stopped.
Kubernetes does not allow the primary IP family of an existing Service to change. Upgrading therefore leaves an existing Service on its current primary family:
- Upgrading with
enabledIPv6: true: thefluentdorsyslog-ngService keeps its IPv4 primary and gains an IPv6 secondary. It is reachable over IPv6, but IPv4 stays first inipFamilies, so Prometheus keeps scraping the IPv4 address. - To get an IPv6 primary: delete the Service and let the operator recreate it.
bash kubectl delete svc -n <control-namespace> <logging-name>-fluentdExpect a brief interruption. The Service comes back with a new cluster IP. - New installs get an IPv6 primary where the cluster has an IPv6 range.
metrics.bind is a new field on the metrics type. It sets the listen address directly, which is
the supported way to get IPv6 metrics without forcing an IPv6 primary on the Service. The
syslog-ng metrics exporter has no listen address option, so it ignores the field.
Metrics
The syslog-ng config-reloader served its metrics on the runner's own default port while the Service, the container port and the ServiceMonitor all named 9533, so nothing was ever scraped. It listens on 9533 now.
sidecar_reloader_* series therefore appear for syslog-ng where there were none. A panel or
alert that has only ever seen an empty target starts receiving data, in particular
sidecar_reloader_config_reloader_last_reload_error.
Enhancements
- feat(syslog-ng): expose log_msg_size global option by @fdolsky321 in https://github.com/kube-logging/logging-operator/pull/2267
- feat(fluent-bit): expose storage.backlog.flush_on_shutdown option by @vyncint in https://github.com/kube-logging/logging-operator/pull/2282
- feat/support raw fluentd filter by @xtayfjpk in https://github.com/kube-logging/logging-operator/pull/2274
- feat: add helm chart parameter to enable raw fluentd filter or not by @xtayfjpk in https://github.com/kube-logging/logging-operator/pull/2289
- feat(chart): allow pinning the operator image by digest by @eumel8 in https://github.com/kube-logging/logging-operator/pull/2280
- build(e2e): run the linter on the e2e module, and fix what it reports by @vyncint in https://github.com/kube-logging/logging-operator/pull/2292
- refactor(e2e): remove dead code and correct the syslog-ng reloader image name by @vyncint in https://github.com/kube-logging/logging-operator/pull/2294
- refactor(e2e): move common/kind to internal/kind by @vyncint in https://github.com/kube-logging/logging-operator/pull/2297
- refactor(e2e): move common/cond to internal/wait and take plain values by @vyncint in https://github.com/kube-logging/logging-operator/pull/2298
- perf(e2e): load the operator images in one kind invocation by @vyncint in https://github.com/kube-logging/logging-operator/pull/2300
- refactor(e2e): add internal/fixture with the CR and tenancy builders by @vyncint in https://github.com/kube-logging/logging-operator/pull/2299
- feat(e2e): add internal/harness and move fluentbit-multitenant onto it by @vyncint in https://github.com/kube-logging/logging-operator/pull/2304
- fix: adopt custom-runner v1.0.0 by @csatib02 in https://github.com/kube-logging/logging-operator/pull/2311
- Share the configcheck abnormal-failure retry and cover it by @csatib02 in https://github.com/kube-logging/logging-operator/pull/2313
- Enable the modernize analyzer and apply it by @csatib02 in https://github.com/kube-logging/logging-operator/pull/2315
Dependency and image updates
- chore(deps): update dependency oj to v3.17.3 [security] by @renovate[bot] in https://github.com/kube-logging/logging-operator/pull/2256
- chore(deps): bump concurrent-ruby from 1.3.6 to 1.3.7 in /images/fluentd/outputs by @dependabot[bot] in https://github.com/kube-logging/logging-operator/pull/2257
- chore(deps): bump oj from 3.16.11 to 3.17.3 in /images/fluentd/outputs by @dependabot[bot] in https://github.com/kube-logging/logging-operator/pull/2258
- chore(deps): update module github.com/containerd/containerd to v1.7.33 [security] by @renovate[bot] in https://github.com/kube-logging/logging-operator/pull/2259
- chore(deps): bump faraday from 2.14.2 to 2.14.3 in /images/fluentd/outputs by @dependabot[bot] in https://github.com/kube-logging/logging-operator/pull/2262
- chore(deps): bump nokogiri from 1.19.3 to 1.19.4 in /images/fluentd/outputs by @dependabot[bot] in https://github.com/kube-logging/logging-operator/pull/2261
- chore(deps): bump concurrent-ruby from 1.3.6 to 1.3.7 in /images/fluentd/filters by @dependabot[bot] in https://github.com/kube-logging/logging-operator/pull/2260
- chore(deps): update dependency fluent-plugin-s3 to v1.8.5 [security] by @renovate[bot] in https://github.com/kube-logging/logging-operator/pull/2265
- chore(deps): bump fluentd from 1.18.0 to 1.19.3 in /images/fluentd/filters by @dependabot[bot] in https://github.com/kube-logging/logging-operator/pull/2266
- chore(deps): update module oras.land/oras-go/v2 to v2.6.1 [security] by @renovate[bot] in https://github.com/kube-logging/logging-operator/pull/2269
- chore(deps): bump excon from 1.3.0 to 1.5.0 in /images/fluentd/outputs by @dependabot[bot] in https://github.com/kube-logging/logging-operator/pull/2268
- chore(deps): bump oras.land/oras-go/v2 from 2.6.1 to 2.6.2 in /e2e by @dependabot[bot] in https://github.com/kube-logging/logging-operator/pull/2270
- chore(deps): update module golang.org/x/net to v0.56.0 [security] by @renovate[bot] in https://github.com/kube-logging/logging-operator/pull/2276
- chore(deps): update module google.golang.org/grpc to v1.82.1 [security] by @renovate[bot] in https://github.com/kube-logging/logging-operator/pull/2278
- chore(deps): update module golang.org/x/text to v0.39.0 [security] by @renovate[bot] in https://github.com/kube-logging/logging-operator/pull/2277
- chore(deps): update module go.opentelemetry.io/otel to v1.44.0 [security] by @renovate[bot] in https://github.com/kube-logging/logging-operator/pull/2281
- chore(deps): update module github.com/klauspost/compress to v1.18.7 [security] by @renovate[bot] in https://github.com/kube-logging/logging-operator/pull/2290
- build(deps): bump json from 2.20.0 to 2.21.2 in /images/fluentd/filters by @dependabot[bot] in https://github.com/kube-logging/logging-operator/pull/2312
- chore(deps): update all dependencies by @renovate[bot] in https://github.com/kube-logging/logging-operator/pull/2244
Bug fixes
- fix: support custom CA certificates for S3 outputs by @vyncint in https://github.com/kube-logging/logging-operator/pull/2272
- fix: enable dual-stack for Fluent Bit metrics services by @vyncint in https://github.com/kube-logging/logging-operator/pull/2273
- fix(ipv6): set IPv6 as primary address family when enabledIPv6 is set by @eumel8 in https://github.com/kube-logging/logging-operator/pull/2279
- fix(chart): support HostTailer namespaces by @vyncint in https://github.com/kube-logging/logging-operator/pull/2275
- fix(syslog-ng): keep default image tags when only the repository is set by @vyncint in https://github.com/kube-logging/logging-operator/pull/2283
- fix(fluentd): propagate dnsPolicy to the configcheck pod by @vyncint in https://github.com/kube-logging/logging-operator/pull/2285
- docs(plugins): fix dedot description from being incorrectly described as concat by @halkeye in https://github.com/kube-logging/logging-operator/pull/2284
- fix(e2e): bound kind CLI invocations with a timeout by @vyncint in https://github.com/kube-logging/logging-operator/pull/2288
- fix(configcheck): merge aggregator level configCheck field by field by @vyncint in https://github.com/kube-logging/logging-operator/pull/2286
- fix(e2e): derive the elasticsearch readiness budget from the test deadline by @vyncint in https://github.com/kube-logging/logging-operator/pull/2293
- fix(e2e): call LogProducer on the test goroutine by @vyncint in https://github.com/kube-logging/logging-operator/pull/2295
- fix(e2e): make coverage collection uniform and cover every cluster by @vyncint in https://github.com/kube-logging/logging-operator/pull/2296
- fix(e2e): remove the elasticsearch kill loop and five flake sources by @csatib02 in https://github.com/kube-logging/logging-operator/pull/2302
- fix(e2e): give every kind cluster its own kubeconfig by @vyncint in https://github.com/kube-logging/logging-operator/pull/2301
- fix(e2e): share the elasticsearch readiness budget between the waits by @vyncint in https://github.com/kube-logging/logging-operator/pull/2307
- fix(fluentd): propagate sidecarContainers to the configcheck pod by @pujitha24 in https://github.com/kube-logging/logging-operator/pull/2303
- Make enabledIPv6 work without breaking single-stack clusters by @csatib02 in https://github.com/kube-logging/logging-operator/pull/2310
New Contributors
- @fdolsky321 made their first contribution in https://github.com/kube-logging/logging-operator/pull/2267
- @vyncint made their first contribution in https://github.com/kube-logging/logging-operator/pull/2272
- @halkeye made their first contribution in https://github.com/kube-logging/logging-operator/pull/2284
- @pujitha24 made their first contribution in https://github.com/kube-logging/logging-operator/pull/2303
Full Changelog: https://github.com/kube-logging/logging-operator/compare/6.7.0...6.8.0