Where the Helm are your binaries?

A presentation at DockerCon SF 2018 in June 2018 in San Francisco, CA, USA by Baruch Sadogursky

Slide 1

Slide 1

Where the Helm are your binaries? @ jbaruch

dockercon jfrog.com / shownotes

Slide 2

Slide 2

About me @ jbaruch

Slide 3

Slide 3

What the helm is helm? Dependency manager for Kubernetes @ jbaruch

dockercon jfrog.com / shownotes

Slide 4

Slide 4

What Dependency managers and printers have in common? @ jbaruch

dockercon jfrog.com / shownotes

Slide 5

Slide 5

@ jbaruch

dockercon jfrog.com / shownotes

Slide 6

Slide 6

@ jbaruch

dockercon jfrog.com / shownotes

Slide 7

Slide 7

@ jbaruch

dockercon jfrog.com / shownotes

Slide 8

Slide 8

@ jbaruch

dockercon jfrog.com / shownotes

Slide 9

Slide 9

How to deploy anything to k8s • Copy YAML • Paste YAML • Fix indents • Repeat @ jbaruch

dockercon jfrog.com / shownotes

Slide 10

Slide 10

Kubernetes resource { "kind" : "Deployment" , " apiVersion " : "extensions/v1beta1" , "metadata" : { "name" : "my

release

docker

app

chart" }, "spec" : { "containers" : [ { "name" : " docker

app

chart" , "image" : " docker.artifactory /docker

app:1.0" , @ jbaruch

dockercon jfrog.com / shownotes

Slide 11

Slide 11

Let’s build a new one!

docker build – t docker.artifactory /docker

app:1.1 @ jbaruch

dockercon jfrog.com / shownotes

Slide 12

Slide 12

One last thing…

sed – i.bak ` s#docker.artifactory /docker

app:1.1#${ imageTag }#` deployment.yaml @ jbaruch

dockercon jfrog.com / shownotes

Slide 13

Slide 13

Slide 14

Slide 14

Or just use :latest "image" : " docker.artifactory / docker

app:latest " @ jbaruch

dockercon jfrog.com / shownotes

Slide 15

Slide 15

Enter helm @ jbaruch

dockercon jfrog.com / shownotes

Slide 16

Slide 16

Encapsulated packages of Kubernetes deployments All this… xrayxray

analysis xray

event xray

indexer xray

nfs

server xray

persist Becomes this xray @ jbaruch

dockercon jfrog.com / shownotes

Slide 17

Slide 17

Powerful templating for descriptor files { "kind" : "Deployment" , " apiVersion " : "extensions/v1beta1" , "metadata" : { "name" : "{{ template " docker

app.fullname " . }}" }, "spec" : { "containers" : [ { "name" : "{{ template " docker

app.name " . }}" , "image" : "{{ . Values.image.repository }}: {{ . Values.image.tag }}" @ jbaruch

dockercon jfrog.com / shownotes

Slide 18

Slide 18

Values:

Default values for

docker

app.

This is a YAML

formatted file.

Declare name/value pairs to be passed into your templates.

image : repository : docker.artifactory / docker

app tag : 1.1 secretName : regsecret pullPolicy : Always @ jbaruch

dockercon jfrog.com / shownotes

Slide 19

Slide 19

Simple! • Templates • Values • Metadata @ jbaruch

dockercon jfrog.com / shownotes

Slide 20

Slide 20

Chart <

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

Slide 21

Slide 21

Kubernetes cluster control @ jbaruch

dockercon jfrog.com / shownotes

Slide 22

Slide 22

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

Slide 23

Slide 23

Helm commands

helm init

helm search

helm install

helm status

helm repo @ jbaruch

dockercon jfrog.com / shownotes

Slide 24

Slide 24

Helm repositories • Official repository

kubeapps.com @ jbaruch

dockercon jfrog.com / shownotes

Slide 25

Slide 25

Slide 26

Slide 26

Helm repositories • Official repository

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

Slide 27

Slide 27

Use Artifactory: Take your metadata seriously Where the helm is my binary? @ jbaruch

dockercon jfrog.com / shownotes

Slide 28

Slide 28

shownotes • www.jfrog.com / shownotes • Slides • Video (tomorrow!) • All the links! • Ratings, comments • Raffle! @ jbaruch

dockercon jfrog.com / shownotes

Slide 29

Slide 29

The Age of Binaries IoT Serverless Docker Microservices DevOps CD CI Agile 2001 2018 @ jbaruch

dockercon jfrog.com / shownotes

Slide 30

Slide 30

Who cares about those binaries anyway? @ jbaruch

dockercon jfrog.com / shownotes

Slide 31

Slide 31

The big picture @ jbaruch

dockercon jfrog.com / shownotes @jbaruch #dockercon jfrog.com/shownotes

Slide 32

Slide 32

The big picture @ jbaruch

dockercon jfrog.com / shownotes @jbaruch #dockercon jfrog.com/shownotes

Slide 33

Slide 33

@ jbaruch

dockercon jfrog.com / shownotes

Slide 34

Slide 34

@ jbaruch

dockercon jfrog.com / shownotes

Slide 35

Slide 35

@ jbaruch

dockercon jfrog.com / shownotes

Slide 36

Slide 36

@ jbaruch

dockercon jfrog.com / shownotes

Slide 37

Slide 37

@ jbaruch

dockercon jfrog.com / shownotes

Slide 38

Slide 38

@ jbaruch

dockercon jfrog.com / shownotes

Slide 39

Slide 39

@ jbaruch

dockercon jfrog.com / shownotes

Slide 40

Slide 40

@ jbaruch

dockercon jfrog.com / shownotes

Slide 41

Slide 41

@ jbaruch

dockercon jfrog.com / shownotes

Slide 42

Slide 42

@jbaruch #dockercon jfrog.com/shownotes The big picture @jbaruch #dockercon jfrog.com/shownotes

Slide 43

Slide 43

The big picture @ jbaruch

dockercon jfrog.com / shownotes @jbaruch #dockercon jfrog.com/shownotes

Slide 44

Slide 44

The big picture @ jbaruch

dockercon jfrog.com / shownotes @jbaruch #dockercon jfrog.com/shownotes

Slide 45

Slide 45

The big picture @ jbaruch

dockercon jfrog.com / shownotes @jbaruch #dockercon jfrog.com/shownotes

Slide 46

Slide 46

The big picture @ jbaruch

dockercon jfrog.com / shownotes @jbaruch #dockercon jfrog.com/shownotes

Slide 47

Slide 47

The big picture @ jbaruch

dockercon jfrog.com / shownotes @jbaruch #dockercon jfrog.com/shownotes

Slide 48

Slide 48

The big picture @ jbaruch

dockercon jfrog.com / shownotes @jbaruch #dockercon jfrog.com/shownotes

Slide 49

Slide 49

The big picture @ jbaruch

dockercon jfrog.com / shownotes @jbaruch #dockercon jfrog.com/shownotes

Slide 50

Slide 50

The big picture @ jbaruch

dockercon jfrog.com / shownotes @jbaruch #dockercon jfrog.com/shownotes

Slide 51

Slide 51

The big picture @ jbaruch

dockercon jfrog.com / shownotes @jbaruch #dockercon jfrog.com/shownotes

Slide 52

Slide 52

The big picture @ jbaruch

dockercon jfrog.com / shownotes @jbaruch #dockercon jfrog.com/shownotes

Slide 53

Slide 53

Demo time Talk is cheap, show me the code! @ jbaruch

dockercon jfrog.com / shownotes

Slide 54

Slide 54

QA and links • www.jfrog.com / shownotes • Slides • Video (tomorrow!) • All the links! • Ratings, comments • Raffle! @ jbaruch

dockercon jfrog.com / shownotes