0Pricing
DevOps Bootcamp · レッスン

独自の 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フィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. Helm Chart入門
  2. Helmによるアプリケーションのデプロイ
  3. Releaseのカスタマイズと管理
  4. 独自の Helm Chart の作成と共有
← DevOps Bootcampに戻る