Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Helm chart support #2641

Closed
hangyan opened this issue Aug 25, 2021 · 5 comments · Fixed by #3989
Closed

Helm chart support #2641

hangyan opened this issue Aug 25, 2021 · 5 comments · Fixed by #3989
Assignees
Labels
kind/feature Categorizes issue or PR as related to a new feature. priority/important-longterm Important over the long term, but may not be staffed and/or may need multiple releases to complete.

Comments

@hangyan
Copy link
Member

hangyan commented Aug 25, 2021

Describe the problem/challenge you have

Helm chart is a popular way to package kubernetes apps, maybe we can support helm chart to allow some users with chart
experiences to eaily adapt antrea project.

Describe the solution you'd like
Provide helm chart with each release and publish it to officail helm chart repo

Anything else you would like to add?
Besides as an alternative way to distribute antrea, i'm not sure helm chart can provide additional features. Possible enhencement are:

  1. Many commercial/oss container platform product include helm chart support, antrea helm chart can be easier integreted to these platform
  2. Use helm values to customize antrea resources. May be we don't need the configmap-version any more (in helm chart)
  3. Rollback feature support by helm
@hangyan hangyan added the kind/feature Categorizes issue or PR as related to a new feature. label Aug 25, 2021
@github-actions
Copy link
Contributor

This issue is stale because it has been open 90 days with no activity. Remove stale label or comment, or this will be closed in 90 days

@github-actions github-actions bot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Dec 17, 2021
@antoninbas antoninbas removed the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Feb 18, 2022
@antoninbas
Copy link
Contributor

Other advantages of using Helm charts:

  • ability to list Antrea on https://artifacthub.io/
  • ability to set RBAC permissions granularly based on which Antrea features are enabled (if we wanted to do so today, we would need to provide many different combinations of YAML manifests)

@antoninbas antoninbas added the priority/important-longterm Important over the long term, but may not be staffed and/or may need multiple releases to complete. label Feb 18, 2022
@voidengineer
Copy link

Additional advantage:

  • let cluster administrators customize pod tolerations (especially for antrea-controller)

@antoninbas antoninbas self-assigned this Feb 22, 2022
antoninbas added a commit to antoninbas/antrea that referenced this issue Apr 1, 2022
And use the Helm templates (instead of Kustomize) to generate the
standard Antrea YAML manifests (which are checked-in and uploaded as
release assets).

Standard manifests are generated based on Helm values files located
under build/yamls/chart-values/, using a new script
(./hack/generate-standard-manifests.sh). It is much faster than the old
version.

While I believe that using Helm directly and specifying YAML values
whenever a new manifest needs to be generated would be better, the
./hack/generate-manifest.sh script is kept as-is, but it now uses Helm
instead of Kustomize.

Documentation for the Helm chart is autogenerated using helm-docs. In a
future PR, we will look into the release process for the Helm
chart. After that, Helm charts could be added for Antrea components
(Flow Aggregator, Flow visibility).

For antrea-io#2641

Signed-off-by: Antonin Bas <[email protected]>
antoninbas added a commit to antoninbas/antrea that referenced this issue Apr 1, 2022
And use the Helm templates (instead of Kustomize) to generate the
standard Antrea YAML manifests (which are checked-in and uploaded as
release assets).

Standard manifests are generated based on Helm values files located
under build/yamls/chart-values/, using a new script
(./hack/generate-standard-manifests.sh). It is much faster than the old
version.

While I believe that using Helm directly and specifying YAML values
whenever a new manifest needs to be generated would be better, the
./hack/generate-manifest.sh script is kept as-is, but it now uses Helm
instead of Kustomize.

Documentation for the Helm chart is autogenerated using helm-docs. In a
future PR, we will look into the release process for the Helm
chart. After that, Helm charts could be added for Antrea components
(Flow Aggregator, Flow visibility).

For antrea-io#2641

Signed-off-by: Antonin Bas <[email protected]>
antoninbas added a commit to antoninbas/antrea that referenced this issue Apr 1, 2022
And use the Helm templates (instead of Kustomize) to generate the
standard Antrea YAML manifests (which are checked-in and uploaded as
release assets).

Standard manifests are generated based on Helm values files located
under build/yamls/chart-values/, using a new script
(./hack/generate-standard-manifests.sh). It is much faster than the old
version.

While I believe that using Helm directly and specifying YAML values
whenever a new manifest needs to be generated would be better, the
./hack/generate-manifest.sh script is kept as-is, but it now uses Helm
instead of Kustomize.

Documentation for the Helm chart is autogenerated using helm-docs. In a
future PR, we will look into the release process for the Helm
chart. After that, Helm charts could be added for Antrea components
(Flow Aggregator, Flow visibility).

