SlideShare a Scribd company logo
Githubを使って簡単に
Helm Repoを公開してみよう
Kubernetes Meetup Tokyo #7
Shingo Omura (@everpeace)
自己紹介
✓ Kubernetes歴 実運用 約1年
✓ ChatWorkの新メッセージングシステムを支える技術
Kubernetes & Concourse CIを使ったDevOps改善
@ AWS Summit Tokyo 2017
✓ kube-aws#645: NVIDIA driver installation support
on GPU instances
everpeace
everpeace
Helm: The package manager for Kubernetes
✓ https://helm.sh/
✓ CNCFによって運営されている(Microsoft, Google, Bitnamiのメンバーが主)
✓ Chartと呼ばれるパッケージにKubernetesの要素をまとめることが出来て
パッケージとして扱える(Service, Deployment, ConfigMap, Secretes, etc.)
✓ Helm Chart は Helm Repoで公開されている
○ 公式レポジトリ ➔ stable / Incubator
✓ 参考: Kubernetes: パッケージマネージャHelm
✓ 今日はhelmの全体のアーキテクチャ, Chartの作り方、使い方の話は割愛します
Helm は複数 Repo に対応しています
Helm Repositoryはどうやって公開する?
● ドキュメント
○ kubernetes/helm/blob/master/docs/chart_repository.md
● 下記を含んだ HTTP/HTTPS エンドポイントならOK
○ index.yaml という名前のインデックスファイル
■ helm repo indexコマンドで生成できる
○ Index.yaml に含まれるパッケージ本体 (.tgz, .tgz.prov)たち
■ 実際には別のurlでホストすることも可能
Helm Repositoryの構造
kubernetes/helm/blob/master/docs/chart_repository.md
⬅ ‘helm package ...’ で生成
⬅ ‘helm package --sign ...’ で生成 (ref: Helm Provenance and Integrity )
⬅ ‘helm repo index ...’ で生成
index.yamlの構造
✓ Chart.yamlに記述された
Metadata
✓ 実際のパッケージのurl
○ helm repo index で指定
……
kubernetes/helm/blob/master/docs/chart_repository.md
helm repo index
コマンドの使い方
● Chartを特定dirにpackageしておいて
○ 手順はQiita参照
● ‘helm repo index DIR --url URL’
を実行
○ DIR = chart群のあるdirectory
○ URL = 公開したいRepo URL
Githubを使って簡単に
Helm Repoを公開してみよう
おさらい
● Helm Repoは単純な http/https エンドポイント
○ index.yaml, Chart群 をフラットに置くだけ
○ それらのファイルは全部 helm コマンドで生成できる
■ ‘helm package --destination DIR’ でchartのtgzを作って
■ ‘helm repo index DIR --url <external url>’ でindex.yamlを生成
つまりいろんな手段で公開できる
● Google Cloud Storage (GCS) bucket
● S3 bucket
● Github Pages
○ gh-pages ブランチを使う
○ master ブランチを使う
○ master ブランチの /docs フォルダを使う (⬅ 今回はこれ)
■ gh-pagesのようにブランチを切り替えなくて済む
■ master ブランチにdocsを作っておいてそこに commit & pushするだけなのでお手軽
master ブランチの /docs フォルダ
をGithub Pages として公開する設定
● RepositoryのSettingページ
で右のように設定するだけ
○ ここに表示されるurlを
‘helm repo index’コマンドで指定する
Github Repositoryの構造
● /docs ディレクトリを作っておく
● 残りはチャート開発用のディレクトリ
● build.sh みたいなのを作ると便利です
https://github.com/everpeace/helm-charts/
後は helm repo add, update で使えます!
How to Secure Helm Repo ?
● 絶賛 Open Issue (opened by mumoshu)
○ helm#1038: feat: Securing a chart repository (AuthN)
● 現状
○ client 証明書認証はサポートされている (version 2.2.0)
■ tiller側(helm init), client側 (helm repo add)
● 今後
○ S3, GCS, Swift みたいな Cloud Storage は Helm Plugin で対応予定だそうです
○ 最近 helm-s3 というpluginが出来たようです!
⎈ Happy Helming! ⎈
Thank you!

More Related Content

PDF
コンテナ未経験新人が学ぶコンテナ技術入門
PPTX
Dockerからcontainerdへの移行
PDF
Dockerからcontainerdへの移行
PDF
Dockerfileを改善するためのBest Practice 2019年版
PDF
DockerとPodmanの比較
PDF
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
PPTX
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
PDF
containerdの概要と最近の機能
コンテナ未経験新人が学ぶコンテナ技術入門
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
Dockerfileを改善するためのBest Practice 2019年版
DockerとPodmanの比較
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
containerdの概要と最近の機能

What's hot (20)

