Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

2,736 views

Published on

Helm Repositoryの構造、公開方法について解説し、Github Pagesを使った公開法を紹介します。

Published in: Software
  • Be the first to comment

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

  1. 1. Githubを使って簡単に Helm Repoを公開してみよう Kubernetes Meetup Tokyo #7 Shingo Omura (@everpeace)
  2. 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. 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. 4. Helm は複数 Repo に対応しています
  5. 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. 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. 7. index.yamlの構造 ✓ Chart.yamlに記述された Metadata ✓ 実際のパッケージのurl ○ helm repo index で指定 …… kubernetes/helm/blob/master/docs/chart_repository.md
  8. 8. helm repo index コマンドの使い方 ● Chartを特定dirにpackageしておいて ○ 手順はQiita参照 ● ‘helm repo index DIR --url URL’ を実行 ○ DIR = chart群のあるdirectory ○ URL = 公開したいRepo URL
  9. 9. Githubを使って簡単に Helm Repoを公開してみよう
  10. 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. 11. つまりいろんな手段で公開できる ● Google Cloud Storage (GCS) bucket ● S3 bucket ● Github Pages ○ gh-pages ブランチを使う ○ master ブランチを使う ○ master ブランチの /docs フォルダを使う (⬅ 今回はこれ) ■ gh-pagesのようにブランチを切り替えなくて済む ■ master ブランチにdocsを作っておいてそこに commit & pushするだけなのでお手軽
  12. 12. master ブランチの /docs フォルダ をGithub Pages として公開する設定 ● RepositoryのSettingページ で右のように設定するだけ ○ ここに表示されるurlを ‘helm repo index’コマンドで指定する
  13. 13. Github Repositoryの構造 ● /docs ディレクトリを作っておく ● 残りはチャート開発用のディレクトリ ● build.sh みたいなのを作ると便利です https://github.com/everpeace/helm-charts/
  14. 14. 後は helm repo add, update で使えます!
  15. 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. 16. ⎈ Happy Helming! ⎈ Thank you!

×