For antrea-io#2641

Signed-off-by: Antonin Bas <[email protected]>
antoninbas added a commit to antoninbas/antrea that referenced this issue Apr 1, 2022
And use the Helm templates (instead of Kustomize) to generate the
standard Antrea YAML manifests (which are checked-in and uploaded as
release assets).

Standard manifests are generated based on Helm values files located
under build/yamls/chart-values/, using a new script
(./hack/generate-standard-manifests.sh). It is much faster than the old
version.

While I believe that using Helm directly and specifying YAML values
whenever a new manifest needs to be generated would be better, the
./hack/generate-manifest.sh script is kept as-is, but it now uses Helm
instead of Kustomize.

Documentation for the Helm chart is autogenerated using helm-docs. In a
future PR, we will look into the release process for the Helm
chart. After that, Helm charts could be added for Antrea components
(Flow Aggregator, Flow visibility).

For antrea-io#2641

Signed-off-by: Antonin Bas <[email protected]>
antoninbas added a commit to antoninbas/antrea that referenced this issue Apr 2, 2022
And use the Helm templates (instead of Kustomize) to generate the
standard Antrea YAML manifests (which are checked-in and uploaded as
release assets).

Standard manifests are generated based on Helm values files located
under build/yamls/chart-values/, using a new script
(./hack/generate-standard-manifests.sh). It is much faster than the old
version.

While I believe that using Helm directly and specifying YAML values
whenever a new manifest needs to be generated would be better, the
./hack/generate-manifest.sh script is kept as-is, but it now uses Helm
instead of Kustomize.

Documentation for the Helm chart is autogenerated using helm-docs. In a
future PR, we will look into the release process for the Helm
chart. After that, Helm charts could be added for Antrea components
(Flow Aggregator, Flow visibility).

For antrea-io#2641

Signed-off-by: Antonin Bas <[email protected]>
antoninbas added a commit to antoninbas/antrea that referenced this issue Apr 5, 2022
And use the Helm templates (instead of Kustomize) to generate the
standard Antrea YAML manifests (which are checked-in and uploaded as
release assets).

Standard manifests are generated based on Helm values files located
under build/yamls/chart-values/, using a new script
(./hack/generate-standard-manifests.sh). It is much faster than the old
version.

While I believe that using Helm directly and specifying YAML values
whenever a new manifest needs to be generated would be better, the
./hack/generate-manifest.sh script is kept as-is, but it now uses Helm
instead of Kustomize.

Documentation for the Helm chart is autogenerated using helm-docs. In a
future PR, we will look into the release process for the Helm
chart. After that, Helm charts could be added for Antrea components
(Flow Aggregator, Flow visibility).

For antrea-io#2641

Signed-off-by: Antonin Bas <[email protected]>
antoninbas added a commit to antoninbas/antrea that referenced this issue Apr 7, 2022
And use the Helm templates (instead of Kustomize) to generate the
standard Antrea YAML manifests (which are checked-in and uploaded as
release assets).

Standard manifests are generated based on Helm values files located
under build/yamls/chart-values/, using a new script
(./hack/generate-standard-manifests.sh). It is much faster than the old
version.

While I believe that using Helm directly and specifying YAML values
whenever a new manifest needs to be generated would be better, the
./hack/generate-manifest.sh script is kept as-is, but it now uses Helm
instead of Kustomize.

Documentation for the Helm chart is autogenerated using helm-docs. In a
future PR, we will look into the release process for the Helm
chart. After that, Helm charts could be added for Antrea components
(Flow Aggregator, Flow visibility).

For antrea-io#2641

Signed-off-by: Antonin Bas <[email protected]>
antoninbas added a commit to antoninbas/antrea that referenced this issue Apr 8, 2022
And use the Helm templates (instead of Kustomize) to generate the
standard Antrea YAML manifests (which are checked-in and uploaded as
release assets).

Standard manifests are generated based on Helm values files located
under build/yamls/chart-values/, using a new script
(./hack/generate-standard-manifests.sh). It is much faster than the old
version.

While I believe that using Helm directly and specifying YAML values
whenever a new manifest needs to be generated would be better, the
./hack/generate-manifest.sh script is kept as-is, but it now uses Helm
instead of Kustomize.

Documentation for the Helm chart is autogenerated using helm-docs. In a
future PR, we will look into the release process for the Helm
chart. After that, Helm charts could be added for Antrea components
(Flow Aggregator, Flow visibility).

For antrea-io#2641

