Save 37% off PRO during our Black Friday Sale! »

get-your-helm-charts-out-there.pdf

 get-your-helm-charts-out-there.pdf

The new Helm Hub (https://hub.helm.sh) provides a central site where anyone can register their own chart repositories for easy discoverability. This session will show how to set up your own chart repo using GitHub Pages. It illustrates how to set up CI for your charts using Kind (https://github.com/kubernetes-sigs/kind) and the chart-testing (https://github.com/helm/chart-testing) tool so you can install and test pull requests for your charts and, thus, build trust in your community that things work as expected.

5627a6711888317828bc84670537816f?s=128

Reinhard Nägele

April 01, 2019
Tweet

Transcript

  1. Get Your Helm Charts out There! Reinhard Nägele 1 @unguiculus

  2. 2 Reinhard Nägele •Senior IT Consultant at codecentric AG •Helm

    Org and Charts Maintainer •@unguiculus
  3. Agenda •A Helm Primer •The Helm Hub •Testing Helm Charts

    •Ephemeral K8s Clusters for CI with Kind •Using GitHub Pages as Chart Repository •Putting Everything Together 3
  4. A Helm Primer •Manage Kubernetes resources as a single unit

    •Charts can be hosted in a repository •Release history •Go templating support •Lifecycle management with hooks •Dependencies •Test support 4 Features
  5. The Helm Hub 5 •Distributed search •Find charts hosted in

    many repositories https://hub.helm.sh
  6. Testing Helm Charts 6 https://github.com/helm/chart-testing

  7. Testing Helm Charts 7 •Validate Chart.yaml against schema (https://github.com/23andMe/Yamale) •Lint

    Chart.yaml and values.yaml (https://github.com/adrienverge/yamllint) •Lint chart
 helm lint •Check for version bumps •Install the chart
 helm install •Perform chart updates
 helm upgrade •Run Helm tests
 helm test Features
  8. Ephemeral K8s Clusters for CI with Kind 8 https://github.com/kubernetes-sigs/kind •Kubernetes

    in Docker •Support for multi-node clusters •Support for dynamic volume provisioning to be install separately
 https://github.com/rancher/local-path-provisioner
  9. Ephemeral K8s Clusters for CI with Kind 9 •kind create

    cluster •kind create cluster --name=my-cluster •kind create cluster --image=kindest/node:v1.14.0
 •kind create cluster --config=my-config.yaml kind: Cluster apiVersion: kind.sigs.k8s.io/v1alpha3 nodes: - role: control-plane - role: worker - role: worker
  10. Using GitHub Pages as Chart Repository •Any HTTP server that

    can serve YAML files and tar files 10 Chart Repository Two Options for GitHub Pages •Commit chart packages to repo •Use GitHub releases
  11. Using GitHub Pages as Chart Repository 11 https://github.com/helm/chart-releaser

  12. Using GitHub Pages as Chart Repository 12 •Create GitHub releases

    from chart packages •Create index.yaml file from GitHub releases Features Planned •GitHub app •Full-featured solution including CI setup and chart packaging
  13. Putting Everything Together 13 https://github.com/unguiculus/gh-pages-helm-chart-repo-example

  14. 14 Thank you Reinhard Nägele https://github.com/unguiculus @unguiculus