AWSClusterConfiguration

Version: deckhouse.io/v1

  • apiVersion (string)

    Allowed values: deckhouse.io/v1, deckhouse.io/v1alpha1

    Required value.

  • existingVPCID (string)

    ID of the existing VPC to use for deploying.

    • A mandatory parameter if the vpcNetworkCIDR is omitted.
    • Caution! If there is an Internet Gateway in the target VPC, the deployment of the basic infrastructure will fail with an error. Currently, an Internet Gateway cannot be adopted.
  • kind (string)

    Allowed values: AWSClusterConfiguration

    Required value.

  • layout (string)

    The way resources are located in the cloud.

    Read more about possible provider layouts.

    Allowed values: WithoutNAT, Standard

    Required value.

  • masterNodeGroup

    Parameters of the master’s NodeGroup.

    Required value.

    • additionalTags (object)

      The additional tags to attach to the instances created (in addition to those specified in the cloud provider configuration).

      Example:

      project: cms-production
      severity: critical
      
    • instanceClass (object)

      Partial contents of the fields of the AWSInstanceClass.

      Required value.

      • additionalSecurityGroups (array of strings)

        The additional security groups to add to provisioned instances of the specific InstanceClass.

      • ami (string)

        The Amazon Machine Image (AMI ID) to use in provisioned instances.

        Here is how you can find the required AMI (each region has its own set of AMIs):

        aws ec2 --region <REGION> describe-images \
        --filters 'Name=name,Values=ubuntu/images/hvm-ssd/ubuntu-bionic-18.04-amd64-server-2020*' | \
        jq '.Images[].ImageId'
        

        Example: "ami-040a1551f9c9d11ad"

        Required value.

      • diskSizeGb (integer)

        Instance disk size in gigabytes.

        Example: 20

      • diskType (string)

        Instance EBS disk type.

        Allowed values: gp3, gp2, io2, io1, st1, sc1

        Example: "gp2"

      • instanceType (string)

        Instance type of AWS instance.

        Caution! Ensure that this type is present in all zones specified in the zones parameter.

        Example: "t3.large"

        Required value.

    • replicas (integer)

      The number of master nodes to create.

      Allowed values: 1 <= X

      Required value.

    • zones (array of strings)

      A limited set of zones in which master nodes can be created.

      Not required value.

  • nodeGroups (array of objects)

    An array of additional NodeGroups for creating static nodes (e.g., for dedicated front nodes or gateways).

    • additionalTags (object)

      The additional tags to attach to the instances created (in addition to those specified in the cloud provider configuration).

      Example:

      project: cms-production
      severity: critical
      
    • instanceClass (object)

      Partial contents of the fields of the AWSInstanceClass.

      Required value.

      • additionalSecurityGroups (array of strings)

        The additional security groups to add to provisioned instances of the specific InstanceClass.

      • ami (string)

        The Amazon Machine Image (AMI ID) to use in provisioned instances.

        Here is how you can find the required AMI (each region has its own set of AMIs):

        aws ec2 --region <REGION> describe-images \
        --filters 'Name=name,Values=ubuntu/images/hvm-ssd/ubuntu-bionic-18.04-amd64-server-2020*' | \
        jq '.Images[].ImageId'
        

        Example: "ami-040a1551f9c9d11ad"

        Required value.

      • diskSizeGb (integer)

        Instance disk size in gigabytes.

        Example: 20

      • diskType (string)

        Instance EBS disk type.

        Allowed values: gp3, gp2, io2, io1, st1, sc1

        Example: "gp2"

      • instanceType (string)

        Instance type of AWS instance.

        Caution! Ensure that this type is present in all zones specified in the zones parameter.

        Example: "t3.large"

        Required value.

    • name (string)

      The name of the NodeGroup. It is used to generate the node name.

      Required value.

    • nodeTemplate

      Parameters of Node objects in Kubernetes to add after registering the node.

      • annotations (object)

        The same as the metadata.annotations standard field.

        Example:

        annotations:
          ai.fleet.com/discombobulate: "true"
        
      • labels (object)

        A list of labels to attach to cluster resources.

        The same as the metadata.labels standard field.

        Note that you have to re-create all the machines to add new tags if tags were modified in the running cluster.

        Format — key: value.

        Example:

        labels:
          environment: production
          app: warp-drive-ai
        
      • taints (array of objects)

        The same as the .spec.taints field of the Node object.

        Caution! Only the effect, key, values fields are available.

        Example:

        taints:
        - effect: NoExecute
          key: ship-class
          value: frigate
        
        • effect (string)

          Allowed values: NoSchedule, PreferNoSchedule, NoExecute

        • key (string)
        • value (string)
    • replicas (integer)

      The number of nodes.

      Required value.

    • zones (array of strings)

      A limited set of zones in which master nodes can be created.

      Not required value.

  • nodeNetworkCIDR (string)

    A subnet to use for cluster nodes.

    • The IP range must overlap or match the VPC address range;
    • The IP range will be evenly split into subnets, one per Availability Zone in your region;
    • An optional but recommended parameter. By default, it corresponds to the whole range of VPC addresses;

    If a new VPC is created along with a new cluster and no vpcNetworkCIDR is provided, then the range from nodeNetworkCIDR is used for the VPC. Thus, the entire VPC is allocated for the cluster networks, and you will not be able to add other resources to this VPC.

    The nodeNetworkCIDR range is distributed between subnets depending on the number of availability zones in the selected region. For example: if nodeNetworkCIDR: "10.241.1.0/20" and there are three availability zones in the region, subnets will be created with the /22 mask.

    Pattern: ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\/(3[0-2]|[1-2][0-9]|[0-9]))$

  • provider (object)

    Contains settings to connect to the AWS API.

    Required value.

    • providerAccessKeyId (string)

      Access key ID.

      Required value.

    • providerSecretAccessKey (string)

      Access key secret.

      Required value.

    • region (string)

      The name of the AWS region where instances will be provisioned.

      Required value.

  • sshPublicKey (string)

    A public key for accessing nodes.

    Required value.

  • tags (object)

    A dictionary of tags to create on all resources that support this feature.

    You have to re-create all the machines to add new tags if tags were modified in the running cluster.

    Not required value.

  • vpcNetworkCIDR (string)

    A subnet to use in the VPC being created.

    A mandatory parameter if the existingVPCID parameter is omitted.

    Pattern: ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\/(3[0-2]|[1-2][0-9]|[0-9]))$

  • withoutNAT (object)
    • zones (array of strings)

      The globally restricted set of zones that this Cloud Provider works with.