PDF
速習!論理レプリケーション ~基礎から最新動向まで~(PostgreSQL Conference Japan 2022 発表資料)
PPTX
Apache Spark on Kubernetes入門(Open Source Conference 2021 Online Hiroshima 発表資料)
PDF
Flutter移行の苦労と、乗り越えた先に得られたもの
PDF
GKE に飛んでくるトラフィックを 自由自在に操る力 | 第 10 回 Google Cloud INSIDE Games & Apps Online
PDF
コンテナとimmutableとわたし。あとセキュリティ。(Kubernetes Novice Tokyo #15 発表資料)
PDF
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PPTX
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
PDF
コンテナの作り方「Dockerは裏方で何をしているのか?」
PDF
ストリーム処理を支えるキューイングシステムの選び方
PPTX
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
PPTX
Redisの特徴と活用方法について
PPTX
Istioサービスメッシュ入門
PDF
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
PDF
WebAssemblyのWeb以外のことぜんぶ話す
PPTX
kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)
PDF
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
PDF
コンセプトから理解するGitコマンド
PDF
MySQLアーキテクチャ図解講座
PPTX
root権限無しでKubernetesを動かす
PDF
BuildKitの概要と最近の機能
速習!論理レプリケーション ~基礎から最新動向まで~(PostgreSQL Conference Japan 2022 発表資料)
Apache Spark on Kubernetes入門(Open Source Conference 2021 Online Hiroshima 発表資料)
Flutter移行の苦労と、乗り越えた先に得られたもの
GKE に飛んでくるトラフィックを 自由自在に操る力 | 第 10 回 Google Cloud INSIDE Games & Apps Online
コンテナとimmutableとわたし。あとセキュリティ。(Kubernetes Novice Tokyo #15 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
コンテナの作り方「Dockerは裏方で何をしているのか?」
ストリーム処理を支えるキューイングシステムの選び方
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Redisの特徴と活用方法について
Istioサービスメッシュ入門
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
WebAssemblyのWeb以外のことぜんぶ話す
kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
コンセプトから理解するGitコマンド
MySQLアーキテクチャ図解講座
root権限無しでKubernetesを動かす
BuildKitの概要と最近の機能
Ad

Similar to Githubを使って簡単に helm repoを公開してみよう (20)

PDF
Kuberneteの運用を支えるGitOps
PDF
TUNA-Con#kubeapps.pdf
PPTX
Kubernetes Meetup Tokyo #8 Self-hosted Kubernetes を調べてみた
PDF
[GKE & Spanner 勉強会] GKE 入門
PDF
Kubernetesの良さを活かして開発・運用!Cloud Native入門 / An introductory Cloud Native #osc19tk
PDF
【サイボウズ インターンシップ2025】Kubernetes基盤開発コース説明資料
PDF
[Cloud OnAir] Google Cloud 主催イベント Anthos Day 情報 2020 年 2 月 13 日放送
PPTX
【Ltech#11】Kubernetesを利用した機械学習モデルの本番適用例
PDF
Infra: Kubernetes and GKE, Network
PDF
Kubernets on Bluemix + DevOpsでコンテナCIやってみた
PDF
Azuredevopsakskeda
PDF
True Cloud Native Batch Workflow for .NET with MicroBatchFramework
PDF
CI/CD Pipeline を考える 〜KubeCon 2017 + CyberAgent の最大公倍数〜
PDF
Kubernetes ControllerをScale-Outさせる方法 / Kubernetes Meetup Tokyo #55
PDF
[OracleCodeTokyo2019] Kubernetesで実現する運用自動化の新しいアプローチとは
PDF
[External] 2021.12.15 コンテナ移行の前に知っておきたいこと @ gcpug 湘南
PDF
Kube con + cloudnativecon 2017 社内報告会(外部公開用)
PDF
Kubernetes、Flannel、CNIでWindows Container Clusterオーケストレーション
PPTX
Virtual Kubelet and Virtual Node
PDF
普通のRailsアプリをdockerで本番運用する知見
Kuberneteの運用を支えるGitOps
TUNA-Con#kubeapps.pdf
Kubernetes Meetup Tokyo #8 Self-hosted Kubernetes を調べてみた
[GKE & Spanner 勉強会] GKE 入門
Kubernetesの良さを活かして開発・運用!Cloud Native入門 / An introductory Cloud Native #osc19tk
【サイボウズ インターンシップ2025】Kubernetes基盤開発コース説明資料
[Cloud OnAir] Google Cloud 主催イベント Anthos Day 情報 2020 年 2 月 13 日放送
【Ltech#11】Kubernetesを利用した機械学習モデルの本番適用例
Infra: Kubernetes and GKE, Network
Kubernets on Bluemix + DevOpsでコンテナCIやってみた
Azuredevopsakskeda
True Cloud Native Batch Workflow for .NET with MicroBatchFramework
CI/CD Pipeline を考える 〜KubeCon 2017 + CyberAgent の最大公倍数〜
Kubernetes ControllerをScale-Outさせる方法 / Kubernetes Meetup Tokyo #55
[OracleCodeTokyo2019] Kubernetesで実現する運用自動化の新しいアプローチとは
[External] 2021.12.15 コンテナ移行の前に知っておきたいこと @ gcpug 湘南
Kube con + cloudnativecon 2017 社内報告会(外部公開用)
Kubernetes、Flannel、CNIでWindows Container Clusterオーケストレーション
Virtual Kubelet and Virtual Node
普通のRailsアプリをdockerで本番運用する知見
Ad

Githubを使って簡単に helm repoを公開してみよう

  • 2. 自己紹介 ✓ Kubernetes歴 実運用 約1年 ✓ ChatWorkの新メッセージングシステムを支える技術 Kubernetes & Concourse CIを使ったDevOps改善 @ AWS Summit Tokyo 2017 ✓ kube-aws#645: NVIDIA driver installation support on GPU instances everpeace everpeace
  • 3. Helm: The package manager for Kubernetes ✓ https://helm.sh/ ✓ CNCFによって運営されている(Microsoft, Google, Bitnamiのメンバーが主) ✓ Chartと呼ばれるパッケージにKubernetesの要素をまとめることが出来て パッケージとして扱える(Service, Deployment, ConfigMap, Secretes, etc.) ✓ Helm Chart は Helm Repoで公開されている ○ 公式レポジトリ ➔ stable / Incubator ✓ 参考: Kubernetes: パッケージマネージャHelm ✓ 今日はhelmの全体のアーキテクチャ, Chartの作り方、使い方の話は割愛します
  • 4. Helm は複数 Repo に対応しています
  • 5. Helm Repositoryはどうやって公開する? ● ドキュメント ○ kubernetes/helm/blob/master/docs/chart_repository.md ● 下記を含んだ HTTP/HTTPS エンドポイントならOK ○ index.yaml という名前のインデックスファイル ■ helm repo indexコマンドで生成できる ○ Index.yaml に含まれるパッケージ本体 (.tgz, .tgz.prov)たち ■ 実際には別のurlでホストすることも可能
  • 6. Helm Repositoryの構造 kubernetes/helm/blob/master/docs/chart_repository.md ⬅ ‘helm package ...’ で生成 ⬅ ‘helm package --sign ...’ で生成 (ref: Helm Provenance and Integrity ) ⬅ ‘helm repo index ...’ で生成
  • 7. index.yamlの構造 ✓ Chart.yamlに記述された Metadata ✓ 実際のパッケージのurl ○ helm repo index で指定 …… kubernetes/helm/blob/master/docs/chart_repository.md
  • 8. helm repo index コマンドの使い方 ● Chartを特定dirにpackageしておいて ○ 手順はQiita参照 ● ‘helm repo index DIR --url URL’ を実行 ○ DIR = chart群のあるdirectory ○ URL = 公開したいRepo URL
  • 10. おさらい ● Helm Repoは単純な http/https エンドポイント ○ index.yaml, Chart群 をフラットに置くだけ ○ それらのファイルは全部 helm コマンドで生成できる ■ ‘helm package --destination DIR’ でchartのtgzを作って ■ ‘helm repo index DIR --url <external url>’ でindex.yamlを生成
  • 11. つまりいろんな手段で公開できる ● Google Cloud Storage (GCS) bucket ● S3 bucket ● Github Pages ○ gh-pages ブランチを使う ○ master ブランチを使う ○ master ブランチの /docs フォルダを使う (⬅ 今回はこれ) ■ gh-pagesのようにブランチを切り替えなくて済む ■ master ブランチにdocsを作っておいてそこに commit & pushするだけなのでお手軽
  • 12. master ブランチの /docs フォルダ をGithub Pages として公開する設定 ● RepositoryのSettingページ で右のように設定するだけ ○ ここに表示されるurlを ‘helm repo index’コマンドで指定する
  • 13. Github Repositoryの構造 ● /docs ディレクトリを作っておく ● 残りはチャート開発用のディレクトリ ● build.sh みたいなのを作ると便利です https://github.com/everpeace/helm-charts/
  • 14. 後は helm repo add, update で使えます!
  • 15. How to Secure Helm Repo ? ● 絶賛 Open Issue (opened by mumoshu) ○ helm#1038: feat: Securing a chart repository (AuthN) ● 現状 ○ client 証明書認証はサポートされている (version 2.2.0) ■ tiller側(helm init), client側 (helm repo add) ● 今後 ○ S3, GCS, Swift みたいな Cloud Storage は Helm Plugin で対応予定だそうです ○ 最近 helm-s3 というpluginが出来たようです!
  • 16. ⎈ Happy Helming! ⎈ Thank you!