Signed-off-by: Antonin Bas <[email protected]>
antoninbas added a commit to antoninbas/antrea that referenced this issue Apr 11, 2022
And use the Helm templates (instead of Kustomize) to generate the
standard Antrea YAML manifests (which are checked-in and uploaded as
release assets).

Standard manifests are generated based on Helm values files located
under build/yamls/chart-values/, using a new script
(./hack/generate-standard-manifests.sh). It is much faster than the old
version.

While I believe that using Helm directly and specifying YAML values
whenever a new manifest needs to be generated would be better, the
./hack/generate-manifest.sh script is kept as-is, but it now uses Helm
instead of Kustomize.

Documentation for the Helm chart is autogenerated using helm-docs. In a
future PR, we will look into the release process for the Helm
chart. After that, Helm charts could be added for Antrea components
(Flow Aggregator, Flow visibility).

For antrea-io#2641

Signed-off-by: Antonin Bas <[email protected]>
antoninbas added a commit to antoninbas/antrea that referenced this issue Apr 11, 2022
And use the Helm templates (instead of Kustomize) to generate the
standard Antrea YAML manifests (which are checked-in and uploaded as
release assets).

Standard manifests are generated based on Helm values files located
under build/yamls/chart-values/, using a new script
(./hack/generate-standard-manifests.sh). It is much faster than the old
version.

While I believe that using Helm directly and specifying YAML values
whenever a new manifest needs to be generated would be better, the
./hack/generate-manifest.sh script is kept as-is, but it now uses Helm
instead of Kustomize.

Documentation for the Helm chart is autogenerated using helm-docs. In a
future PR, we will look into the release process for the Helm
chart. After that, Helm charts could be added for Antrea components
(Flow Aggregator, Flow visibility).

For antrea-io#2641

Signed-off-by: Antonin Bas <[email protected]>
antoninbas added a commit to antoninbas/antrea that referenced this issue Apr 15, 2022
And use the Helm templates (instead of Kustomize) to generate the
standard Antrea YAML manifests (which are checked-in and uploaded as
release assets).

Standard manifests are generated based on Helm values files located
under build/yamls/chart-values/, using a new script
(./hack/generate-standard-manifests.sh). It is much faster than the old
version.

While I believe that using Helm directly and specifying YAML values
whenever a new manifest needs to be generated would be better, the
./hack/generate-manifest.sh script is kept as-is, but it now uses Helm
instead of Kustomize.

Documentation for the Helm chart is autogenerated using helm-docs. In a
future PR, we will look into the release process for the Helm
chart. After that, Helm charts could be added for Antrea components
(Flow Aggregator, Flow visibility).

For antrea-io#2641

Signed-off-by: Antonin Bas <[email protected]>
antoninbas added a commit that referenced this issue Apr 19, 2022
And use the Helm templates (instead of Kustomize) to generate the
standard Antrea YAML manifests (which are checked-in and uploaded as
release assets).

Standard manifests are generated based on Helm values files located
under build/yamls/chart-values/, using a new script
(./hack/generate-standard-manifests.sh). It is much faster than the old
version.

While I believe that using Helm directly and specifying YAML values
whenever a new manifest needs to be generated would be better, the
./hack/generate-manifest.sh script is kept as-is, but it now uses Helm
instead of Kustomize.

Documentation for the Helm chart is autogenerated using helm-docs. In a
future PR, we will look into the release process for the Helm
chart. After that, Helm charts could be added for Antrea components
(Flow Aggregator, Flow visibility).

For #2641

Signed-off-by: Antonin Bas <[email protected]>
@hangyan hangyan closed this as completed Apr 19, 2022
@antoninbas
Copy link
Contributor

This issue is not resolved yet, there are still several changes required in order for the Helm chart to be usable by Antrea users.

@antoninbas antoninbas reopened this Apr 19, 2022
@antoninbas antoninbas added this to the Antrea v1.8 release milestone Jun 23, 2022
antoninbas added a commit to antoninbas/antrea that referenced this issue Jun 23, 2022
For each Antrea release, we generate the correct Helm chart archive and
upload it as a release asset. The appropriate index.yaml file (Helm repo
index) will be updated appropriately (in the antrea-io/website
repository) and will be accessible through charts.antrea.io and / or
antrea.io/charts.

For antrea-io#2641

We are also moving all CRD resources from the generic templates/
directory to the special crds/ directory, in the Chart definition. This
will cause Helm to treat CRDs as special resources, and in particular
they will never be upgraded / deleted automatically by Helm. In
particular, for upgrade, users will need to apply a separate YAML (which
is being added to release assets) including all the CRD resource
definitions. This represents an extra step, but ensures that users are
aware that CRDs are being upgraded which may require some actions from
them (e.g., migrate to a new version) and needs to be done with caution.

