Last generated January 9, 2023

AWSCluster

Deprecation: This CRD will be removed once Cluster API resources are used for all AWS workload clusters.

AWSCluster is the infrastructure provider referenced in upstream CAPI Cluster CRs.

Full name:
awsclusters.infrastructure.giantswarm.io
Group:
infrastructure.giantswarm.io
Singular name:
awscluster
Plural name:
awsclusters
Scope:
Namespaced
Versions:
v1alpha2v1alpha3

Version v1alpha2

Example CR

apiVersion: infrastructure.giantswarm.io/v1alpha2
kind: AWSCluster
metadata:
  annotations:
    giantswarm.io/docs: https://docs.giantswarm.io/ui-api/management-api/crd/awsclusters.infrastructure.giantswarm.io/
  creationTimestamp: null
  name: g8kw3
spec:
  cluster:
    description: Dev cluster
    dns:
      domain: g8s.example.com
    kubeProxy:
      conntrackMaxPerCore: 100000
    oidc:
      claims:
        groups: groups-field
        username: username-field
      clientID: some-example-client-id
      issuerURL: https://idp.example.com/
  provider:
    credentialSecret:
      name: example-credential
      namespace: example-namespace
    master:
      availabilityZone: eu-central-1b
      instanceType: m5.2xlarge
    nodes: {}
    pods:
      cidrBlock: 10.2.0.0/16
      externalSNAT: true
    region: eu-central-1

Properties

.apiVersion

string

APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources

.kind

string

Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds

.metadata

object

.spec

object Required

AWSClusterSpec is the spec part for the AWSCluster resource.

.spec.cluster

object Required

Cluster specification details.

.spec.cluster.description

string Required

User-friendly description that should explain the purpose of the cluster to humans.

.spec.cluster.dns

object Required

DNS configuration details.

.spec.cluster.dns.domain

string Required

.spec.cluster.kubeProxy

object

Flags passed to kube-proxy on each node.

.spec.cluster.kubeProxy.conntrackMaxPerCore

integer

Maximum number of NAT connections to track per CPU core (0 for default). Passed to kube-proxy as –conntrack-max-per-core.

.spec.cluster.oidc

object

Configuration for OpenID Connect (OIDC) authentication.

.spec.cluster.oidc.claims

object

AWSClusterSpecClusterOIDCClaims defines OIDC claims.

.spec.cluster.oidc.claims.groups

string

.spec.cluster.oidc.claims.username

string

.spec.cluster.oidc.clientID

string

.spec.cluster.oidc.issuerURL

string

.spec.provider

object Required

Provider-specific configuration details.

.spec.provider.credentialSecret

object

Location of a secret providing the ARN of AWS IAM identity to use with this cluster.

.spec.provider.credentialSecret.name

string Required

Name of the provider credential resoure.

.spec.provider.credentialSecret.namespace

string Required

Kubernetes namespace holding the provider credential.

.spec.provider.master

object

Master holds master node configuration details. Note that this attribute is being deprecated. The master node specification can now be found in the AWSControlPlane resource.

.spec.provider.master.availabilityZone

string

AWS availability zone to place the master node in.

.spec.provider.master.instanceType

string

AWS EC2 instance type to use for the master node.

.spec.provider.nodes

object

Node network configuration.

.spec.provider.nodes.networkPool

string

NetworkPool represents a range of IP addresses to chose chunks from for master and worker node subnets.

.spec.provider.pods

object

Pod network configuration.

.spec.provider.pods.cidrBlock

string

IPv4 address block used for pods, in CIDR notation.

.spec.provider.pods.externalSNAT

boolean

When set to false, pod connections outside the VPC where the pod is located will be NATed through the node primary IP. When set to true, all connections will use the pod IP.

.spec.provider.region

string Required

AWS region the cluster is to be running in.

.status

object

Spec part of the AWSCluster resource.

.status.cluster

object

Cluster-specific status details, including conditions and versions.

.status.cluster.conditions

array

One or several conditions that are currently applicable to the cluster.

.status.cluster.conditions[*]

object

CommonClusterStatusCondition explains the current condition(s) of the cluster.

.status.cluster.conditions[*].condition

string

Condition string, e. g. Creating, Created, Upgraded.

.status.cluster.conditions[*].lastTransitionTime

string

Time the condition occurred.

.status.cluster.id

string

Identifier of the cluster.

.status.cluster.versions

array

Workload cluster release versions the cluster used so far.

.status.cluster.versions[*]

object

CommonClusterStatusVersion informs which aws-operator version was/responsible for this cluster.

.status.cluster.versions[*].lastTransitionTime

string

Time the cluster assumed the given version.

.status.cluster.versions[*].version

string

The aws-operator version responsible for handling the cluster.

.status.provider

object

Provider-specific status details.

.status.provider.network

object

Network-specific configuration details

.status.provider.network.cidr

string

IPv4 address block used by the workload cluster nodes, in CIDR notation.

.status.provider.network.vpcID

string

Identifier of the AWS Virtual Private Cloud (VPC) of the workload cluster, e.g. vpc-1234567890abcdef0.

Annotations

alpha.aws.giantswarm.io/aws-subnet-size

Since 12.7.0

This annotation is used to configure the workload cluster’s control plane subnet size when used on an AWSCluster resource or to configure the workload cluster’s node pool subnet size when used on an AWSMachineDeployment resource. The value is a number that will represent the subnet mask used when creating the subnet. It must be smaller than 28 due to AWS restrictions.

alpha.aws.giantswarm.io/update-max-batch-size

Since 12.7.0

This annotation is used for configuring maximum batch size for instances termination during ASG update. The value can be either a whole number specifying the number of instances or a percentage of total instances as decimal number ie 0.3 for 30%. See fine-tuning upgrade disruption and AWS documentation for additional information.

