amazon.cloud.eks_cluster (0.1.0) — module

Create and manages Amazon EKS control planes

| "added in version" 0.1.0 of amazon.cloud"

Authors: Ansible Cloud Team (@ansible-collections)

Install collection

Install with ansible-galaxy collection install amazon.cloud:==0.1.0


Add to requirements.yml

  collections:
    - name: amazon.cloud
      version: 0.1.0

Description

Create and manage Amazon EKS control planes (list, create, update, describe, delete).


Requirements

Inputs

    
name:
    description:
    - The unique name to give to your cluster.
    type: str

tags:
    aliases:
    - resource_tags
    description:
    - A dict of tags to apply to the resource.
    - To remove all tags set I(tags={}) and I(purge_tags=true).
    required: false
    type: dict

wait:
    default: false
    description:
    - Wait for operation to complete before returning.
    type: bool

state:
    choices:
    - present
    - absent
    - list
    - describe
    - get
    default: present
    description:
    - Goal state for resource.
    - I(state=present) creates the resource if it doesn't exist, or updates to the provided
      state if the resource already exists.
    - I(state=absent) ensures an existing instance is deleted.
    - I(state=list) get all the existing resources.
    - I(state=describe) or I(state=get) retrieves information on an existing resource.
    type: str

region:
    aliases:
    - aws_region
    - ec2_region
    description:
    - The AWS region to use. If not specified then the value of the AWS_REGION or EC2_REGION
      environment variable, if any, is used. See U(http://docs.aws.amazon.com/general/latest/gr/rande.html#ec2_region)
    type: str

ec2_url:
    aliases:
    - aws_endpoint_url
    - endpoint_url
    description:
    - URL to use to connect to EC2 or your Eucalyptus cloud (by default the module will
      use EC2 endpoints). Ignored for modules where region is required. Must be specified
      for all other modules if region is not used. If not set then the value of the EC2_URL
      environment variable, if any, is used.
    type: str

logging:
    description:
    - Enable exporting the Kubernetes control plane logs for your cluster to CloudWatch
      Logs based on log types.
    - By default, cluster control plane logs arent exported to CloudWatch Logs.
    suboptions:
      cluster_logging:
        description:
        - The cluster control plane logging configuration for your cluster.
        - The cluster control plane logging configuration for your cluster.
        suboptions:
          enabled_types:
            description:
            - Enabled Logging Type
            elements: dict
            suboptions:
              type:
                choices:
                - api
                - audit
                - authenticator
                - controllerManager
                - scheduler
                description:
                - name of the log type
                type: str
            type: list
        type: dict
    type: dict

profile:
    aliases:
    - aws_profile
    description:
    - Using I(profile) will override I(aws_access_key), I(aws_secret_key) and I(security_token)
      and support for passing them at the same time as I(profile) has been deprecated.
    - I(aws_access_key), I(aws_secret_key) and I(security_token) will be made mutually
      exclusive with I(profile) after 2022-06-01.
    type: str

version:
    description:
    - The desired Kubernetes version for your cluster.
    - If you dont specify a value here, the latest version available in Amazon EKS is
      used.
    type: str

role_arn:
    description:
    - 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.
    required: true
    type: str

aws_config:
    description:
    - A dictionary to modify the botocore configuration.
    - Parameters can be found at U(https://botocore.amazonaws.com/v1/documentation/api/latest/reference/config.html#botocore.config.Config).
    type: dict

purge_tags:
    default: true
    description:
    - Remove tags not listed in I(tags).
    required: false
    type: bool

wait_timeout:
    default: 320
    description:
    - How many seconds to wait for an operation to complete before timing out.
    type: int

aws_ca_bundle:
    description:
    - The location of a CA Bundle to use when validating SSL certificates.
    - 'Note: The CA Bundle is read ''module'' side and may need to be explicitly copied
      from the controller if not run locally.'
    type: path

aws_access_key:
    aliases:
    - ec2_access_key
    - access_key
    description:
    - C(AWS access key). If not set then the value of the C(AWS_ACCESS_KEY_ID), C(AWS_ACCESS_KEY)
      or C(EC2_ACCESS_KEY) environment variable is used.
    - If I(profile) is set this parameter is ignored.
    - Passing the I(aws_access_key) and I(profile) options at the same time has been deprecated
      and the options will be made mutually exclusive after 2022-06-01.
    type: str

aws_secret_key:
    aliases:
    - ec2_secret_key
    - secret_key
    description:
    - C(AWS secret key). If not set then the value of the C(AWS_SECRET_ACCESS_KEY), C(AWS_SECRET_KEY),
      or C(EC2_SECRET_KEY) environment variable is used.
    - If I(profile) is set this parameter is ignored.
    - Passing the I(aws_secret_key) and I(profile) options at the same time has been deprecated
      and the options will be made mutually exclusive after 2022-06-01.
    type: str

security_token:
    aliases:
    - aws_session_token
    - session_token
    - aws_security_token
    - access_token
    description:
    - C(AWS STS security token). If not set then the value of the C(AWS_SECURITY_TOKEN)
      or C(EC2_SECURITY_TOKEN) environment variable is used.
    - If I(profile) is set this parameter is ignored.
    - Passing the I(security_token) and I(profile) options at the same time has been deprecated
      and the options will be made mutually exclusive after 2022-06-01.
    - Aliases I(aws_session_token) and I(session_token) have been added in version 3.2.0.
    type: str

validate_certs:
    default: true
    description:
    - When set to "no", SSL certificates will not be validated for communication with
      the AWS APIs.
    type: bool

encryption_config:
    description:
    - The encryption configuration for the cluster
    elements: dict
    suboptions:
      provider:
        description:
        - The encryption provider for the cluster.
        suboptions:
          key_arn:
            description:
            - Amazon Resource Name (ARN) or alias of the KMS key.
            - The KMS key must be symmetric, created in the same region as the cluster,
              and if the KMS key was created in a different account, the user must have
              access to the KMS key.
            type: str
        type: dict
      resources:
        description:
        - Specifies the resources to be encrypted.
        - The only supported value is secrets.
        elements: str
        type: list
    type: list

resources_vpc_config:
    description:
    - An object representing the VPC configuration to use for an Amazon EKS cluster.
    required: true
    suboptions:
      endpoint_private_access:
        description:
        - Set this value to true to enable private access for your clusters Kubernetes
          API server endpoint.
        - If you enable private access, Kubernetes API requests from within your clusters
          VPC use the private VPC endpoint.
        - The default value for this parameter is false, which disables private access
          for your Kubernetes API server.
        - If you disable private access and you have nodes or AWS Fargate pods in the
          cluster, then ensure that publicI(access_cidrs) includes the necessary CIDR
          blocks for communication with the nodes or Fargate pods.
        type: bool
      endpoint_public_access:
        description:
        - Set this value to false to disable public access to your clusters Kubernetes
          API server endpoint.
        - If you disable public access, your clusters Kubernetes API server can only receive
          requests from within the cluster VPC. The default value for this parameter is
          true, which enables public access for your Kubernetes API server.
        type: bool
      public_access_cidrs:
        description:
        - The CIDR blocks that are allowed access to your clusters public Kubernetes API
          server endpoint.
        - Communication to the endpoint from addresses outside of the CIDR blocks that
          you specify is denied.
        - The default value is 0.0.0.0/0.
        - If youve disabled private endpoint access and you have nodes or AWS Fargate
          pods in the cluster, then ensure that you specify the necessary CIDR blocks.
        elements: str
        type: list
      security_group_ids:
        description:
        - Specify one or more security groups for the cross-account elastic network interfaces
          that Amazon EKS creates to use to allow communication between your worker nodes
          and the Kubernetes control plane.
        - If you dont specify a security group, the default security group for your VPC
          is used.
        elements: str
        type: list
      subnet_ids:
        description:
        - Specify subnets for your Amazon EKS nodes.
        - Amazon EKS creates cross-account elastic network interfaces in these subnets
          to allow communication between your nodes and the Kubernetes control plane.
        elements: str
        required: true
        type: list
    type: dict

kubernetes_network_config:
    description:
    - The Kubernetes network configuration for the cluster.
    suboptions:
      ip_family:
        choices:
        - ipv4
        - ipv6
        description:
        - Ipv4 or Ipv6.
        - You can only specify ipv6 for 1.21 and later clusters that use version 1.10.1
          or later of the Amazon VPC CNI add-on
        type: str
      service_ipv4_cidr:
        description:
        - The CIDR block to assign Kubernetes service IP addresses from.
        - If you dont specify a block, Kubernetes assigns addresses from either the 10.100.0.0/16
          or 172.20.0.0/16 CIDR blocks.
        - We recommend that you specify a block that does not overlap with resources in
          other networks that are peered or connected to your VPC.
        type: str
    type: dict

debug_botocore_endpoint_logs:
    default: 'no'
    description:
    - Use a botocore.endpoint logger to parse the unique (rather than total) "resource:action"
      API calls made during a task, outputing the set to the resource_actions key in the
      task results. Use the aws_resource_action callback to output to total list made
      during a playbook. The ANSIBLE_DEBUG_BOTOCORE_LOGS environment variable may also
      be used.
    type: bool

Outputs

result:
  contains:
    identifier:
      description: The unique identifier of the resource.
      type: str
    properties:
      description: The resource properties.
      type: dict
  description: Dictionary containing resource information.
  returned: always
  type: complex