Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
37 commits
Select commit Hold shift + click to select a range
391a196
Bundle CRDs in main chart.
joshuabaird Feb 13, 2026
91356c2
Create fluent-operator-crds chart.
joshuabaird Feb 13, 2026
0a477df
Remove legacy sub-chart dependencies.
joshuabaird Feb 13, 2026
d280e4b
Remove legacy CRD charts.
joshuabaird Feb 13, 2026
63c89b6
Reformat fluent-operator values.
joshuabaird Feb 13, 2026
757727d
Update fluent-operator chart README.
joshuabaird Feb 13, 2026
c700288
Update v4 MIGRATION doc.
joshuabaird Feb 13, 2026
0d334e6
Update v4 MIGRATION doc.
joshuabaird Feb 13, 2026
08f8103
Update fluent-operator chart README.
joshuabaird Feb 13, 2026
8570bea
Update fluent-operator-crds README.
joshuabaird Feb 13, 2026
f072cad
Add ToC to MIGRATION.
joshuabaird Feb 13, 2026
9e7d2bd
Reformat more values.
joshuabaird Feb 13, 2026
4de02cd
Update CRDs.
joshuabaird Feb 25, 2026
0ec0dfa
Use dev versions for both charts.
joshuabaird Mar 2, 2026
9112e2f
Strip YAML separators and controller-version annotation.
joshuabaird Mar 2, 2026
d4670f0
Update READMEs.
joshuabaird Mar 2, 2026
157d6f3
Render docs in helm-charts.
joshuabaird Mar 2, 2026
12d0551
Strip separators from fluent-operator CRDs.
joshuabaird Mar 3, 2026
3e077d8
Update chart verisons.
joshuabaird Mar 3, 2026
0cf9582
Remove helm-docs target.
joshuabaird Mar 3, 2026
3e460f3
Fix fluent-bit values key causing helm template parse error.
joshuabaird Mar 5, 2026
fcdd915
Fix spacing.
joshuabaird Mar 9, 2026
e4e8aaa
GNU sed.
joshuabaird Mar 9, 2026
1079b2b
Update CRDs.
joshuabaird Mar 18, 2026
0338951
Update CRDs.
joshuabaird Mar 23, 2026
556fa6d
Add Helm v4 E2E tests.
joshuabaird Mar 24, 2026
e096147
Remove dead code.
joshuabaird Mar 24, 2026
487b130
Remove tests.
joshuabaird Apr 1, 2026
4790852
Remove tests.
joshuabaird Apr 1, 2026
bcb3cd3
Update README.
joshuabaird Apr 1, 2026
76bbf69
Remove gitkeeps.
joshuabaird Apr 1, 2026
797a65e
Fix RBAC.
joshuabaird Apr 1, 2026
58b4298
Cleanup helmignore.
joshuabaird Apr 1, 2026
362859c
Bump fluentbit image.
joshuabaird Apr 1, 2026
f4afd40
Bump fluent-bit.
joshuabaird Apr 1, 2026
4a1d402
Merge branch 'master' into chore/helm-v4-refactor
joshuabaird Apr 1, 2026
7b3a4de
Merge branch 'master' into chore/helm-v4-refactor
marcofranssen Apr 2, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 4 additions & 6 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -55,8 +55,10 @@ shellcheck:
manifests: controller-gen ## Generate WebhookConfiguration, ClusterRole and CustomResourceDefinition objects.
$(CONTROLLER_GEN) $(CRD_OPTIONS) rbac:roleName=manager-role webhook paths="./apis/fluentbit/..." output:crd:artifacts:config=config/crd/bases
$(CONTROLLER_GEN) $(CRD_OPTIONS) rbac:roleName=manager-role webhook paths="./apis/fluentd/..." output:crd:artifacts:config=config/crd/bases
$(CONTROLLER_GEN) $(CRD_OPTIONS) rbac:roleName=manager-role webhook paths="./apis/fluentbit/..." output:crd:artifacts:config=charts/fluent-bit-crds/templates
$(CONTROLLER_GEN) $(CRD_OPTIONS) rbac:roleName=manager-role webhook paths="./apis/fluentd/..." output:crd:artifacts:config=charts/fluentd-crds/templates
$(CONTROLLER_GEN) $(CRD_OPTIONS) rbac:roleName=manager-role webhook paths="./apis/fluentbit/..." output:crd:artifacts:config=charts/fluent-operator/crds
$(CONTROLLER_GEN) $(CRD_OPTIONS) rbac:roleName=manager-role webhook paths="./apis/fluentd/..." output:crd:artifacts:config=charts/fluent-operator/crds
$(CONTROLLER_GEN) $(CRD_OPTIONS) rbac:roleName=manager-role webhook paths="./apis/fluentbit/..." output:crd:artifacts:config=charts/fluent-operator-crds/templates/fluent-bit
$(CONTROLLER_GEN) $(CRD_OPTIONS) rbac:roleName=manager-role webhook paths="./apis/fluentd/..." output:crd:artifacts:config=charts/fluent-operator-crds/templates/fluentd
kubectl kustomize config/crd/bases/ | sed -e '/creationTimestamp/d' > manifests/setup/fluent-operator-crd.yaml
kubectl kustomize manifests/setup/ | sed -e '/creationTimestamp/d' > manifests/setup/setup.yaml
hack/mutate-crds.sh
Expand Down Expand Up @@ -378,7 +380,3 @@ docs-update: # update api docs
update-helm-package: # update helm repo
./hack/update-helm-package.sh

