A presentation at DockerCon SF 2018 in in San Francisco, CA, USA by Baruch Sadogursky
Where the Helm are your binaries? @ jbaruch
dockercon jfrog.com / shownotes
About me @ jbaruch
What the helm is helm? Dependency manager for Kubernetes @ jbaruch
dockercon jfrog.com / shownotes
What Dependency managers and printers have in common? @ jbaruch
dockercon jfrog.com / shownotes
@ jbaruch
dockercon jfrog.com / shownotes
@ jbaruch
dockercon jfrog.com / shownotes
@ jbaruch
dockercon jfrog.com / shownotes
@ jbaruch
dockercon jfrog.com / shownotes
How to deploy anything to k8s • Copy YAML • Paste YAML • Fix indents • Repeat @ jbaruch
dockercon jfrog.com / shownotes
app:1.0" , @ jbaruch
dockercon jfrog.com / shownotes
Let’s build a new one!
app:1.1 @ jbaruch
dockercon jfrog.com / shownotes
One last thing…
app:1.1#${ imageTag }#` deployment.yaml @ jbaruch
dockercon jfrog.com / shownotes
app:latest " @ jbaruch
dockercon jfrog.com / shownotes
Enter helm @ jbaruch
dockercon jfrog.com / shownotes
persist Becomes this xray @ jbaruch
dockercon jfrog.com / shownotes
app.name " . }}" , "image" : "{{ . Values.image.repository }}: {{ . Values.image.tag }}" @ jbaruch
dockercon jfrog.com / shownotes
Values:
app.
formatted file.
app tag : 1.1 secretName : regsecret pullPolicy : Always @ jbaruch
dockercon jfrog.com / shownotes
Simple! • Templates • Values • Metadata @ jbaruch
dockercon jfrog.com / shownotes
image relationship • Using templates we can reuse charts for multiple image versions • But not really… • Templates will be populated from values within the chart • Otherwise, they has to be provided on each run • You don’t want to require versions of images from the client! @ jbaruch
dockercon jfrog.com / shownotes
Kubernetes cluster control @ jbaruch
dockercon jfrog.com / shownotes
Two parts Helm client • Local chart development • Managing repositories • Interacting with the Tiller server Tiller Server • Listening for incoming requests from the Helm client • Combining a chart and configuration to build a release • Installing charts into Kubernetes, and then tracking the subsequent release • Upgrading and uninstalling charts by interacting with Kubernetes @ jbaruch
dockercon jfrog.com / shownotes
Helm commands
helm init
helm search
helm install
helm status
helm repo @ jbaruch
dockercon jfrog.com / shownotes
kubeapps.com @ jbaruch
dockercon jfrog.com / shownotes
kubeapps.com • Get a local one! • Option 1: Create your own: • Run an http server with index.yaml • Run helm repo index to generate one the index • Option 2: Use JFrog Artifactory • Universal Artifact Repository which supports Docker, Helm and everything else @ jbaruch
dockercon jfrog.com / shownotes
Use Artifactory: Take your metadata seriously Where the helm is my binary? @ jbaruch
dockercon jfrog.com / shownotes
shownotes • www.jfrog.com / shownotes • Slides • Video (tomorrow!) • All the links! • Ratings, comments • Raffle! @ jbaruch
dockercon jfrog.com / shownotes
The Age of Binaries IoT Serverless Docker Microservices DevOps CD CI Agile 2001 2018 @ jbaruch
dockercon jfrog.com / shownotes
Who cares about those binaries anyway? @ jbaruch
dockercon jfrog.com / shownotes
The big picture @ jbaruch
dockercon jfrog.com / shownotes @jbaruch #dockercon jfrog.com/shownotes
The big picture @ jbaruch
dockercon jfrog.com / shownotes @jbaruch #dockercon jfrog.com/shownotes
@ jbaruch
dockercon jfrog.com / shownotes
@ jbaruch
dockercon jfrog.com / shownotes
@ jbaruch
dockercon jfrog.com / shownotes
@ jbaruch
dockercon jfrog.com / shownotes
@ jbaruch
dockercon jfrog.com / shownotes
@ jbaruch
dockercon jfrog.com / shownotes
@ jbaruch
dockercon jfrog.com / shownotes
@ jbaruch
dockercon jfrog.com / shownotes
@ jbaruch
dockercon jfrog.com / shownotes
@jbaruch #dockercon jfrog.com/shownotes The big picture @jbaruch #dockercon jfrog.com/shownotes
The big picture @ jbaruch
dockercon jfrog.com / shownotes @jbaruch #dockercon jfrog.com/shownotes
The big picture @ jbaruch
dockercon jfrog.com / shownotes @jbaruch #dockercon jfrog.com/shownotes
The big picture @ jbaruch
dockercon jfrog.com / shownotes @jbaruch #dockercon jfrog.com/shownotes
The big picture @ jbaruch
dockercon jfrog.com / shownotes @jbaruch #dockercon jfrog.com/shownotes
The big picture @ jbaruch
dockercon jfrog.com / shownotes @jbaruch #dockercon jfrog.com/shownotes
The big picture @ jbaruch
dockercon jfrog.com / shownotes @jbaruch #dockercon jfrog.com/shownotes
The big picture @ jbaruch
dockercon jfrog.com / shownotes @jbaruch #dockercon jfrog.com/shownotes
The big picture @ jbaruch
dockercon jfrog.com / shownotes @jbaruch #dockercon jfrog.com/shownotes
The big picture @ jbaruch
dockercon jfrog.com / shownotes @jbaruch #dockercon jfrog.com/shownotes
The big picture @ jbaruch
dockercon jfrog.com / shownotes @jbaruch #dockercon jfrog.com/shownotes
Demo time Talk is cheap, show me the code! @ jbaruch
dockercon jfrog.com / shownotes
QA and links • www.jfrog.com / shownotes • Slides • Video (tomorrow!) • All the links! • Ratings, comments • Raffle! @ jbaruch
dockercon jfrog.com / shownotes
Do you always know what’s going on with your product artifacts since the moment they are built by the CI server from Git sources all the way to being deployed by Helm into Kuberenetes?
In this talk, I show how to build a reliable and transparent pipeline from code to cluster using Git, Artifactory, Docker, Kubernetes, and Helm. We’ll show how you such a pipeline can help you answer the three big questions: What to deploy, What is deployed, and what is this artifact that I am looking for. This kind of transparency is critical for today’s environments, and Kubernetes with Helm shouldn’t be an exception.