AWSClusterConfiguration

Version: deckhouse.io/v1

  • additionalRolePoliciesмассив строк

    Список, содержащий дополнительные политики для IAM ролей.

    • Дополнительные политики будут добавлены к базовым политикам для IAM ролей.
    • Необязательный параметр. Если отсутствует, будут использоваться только базовые политики для IAM ролей.

    Базовые политики для IAM ролей состоят из:

    - "ec2:DescribeTags"
    - "ec2:DescribeInstances"
    
    • Элемент массивастрока

      Шаблон: ^(\w+):(\w+)$

  • apiVersionстрока

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

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

  • existingVPCIDстрока

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

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

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

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

  • layoutстрока

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

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

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

    Схема размещения Standard считается устаревшей, не используйте ее.

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

  • masterNodeGroupобъект

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

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

    • additionalTagsобъект

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

      Пример:

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

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

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

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

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

      • 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массив строк

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

      • 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.

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

        Пример:

        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массив строк

    Список AWS VPC ID для организации пиринга с сетью кластера.

    Учетная запись должна иметь доступ ко всем VPC в списке. Также вы можете настроить соединение вручную, если доступа нет.

  • providerобъект

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

    • providerAccessKeyIdстрока

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

      Access key ID.

    • providerSecretAccessKeyстрока

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

      Access key secret.

    • regionстрока

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

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

  • sshAllowListмассив строк

    Список CIDR, разрешенных для подключения к узлам по ssh.

    По умолчанию, 0.0.0.0/0.

  • sshPublicKeyстрока

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

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

  • standardобъект

    Схема размещения Standard считается устаревшей, не используйте ее.

    • 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массив строк

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

          • 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.