spinnaker / spinnaker

Spinnaker is an open source, multi-cloud continuous delivery platform for releasing software changes with high velocity and confidence.
http://www.spinnaker.io/
Apache License 2.0
9.34k stars 1.21k forks source link

Add support for Helm 3 rendering engine in Spinnaker #5106

Closed costimuraru closed 4 years ago

costimuraru commented 5 years ago

Issue Summary:

Helm 3 will soon be released (it's currently on release candidate 2). It aims to replace helm 2 altogether and offers a series of improvements, the most important being the removal of Tiller. Currently, Spinnaker supports just Helm2 as a rendering engine. Our hope is that by supporting Helm 3, we will have access to a more complete set of features in Spinnaker. Helm hooks come to mind.

https://github.com/helm/helm/releases

Screenshot 2019-11-06 13 33 37

Cloud Provider(s):

Kubernetes

Environment:

Feature Area:

Bake/Deployment

Description:

Steps to Reproduce:

Additional Details:

ethanfrogers commented 5 years ago

@costimuraru thanks for filing this issue! Are there any other features about Helm 3 that you'd like to have access to, other than hooks?

On the subject of hooks, as someone who hasn't been following Helm 3 closely, could you point me to some documentation about how it works without Tiller? Would users be able to use hooks if we continue to only use Helm as a rendering engine (via helm template)?

drwoods commented 5 years ago

+1

There is a seven part set of Blog articles on Helm v2 vs v3, with Part 2 talking about Tiller - https://helm.sh/blog/helm-3-preview-pt2/ Basically, the Helm Client now talks directly to the Kubernetes API and uses CRDs to track the deployments within a namespace.

Also a v2 to v3 migration article - https://helm.sh/blog/migrate-from-helm-v2-to-helm-v3/

ethanfrogers commented 5 years ago

Thanks for the links @drwoods! To clarify, any features we gain by adding Helm 3 support would purely be around how charts are rendered as we only use helm template to render them. The actual deployment of any manifests generated from a chart happen via the Deploy (Manifest) stage. To that end, is there anything we're missing out on by not having Helm 3 as a rendering engine today?

drwoods commented 5 years ago

Some new features that we'd like supported are #1 and #3, while tolerating any v3 charts that use #2 (we'd setup separate pipelines for any dependencies). 1) Helm charts from Docker registries - https://helm.sh/blog/helm-3-preview-pt3/ 2) The requirements.yaml file content moves into Chart.yaml - https://helm.sh/blog/helm-3-preview-pt5/ 3) Library only chart packages as dependencies - https://helm.sh/blog/helm-3-preview-pt6/

drwoods commented 5 years ago

Also from - https://helm.sh/blog/helm-v3-beta/ looking for support/toleration of - 1) JSON schemas can now be imposed on chart values and bundled with the chart. The schemas can be used for validating chart values. 2) New apiVersion 2 for charts

ethanfrogers commented 5 years ago

Ah, thank you! That's exactly what I was looking for. It certainly sounds like something we want to get ahead of. Based on that it seems like we'll need to do some research to investigate how it would deviate from the current implementation and how we'd want to expose those extra features (specifically the JSON validation). I'd be interested in guiding someone to take this on as it's not something I can commit to right now. Maybe we'll present it at the next Kubernetes SIG meeting and see if there's more interest.

JulienBreux commented 5 years ago

Hi dear friends!

It’s official, Helm 3 is here ; https://github.com/helm/helm/releases/tag/v3.0.0

☺️

gabel commented 4 years ago

@ethanfrogers Any news from SIG to take on that topic?

anoopl commented 4 years ago

any news on this?

ethanfrogers commented 4 years ago

I believe there is someone working on this but I haven't heard any updates yet.

marcecaro commented 4 years ago

Any news on this?

ethanfrogers commented 4 years ago

@marcecaro Unfortunately, no. I haven't heard from the user who volunteered to take it on. I'll make a call for volunteers at the SIG meeting next week.

Lord-Y commented 4 years ago

@marcecaro any news about the call?

evansb commented 4 years ago

Hi folks, I am volunteering to take up this task, starting with adding support to Bake Manifest. I have a small RFC up there ☝️

spinnakerbot commented 4 years ago

This issue hasn't been updated in 45 days, so we are tagging it as 'stale'. If you want to remove this label, comment:

@spinnakerbot remove-label stale

davewongillies commented 4 years ago

@spinnakerbot remove-label stale

maggieneterval commented 4 years ago

Hi all! Looks like we began tracking Helm 3 support in this RFC but never closed this issue. Helm 3 support was released with Spinnaker 1.19.0! If there are any additional Helm 3 features you would like to see supported in Spinnaker, feel free to open a new GitHub issue or join a meeting of the Kubernetes SIG to discuss!