.PHONY: helm-docs
helm-docs:
cd charts/fluentd-crds && helm-docs
cd charts/fluent-bit-crds && helm-docs
48 changes: 27 additions & 21 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -152,30 +152,42 @@ kubectl apply -f https://raw.githubusercontent.com/fluent/fluentbit-operator/mas

#### Deploy Fluent Operator with Helm

> NOTE: For the helm based install, Helm v3.2.1 or higher is needed.
> NOTE: Helm v3.2.1 or higher is required.

To install or upgrade Fluent Operator using Helm:
**Standard installation** (CRDs bundled in chart):

```shell
export FLUENT_OPERATOR_CONTAINER_RUNTIME="containerd" # or "cri-o", "docker" depending on the container runtime being used (see `values.yaml`)

helm repo add fluent https://fluent.github.io/helm-charts
helm upgrade --install fluent-operator fluent/fluent-operator \
--create-namespace \
--set containerRuntime=${FLUENT_OPERATOR_CONTAINER_RUNTIME}
helm repo update

helm install fluent-operator fluent/fluent-operator \
--create-namespace -n fluent
```

By default, all CRDs required for Fluent Operator will be installed. To prevent `helm install` from installing CRDs, you can set `fluent-bit.crdsEnable` or `fluentd.crdsEnable` to `false`.
The default container runtime is `containerd`. Set `--set containerRuntime=docker` or `--set containerRuntime=crio` if your cluster uses a different runtime.

Helm [does not manage the lifecycle of CRDs](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/), so if the Fluent Operator CRDs already exist, subsequent
chart upgrades will not add or remove CRDs even if they have changed. During upgrades, users should manually update CRDs:
Helm installs CRDs on first install but [does not upgrade or delete them](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/) on subsequent `helm upgrade` or `helm uninstall` calls. To update CRDs when upgrading the chart:

```shell
helm pull fluent/fluent-operator --untar
kubectl apply --server-side --force-conflicts -f fluent-operator/crds/
helm upgrade fluent-operator fluent/fluent-operator -n fluent
```
wget https://github.com/fluent/fluent-operator/releases/download/<version>/fluent-operator.tgz
tar -xf fluent-operator.tgz
kubectl replace -f fluent-operator/crds

**Advanced installation** — full Helm lifecycle management of CRDs via the separate `fluent-operator-crds` chart:

```shell
# Step 1: install CRDs as a separately managed release
helm install fluent-operator-crds fluent/fluent-operator-crds -n fluent --create-namespace

# Step 2: install the operator, skipping CRDs (already installed above)
helm install fluent-operator fluent/fluent-operator -n fluent --skip-crds
```

With this approach, CRDs are upgraded with `helm upgrade fluent-operator-crds` and can be protected from deletion with `--set additionalAnnotations."helm\.sh/resource-policy"=keep`.

See the [MIGRATION-v4.md](charts/fluent-operator/MIGRATION-v4.md) guide for more information on upgrading from v3.x.

### Fluent Operator Walkthrough

