Skip to content

Commit

Permalink
Update helm chart version and clarify helm-related docs (#1378)
Browse files Browse the repository at this point in the history
* Update chart.yaml to ref v3.2.0.

Signed-off-by: Josh Baird <[email protected]>

* Update docs.

Signed-off-by: Josh Baird <[email protected]>

* Touch up.

Signed-off-by: Josh Baird <[email protected]>

---------

Signed-off-by: Josh Baird <[email protected]>
  • Loading branch information
joshuabaird authored Oct 17, 2024
1 parent dbb6848 commit 09cfed2
Show file tree
Hide file tree
Showing 4 changed files with 38 additions and 56 deletions.
41 changes: 10 additions & 31 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -152,48 +152,27 @@ 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: For the helm based install, Helm v3.2.1 or higher is needed.
The Fluent Bit section of the Fluent Operator supports different CRI `docker`, `containerd`, and `CRI-O`.
`containerd` and `CRI-O` use the `CRI Log` format which is different with `docker`, they requires additional parser to parse JSON application logs. You should set different `containerRuntime` depending on your container runtime.

The default runtime is docker, you can choose other runtimes as follows.

If your container runtime is `containerd` or `cri-o`, you can set the `containerRuntime` parameter to `containerd` or `crio`. e.g.
To install or upgrade Fluent Operator using Helm:

```shell
helm install fluent-operator --create-namespace -n fluent charts/fluent-operator/ --set containerRuntime=containerd
```

Install through the online chart link:
export FLUENT_OPERATOR_CONTAINER_RUNTIME="containerd" # or "cri-o", "docker" depending on the container runtime being used (see `values.yaml`)

```shell
helm install fluent-operator --create-namespace -n fluent https://github.com/fluent/fluent-operator/releases/download/< version >/fluent-operator.tgz
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}
```

> Please replace < version > with a actual version like v1.0.0
Fluent Operator CRDs will be installed by default when running a helm install for the chart. But if the CRD already exists, it will be skipped with a warning. So make sure you install the CRDs by yourself if you upgrade your Fluent Operator version.

By default the installation with Helm create all the CRDs (fluent-bit and fluentd ones).
If you do not intent to use one of the two components, it is possible to skip its CRDs and also to not start the controllers for it in the operator.
To achieve that `operator.disableComponentControllers` and `(fluent-bit/fluentd).crdsEnable` parameters can be provided:
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`.

```shell
helm install fluent-operator --create-namespace -n fluent charts/fluent-operator/ --set operator.disableComponentControllers=fluent-bit,fluent-bit.crdsEnable=false
```
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:

> Note: During the upgrade process, if a CRD was previously created using the create operation, an error will occur during the apply operation. Using apply here allows the CRD to be replaced and created in its entirety in a single operation.
To replace the CRDs pull the current helm chart:
```
wget https://github.com/fluent/fluent-operator/releases/download/<version>/fluent-operator.tgz
tar -xf fluent-operator.tgz
```

To update the CRDs, run the following command:

```shell
kubectl replace -f fluent-operator/crds
```

Expand Down
7 changes: 7 additions & 0 deletions RELEASE.md
Original file line number Diff line number Diff line change
Expand Up @@ -118,3 +118,10 @@ Finally, create a new release:
- Add file `setup.yaml` from `manifests/setup/setup.yaml` and then click "Publish release".

For patch releases, cherry-pick the commits from the release branch into the master branch.

### Publish updated Helm chart

This repo includes a "development" chart in the [charts/](./charts/fluent-operator/) directory. For each release, this chart must be published to the [fluent/helm-charts](https://github.com/fluent/helm-charts/tree/main/charts/fluent-operator/) repository which is where Fluent Operators install the chart from. This is currently a manual process. Follow these instructions to update and publish the chart:

* Bump `version` and `appVersion` in the [charts/fluet-operator/Chart.yaml](./charts/fluent-operator/Chart.yaml) file in this repo
* Manually "sync" (copy, open a PR) the local [chart](./charts/fluent-operator) to [fluent/helm-charts](https://github.com/fluent/helm-charts/tree/main/charts/fluent-operator/)
1 change: 1 addition & 0 deletions charts/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
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.
45 changes: 20 additions & 25 deletions charts/fluent-operator/Chart.yaml
Original file line number Diff line number Diff line change
@@ -1,31 +1,26 @@
apiVersion: v2
name: fluent-operator
description: A Helm chart for Kubernetes

# A chart can be either an 'application' or a 'library' chart.
#
# Application charts are a collection of templates that can be packaged into versioned archives
# to be deployed.
#
# Library charts provide useful utilities or functions for the chart developer. They're included as
# a dependency of application charts to inject those utilities and functions into the rendering
# pipeline. Library charts do not define any templates and therefore cannot be deployed.
# type: application

# This is the chart version. This version number should be incremented each time you make changes
# to the chart and its templates, including the app version.
# Versions are expected to follow Semantic Versioning (https://semver.org/)
version: 3.1.0

# This is the version number of the application being deployed. This version number should be
# incremented each time you make changes to the application. Versions are not expected to
# follow Semantic Versioning. They should reflect the version the application is using.
appVersion: 3.1.0

description: Fluent Operator provides great flexibility in building a logging layer based on Fluent Bit and Fluentd.
keywords:
- logging
- fluent-bit
- fluentd
- operator
version: 3.2.0
appVersion: 3.2.0
icon: https://raw.githubusercontent.com/fluent/fluent-operator/master/docs/images/fluent-operator-icon.svg
home: https://www.fluentd.org/
sources:
- https://github.com/fluent/fluent-operator
maintainers:
- name: wenchajun
email: [email protected]
dependencies:
- name: fluent-bit-crds
repository: fluent-bit-crds
repository: "file://charts/fluent-bit-crds"
version: 3.2.0
condition: fluentbit.crdsEnable
- name: fluentd-crds
repository: fluentd-crds
condition: fluentd.crdsEnable
repository: "file://charts/fluentd-crds"
version: 3.2.0
condition: fluentd.crdsEnable

0 comments on commit 09cfed2

Please sign in to comment.