独自の Helm Chart の作成と共有
Chart の利用者から作成者へステップアップし、Chart の雛形を作成し、values でマニフェストをテンプレート化し、パッケージ化してリポジトリに公開します。
「独自の Helm Chart の作成と共有」はCoddyKit上の無料DevOps Bootcampレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはDevOps Bootcamp学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 DevOps Bootcampコースには全4レッスンが含まれています。
コンシューマーから作成者へ
既存のチャートをデプロイしてカスタマイズする方法を学びました。次は独自のチャートを作成し、他の人が1つのコマンドでインストールできるようにアプリをパッケージ化します。
チャートのひな形を作成する
helm createは、編集して使える適切なデフォルト値を備えたチャートのひな形を生成します。
helm create mychart
# creates mychart/ with Chart.yaml, values.yaml, templates/Chart.yaml: メタデータ
Chart.yamlには、チャートの名前、バージョン、デプロイするアプリのバージョンなど、チャートの情報を記述します。
apiVersion: v2
name: mychart
description: A web app chart
type: application
version: 0.1.0
appVersion: '1.0.0'テンプレートとGoテンプレートエンジン
templates/内のファイルは、プレースホルダーを含むKubernetesマニフェストです。Helmは二重の中括弧を使うGoテンプレート構文で、プレースホルダーを値に置き換えます。
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ .Release.Name }}-web
spec:
replicas: {{ .Values.replicaCount }}
template:
spec:
containers:
- name: web
image: {{ .Values.image.repository }}:{{ .Values.image.tag }}values.yaml: デフォルト値
values.yamlには、テンプレートが.Valuesを通じて参照するデフォルト設定が格納されています。ユーザーはインストール時にこれらの値を上書きできます。
replicaCount: 2
image:
repository: myapp
tag: '1.0.0'_helpers.tplによるヘルパー
再利用可能なスニペットは、名前付きテンプレートとして_helpers.tplに記述します。ラベルや名前などのマニフェストをDRYに保てます。
{{- define "mychart.labels" -}}
app.kubernetes.io/name: {{ .Chart.Name }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- end }}Lintとレンダリング
インストールする前に、チャートを検証し、クラスターに変更を加えずにレンダリング後のマニフェストを確認します。
helm lint mychart
helm template mychart --set replicaCount=3チャートをインストールする
ローカルのチャートディレクトリから直接インストールして、最初から最後まで動作をテストします。
helm install demo ./mychart --set image.tag=2.0.0
helm listパッケージ化
helm packageは、チャートをバージョン付きの.tgzアーカイブにまとめ、配布できる状態にします。
helm package mychart
# produces mychart-0.1.0.tgzリポジトリに公開する
チャートはHTTPリポジトリでホストできるほか、最近ではコンテナレジストリ内のOCIアーティファクトとしてホストすることもできます。
helm push mychart-0.1.0.tgz oci://registry.example.com/charts
helm install demo oci://registry.example.com/charts/mychart --version 0.1.0バージョン管理の原則
- チャートを変更したら
versionを上げます - 同梱するアプリが変更されたら
appVersionを上げます - 利用者が想定すべき内容を把握できるよう、セマンティックバージョニングに従います
理解度チェック
チャート作成についての知識を確認しましょう。
まとめ
チャートの作成方法を学びました。helm createでひな形を作成し、Chart.yamlにメタデータを記述し、.Valuesとヘルパーを使ってマニフェストをテンプレート化します。その後、lintとレンダリングを行い、パッケージ化して公開します(OCIレジストリも含みます)。規律あるバージョン管理によって、利用者を安全に保てます。
よくある質問
「独自の Helm Chart の作成と共有」レッスンは無料ですか?
はい。「独自の Helm Chart の作成と共有」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、DevOps Bootcampコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 DevOps Bootcampコースには全4レッスンが含まれています。
「独自の Helm Chart の作成と共有」で何を学びますか?
Chart の利用者から作成者へステップアップし、Chart の雛形を作成し、values でマニフェストをテンプレート化し、パッケージ化してリポジトリに公開します。 ブラウザで直接実行するハンズオンコードでDevOps Bootcampを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
DevOps Bootcampを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのDevOps Bootcampは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。
「独自の Helm Chart の作成と共有」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このDevOps Bootcampレッスンでコードを書いて実行できますか?
はい。すべてのDevOps Bootcampレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- Helm Chart入門
- Helmによるアプリケーションのデプロイ
- Releaseのカスタマイズと管理
- 独自の Helm Chart の作成と共有