“部署到 Kubernetes 集群” 操作 YAML 定义 - Amazon CodeCatalyst

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

“部署到 Kubernetes 集群” 操作 YAML 定义

以下是 “部署到 Kubernetes 集群” 操作的 YAML 定义。要了解如何使用此操作,请参阅使用工作流程将应用程序部署到亚马逊 Elastic Kubernetes Service

此操作定义作为一个部分存在于更广泛的工作流程定义文件中。有关此文件的更多信息,请参阅 工作流程 YAML 定义

注意

接下来的大多数 YAML 属性在可视化编辑器中都有相应的 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

对应的用户界面:工作流程图/ DeployToKubernetesCluster _nn/ aws/kubernetes-deploy @v1 标签

DependsOn

(DeployToKubernetesCluster/DependsOn)

(可选)

指定必须成功运行才能运行此操作的操作、操作组或门。

有关 “依赖” 功能的更多信息,请参阅。将操作配置为依赖于其他操作

对应的用户界面:“输入” 选项卡/ 依赖- 可选

Compute

(DeployToKubernetesCluster/Compute)

(可选)

用于运行工作流程操作的计算引擎。您可以在工作流程级别或操作级别指定计算,但不能同时指定两者。在工作流级别指定时,计算配置将应用于工作流中定义的所有操作。在工作流程级别,您还可以在同一个实例上运行多个操作。有关更多信息,请参阅 跨操作共享计算

对应的用户界面:

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 账户,并使用在 A mazon VPC 连接中指定的 IAM 角色连接到亚马逊 VPC。

注意

如果默认 IAM 角色没有操作所需的权限,则可以将操作配置为使用其他角色。有关更多信息,请参阅 为操作分配不同的 IAM 角色

有关环境的更多信息,请参见部署到环境中的 VPC AWS 账户 和带有 CodeCatalyst环境的 VPC创建环境

对应的 UI:“配置” 选项卡/ 环境

Name

(DeployToKubernetesCluster/Environment/Name)

(如果包含Environment,则为必填项)

指定要与操作关联的现有环境的名称。

对应的 UI:“配置” 选项卡/ 环境

Connections

(DeployToKubernetesCluster/Environment/Connections)

(在新版本的操作中为可选;在较旧版本中为必填项)

指定要与操作关联的账户连接。您最多可以在下指定一个账户连接Environment

如果您未指定账户连接:

  • 该操作使用 CodeCatalyst 控制台中环境中指定的 AWS 账户 连接和默认 IAM 角色。有关向环境添加账户连接和默认 IAM 角色的信息,请参阅创建环境

  • 默认 IAM 角色必须包含操作所需的策略和权限。要确定这些策略和权限是什么,请参阅操作的 YAML 定义文档中对角色属性的描述。

有关账户关联的更多信息,请参阅允许在已连接的情况下访问 AWS 资源 AWS 账户。有关向环境添加账户连接的信息,请参阅创建环境

相应的 UI:根据操作版本的不同,以下用户界面之一:

  • (新版本)“配置” 选项卡/环境/我的环境中有什么? /三点菜单/ 切换角色

  • (旧版本)“配置” 选项卡/'环境/账户/角色'/账户连接AWS

Name

(DeployToKubernetesCluster/Environment/Connections/Name)

(可选)

指定账户连接的名称。

相应的 UI:根据操作版本的不同,以下用户界面之一:

  • (新版本)“配置” 选项卡/环境/我的环境中有什么? /三点菜单/ 切换角色

  • (旧版本)“配置” 选项卡/'环境/账户/角色'/账户连接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" } ] }

确保将此角色添加到:

提示

另请参阅教程:将应用程序部署到 Amazon EKS,了解有关向账户连接添加 IAM 角色的说明,以及 ConfigMap。

注意

如果您愿意,可以在此操作中使用该CodeCatalystWorkflowDevelopmentRole-spaceName角色。有关该角色的更多信息,请参阅 为您的账户和空间创建CodeCatalystWorkflowDevelopmentRole-spaceName角色。了解该CodeCatalystWorkflowDevelopmentRole-spaceName角色具有完全访问权限,这可能会带来安全风险。我们建议您仅在教程和安全性较低的场景中使用此角色。

相应的 UI:根据操作版本的不同,以下用户界面之一:

  • (新版本)“配置” 选项卡/环境/我的环境中有什么? /三点菜单/ 切换角色

  • (旧版本)“配置” 选项卡/'环境/帐户/角色'/角色

Inputs

(DeployToKubernetesCluster/Inputs)

(如果包含Connections,则为必填项)

Inputs节定义了工作流程运行期间DeployToKubernetesCluster所需的数据。

注意

每个 “部署到 Amazon EK S” 操作只允许输入一个输入(源或项目)。

相应的 UI:“输入” 选项卡

Sources

(DeployToKubernetesCluster/Inputs/Sources)

(如果您的清单文件存储在源存储库中,则为必填项)

如果您的 Kubernetes 清单文件存储在源存储库中,请指定该源存储库的标签。目前,唯一支持的标签是WorkflowSource

如果您的清单文件不包含在源存储库中,则它们必须位于其他操作生成的项目中。

更多有关来源的信息,请参阅 将工作流程连接到源存储库

相应的 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 文档中被称为配置文件、配置文件或简称为配置

如果您使用多个清单文件,请将它们放在一个文件夹中并引用该文件夹。Manifest 文件由 Kubernetes 按字母数字进行处理,因此请务必在文件名前加上递增的数字或字母,以控制处理顺序。例如:

00-namespace.yaml

01-deployment.yaml

如果清单文件位于源存储库中,则该路径是相对于源存储库根文件夹的路径。如果文件位于先前工作流程操作的对象中,则该路径相对于对象根文件夹。

示例:

Manifests/

deployment.yaml

my-deployment.yml

不要使用通配符 (*)。

有关清单文件的更多信息,请参阅 Kubernetes 文档中的组织资源配置

相应的 UI:“配置” 选项卡/ “清单”