For more info on various use cases of Fluent Operator, you can refer to [Fluent-Operator-Walkthrough](https://github.com/kubesphere-sigs/fluent-operator-walkthrough).
Expand All @@ -200,16 +212,10 @@ kubectl apply -f manifests/logging-stack

#### Deploy the Kubernetes logging pipeline with Helm

You can also deploy the Kubernetes logging pipeline with Helm, just need to set the `Kubernetes` parameter to `true` (default):

```shell
helm upgrade fluent-operator --create-namespace -n fluent charts/fluent-operator/ --set containerRuntime=docker
```

If you want to deploy `fluentd`, just need to set the `fluentd.enable` parameter to `true`:
The Kubernetes logging pipeline (container log collection via Fluent Bit) is enabled by default (`Kubernetes: true`). To also deploy Fluentd as a log aggregation layer:

```shell
helm upgrade fluent-operator --create-namespace -n fluent charts/fluent-operator/ --set containerRuntime=docker,fluentd.enable=true
helm upgrade fluent-operator fluent/fluent-operator -n fluent --set fluentd.enable=true
```

Within a couple of minutes, you should observe an index available:
Expand Down
6 changes: 5 additions & 1 deletion charts/README.md
Original file line number Diff line number Diff line change
@@ -1 +1,5 @@
The Helm charts in this directory are considered "development" and are [synced](../RELEASE.md) to the [fluent/helm-charts](https://github.com/fluent/helm-charts/tree/main/charts/fluent-operator/) repository for each release. Users are instructed to install the Fluent Operator Helm chart from the [fluent/helm-charts](https://github.com/fluent/helm-charts/tree/main/charts/fluent-operator/) repo.
# Helm Charts

The Helm charts in this directory are considered "development" and are [synced](../RELEASE.md) to the [fluent/helm-charts](https://github.com/fluent/helm-charts/tree/main/charts/fluent-operator/) repository for each release.

To install these helm charts and view their documentation, visit the official [fluent/helm-charts](https://github.com/fluent/helm-charts/tree/main/charts/fluent-operator/) repo.
29 changes: 0 additions & 29 deletions charts/fluent-bit-crds/README.md

This file was deleted.

20 changes: 0 additions & 20 deletions charts/fluent-bit-crds/README.md.gotmpl

This file was deleted.

2 changes: 0 additions & 2 deletions charts/fluent-bit-crds/values.yaml

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,21 +1,23 @@
apiVersion: v2
name: fluent-bit-crds
description: A helm chart for Fluent-Bit custom resource definitions (CRDs) used by fluent-operator.
name: fluent-operator-crds
description: Custom Resource Definitions (CRDs) for Fluent Operator. Includes both Fluent Bit and Fluentd CRDs with Helm lifecycle management.
type: application
version: 0.2.3
appVersion: v3.6.0
version: 0.0.0-dev.0 # This is a development chart which gets released and versioned in the fluent/helm-charts repo
# renovate: datasource=docker depName=ghcr.io/fluent/fluent-operator/fluent-operator
appVersion: 3.7.0
keywords:
- logging
- fluentd
- fluent-bit
- fluent-operator
- crds
home: https://github.com/fluent/fluent-operator
icon: https://raw.githubusercontent.com/fluent/fluent-operator/master/docs/images/fluent-operator-icon.svg
sources:
- https://github.com/fluent/fluent-operator/tree/master/charts/fluent-bit-crds
- https://github.com/fluent/fluent-operator/tree/master/charts/fluent-operator-crds
maintainers:
- name: cw-guo
email: cwguoz@gmail.com
- name: wenchajun
email: dehaocheng@kubesphere.io
- name: marcofranssen
email: marco.franssen@gmail.com
url: https://marcofranssen.nl
Expand Down
44 changes: 44 additions & 0 deletions charts/fluent-operator-crds/_docs.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
## Advanced Installation

### Install All CRDs

```bash
helm install fluent-operator-crds fluent/fluent-operator-crds
```

### Install Only Fluent Bit CRDs

```bash
helm install fluent-operator-crds fluent/fluent-operator-crds \
--set fluentd.enabled=false
```

### Install Only Fluentd CRDs

```bash
helm install fluent-operator-crds fluent/fluent-operator-crds \
--set fluentbit.enabled=false
```

## Protecting CRDs from Deletion

To prevent CRDs from being deleted on `helm uninstall`:

```bash
helm install fluent-operator-crds fluent/fluent-operator-crds \
--set additionalAnnotations."helm\.sh/resource-policy"=keep
```

With this annotation, Helm will preserve the CRDs even if the chart is uninstalled.

## Using with fluent-operator

After installing the CRDs with this chart, install the operator with `--skip-crds`:

```bash
# Step 1: Install CRDs
helm install fluent-operator-crds fluent/fluent-operator-crds

# Step 2: Install operator (skip CRDs since already installed)
helm install fluent-operator fluent/fluent-operator --skip-crds
```
Original file line number Diff line number Diff line change
@@ -1,12 +1,11 @@
---
{{- if .Values.fluentbit.enabled }}
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
{{- with .Values.additionalAnnotations }}
{{- toYaml . | nindent 4 }}
{{- end }}
controller-gen.kubebuilder.io/version: v0.18.0
name: clusterfilters.fluentbit.fluent.io
spec:
group: fluentbit.fluent.io
Expand Down Expand Up @@ -977,3 +976,4 @@ spec:
type: object
served: true
storage: true
{{- end }}
Original file line number Diff line number Diff line change
@@ -1,12 +1,11 @@
---
{{- if .Values.fluentbit.enabled }}
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
{{- with .Values.additionalAnnotations }}
{{- toYaml . | nindent 4 }}
{{- end }}
controller-gen.kubebuilder.io/version: v0.18.0
name: clusterfluentbitconfigs.fluentbit.fluent.io
spec:
group: fluentbit.fluent.io
Expand Down Expand Up @@ -452,3 +451,4 @@ spec:
type: object
served: true
storage: true
{{- end }}
Original file line number Diff line number Diff line change
@@ -1,12 +1,11 @@
---
{{- if .Values.fluentbit.enabled }}
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
{{- with .Values.additionalAnnotations }}
{{- toYaml . | nindent 4 }}
{{- end }}
controller-gen.kubebuilder.io/version: v0.18.0
name: clusterinputs.fluentbit.fluent.io
spec:
group: fluentbit.fluent.io
Expand Down Expand Up @@ -1008,3 +1007,4 @@ spec:
type: object
served: true
storage: true
{{- end }}
Original file line number Diff line number Diff line change
@@ -1,12 +1,11 @@
---
{{- if .Values.fluentbit.enabled }}
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
{{- with .Values.additionalAnnotations }}
{{- toYaml . | nindent 4 }}
{{- end }}
controller-gen.kubebuilder.io/version: v0.18.0
name: clustermultilineparsers.fluentbit.fluent.io
spec:
group: fluentbit.fluent.io
Expand Down Expand Up @@ -88,3 +87,4 @@ spec:
type: object
served: true
storage: true
{{- end }}
Original file line number Diff line number Diff line change
@@ -1,12 +1,11 @@
---
{{- if .Values.fluentbit.enabled }}
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
{{- with .Values.additionalAnnotations }}
{{- toYaml . | nindent 4 }}
{{- end }}
controller-gen.kubebuilder.io/version: v0.18.0
name: clusteroutputs.fluentbit.fluent.io
spec:
group: fluentbit.fluent.io
Expand Down Expand Up @@ -4409,3 +4408,4 @@ spec:
type: object
served: true
storage: true
{{- end }}
Original file line number Diff line number Diff line change
@@ -1,12 +1,11 @@
---
{{- if .Values.fluentbit.enabled }}
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
{{- with .Values.additionalAnnotations }}
{{- toYaml . | nindent 4 }}
{{- end }}
controller-gen.kubebuilder.io/version: v0.18.0
name: clusterparsers.fluentbit.fluent.io
spec:
group: fluentbit.fluent.io
Expand Down Expand Up @@ -130,3 +129,4 @@ spec:
type: object
served: true
storage: true
{{- end }}
Original file line number Diff line number Diff line change
@@ -1,12 +1,11 @@
---
{{- if .Values.fluentbit.enabled }}
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
{{- with .Values.additionalAnnotations }}
{{- toYaml . | nindent 4 }}
{{- end }}
controller-gen.kubebuilder.io/version: v0.18.0
name: collectors.fluentbit.fluent.io
spec:
group: fluentbit.fluent.io
Expand Down Expand Up @@ -3881,3 +3880,4 @@ spec:
type: object
served: true
storage: true
{{- end }}
Original file line number Diff line number Diff line change
@@ -1,12 +1,11 @@
---
{{- if .Values.fluentbit.enabled }}
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
{{- with .Values.additionalAnnotations }}
{{- toYaml . | nindent 4 }}
{{- end }}
controller-gen.kubebuilder.io/version: v0.18.0
name: filters.fluentbit.fluent.io
spec:
group: fluentbit.fluent.io
Expand Down Expand Up @@ -977,3 +976,4 @@ spec:
type: object
served: true
storage: true
{{- end }}
Loading
Loading