新着:プロジェクトの最新情報をTwitterMastodonで入手してください。

継続的デプロイメント

Flux や Argo CD などのツールを使用して cert-manager のインストールを自動化する方法を学びます。

概要

cert-manager Helm チャートを Flux、ArgoCD、Anthos などのツールで直接使用できます。また、helm template を使用して YAML を出力し、カスタマイズされた cert-manager インストールマニフェストを生成することもできます。これにより、好みのデプロイツールにパイプで渡すことができます。

このページには、これらのツールの一部を使用して cert-manager をインストールする方法に関するメモが含まれています。

📢 一般的な GitOps および継続的デプロイメントツールでの cert-manager の使用に関するメモや簡単なチュートリアルを提供して、このページの改善にご協力ください。

Flux Helm Controller の使用

cert-manager Helm チャートは、Flux Helm Controller によってインストールできます。

最初に、cert-manager Helm リポジトリの URL で構成されたHelmRepository リソースを作成します。次に、目的の cert-manager チャート値とリリースで構成されたHelmRelease リソースを作成します。

以下は、cert-manager 1.12 リリースの最新パッチバージョンをインストールし、次に 1.13 リリースの最新パッチバージョンにアップグレードする例です。

⚠️ これは、本番環境での使用には適さない可能性がある簡単な例です。また、cert-manager が完全に統合された公式の Flux 例のリポジトリも参照してください。ここでは、cert-manager CRD とコントローラーがインストールされた後、ClusterIssuer リソースを適切な順序でデプロイする方法を示しています。

前提条件

flux CLI と、Flux がインストールされた Kubernetes クラスターが必要です。

以下は、Kind クラスターに Flux をすばやくインストールする方法です。

kind create cluster
flux check --pre
flux install
flux check

HelmRepository リソースを作成する

flux create source helm cert-manager --url https://charts.jetstack.io

HelmRelease リソースを作成する

Helm チャートの値を values.yaml ファイルに入れます。Flux が CRD リソースをインストールおよびアップグレードできるように、crds.enabled 値を使用します。

# values.yaml
crds:
enabled: true
flux create helmrelease cert-manager \
--chart cert-manager \
--source HelmRepository/cert-manager.flux-system \
--release-name cert-manager \
--target-namespace cert-manager \
--create-target-namespace \
--values values.yaml \
--chart-version 1.12.x

更新とアップグレード

そして、cert-manager 1.13 リリースにアップグレードする場合は、チャートバージョンの部分的なセマンティックバージョンを更新するだけです。

flux create helmrelease cert-manager \
--chart cert-manager \
--source HelmRepository/cert-manager.flux-system \
--release-name cert-manager \
--target-namespace cert-manager \
--create-target-namespace \
--values values.yaml \
--chart-version 1.13.x

トラブルシューティング

警告とエラーについて Flux イベントとログを確認します。

flux events
flux logs

cmctl を使用して、cert-manager webhook または CRD の問題をチェックします。

cmctl check api
cmctl version -o yaml

警告とエラーについて cert-manager のログを確認します。

kubectl logs -n cert-manager -l app.kubernetes.io/instance=cert-manager --prefix --all-containers