0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

🧩 Helm Repository を理解する --- repo addの裏側をちょっと見る

Posted at

Helm は、Kubernetes 上でアプリケーションを簡単にデプロイ・管理するためのツールです。
マニフェストをテンプレート化して再利用できるだけでなく、公開されている「Chart」を使って素早くアプリを導入できるのが魅力です。

この記事では特に、
👉 「Helm Repository(リポジトリ)」とは何か?
👉 helm repo add の内部で何が起きているのか?
を具体的なファイル構成をもとに解説していきます。

🪶 Helm とは?

Helm は「Kubernetes のパッケージマネージャー」と呼ばれるツールです。

  • Kubernetes マニフェストをテンプレート化して再利用できる
  • アプリケーションを Chart(チャート)という単位で管理できる
  • バージョン管理やリリースのロールバックが簡単

つまり、「chart を作って installすれば、Kubernetes へアプリをデプロイできる」という仕組みです 👑

さらに、他の開発者や OSS コミュニティが公開しているチャートをRepository(リポジトリ) から取得して利用できます。
たとえば Bitnami や Grafana などの公式チャートを使えば、品質の高いアプリを短時間で導入することができます。


🗺️ Helm の全体イメージ

image.png

CLI を通してリポジトリからチャートを取得し、Kubernetes クラスタにインストールしてリソースを作成します。
もちろん、リポジトリを使わずに自作チャートを helm install ./mychartすることも可能です 💪

📦 Repository とは?

Helm の Repository は、チャートを管理・公開・共有するための場所です。
HTTP(S)でアクセスできる静的なサーバで、以下の 2 種類のファイルが置かれています

  • index.yaml — チャートのメタデータ一覧
  • .tgz — 実際のパッケージファイル

例)有名なrepogitory

名前 URL
Grafana https://grafana.github.io/helm-charts
Bitnami https://charts.bitnami.com/bitnami
Prometheus https://prometheus-community.github.io/helm-charts

🪄 helm repo add でrepogitoryを使用する

helm repogitoryを使用するには、作業端末でhelm repo add を実施する必要があります

helm repo add grafana https://grafana.github.io/helm-charts

このコマンドを実行するとrepogitoryが使用できるようになりますが、どのような処理がなされているのでしょうか?

簡単にまとめると以下の処理がなされます。

  1. https://grafana.github.io/helm-charts/index.yaml をダウンロードする
  2. ローカルにキャッシュ (grafana-index.yaml) と検索キャッシュ(grafana-charts.txt) を作成する
  3. 登録情報を repositories.yaml に保存する

🧭実際に確認してみよう

まずは、helmの環境変数(HELM_REPOSITORY_CACHEHELM_REPOSITORY_CONFIG )を確認してください。

# 環境変数を確認
helm env

これらの環境変数に、helm repo addした結果が保存されます。

🧩 HELM_REPOSITORY_CONFIG

このファイルには、helm repo addしたrepogitoryが保存されています。

repositories:
  - name: grafana
    url: https://grafana.github.io/helm-charts
    caFile: ""
    certFile: ""
    insecure_skip_tls_verify: false

💾 HELM_REPOSITORY_CACHE

リポジトリのキャッシュが保存されるディレクトリです。中を見るとこんなファイルが作られています 👇

grafana-charts.txt
grafana-index.yaml

🧠 grafana-charts.txtgrafana-index.yaml の違い

ファイル 役割 内容

grafana-index.yaml は公式リポジトリから取得したindex.yaml の複製です。Chartのメタデータ(バージョン、URL、依存関係など)が書かれています。

grafana-charts.txt はHelm が自動生成しており、helm repo searchの時に 検索ように使用します。
の高速化用)

🔍 grafana-charts.txt の中身

alloy
grafana-sampling
lgtm-distributed
phlare
promtail
tempo
loki
grafana
loki-distributed
...

この一覧は index.yaml から抽出されたチャート名です。Helm はこのテキストを利用して、helm search repoの検索速度を上げています。

📘 grafana-index.yaml の中身

apiVersion: v1
entries:
  grafana:
    - version: 8.7.2
      appVersion: 10.4.1
      urls:
        - https://github.com/grafana/helm-charts/releases/download/grafana-8.7.2/grafana-8.7.2.tgz
      description: The leading tool for querying and visualizing metrics
  loki:
    - version: 5.46.0
      appVersion: 2.9.1
      urls:
        - https://github.com/grafana/helm-charts/releases/download/loki-5.46.0/loki-5.46.0.tgz

これは、Grafana Helm Charts リポジトリの gh-pagesブランチ にあるindex.yaml の内容そのものです。

🧾 まとめ

項目 内容
Helm Repository チャートを保管・共有するサーバ
index.yaml リポジトリのメタ情報を記述したファイル
charts.txt ローカルに生成される検索キャッシュ
helm repo add index.yaml をダウンロードし、ローカルに登録
helm search repo charts.txt と index.yaml を元にチャート一覧を検索

🚀 さいごに

helm repo add は一見シンプルなコマンドですが、裏では「index.yaml の取得 → ローカルキャッシュ →検索最適化」という処理が行われています。
これを理解すると、Helm がどのようにチャートを扱っているかが一気に見えてきます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?