airflow.providers.amazon.aws.hooks.eks

Interact with Amazon EKS, using the boto3 library.

Module Contents

airflow.providers.amazon.aws.hooks.eks.DEFAULT_CONTEXT_NAME = aws[source]
airflow.providers.amazon.aws.hooks.eks.DEFAULT_PAGINATION_TOKEN =[source]
airflow.providers.amazon.aws.hooks.eks.DEFAULT_POD_USERNAME = aws[source]
airflow.providers.amazon.aws.hooks.eks.STS_TOKEN_EXPIRES_IN = 60[source]
class airflow.providers.amazon.aws.hooks.eks.ClusterStates[source]

Bases: enum.Enum

Contains the possible State values of an EKS Cluster.

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.NodegroupStates[source]

Bases: enum.Enum

Contains the possible State values of an EKS Managed Nodegroup.

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]
class airflow.providers.amazon.aws.hooks.eks.EKSHook(*args, **kwargs)[source]

Bases: airflow.providers.amazon.aws.hooks.base_aws.AwsBaseHook

Interact with Amazon EKS, using the boto3 library.

Additional arguments (such as aws_conn_id) may be specified and are passed down to the underlying AwsBaseHook.

See also

AwsBaseHook

client_type = eks[source]
create_cluster(self, name: str, roleArn: str, resourcesVpcConfig: Dict, **kwargs)[source]

Creates an Amazon EKS control plane.

Parameters
  • name (str) -- The unique name to give to your Amazon EKS Cluster.

  • roleArn (str) -- The Amazon Resource Name (ARN) of the IAM role that provides permissions for the Kubernetes control plane to make calls to AWS API operations on your behalf.

  • resourcesVpcConfig (Dict) -- The VPC configuration used by the cluster control plane.

Returns

Returns descriptive information about the created EKS Cluster.

Return type

Dict

create_nodegroup(self, clusterName: str, nodegroupName: str, subnets: List[str], nodeRole: str, **kwargs)[source]

Creates an Amazon EKS Managed Nodegroup for an EKS Cluster.

Parameters
  • clusterName (str) -- The name of the cluster to create the EKS Managed Nodegroup in.

  • nodegroupName (str) -- The unique name to give your managed nodegroup.

  • subnets (List[str]) -- The subnets to use for the Auto Scaling group that is created for your nodegroup.

  • nodeRole (str) -- The Amazon Resource Name (ARN) of the IAM role to associate with your nodegroup.

Returns

Returns descriptive information about the created EKS Managed Nodegroup.

Return type

Dict

delete_cluster(self, name: str)[source]

Deletes the Amazon EKS Cluster control plane.

Parameters

name (str) -- The name of the cluster to delete.

Returns

Returns descriptive information about the deleted EKS Cluster.

Return type

Dict

delete_nodegroup(self, clusterName: str, nodegroupName: str)[source]

Deletes an Amazon EKS Nodegroup from a specified cluster.

Parameters
  • clusterName (str) -- The name of the Amazon EKS Cluster that is associated with your nodegroup.

  • nodegroupName (str) -- The name of the nodegroup to delete.

Returns

Returns descriptive information about the deleted EKS Managed Nodegroup.

Return type

Dict

describe_cluster(self, name: str, verbose: bool = False)[source]

Returns descriptive information about an Amazon EKS Cluster.

Parameters
  • name (str) -- The name of the cluster to describe.

  • verbose (bool) -- Provides additional logging if set to True. Defaults to False.

Returns

Returns descriptive information about a specific EKS Cluster.

Return type

Dict

describe_nodegroup(self, clusterName: str, nodegroupName: str, verbose: bool = False)[source]

Returns descriptive information about an Amazon EKS Nodegroup.

Parameters
  • clusterName (str) -- The name of the Amazon EKS Cluster associated with the nodegroup.

  • nodegroupName (str) -- The name of the nodegroup to describe.

  • verbose (bool) -- Provides additional logging if set to True. Defaults to False.

Returns

Returns descriptive information about a specific EKS Nodegroup.

Return type

Dict

get_cluster_state(self, clusterName: str)[source]

Returns the current status of a given Amazon EKS Cluster.

Parameters

clusterName (str) -- The name of the cluster to check.

Returns

Returns the current status of a given Amazon EKS Cluster.

Return type

ClusterStates

get_nodegroup_state(self, clusterName: str, nodegroupName: str)[source]

Returns the current status of a given Amazon EKS Nodegroup.

Parameters
  • clusterName (str) -- The name of the Amazon EKS Cluster associated with the nodegroup.

  • nodegroupName (str) -- The name of the nodegroup to check.

Returns

Returns the current status of a given Amazon EKS Nodegroup.

Return type

NodegroupStates

list_clusters(self, verbose: bool = False)[source]

Lists all Amazon EKS Clusters in your AWS account.

Parameters

verbose (bool) -- Provides additional logging if set to True. Defaults to False.

Returns

A List containing the cluster names.

Return type

List

list_nodegroups(self, clusterName: str, verbose: bool = False)[source]

Lists all Amazon EKS Nodegroups associated with the specified cluster.

Parameters
  • clusterName (str) -- The name of the Amazon EKS Cluster containing nodegroups to list.

  • verbose (bool) -- Provides additional logging if set to True. Defaults to False.

Returns

A List of nodegroup names within the given cluster.

Return type

List

generate_config_file(self, eks_cluster_name: str, pod_namespace: str, pod_username: str = DEFAULT_POD_USERNAME, pod_context: str = DEFAULT_CONTEXT_NAME)[source]

Writes the kubeconfig file given an EKS Cluster.

Parameters
  • eks_cluster_name (str) -- The name of the cluster to create the EKS Managed Nodegroup in.

  • pod_namespace (str) -- The namespace to run within kubernetes.

  • pod_username (str) -- The username under which to execute the pod.

  • pod_context (str) -- The name of the context access parameters to use.

Was this entry helpful?