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

Helm and ArgoCD: Like peanut butter and chocolate

Helm and ArgoCD: Like peanut butter and chocolate

GitOps Guide to the Galaxy: Working with Helm

YouTube: https://youtu.be/1FzOlSed5ts

Red Hat Livestreaming

March 11, 2021
Tweet

More Decks by Red Hat Livestreaming

Other Decks in Technology

Transcript

  1. Helm and ArgoCD
    Like peanutbutter and chocolate.
    GitOps Guide to the Galaxy
    1
    Christian Hernandez
    Cloud Platforms BU

    View Slide

  2. 2
    Helm is a package manager for Kubernetes
    applications
    define, install and update applications

    View Slide

  3. 3
    a package consisting of
    related Kubernetes YAML
    files
    a place where Charts can be
    stored, shared and distributed
    a specific instance of a Chart
    deployed on Kubernetes
    Chart Repository Release

    View Slide

  4. 4
    How does Helm work?
    OPENSHIFT
    NAMESPACE
    Image
    Repository
    Releases
    Helm Chart
    (templates)
    Values
    (configs)
    Helm CLI

    View Slide

  5. Helm Templates
    apiVersion: build.openshift.io/v1
    kind: BuildConfig
    . . .
    spec:
    . . .
    source:
    type: Git
    git:
    uri: {{ .Values.build.uri }}
    contextDir: {{ .Values.build.contextDir }}
    {{- if and .Values.build.native.useDefaultDockerfile (eq
    .Values.build.mode “native”) }}
    dockerfile: |-
    FROM
    registry.redhat.com/quarkus/mandrel-20-rhel8 AS
    builder
    . . .
    {{- end }}
    strategy:
    {{- if eq .Values.build.mode “jvm” }}
    type: Source
    sourceStrategy:
    . . .
    apiVersion: apps/v1
    kind: Deployment
    metadata:
    . . .
    spec:
    replicas: {{ .Values.deploy.replicas }}
    . . .
    template:
    spec:
    containers:
    - name: web
    image: {{ .Release.Name }}:{{ .Values.image.tag }}
    {{- if .Values.deploy.resources }}
    resources:
    {{- toYaml .Values.deploy.resources | nindent 12 }}
    {{- end }}
    . . .

    View Slide

  6. Configuration using “Values”
    build:
    uri: https://github.com/deweya/quarkus-quickstarts
    contextDir: getting-started
    mode: jvm
    deploy:
    resources:
    limits:
    cpu: 500m
    memory: 2Gi
    Create a values.yaml file
    $ helm install quarkus-app
    redhat-charts/quarkus --values
    values.yaml
    Install the Helm chart
    BuildConfig
    ImageStream

    View Slide

  7. Helm Integration with ArgoCD
    ● Charts can be sourced from:
    ○ Git Repositories
    ○ Helm Repositories
    ● Override Chart Values
    ○ Separate Values files
    ○ Individual parameters
    ● Managed via UI or CLI
    ● Values.yaml file can only be
    stored if you’re hosting your own
    helm repo

    View Slide

  8. Let’s Explore!
    Hacking away at it until it works.
    GitOps Guide to the Galaxy
    8
    Keyboard time!

    View Slide