-
Notifications
You must be signed in to change notification settings - Fork 630
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
Add Helm project proposal #114
Changes from 1 commit
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
- Loading branch information
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,122 @@ | ||
== Helm | ||
|
||
*Name of project*: Helm | ||
|
||
*Description*: | ||
|
||
link:http:https://helm.sh[Helm] is a package manager, like Debian Apt for Kubernetes, that enables you to define, install, and upgrade container based applications including those with dependencies. Dependencies can be held in distributed repositories including those in public and private locations. | ||
|
||
Those who develop packages, known as charts, have the full power of Kubernetes objects and the ability to depend on other charts. Depending on other charts allows individual services to be defined separately while also allowing an application to launch using a microservice architecture. | ||
|
||
Helm not only provides a simple out-of-the-box experience for those installing applications, but also simplifies deployment automation by enabling configuration reuse, enabling multiple components to be managed as a single entity, and facilitating observability of overall application health. | ||
|
||
*Sponsor / Advisor from TOC*: Brian Grant <[email protected]> | ||
|
||
*Unique Identifier*: helm | ||
|
||
*License*: ALv2 | ||
|
||
*Maturity Level:* Incubating | ||
|
||
*Source control repositories*: | ||
|
||
* https://github.com/kubernetes/helm | ||
* https://github.com/kubernetes/charts | ||
* https://github.com/kubernetes-helm/community | ||
* https://github.com/kubernetes-helm/monocular | ||
* https://github.com/kubernetes-helm/helm-summit-notes | ||
* https://github.com/kubernetes-helm/chart-testing | ||
* https://github.com/kubernetes-helm/charts-tooling | ||
* https://github.com/kubernetes-helm/rudder-federation | ||
* https://github.com/kubernetes-helm/chartmuseum | ||
* https://github.com/helm/helm-www | ||
|
||
A goal is to consolidate all repositories under the link:https://github.com/helm[helm] GitHub org. | ||
|
||
link:https://github.com/kubernetes/community/blob/6c3b1a6f0c1152f5e35a53ea93e692ed501abf7a/governance.md#subprojects[Kubernetes, where Helm grew up, has the concept of sub-projects]. For Kubernetes these can be ways the core Kubernetes codebase is organized as well as separate codebases, some with their own release schedules, that support Kubernetes as a whole. Under Kuberentes, Helm and its supporting projects were organized as several sub-projects. This proposal groups those supporting projects of Helm, coming from Kubernetes, as sub-projects of Helm. Sub-projects may have their own maintainers and release schedules. | ||
|
||
*Current Core Maintainers*: | ||
|
||
* Adam Reese | ||
* Adnan Abdulhussein | ||
* Justin Scott | ||
* Maciej Kwiek | ||
* Matt Butcher | ||
* Matt Farina | ||
* Matt Fisher | ||
* Michelle Noorali | ||
* Nikhil Manchanda | ||
* Taylor Thomas | ||
* Vic Iglesias | ||
|
||
_Note, the current core maintainers represent 5 different companies._ | ||
|
||
Sub-projects of Helm have their own maintainers. For example, you can read about the Charts maintainers in the link:https://github.com/kubernetes/charts/blob/master/OWNERS[OWNERS file]. | ||
|
||
*Infrastructure requirements*: CI, CNCF Cluster, Object Storage | ||
|
||
*Issue tracker*: https://github.com/kubernetes/helm/issues | ||
|
||
Sub-projects each have their own issue queue. | ||
|
||
*Mailing lists* | ||
|
||
* Slack: | ||
** Helm Dev room https://kubernetes.slack.com/messages/helm-dev | ||
** Helm Users room https://kubernetes.slack.com/messages/helm-users (see https://kubernetes.slackarchive.io/helm-users/page-100) | ||
** Charts room https://kubernetes.slack.com/messages/charts | ||
** Chartmuseum room https://kubernetes.slack.com/messages/chartmuseum | ||
* https://lists.cncf.io/g/cncf-kubernetes-helm | ||
|
||
*Website*: http:https://helm.sh | ||
|
||
*Release methodology and mechanics* | ||
|
||
Helm uses link:http:https://semver.org/[semantic versioning] for releases. Releases are announced using GitHub releases while the release artifacts are placed into object storage for later download. The continuous integration systems, currently CircleCI, automatically places releases and development builds into object storage. | ||
|
||
Helm is currently releases stable releases with a major version of 2. When a minor version comes out containing new features a release branch is created where release candidates, final releases, and patch releases are created from. Anything to be added to these releases is cherry-picked into the branch prior to releases. | ||
|
||
The Helm release process is documented in the link:https://github.com/kubernetes/helm/blob/master/docs/release_checklist.md[release checklist]. | ||
|
||
Sub-projects have their own releases processes. For example, the Helm Community Charts repository uses continuous deployments. All changes to individual charts increment the chart versions. A sync job runs every 15 minutes to pickup changes, builds the chart packages, and places them into object storage to be retrieved by Helm clients. | ||
|
||
*Social media accounts*: | ||
|
||
* https://twitter.com/helmpack | ||
* link:https://www.youtube.com/channel/UC_kvCKc5EHNomq64f8C4sfA[YouTube] | ||
|
||
*Existing sponsorship*: | ||
|
||
* Microsoft | ||
* Codefresh | ||
* Bitnami | ||
* Ticketmaster | ||
* Codecentric | ||
|
||
_Note, these companies and their logos are listed on the link:https://helm.sh[Helm website]._ | ||
|
||
*Adopters*: | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. CNCF Graduation Requirements state: "Document that it is being used successfully in production by at least three independent end users which, in the TOC’s judgement, are of adequate quality and scope." Please clarify which of the listed adopters are using Helm successfully in production, and provide some details of these uses to enable the evaluation of the "adequate quality and scope" part of the requirement. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @quinton-hoole I updated the list to include a note about who at the conference shared how they were using Helm in production. Is this sufficient or would you like me to change up the list to be those using who've publicly stated they use it in production? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Thanks Matt. What we'd like to understand is some of the detail behind the actual production use cases, to help gauge the scope and quality. For those of us who were not present at the conference, are there some slides or presentation videos that might include that info? I looked around a bit, but couldn't find anything. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. To be clear, using an extreme and totally made-up example, there's a difference between e.g. "Reddit deploys their main public web site comprising 100 microservices, twice a week using Helm" vs "Reddit has an internal system that 2 people use, and it gets updated annually using Helm". So we'd need enough detail to be able to discern between these two kinds of scenarios. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Are you asking whether Helm is being used in production, or just want some examples to be documented? One of the main use cases for Helm is templating applications so that they can be deployed in multiple environments, such as for testing as well as in production. People also use it to deploy off-the-shelf applications in production, such as monitoring systems. Examples aren't hard to find. Here's the Helm summit Reddit presentation, and the playlist, with videos from WPEngine, Ubisoft, and others: It's been mentioned in a number of Kubecon presentations over the years. One Ticketmaster example: Google search "kubernetes helm production", and you'll find blog posts about it. Or search the same text on Twitter (or helmpack production), and you'll see plenty of tweets about it, such as: I don't think a question was specifically asked about production usage, but the Kubernetes SIG Apps survey showed about 40% of Kubernetes users using Helm: There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @quinton-hoole There is a YouTube playlist with the videos from the Helm Summit. Another point, from the Kubernetes Application Survey, is that 26.7% of Helm users are using the community charts in production. This was a question we asked. Others use it as templates, or for demos, or just don't use them. We didn't collect data on the size or details of these production use cases. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Thanks, I'll dig through the links Brian sent. I was hoping for a summary, saying something like: n major production use cases are as follows:
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @quinton-hoole I'm happy to go into more detail. Knowing the kind of thing you're looking for will help me make sure I hit the points you'd like to see. Thanks for providing that framework. I'm not sure I can hit on all your points for all of those using it but I'll try to do my best. For these bullets I'll continue with the companies from the Helm Summit.
Note, each of these is using Helm for package management and something else for config management. Each is using a different tool for this. In addition, each of these are using Helm in a different CI tool. In addition to these there are other ways to look at production and users. We have user profiles to describe the different roles. One of those is Application Distributor and Bitnami is an excellent example of this who was doing application distribution prior to Kubernetes and still does for other platforms. They distribute numerous charts for common applications (e.g., mariadb, wordpress, and drupal). If there is interest in more detail or other examples please let me know. Also, I'm not intimately familiar with these systems. If someone has a correction or more detail that information would be appreciated. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Thanks @mattfarina . That addresses my question well. |
||
|
||
Many Kubernetes users depend on Helm to configure and deploy their applications. The following is a partial list of those who have said they are using Helm at the Helm Summit, a conference held earlier this year that focused solely on the development of and use of Helm. The list is in alphabetical order. | ||
|
||
* IBM | ||
* jFrog | ||
* Microsoft | ||
* Nike | ||
* Oteemo | ||
* Samsung SDS | ||
* SUSE | ||
* Ubisoft | ||
* WP Engine | ||
|
||
In addition to these we have measured downloads of Helm. A sample of that for the month of April 2018 shows 59,050 downloads from unique IPs from the Helm distribution channel along with 11,618 installations via Homebrew for MacOS. | ||
|
||
*Statement on alignment with CNCF mission*: | ||
|
||
Helm joined the CNCF at the same time Kubernetes did as it was a sub-project of Kubernetes at that time. Helm is seeking to become a top-level project within the CNCF because Helm has grown up and is taking on a life of it's own. This can be seen in the over 300 contributors to Helm, the over 800 contributors to the community charts, a successful conference based solely on Helm, and the unique culture forming around Helm compared to core Kubernetes. | ||
|
||
*External Dependencies*: A full list of dependencies can be found at https://github.com/kubernetes/helm/blob/master/glide.lock. | ||
|
||
*Other Contributors*: https://github.com/kubernetes/helm/graphs/contributors |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nit: Spelling: kuberentes
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for catching that, fixing