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

Helmfile: Supercharge your deployment pipeline

Helmfile: Supercharge your deployment pipeline

KUOKA Yusuke

May 27, 2020
Tweet

More Decks by KUOKA Yusuke

Other Decks in Technology

Transcript

  1. Α͋͘Δύϥϝʔλ • ϚχϑΣετॻ͖͍ͨ vs Ͱ͖Δ͚ͩॻ͖ͨ͘ͳ͍ • DRYʹ͍ͨ͠ vs ͨ͘͠ͳ͍ •

    ࣗ෼ͰCI/CD૊Έ͍ͨ vs ೚͍ͤͨ • (ηΩϡϦςΟ|ύϑΥʔϚϯε|etc) ʹͩ͜ΘΔ vs ͩ͜ΘΒͳ͍ • KubernetesͷॊೈੑΏ͑બ୒ࢶ͕ଟ͍
  2. Α͋͘Δ՝୊ • ૿͑ଓ͚Δπʔϧ • kubectl, kustomize, helm, kpt, go(client-go +

    whatever), etc. • ཚཱ͢ΔWrapper • make, bash, ruby, go, js, yaml(CircleCI config.yml, GitHub Actions Workflow, …) • ߏ੒؅ཧ • WrapperͲ͜ (ΞϓϦέʔγϣϯϨϙδτϦ?ConfigRepo? • OSSͷެࣜϚχϑΣετ/Chart౳Λͦͷ··࢖ͬͯΔͷ͔ɺforkͯ͠Δͷ͔ • forkͯ͠ΔͳΒࠩ෼͸Ͳ͔͜ • πʔϧͷظ଴͢Δόʔδϣϯ͸?
  3. “Deployment on K8s is unnecessarily hard” • <—ίετେ— πʔϧઐ೚νʔϜ, WG,

    ਆ(K8s͓͡͞Μ), ϘϥϯςΟΞ —খ—> • େ఍ίετ͔͚ͨ΄͏͕πʔϧͱͯ͠͸࢖͍΍͘͢ͳΔ(ܦݧଇ • ͏·͍͘͘·ͰίετΛ͔͚ଓ͚Δ͔ʁˠجຊతʹ͸Yes • ʢͰ͖Ε͹ʣ࠷খݶͷίετͰ໰୊Λղܾ͍ͨ͠ • ୭͔͕طʹૺ۰ͨ͠໰୊͸ճආ͍ͨ͠ • େ͖ͳϛεΛճආ͍ͨ͠ • طଘπʔϧ͸ͳ͍ͷ͔ʁ
  4. Helmfile: HISTORY & NUMBERS HelmϕʔεͷએݴతσϓϩΠπʔϧ https://github.com/roboll/helmfile/ - Nov. 2016: First

    Commit by @roboll (Datadog) - Feb. 2018: @mumoshu as maintainer - Apr. 2018: ϓϩμΫγϣϯͰ࢖ΘΕ࢝ΊΔ - 200ίϛοτɾ100ϦϦʔε/೥ - 2.1K GitHubελʔ @ 2020/05
  5. Helmfile Benefits • πʔϧཚཱ ← ϚχϑΣετɾHelm Chartɾkustomizeαϙʔτ • ཚཱ͢ΔWrapper ←

    helmfile͕kubectl/kustomize/helmͷڞ௨ Wrapperʹ • ߏ੒؅ཧ ← ن໿Λͭ͘ΔͷͰ͸ͳ͘ɺhelmfileͷن໿Λར༻
  6. ศརػೳ • Diff • όʔδϣϯϩοΫ • ϚχϑΣετੜ੒ • Secret؅ཧ •

    Values provider: AWS SecretsManager/Vault/SOPS/Terraform State • DAG • σόοάࢧԉ (helmfile build, helmfile —debug)
  7. Alternatives • Terraform + Kubernetes/Helm provider • Pulumi + Kubernetes

    provider • AWS CDK / cdk8s • KPT (https://github.com/GoogleContainerTools/kpt) • Terraform + terraform-provider-helmfile