Amazon ECR プライベートリポジトリへの Helm チャートのプッシュ - Amazon ECR

Amazon ECR プライベートリポジトリへの Helm チャートのプッシュ

Open Container Initiative (OCI) アーティファクトを Amazon ECR リポジトリにプッシュできます。この機能の例を確認するには、次の手順を使用して Helm チャートを Amazon ECR にプッシュします。

Amazon ECR でホストされる Helm チャートを Amazon EKS で使用する方法については、「Amazon EKS クラスターに Helm チャートをインストールする」を参照してください。

Helm チャートを Amazon ECR リポジトリにプッシュするには
  1. Helm クライアントの最新バージョンをインストールします。これらのステップは、Helm バージョン 3.8.2 を使用して作成されました。詳細については、「Installing Helm」を参照してください。

  2. 次の手順に従って、テスト Helm チャートを作成します。詳細については、Helm ドキュメントの「Getting Started」を参照してください。

    1. helm-test-chart という名前の Helm チャートを作成し、templates ディレクトリの内容をクリアします。

      helm create helm-test-chart rm -rf ./helm-test-chart/templates/*
    2. templates フォルダに ConfigMap を作成します。

      cd helm-test-chart/templates cat <<EOF > configmap.yaml apiVersion: v1 kind: ConfigMap metadata: name: helm-test-chart-configmap data: myvalue: "Hello World" EOF
  3. チャートをパッケージ化します。出力には、Helm チャートをプッシュするときに使用する、パッケージ化されたチャートのファイル名が含まれます。

    cd ../.. helm package helm-test-chart

    出力

    Successfully packaged chart and saved it to: /Users/username/helm-test-chart-0.1.0.tgz
  4. Helm チャートを格納するリポジトリを作成します。リポジトリの名前は、ステップ 2 で Helm チャートを作成する場合に使用する名前と一致する必要があります。詳しくは、「イメージを保存するための Amazon ECR プライベートリポジトリの作成」を参照してください。

    aws ecr create-repository \ --repository-name helm-test-chart \ --region us-west-2
  5. Helm チャートのプッシュ先となる Amazon ECR レジストリに対して Helm クライアントを認証します。認証トークンは、使用するレジストリごとに取得する必要があり、トークンは 12 時間有効です。詳細については、「Amazon ECR でのプライベートレジストリ認証」を参照してください。

    aws ecr get-login-password \ --region us-west-2 | helm registry login \ --username AWS \ --password-stdin aws_account_id.dkr.ecr.region.amazonaws.com
  6. helm push コマンドを使用して Helm チャートをプッシュします。出力には、Amazon ECR リポジトリ URI と SHA ダイジェストが含まれているはずです。

    helm push helm-test-chart-0.1.0.tgz oci://aws_account_id.dkr.ecr.region.amazonaws.com/
  7. Helm チャートを説明します。

    aws ecr describe-images \ --repository-name helm-test-chart \ --region us-west-2

    出力で、artifactMediaType パラメータが適切なアーティファクトタイプを示していることを確認します。

    { "imageDetails": [ { "registryId": "aws_account_id", "repositoryName": "helm-test-chart", "imageDigest": "sha256:dd8aebdda7df991a0ffe0b3d6c0cf315fd582cd26f9755a347a52adEXAMPLE", "imageTags": [ "0.1.0" ], "imageSizeInBytes": 1620, "imagePushedAt": "2021-09-23T11:39:30-05:00", "imageManifestMediaType": "application/vnd.oci.image.manifest.v1+json", "artifactMediaType": "application/vnd.cncf.helm.config.v1+json" } ] }
  8. (オプション) 追加のステップについては、Helm configmap をインストールして Amazon EKS の使用を開始してください。詳細については、「Amazon EKS クラスターに Helm チャートをインストールする」を参照してください。