AWSClusterConfiguration

Version: deckhouse.io/v1

  • apiVersion (строка)

    Допустимые значения: deckhouse.io/v1, deckhouse.io/v1alpha1

    Обязательный параметр.

  • existingVPCID (строка)

    ID существующего VPC, в котором будет развёрнута схема.

    • Обязательный параметр если не указан vpcNetworkCIDR.
    • Важно! Если в данной VPC уже есть Internet Gateway, деплой базовой инфраструктуры упадёт с ошибкой. На данный момент адоптнуть Internet Gateway нельзя.
  • kind (строка)

    Допустимые значения: AWSClusterConfiguration

    Обязательный параметр.

  • layout (строка)

    Название схемы размещения.

    Подробнее… о возможных схемах размещения провайдера.

    Допустимые значения: WithoutNAT, WithNAT, Standard

    Обязательный параметр.

  • masterNodeGroup

    Спецификация для описания NodeGroup master-узлов.

    Обязательный параметр.

    • additionalTags (объект)

      Дополнительные теги, которые будут присвоены созданным инстансам в дополнение к указанным в конфигурации cloud-провайдера.

      Пример:

      project: cms-production
      severity: critical
      
    • instanceClass (объект)

      Частичное содержимое полей AWSInstanceClass.

      Обязательный параметр.

      • additionalSecurityGroups (массив строк)

        Дополнительные теги, которые будут присвоены созданным инстансам.

      • ami (строка)

        Образ (AMI ID), который будет использоваться в заказанных инстансах.

        Как найти нужный AMI (в каждом регионе AMI разные):

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

        Пример: "ami-040a1551f9c9d11ad"

        Обязательный параметр.

      • diskSizeGb (целочисленный)

        Размер root-диска. Значение указывается в гигабайтах.

        Пример: 20

      • diskType (строка)

        Тип созданного диска.

        Допустимые значения: gp3, gp2, io2, io1, st1, sc1

        Пример: "gp2"

      • instanceType (строка)

        Тип заказываемых инстансов.

        Внимание! Следует убедиться, что указанный тип есть во всех зонах, указанных в zones.

        Пример: "t3.large"

        Обязательный параметр.

    • replicas (целочисленный)

      Сколько master-узлов создавать.

      Допустимые значения: 1 <= X

      Обязательный параметр.

    • zones (массив строк)

      Список зон, в которых допустимо создавать master-узлы.

      Необязательный параметр.

  • nodeGroups (массив объектов)

    Массив дополнительных NodeGroup для создания статичных узлов (например, для выделенных frontend-узлов или шлюзов).

    • additionalTags (объект)

      Дополнительные к основным (AWSClusterConfiguration.tags) теги, которые будут присвоены созданным инстансам.

      Пример:

      project: cms-production
      severity: critical
      
    • instanceClass (объект)

      Частичное содержимое полей AWSInstanceClass.

      Обязательный параметр.

      • additionalSecurityGroups (массив строк)

        Дополнительные теги, которые будут присвоены созданным инстансам.

      • ami (строка)

        Образ (AMI ID), который будет использоваться в заказанных инстансах.

        Как найти нужный AMI (в каждом регионе AMI разные):

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

        Пример: "ami-040a1551f9c9d11ad"

        Обязательный параметр.

      • diskSizeGb (целочисленный)

        Размер root-диска. Значение указывается в гигабайтах.

        Пример: 20

      • diskType (строка)

        Тип созданного диска.

        Допустимые значения: gp3, gp2, io2, io1, st1, sc1

        Пример: "gp2"

      • instanceType (строка)

        Тип заказываемых инстансов.

        Внимание! Следует убедиться, что указанный тип есть во всех зонах, указанных в zones.

        Пример: "t3.large"

        Обязательный параметр.

    • name (строка)

      Имя NodeGroup, будет использоваться для генерации имен узлов.

      Обязательный параметр.

    • nodeTemplate

      Настройки Node-объектов в Kubernetes, которые будут добавлены после регистрации узла.

      • annotations (объект)

        Аналогично стандартному полю metadata.annotations.

        Пример:

        annotations:
          ai.fleet.com/discombobulate: "true"
        
      • labels (объект)

        Список лейблов, которые будут прикреплены ко всем ресурсам кластера (которые это поддерживают).

        Аналогично стандартному полю metadata.labels.

        Если поменять теги в рабочем кластере, то после конвержа необходимо пересоздать все машины, чтобы теги применились.

        Формат — key: value.

        Пример:

        labels:
          environment: production
          app: warp-drive-ai
        
      • taints (массив объектов)

        Аналогично полю .spec.taints из объекта Node.

        Внимание! Доступны только поля effect, key, values.

        Пример:

        taints:
        - effect: NoExecute
          key: ship-class
          value: frigate
        
        • effect (строка)

          Допустимые значения: NoSchedule, PreferNoSchedule, NoExecute

        • key (строка)
        • value (строка)
    • replicas (целочисленный)

      Количество узлов.

      Обязательный параметр.

    • zones (массив строк)

      Список зон, в которых допустимо создавать узлы.

      Необязательный параметр.

  • nodeNetworkCIDR (строка)

    Подсеть, в которой будут работать узлы кластера.

    • Диапазон должен быть частью или должен соответствовать диапазону адресов VPC.
    • Диапазон будет равномерно разбит на подсети по одной на Availability Zone в вашем регионе.
    • Необязательный, но рекомендованный параметр. По умолчанию — соответствует целому диапазону адресов VPC.

    Если при создании кластера создаётся новая VPC и не указан vpcNetworkCIDR, то VPC будет создана с диапазоном, указанным в nodeNetworkCIDR. Таким образом, вся VPC будет выделена под сети кластера и, соответственно, не будет возможности добавить другие ресурсы в эту VPC.

    Диапазон nodeNetworkCIDR распределяется по подсетям в зависимости от количества зон доступности в выбранном регионе. Например, если указана nodeNetworkCIDR: "10.241.1.0/20" и в регионе 3 зоны доступности, то подсети будут созданы с маской /22.

    Шаблон: ^(([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]))$

  • peeredVPCs (массив строк)

    A list of AWS VPC ids to peer with the cluster network.

    The service account must have access to all the VPCs listed. You have to configure the peering connection manually if no access is available.

  • provider (объект)

    Параметры подключения к API AWS.

    Обязательный параметр.

    • providerAccessKeyId (строка)

      Access key ID.

      Обязательный параметр.

    • providerSecretAccessKey (строка)

      Access key secret.

      Обязательный параметр.

    • region (строка)

      Имя AWS региона, в котором будут заказываться инстансы.

      Обязательный параметр.

  • sshPublicKey (строка)

    Публичный ключ для доступа на узлы

    Обязательный параметр.

  • standard (объект)
    • associatePublicIPToMasters (булевый)
    • associatePublicIPToNodes (булевый)
  • tags (объект)

    Словарь тегов, которые будут созданы на всех ресурсах, имеющих такую возможность.

    Если поменять теги в рабочем кластере, то после конвержа необходимо пересоздать все машины, чтобы теги применились.

    Необязательный параметр.

  • vpcNetworkCIDR (строка)

    Подсеть, которая будет указана в созданном VPC.

    Обязательный параметр если не указан параметр для развёртывания в уже созданном VPC existingVPCID.

    Шаблон: ^(([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]))$

  • withNAT (объект)
    • bastionInstance (объект)
      • instanceClass (объект)

        Частичное содержимое полей AWSInstanceClass.

        Обязательный параметр.

        • additionalSecurityGroups (массив строк)

          Дополнительные теги, которые будут присвоены созданному инстансу.

        • ami (строка)

          Образ (AMI ID), который будет использоваться для создания заказываемого инстанса.

          Как найти нужный AMI (в каждом регионе AMI разные):

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

          Пример: "ami-040a1551f9c9d11ad"

          Обязательный параметр.

        • diskSizeGb (целочисленный)

          Размер root-диска. Значение указывается в гигабайтах.

          Пример: 20

        • diskType (строка)

          Тип созданного root-диска.

          Допустимые значения: gp2, io2, io1, st1, sc1

          Пример: "gp2"

        • instanceType (строка)

          Тип заказываемого инстанса.

          Пример: "t3.large"

          Обязательный параметр.

      • zone (строка)

        Зона в которой создавать bastion.

        По умолчанию будет использоваться первая доступная зона в регионе или первая из списка глобального параметра zones.

  • withoutNAT (объект)
    • zones (массив строк)

      Глобальное ограничение набора зон, с которыми работает данный cloud-provider.