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: ami-040a1551f9c9d11ad
        
      • diskSizeGbцелочисленный

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

        Пример:

        diskSizeGb: 20
        
      • diskTypeстрока

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

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

        Пример:

        diskType: gp2
        
      • instanceTypeстрока

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

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

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

        Пример:

        instanceType: 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: ami-040a1551f9c9d11ad
        
      • diskSizeGbцелочисленный

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

        Пример:

        diskSizeGb: 20
        
      • diskTypeстрока

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

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

        Пример:

        diskType: gp2
        
      • instanceTypeстрока

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

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

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

        Пример:

        instanceType: 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объект

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

    • 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: ami-040a1551f9c9d11ad
          
        • diskSizeGbцелочисленный

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

          Пример:

          diskSizeGb: 20
          
        • diskTypeстрока

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

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

          Пример:

          diskType: gp2
          
        • instanceTypeстрока

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

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

          Пример:

          instanceType: t3.large
          
      • zoneстрока

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

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

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

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