airflow.providers.amazon.aws.hooks.eks
使用 boto3 库与 Amazon EKS 交互。
模块内容
-
airflow.providers.amazon.aws.hooks.eks.STS_TOKEN_EXPIRES_IN = 60[source]
-
airflow.providers.amazon.aws.hooks.eks.AUTHENTICATION_API_VERSION = 'client.authentication.k8s.io/v1alpha1'[source]
-
class airflow.providers.amazon.aws.hooks.eks.ClusterStates[source]
基类: enum.Enum
包含 EKS 集群的可能状态值。
-
CREATING = 'CREATING'[source]
-
ACTIVE = 'ACTIVE'[source]
-
DELETING = 'DELETING'[source]
-
FAILED = 'FAILED'[source]
-
UPDATING = 'UPDATING'[source]
-
NONEXISTENT = 'NONEXISTENT'[source]
-
class airflow.providers.amazon.aws.hooks.eks.FargateProfileStates[source]
基类: enum.Enum
包含 AWS Fargate 配置文件的可能状态值。
-
CREATING = 'CREATING'[source]
-
ACTIVE = 'ACTIVE'[source]
-
DELETING = 'DELETING'[source]
-
CREATE_FAILED = 'CREATE_FAILED'[source]
-
DELETE_FAILED = 'DELETE_FAILED'[source]
-
NONEXISTENT = 'NONEXISTENT'[source]
-
class airflow.providers.amazon.aws.hooks.eks.NodegroupStates[source]
基类: enum.Enum
包含 EKS 托管节点组的可能状态值。
-
CREATING = 'CREATING'[source]
-
ACTIVE = 'ACTIVE'[source]
-
UPDATING = 'UPDATING'[source]
-
DELETING = 'DELETING'[source]
-
CREATE_FAILED = 'CREATE_FAILED'[source]
-
DELETE_FAILED = 'DELETE_FAILED'[source]
-
DEGRADED = 'DEGRADED'[source]
-
NONEXISTENT = 'NONEXISTENT'[source]
-
airflow.providers.amazon.aws.hooks.eks.COMMAND = Multiline-String[source]
显示值
"""
output=$({python_executable} -m airflow.providers.amazon.aws.utils.eks_get_token --cluster-name {eks_cluster_name} {args} 2>&1)
if [ $? -ne 0 ]; then
echo "Error running the script"
exit 1
fi
expiration_timestamp=$(echo "$output" | grep -oP 'expirationTimestamp: \K[^,]+')
token=$(echo "$output" | grep -oP 'token: \K[^,]+')
json_string=$(printf '{{"kind": "ExecCredential","apiVersion": "client.authentication.k8s.io/v1alpha1","spec": {{}},"status": {{"expirationTimestamp": "%s","token": "%s"}}}}' "$expiration_timestamp" "$token")
echo $json_string
"""
-
class airflow.providers.amazon.aws.hooks.eks.EksHook(*args, **kwargs)[source]
基类: airflow.providers.amazon.aws.hooks.base_aws.AwsBaseHook
与 Amazon Elastic Kubernetes Service (EKS) 交互。
提供对 boto3.client("eks")
的轻量级包装。
可以指定额外的参数(例如 aws_conn_id
),并将这些参数传递给底层的 AwsBaseHook。
-
client_type = 'eks'[source]
-
create_cluster(name, roleArn, resourcesVpcConfig, **kwargs)[source]
创建一个 Amazon EKS 控制平面。
- 参数:
name (str) – 为您的 Amazon EKS 集群指定的唯一名称。
roleArn (str) – IAM 角色的 Amazon Resource Name (ARN),该角色提供权限使 Kubernetes 控制平面能够代表您调用 AWS API 操作。
resourcesVpcConfig (dict) – 集群控制平面使用的 VPC 配置。
- 返回:
返回有关已创建的 EKS 集群的描述性信息。
- 返回类型:
dict
-
create_nodegroup(clusterName, nodegroupName, subnets, nodeRole, *, tags=None, **kwargs)[source]
为 Amazon EKS 集群创建一个 Amazon EKS 托管节点组。
- 参数:
clusterName (str) – 要在其内部创建 EKS 托管节点组的 Amazon EKS 集群的名称。
nodegroupName (str) – 为您的托管节点组指定的唯一名称。
subnets (list[str]) – 用于为您的节点组创建的 Auto Scaling 组的子网。
nodeRole (str | None) – 要与您的节点组关联的 IAM 角色的 Amazon Resource Name (ARN)。
tags (dict | None) – 可选的标签,用于应用于您的节点组。
- 返回:
返回有关已创建的 EKS 托管节点组的描述性信息。
- 返回类型:
dict
-
create_fargate_profile(clusterName, fargateProfileName, podExecutionRoleArn, selectors, **kwargs)[source]
为 Amazon EKS 集群创建一个 AWS Fargate 配置文件。
- 参数:
clusterName (str) – 要应用 Fargate 配置文件的 Amazon EKS 集群的名称。
fargateProfileName (str | None) – Fargate 配置文件的名称。
podExecutionRoleArn (str | None) – Pod 执行角色的 Amazon Resource Name (ARN),用于与 Fargate 配置文件中的选择器匹配的 Pod。
selectors (list) – 用于匹配使用此 Fargate 配置文件的 Pod 的选择器。
- 返回:
返回有关已创建的 Fargate 配置文件的描述性信息。
- 返回类型:
dict
-
delete_cluster(name)[source]
删除 Amazon EKS 集群控制平面。
- 参数:
name (str) – 要删除的集群的名称。
- 返回:
返回有关已删除的 EKS 集群的描述性信息。
- 返回类型:
dict
-
delete_nodegroup(clusterName, nodegroupName)[source]
从指定的集群中删除 Amazon EKS 托管节点组。
- 参数:
-
- 返回:
返回有关已删除的 EKS 托管节点组的描述性信息。
- 返回类型:
dict
-
delete_fargate_profile(clusterName, fargateProfileName)[source]
从指定的 Amazon EKS 集群中删除 AWS Fargate 配置文件。
- 参数:
-
- 返回:
返回有关已删除的 Fargate 配置文件的描述性信息。
- 返回类型:
dict
-
describe_cluster(name, verbose=False)[source]
返回有关 Amazon EKS 集群的描述性信息。
- 参数:
-
- 返回:
返回有关特定 EKS 集群的描述性信息。
- 返回类型:
dict
-
describe_nodegroup(clusterName, nodegroupName, verbose=False)[source]
返回有关 Amazon EKS 托管节点组的描述性信息。
- 参数:
clusterName (str) – 与该节点组关联的 Amazon EKS 集群的名称。
nodegroupName (str) – 要描述的节点组的名称。
verbose (bool) – 如果设置为 True,则提供额外的日志记录。默认为 False。
- 返回:
返回有关特定 EKS 节点组的描述性信息。
- 返回类型:
dict
-
describe_fargate_profile(clusterName, fargateProfileName, verbose=False)[source]
返回有关 AWS Fargate 配置文件的描述性信息。
- 参数:
clusterName (str) – 与该 Fargate 配置文件关联的 Amazon EKS 集群的名称。
fargateProfileName (str) – 要描述的 Fargate 配置文件的名称。
verbose (bool) – 如果设置为 True,则提供额外的日志记录。默认为 False。
- 返回:
返回有关 AWS Fargate 配置文件的描述性信息。
- 返回类型:
dict
-
get_cluster_state(clusterName)[source]
返回给定 Amazon EKS 集群的当前状态。
- 参数:
clusterName (str) – 要检查的集群的名称。
- 返回:
返回给定 Amazon EKS 集群的当前状态。
- 返回类型:
ClusterStates
-
get_fargate_profile_state(clusterName, fargateProfileName)[source]
返回给定 AWS Fargate 配置文件的当前状态。
- 参数:
-
- 返回:
返回给定 AWS Fargate 配置文件的当前状态。
- 返回类型:
FargateProfileStates
-
get_nodegroup_state(clusterName, nodegroupName)[source]
返回给定 Amazon EKS 托管节点组的当前状态。
- 参数:
-
- 返回:
返回给定 Amazon EKS 节点组的当前状态。
- 返回类型:
NodegroupStates
-
list_clusters(verbose=False)[source]
列出您的 AWS 账户中的所有 Amazon EKS 集群。
- 参数:
verbose (bool) – 如果设置为 True,则提供额外的日志记录。默认为 False。
- 返回:
包含集群名称的列表。
- 返回类型:
list
-
list_nodegroups(clusterName, verbose=False)[source]
列出与指定集群关联的所有 Amazon EKS 托管节点组。
- 参数:
-
- 返回:
给定集群中节点组名称的列表。
- 返回类型:
list
-
list_fargate_profiles(clusterName, verbose=False)[source]
列出与指定集群关联的所有 AWS Fargate 配置文件。
- 参数:
-
- 返回:
给定集群中的 Fargate 配置文件名称列表。
- 返回类型:
list
-
generate_config_file(eks_cluster_name, pod_namespace)[source]
根据 EKS 集群写入 kubeconfig 文件。
- 参数:
-
-
fetch_access_token_for_cluster(eks_cluster_name)[source]