Upgrade to Pro — share decks privately, control downloads, hide ads and more …

OverHelmed: Experience of a Helm chart publishe...

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
Avatar for Tamal Saha Tamal Saha
February 22, 2018

OverHelmed: Experience of a Helm chart publisher and consumer

Avatar for Tamal Saha

Tamal Saha

February 22, 2018
Tweet

More Decks by Tamal Saha

Other Decks in Programming

Transcript

  1. OverHelmed: Experience of a Helm chart publisher and consumer Tamal

    Saha AppsCode Inc., XGoogler Email: [email protected] Github: @tamalsaha Twitter: @tsaha Kubernetes Slack: @tamal
  2. Rewrite Tiller as a TPR controller (Nov 2016) - https://github.com/appscode/tillerc

    - This project is abandoned because Tiller's authorization requirements can't be implemented using a TPR controller. - https://github.com/kubernetes/helm/issues/1586#issuecomme nt-277666828 @tsaha @tamal
  3. Currently - Swift - Ajax friendly Helm Tiller Proxy -

    Chartify - Generate Helm Charts from Kubernetes objects - Publish charts to stable repo - Voyager - https://hub.kubeapps.com/charts/stable/voyager - Kubed - https://hub.kubeapps.com/charts/stable/kubed - Searchlight - https://hub.kubeapps.com/charts/stable/searchlight - Stash - https://hub.kubeapps.com/charts/stable/stash - Swift - https://hub.kubeapps.com/charts/stable/swift - g2 - https://hub.kubeapps.com/charts/stable/g2 @tsaha @tamal
  4. 2 personas - Package consumer - Package author/publisher (sometimes both

    personas are held by same person) @tsaha @tamal
  5. Chart Consumer - Great UX for trying new apps. -

    Needs lot of ceremony for internal apps. - Requires reinventing the developer workflow? - Multiple sources of truth? - `kube blame`: Can you tell who actually deployed that release? @tsaha @tamal
  6. Chart Consumer - Ordering deployments - Are you backing up

    your release history? - YAML + GO template (thanks for `helm template`) @tsaha @tamal
  7. Chart Publisher - Chart version is not same as your

    app version . - Slow / unpredictable review process for stable charts - Constantly changing style guides (`{{- define "chart.name" -}}` anyone?) @tsaha @tamal
  8. - Simple to get started (kubectl apply -f app.yaml) -

    Simple to learn (not another family of toolchains) - Simple to share (git repos) - Simple to branch/fork - Flexible enough to handle complex deployments - No new system of record, no new system to secure @tsaha @tamal
  9. Kube blame - `pack up` can tag all the objects

    with git commit hash - Collect Kubernetes audit log - Now you know who deployed what change. @tsaha @tamal
  10. Additional Reading - Simple Kubernetes Templating - Declarative application management

    in Kubernetes - So you want to write a package manager @tsaha @tamal