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?

GitHub Container Registry で Helm Chart をホストする方法

Posted at

最近、Kubernetes環境でアプリケーションを管理する機会が増えてきて、Helm chartの管理について考えることが多くなってきました。

今回は、GitHub Container Registry (GHCR) を使ってHelm chartをホストする方法を紹介します。GHCRは無料でプライベートレジストリも作れるので、個人や小規模チームのプロジェクトにぴったりです。

前提条件

まずは以下のツールが必要です:

  • Helm
  • GitHubアカウント(Classic Personal Access Token が必要です)
    • write:packages スコープを持つトークンを作成してください
    • 注意:Fine-grained permissions は現時点でGHCRではサポートされていません

今回使用するチャートについて

今回は超シンプルな例として、hello-world という名前空間を作成するだけのチャートを使います。

構成はこんな感じ:

charts/hello-world/
├── Chart.yaml
├── templates/
│   └── namespace.yaml
# Chart.yaml
apiVersion: v2
name: hello-world
description: A simple Helm chart that creates hello-world namespace
type: application
version: 0.1.0
appVersion: "1.0.0"
# templates/namespace.yaml
apiVersion: v1
kind: Namespace
metadata:
  name: hello-world

GHCRにチャートを公開する手順

1. GitHub Container Registryにログイン

まずはGitHub CLIでログインします:

helm registry login ghcr.io -u あなたのGitHubユーザー名

パスワードを求められたら、先ほど作成したPATを入力してください。

2. チャートをパッケージング

helm package charts/hello-world

実行すると、hello-world-0.1.0.tgz というファイルが作成されます。

3. GHCRにプッシュ

helm push hello-world-0.1.0.tgz oci://ghcr.io/あなたのGitHubユーザー名

これで完了です!簡単!

作成したチャートを使ってみる

GHCRからチャートをインストールするには:

helm install hello-world oci://ghcr.io/あなたのGitHubユーザー名/hello-world --version 0.1.0

お掃除

テスト後は以下のコマンドでクリーンアップできます:

# Helmリリースをアンインストール
helm uninstall hello-world

# 作成された名前空間を削除
kubectl delete namespace hello-world

# ローカルのパッケージファイルを削除
rm hello-world-0.1.0.tgz

まとめ

今回は、GitHub Container RegistryにHelm chartを公開する方法を紹介しました。
GHCRの利点をまとめると:

  • 無料でプライベートレジストリが作れる
  • GitHubと統合されているので管理が楽
  • OCI標準に対応

みなさんもぜひ試してみてください!

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?