

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# Amazon ECR プライベートリポジトリへの Helm チャートのプッシュ
<a name="push-oci-artifact"></a>

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

Amazon ECR でホストされる Helm チャートを Amazon EKS で使用する方法については、「[Amazon EKS クラスターに Helm チャートをインストールする](using-helm-charts-eks.md)」を参照してください。

**Helm チャートを Amazon ECR リポジトリにプッシュするには**

1. Helm クライアントの最新バージョンをインストールします。これらのステップは、Helm バージョン `3.18.6` を使用して作成されました。Amazon EKS でサポートされている Kubernetes バージョンとの互換性を維持するには、Helm バージョン 3.9 以降を使用します。詳細については、「[Installing Helm](https://helm.sh/docs/intro/install/)」を参照してください。

1. 次の手順に従って、テスト Helm チャートを作成します。詳細については、Helm ドキュメントの「[Getting Started](https://helm.sh/docs/chart_template_guide/getting_started/)」を参照してください。

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

      ```
      helm create helm-test-chart
      rm -rf ./helm-test-chart/templates/*
      ```

   1. `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
      ```

1. チャートをパッケージ化します。出力には、Helm チャートをプッシュするときに使用する、パッケージ化されたチャートのファイル名が含まれます。

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

   Output

   ```
   Successfully packaged chart and saved it to: /Users/username/helm-test-chart-0.1.0.tgz
   ```

1. Helm チャートを格納するリポジトリを作成します。リポジトリの名前は、ステップ 2 で Helm チャートを作成する場合に使用する名前と一致する必要があります。詳しくは、「[イメージを保存するための Amazon ECR プライベートリポジトリの作成](repository-create.md)」を参照してください。

   ```
   aws ecr create-repository \
        --repository-name helm-test-chart \
        --region us-west-2
   ```

1. Helm チャートのプッシュ先となる Amazon ECR レジストリに対して Helm クライアントを認証します。認証トークンは、使用するレジストリごとに取得する必要があり、トークンは 12 時間有効です。詳細については、「[Amazon ECR でのプライベートレジストリ認証](registry_auth.md)」を参照してください。

   ```
   aws ecr get-login-password \
        --region us-west-2 | helm registry login \
        --username AWS \
        --password-stdin aws_account_id.dkr.ecr.region.amazonaws.com
   ```

1. **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/
   ```

1. 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"
           }
       ]
   }
   ```

1. (オプション) 追加のステップについては、Helm `ConfigMap` をインストールして Amazon EKS の使用を開始します。詳細については、「[Amazon EKS クラスターに Helm チャートをインストールする](using-helm-charts-eks.md)」を参照してください。