Fixes antrea-io#3665

Signed-off-by: Antonin Bas <[email protected]>
antoninbas added a commit to antoninbas/antrea that referenced this issue Jun 24, 2022
For each Antrea release, we generate the correct Helm chart archive and
upload it as a release asset. The appropriate index.yaml file (Helm repo
index) will be updated appropriately (in the antrea-io/website
repository) and will be accessible through charts.antrea.io and / or
antrea.io/charts.

For antrea-io#2641

We are also moving all CRD resources from the generic templates/
directory to the special crds/ directory, in the Chart definition. This
will cause Helm to treat CRDs as special resources, and in particular
they will never be upgraded / deleted automatically by Helm. In
particular, for upgrade, users will need to apply a separate YAML (which
is being added to release assets) including all the CRD resource
definitions. This represents an extra step, but ensures that users are
aware that CRDs are being upgraded which may require some actions from
them (e.g., migrate to a new version) and needs to be done with caution.

Fixes antrea-io#3665

Signed-off-by: Antonin Bas <[email protected]>
antoninbas added a commit that referenced this issue Jun 27, 2022
* Release Antrea Helm chart archive for each Antrea release

For each Antrea release, we generate the correct Helm chart archive and
upload it as a release asset. The appropriate index.yaml file (Helm repo
index) will be updated appropriately (in the antrea-io/website
repository) and will be accessible through charts.antrea.io and / or
antrea.io/charts.

For #2641

We are also moving all CRD resources from the generic templates/
directory to the special crds/ directory, in the Chart definition. This
will cause Helm to treat CRDs as special resources, and in particular
they will never be upgraded / deleted automatically by Helm. In
particular, for upgrade, users will need to apply a separate YAML (which
is being added to release assets) including all the CRD resource
definitions. This represents an extra step, but ensures that users are
aware that CRDs are being upgraded which may require some actions from
them (e.g., migrate to a new version) and needs to be done with caution.

Fixes #3665

Signed-off-by: Antonin Bas <[email protected]>

* Address review comments

Signed-off-by: Antonin Bas <[email protected]>

* Fix build/charts/antrea/README.md

Signed-off-by: Antonin Bas <[email protected]>
antoninbas added a commit to antoninbas/website that referenced this issue Jun 27, 2022
* repo URL is https://antrea.io/charts or https://charts.antrea.io
* index is updated for every Antrea release starting with v1.8

For antrea-io/antrea#2641

Signed-off-by: Antonin Bas <[email protected]>
antoninbas added a commit to antoninbas/website that referenced this issue Jun 27, 2022
* repo URL is https://antrea.io/charts or https://charts.antrea.io
* index is updated for every Antrea release starting with v1.8

For antrea-io/antrea#2641

Signed-off-by: Antonin Bas <[email protected]>
antoninbas added a commit to antoninbas/website that referenced this issue Jun 30, 2022
* repo URL is https://antrea.io/charts or https://charts.antrea.io
* index is updated for every Antrea release starting with v1.8

For antrea-io/antrea#2641

Signed-off-by: Antonin Bas <[email protected]>
antoninbas added a commit to antrea-io/website that referenced this issue Jul 5, 2022
* repo URL is https://antrea.io/charts or https://charts.antrea.io
* index is updated for every Antrea release starting with v1.8

For antrea-io/antrea#2641

Signed-off-by: Antonin Bas <[email protected]>
@antoninbas
Copy link
Contributor

Antrea Helm chart repo is available at https://charts.antrea.io.

$ helm repo add antrea https://charts.antrea.io/
$ helm search repo --devel --regexp antrea
NAME                  	CHART VERSION	APP VERSION  	DESCRIPTION
antrea/antrea         	1.8.0-alpha.2	1.8.0-alpha.2	Kubernetes networking based on Open vSwitch
antrea/flow-aggregator	1.8.0-alpha.2	1.8.0-alpha.2	Antrea Flow Aggregator
antrea/theia          	0.2.0-alpha.0	0.2.0-alpha.0	Antrea Network Flow Visibility

Helm installation method will be supported starting with Antrea v1.8.0.

At this stage, the only thing left is to update the documentation with this new supported installation method.

antoninbas added a commit to antoninbas/antrea that referenced this issue Jul 11, 2022
antoninbas added a commit to antoninbas/antrea that referenced this issue Jul 11, 2022
antoninbas added a commit to antoninbas/antrea that referenced this issue Jul 12, 2022
antoninbas added a commit that referenced this issue Jul 12, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/feature Categorizes issue or PR as related to a new feature. priority/important-longterm Important over the long term, but may not be staffed and/or may need multiple releases to complete.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants