「Kubernetes クラスターにデプロイ」アクション YAML 定義 - Amazon CodeCatalyst

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

「Kubernetes クラスターにデプロイ」アクション YAML 定義

以下は、Kubernetes クラスターへのデプロイアクションの YAML 定義です。このアクションの使用方法については、「」を参照してくださいワークフローを使用した Amazon Elastic Kubernetes Service へのアプリケーションのデプロイ

このアクション定義は、より広範なワークフロー定義ファイル内のセクションとして存在します。ファイルの詳細については、「ワークフロー YAML 定義」を参照してください。

注記

後続の YAML プロパティのほとんどには、ビジュアルエディタに対応する UI 要素があります。UI 要素を検索するには、Ctrl+F を使用します。 要素は、関連付けられた YAML プロパティとともに一覧表示されます。

# The workflow definition starts here. # See 最上位のプロパティ for details. Name: MyWorkflow SchemaVersion: 1.0 Actions: # The action definition starts here. DeployToKubernetesCluster_nn: Identifier: aws/kubernetes-deploy@v1 DependsOn: - build-action Compute: - Type: EC2 | Lambda - Fleet: fleet-name Timeout: timeout-minutes Environment: Name: environment-name Connections: - Name: account-connection-name Role: DeployToEKS Inputs: # Specify a source or an artifact, but not both. Sources: - source-name-1 Artifacts: - manifest-artifact Configuration: Namespace: namespace Region: us-east-1 Cluster: eks-cluster Manifests: manifest-path

DeployToKubernetesCluster

(必須)

アクションの名前を指定します。すべてのアクション名は、ワークフロー内で一意である必要があります。アクション名は、英数字 (a~z、A~Z、0~9)、ハイフン (-)、アンダースコア (_) に制限されています。スペースは使用できません。引用符を使用してアクション名で特殊文字やスペースを有効にすることはできません。

デフォルト: DeployToKubernetesCluster_nn

対応する UI: 設定タブ/アクションの表示名

Identifier

(DeployToKubernetesCluster/Identifier)

(必須)

アクションを識別します。バージョンを変更しない限り、このプロパティを変更しないでください。詳細については、「アクションのメジャー、マイナー、またはパッチバージョンの指定」を参照してください。

デフォルト: aws/kubernetes-deploy@v1

対応する UI: ワークフロー図/DeployToKubernetesCluster_nn/aws/kubernetes-deploy@v1 ラベル

DependsOn

(DeployToKubernetesCluster/DependsOn)

(オプション)

このアクションを実行するために正常に実行する必要があるアクション、アクショングループ、またはゲートを指定します。

「依存」機能の詳細については、「」を参照してください他のアクションに依存するようにアクションを設定する

対応する UI: の入力タブ/依存 - オプション

Compute

(DeployToKubernetesCluster/Compute)

(オプション)

ワークフローアクションを実行するために使用されるコンピューティングエンジン。コンピューティングはワークフローレベルまたはアクションレベルで指定できますが、両方を指定することはできません。ワークフローレベルで指定すると、コンピューティング設定はワークフローで定義されたすべてのアクションに適用されます。ワークフローレベルでは、同じインスタンスで複数のアクションを実行することもできます。詳細については、「アクション間でのコンピューティングの共有」を参照してください。

対応する UI: なし

Type

(DeployToKubernetesCluster/Compute/Type)

( Computeが含まれている場合は必須)

コンピューティングエンジンのタイプ。次のいずれかの値を使用できます。

  • EC2 (ビジュアルエディタ) または EC2 (YAML エディタ)

    アクション実行中の柔軟性のために最適化されました。

  • Lambda (ビジュアルエディタ) または Lambda (YAML エディタ)

    アクションの起動速度を最適化しました。

コンピューティングタイプの詳細については、「コンピューティングタイプ」を参照してください。

対応する UI: 設定タブ/詳細 - オプション/コンピューティングタイプ

Fleet

(DeployToKubernetesCluster/Compute/Fleet)

(オプション)

ワークフローまたはワークフローアクションを実行するマシンまたはフリートを指定します。オンデマンドフリートでは、アクションが開始されると、ワークフローは必要なリソースをプロビジョニングし、アクションが終了するとマシンは破棄されます。オンデマンドフリートの例: Linux.x86-64.LargeLinux.x86-64.XLarge。オンデマンドフリートの詳細については、「」を参照してくださいオンデマンドフリートのプロパティ

プロビジョニングされたフリートでは、ワークフローアクションを実行するように一連の専用マシンを設定します。これらのマシンはアイドル状態のままで、すぐにアクションを処理できます。プロビジョニングされたフリートの詳細については、「」を参照してくださいプロビジョニングされたフリートのプロパティ

Fleet を省略した場合、デフォルトは ですLinux.x86-64.Large

対応する UI: 設定タブ/アドバンスト - オプション/コンピューティングフリート

Timeout

(DeployToKubernetesCluster/Timeout)

(オプション)

CodeCatalyst アクションが終了するまでに実行できる時間を分単位で指定します (YAML エディタ)、または時間と分単位で指定します (ビジュアルエディタ)。最小値は 5 分で、最大値は「」で説明されていますワークフローのクォータ。デフォルトのタイムアウトは、最大タイムアウトと同じです。

対応する UI: 設定タブ/タイムアウト - オプション

Environment

(DeployToKubernetesCluster/Environment)

(必須)

アクションで使用する CodeCatalyst 環境を指定します。アクションは、選択した環境で指定された AWS アカウント およびオプションの Amazon VPC に接続します。アクションは、環境で指定されたデフォルトの IAM ロールを使用して に接続し AWS アカウント、Amazon VPC 接続で指定された IAM ロールを使用して Amazon VPC に接続します。

注記

デフォルトの IAM ロールに アクションに必要なアクセス許可がない場合は、別のロールを使用するようにアクションを設定できます。詳細については、「アクションへの別の IAM ロールの割り当て」を参照してください。

環境の詳細については、環境を使用した AWS アカウント および VPCs CodeCatalystへのデプロイ「」および「」を参照してください環境を作成する

対応する UI: 設定タブ/環境

Name

(DeployToKubernetesCluster/Environment/Name)

( Environmentが含まれている場合は必須)

アクションに関連付ける既存の環境の名前を指定します。

対応する UI: 設定タブ/環境

Connections

(DeployToKubernetesCluster/Environment/Connections)

(新しいバージョンの アクションではオプション。古いバージョンでは必須)

アクションに関連付けるアカウント接続を指定します。で最大 1 つのアカウント接続を指定できますEnvironment

アカウント接続を指定しない場合:

  • アクションは、 CodeCatalyst コンソールの環境で指定された AWS アカウント 接続とデフォルトの IAM ロールを使用します。アカウント接続とデフォルトの IAM ロールを環境に追加する方法については、「」を参照してください環境を作成する

  • デフォルトの IAM ロールには、 アクションに必要なポリシーとアクセス許可が含まれている必要があります。これらのポリシーとアクセス許可を確認するには、アクションの YAML 定義ドキュメントの「ロール」プロパティの説明を参照してください。

アカウント接続の詳細については、「」を参照してください接続された AWS リソースへのアクセスを許可する AWS アカウント。環境へのアカウント接続の追加については、「」を参照してください環境を作成する

対応する UI: アクションのバージョンに応じて、次のいずれかになります。

  • (新しいバージョン) 設定タブ/環境/環境の内容 ?/3 つのドットメニュー/切り替えロール

  • (旧バージョン) 設定タブ/'環境/アカウント/ロール'/ AWS アカウント接続

Name

(DeployToKubernetesCluster/Environment/Connections/Name)

(オプション)

アカウント接続の名前を指定します。

対応する UI: アクションのバージョンに応じて、次のいずれかになります。

  • (新しいバージョン) 設定タブ/環境/マイ環境の内容 ?/3 つのドットメニュー/切り替えロール

  • (旧バージョン) 設定タブ/'環境/アカウント/ロール'/ AWS アカウント接続

Role

(DeployToKubernetesCluster/Environment/Connections/Role)

( Connectionsが含まれている場合は必須)

Kubernetes クラスターへのデプロイアクションが へのアクセスに使用する IAM ロールの名前を指定します AWS。ロールを CodeCatalyst スペース に追加し、ロールに次のポリシーが含まれていることを確認します。

IAM ロールを指定しない場合、アクションは CodeCatalyst コンソールの 環境にリストされているデフォルトの IAM ロールを使用します。環境でデフォルトのロールを使用する場合は、次のポリシーがあることを確認してください。

  • 次のアクセス許可ポリシー:

    警告

    アクセス許可を次のポリシーに示すものに制限します。より広範なアクセス許可を持つロールを使用すると、セキュリティ上のリスクが生じる可能性があります。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "eks:DescribeCluster", "eks:ListClusters" ], "Resource": "*" } ] }
    注記

    ロールを初めて使用する場合は、リソースポリシーステートメントで次のワイルドカードを使用し、使用可能になった後にリソース名でポリシーの範囲を絞り込みます。

    "Resource": "*"
  • 次のカスタム信頼ポリシー:

    { "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": [ "codecatalyst-runner.amazonaws.com", "codecatalyst.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }

このロールが以下に追加されていることを確認します。

ヒント

アカウント接続に IAM ロールを追加する手順については、「」およびチュートリアル: Amazon EKS にアプリケーションをデプロイする「」も参照してください ConfigMap。

注記

必要に応じて、このアクションでCodeCatalystWorkflowDevelopmentRole-spaceNameロールを使用できます。このロールの詳細については、「アカウントとスペースのCodeCatalystWorkflowDevelopmentRole-spaceNameロールの作成」を参照してください。CodeCatalystWorkflowDevelopmentRole-spaceName ロールには、セキュリティリスクをもたらす可能性のあるフルアクセス許可があることを理解します。このロールは、セキュリティが懸念されないチュートリアルとシナリオでのみ使用することをお勧めします。

対応する UI: アクションのバージョンに応じて、次のいずれかになります。

  • (新しいバージョン) 設定タブ/環境/環境の内容 ?/3 つのドットメニュー/切り替えロール

  • (旧バージョン) 設定タブ/'環境/アカウント/ロール'/ロール

Inputs

(DeployToKubernetesCluster/Inputs)

( Connectionsが含まれている場合は必須)

Inputs セクションでは、ワークフローの実行中に がDeployToKubernetesCluster必要とするデータを定義します。

注記

Amazon EKS へのデプロイアクションごとに許可される入力 (ソースまたはアーティファクト) は 1 つだけです。

対応する UI: Inputs タブ

Sources

(DeployToKubernetesCluster/Inputs/Sources)

(マニフェストファイルがソースリポジトリに保存されている場合に必須)

Kubernetes マニフェストファイルまたはファイルがソースリポジトリに保存されている場合は、そのソースリポジトリのラベルを指定します。現在、サポートされているラベルは のみですWorkflowSource

マニフェストファイルがソースリポジトリに含まれていない場合は、別のアクションによって生成されたアーティファクトに存在する必要があります。

sources の詳細については、「ワークフローをソースリポジトリに接続する」を参照してください。

対応する UI: 入力タブ/ソース - オプション

Artifacts - input

(DeployToKubernetesCluster/Inputs/Artifacts)

(マニフェストファイルが前のアクションの出力アーティファクトに保存されている場合に必要です)

Kubernetes マニフェストファイルまたはファイルが前のアクションによって生成されたアーティファクトに含まれている場合は、ここでそのアーティファクトを指定します。マニフェストファイルがアーティファクトに含まれていない場合は、ソースリポジトリに存在する必要があります。

アーティファクトの例などの詳細については、「」を参照してくださいアーティファクトを使用したワークフロー内のアクション間のデータの共有

対応する UI: 設定タブ/アーティファクト - オプション

Configuration

(DeployToKubernetesCluster/Configuration)

(必須)

アクションの設定プロパティを定義できるセクション。

対応する UI: 設定タブ

Namespace

(DeployToKubernetesCluster/Configuration/Namespace)

(オプション)

Kubernetes アプリケーションをデプロイする Kubernetes 名前空間を指定します。クラスターで名前空間を使用していない場合defaultは、 を使用します。名前空間の詳細については、Kubernetes ドキュメントの「Kubernetes 名前空間を使用したクラスターの分割」を参照してください。

名前空間を省略すると、 の値defaultが使用されます。

対応する UI: 設定タブ/名前空間

Region

(DeployToKubernetesCluster/Configuration/Region)

(必須)

Amazon EKS クラスターとサービスが存在する AWS リージョンを指定します。リージョンコードのリストについては、「」の「リージョンエンドポイント」を参照してくださいAWS 全般のリファレンス

対応する UI: 設定タブ/リージョン

Cluster

(DeployToKubernetesCluster/Configuration/Cluster)

(必須)

既存の Amazon EKS クラスターの名前を指定します。Kubernetes クラスターにデプロイ アクションは、コンテナ化されたアプリケーションをこのクラスターにデプロイします。Amazon EKS クラスターの詳細については、「Amazon EKS ユーザーガイド」の「クラスター」を参照してください。

対応する UI: 設定タブ/クラスター

Manifests

(DeployToKubernetesCluster/Configuration/Manifests)

(必須)

YAML 形式の Kubernetes マニフェストファイルへのパスを指定します (設定ファイル 設定ファイル 、または単に Kubernetes ドキュメントの設定と呼ばれます)。

複数のマニフェストファイルを使用している場合は、それらを 1 つのフォルダに配置し、そのフォルダを参照します。マニフェストファイルは Kubernetes によって英数字で処理されるため、ファイル名の前に必ず数字または文字を増やして処理順序を制御してください。例:

00-namespace.yaml

01-deployment.yaml

マニフェストファイルがソースリポジトリにある場合、パスはソースリポジトリのルートフォルダを基準にしています。ファイルが以前のワークフローアクションのアーティファクトに存在する場合、パスはアーティファクトルートフォルダを基準にしています。

例:

Manifests/

deployment.yaml

my-deployment.yml

ワイルドカード () は使用しないでください*

注記

Helm チャートkustomization ファイルはサポートされていません。

マニフェストファイルの詳細については、Kubernetes ドキュメントの「リソース設定の整理」を参照してください。

対応する UI: 設定タブ/マニフェスト