alpha.aws.giantswarm.io/update-pause-time

Since 12.7.0

This annotation is used for configuring time pause between rolling a single batch during ASG update. The value must be in ISO 8601 duration format, e. g. “PT5M” for five minutes or “PT10S” for 10 seconds. See fine-tuning upgrade disruption and AWS documentation for additional information.

alpha.cni.aws.giantswarm.io/minimum-ip-target

Since 14.0.0

This annotation allows configuration of the MINIMUM_IP_TARGET parameter for AWS CNI. See CNI Configuration Variables and ENI and IP Target

alpha.cni.aws.giantswarm.io/prefix-delegation

Since 16.1.0

This annotation allows configuration of the ENABLE_PREFIX_DELEGATION parameter for AWS CNI. See Enable Prefix Delegation

alpha.cni.aws.giantswarm.io/warm-ip-target

Since 14.0.0

This annotation allows configuration of the WARM_IP_TARGET parameter for AWS CNI. See CNI Configuration Variables and ENI and IP Target

Version v1alpha3

Example CR

apiVersion: infrastructure.giantswarm.io/v1alpha3
kind: AWSCluster
metadata:
  annotations:
    giantswarm.io/docs: https://docs.giantswarm.io/ui-api/management-api/crd/awsclusters.infrastructure.giantswarm.io/
  creationTimestamp: null
  name: g8kw3
spec:
  cluster:
    description: Dev cluster
    dns:
      domain: g8s.example.com
    kubeProxy:
      conntrackMaxPerCore: 100000
    oidc:
      claims:
        groups: groups-field
        username: username-field
      clientID: some-example-client-id
      issuerURL: https://idp.example.com/
  provider:
    credentialSecret:
      name: example-credential
      namespace: example-namespace
    master:
      availabilityZone: eu-central-1b
      instanceType: m5.2xlarge
    nodes: {}
    pods:
      cidrBlock: 10.2.0.0/16
      externalSNAT: true
    region: eu-central-1

Properties

.apiVersion

string

APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources

.kind

string

Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds

.metadata

object

.spec

object Required

AWSClusterSpec is the spec part for the AWSCluster resource.

.spec.cluster

object Required

Cluster specification details.

.spec.cluster.description

string Required

User-friendly description that should explain the purpose of the cluster to humans.

.spec.cluster.dns

object Required

DNS configuration details.

.spec.cluster.dns.domain

string Required

.spec.cluster.kubeProxy

object

Flags passed to kube-proxy on each node.

.spec.cluster.kubeProxy.conntrackMaxPerCore

integer

Maximum number of NAT connections to track per CPU core (0 for default). Passed to kube-proxy as –conntrack-max-per-core.

.spec.cluster.oidc

object

Configuration for OpenID Connect (OIDC) authentication.

.spec.cluster.oidc.claims

object

AWSClusterSpecClusterOIDCClaims defines OIDC claims.

.spec.cluster.oidc.claims.groups

string

.spec.cluster.oidc.claims.username

string

.spec.cluster.oidc.clientID

string

.spec.cluster.oidc.issuerURL

string

.spec.provider

object Required

Provider-specific configuration details.

.spec.provider.credentialSecret

object

Location of a secret providing the ARN of AWS IAM identity to use with this cluster.

.spec.provider.credentialSecret.name

string Required

Name of the provider credential resoure.

.spec.provider.credentialSecret.namespace

string Required

Kubernetes namespace holding the provider credential.

.spec.provider.master

object

Master holds master node configuration details. Note that this attribute is being deprecated. The master node specification can now be found in the AWSControlPlane resource.

.spec.provider.master.availabilityZone

string

AWS availability zone to place the master node in.

.spec.provider.master.instanceType

string

AWS EC2 instance type to use for the master node.

.spec.provider.nodes

object

Node network configuration.

.spec.provider.nodes.networkPool

string

NetworkPool represents a range of IP addresses to chose chunks from for master and worker node subnets.

.spec.provider.pods

object

Pod network configuration.

.spec.provider.pods.cidrBlock

string

IPv4 address block used for pods, in CIDR notation.

.spec.provider.pods.externalSNAT

boolean

When set to false, pod connections outside the VPC where the pod is located will be NATed through the node primary IP. When set to true, all connections will use the pod IP.

.spec.provider.region

string Required

AWS region the cluster is to be running in.

.status

object

Spec part of the AWSCluster resource.

.status.cluster

object

Cluster-specific status details, including conditions and versions.

.status.cluster.conditions

array

One or several conditions that are currently applicable to the cluster.

.status.cluster.conditions[*]

object

CommonClusterStatusCondition explains the current condition(s) of the cluster.

.status.cluster.conditions[*].condition

string

Condition string, e. g. Creating, Created, Upgraded.

.status.cluster.conditions[*].lastTransitionTime

string

Time the condition occurred.

.status.cluster.id

string

Identifier of the cluster.

.status.cluster.versions

array

Workload cluster release versions the cluster used so far.

.status.cluster.versions[*]

object

CommonClusterStatusVersion informs which aws-operator version was/responsible for this cluster.

.status.cluster.versions[*].lastTransitionTime

string

Time the cluster assumed the given version.

.status.cluster.versions[*].version

string

The aws-operator version responsible for handling the cluster.

.status.provider

object

Provider-specific status details.

.status.provider.network

object

Network-specific configuration details

.status.provider.network.cidr

string

IPv4 address block used by the workload cluster nodes, in CIDR notation.

.status.provider.network.vpcID

string

Identifier of the AWS Virtual Private Cloud (VPC) of the workload cluster, e.g. vpc-1234567890abcdef0.


This documentation page shows information based on apiextensions v5.0.0.