GCPClusterConfiguration

Version: deckhouse.io/v1

  • apiVersionстрока

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

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

  • kindстрока

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

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

  • labelsобъект

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

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

    Подробнее про лейблы можно прочитать в официальной документации.

    Формат — key: value.

  • layoutстрока

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

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

    Standard — включает режим Cloud NAT. Подробнее….

    WithoutNAT — выделенная VPN создается для кластера. Все узлы имеют публичные IP адреса. Подробнее….

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

  • masterNodeGroupобъект

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

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

    • additionalLabelsобъект

      Список дополнительных label’ов.

      Подробно про labels можно прочитать в официальной документации.

      Пример:

      project: cms-production
      severity: critical
      
    • additionalNetworkTagsмассив строк

      Список дополнительных тегов.

      К примеру, теги позволяют применять к инстансам правила firewall. Подробно про network tags можно прочитать в официальной документации.

    • instanceClassобъект

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

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

      • disableExternalIPбулевый

        Запретить ли назначение внешнего IP для инстанса.

        Параметр доступен только для layout Standard.

        true — узлы не имеют публичных адресов, доступ в интернет осуществляется через CloudNAT.

        false — для узлов создаются статические публичные адреса, они же используются для One-to-one NAT.

        По умолчанию: true

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

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

        Размер root-диска. Значение указывается в ГиБ.

        Пример:

        diskSizeGb: 20
        
      • imageстрока

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

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

        Список образов можно найти в документации.

        Внимание! Сейчас поддерживается и тестируется только Ubuntu 18.04, Ubuntu 20.04, Ubuntu 22.04, Centos 7, Centos 8, Centos 9, Debian 9, Debian 10, Debian 11.

        Пример:

        image: projects/ubuntu-os-cloud/global/images/ubuntu-1804-bionic-v20190911
        
      • machineTypeстрока

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

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

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

        GCP позволяет указывать нестандартное количество CPU и RAM, например: custom-8-40960 или n2-custom-8-40960.

        Пример:

        machineType: n1-standard-4
        
    • replicasцелочисленный

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

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

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

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

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

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

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

    • additionalLabelsобъект
    • additionalNetworkTagsмассив строк
    • instanceClassобъект

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

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

      • disableExternalIPбулевый

        Запретить ли назначение внешнего IP для инстанса.

        Параметр доступен только для layout Standard.

        true — узлы не имеют публичных адресов, доступ в интернет осуществляется через CloudNAT.

        false — для узлов создаются статические публичные адреса, они же используются для One-to-one NAT.

        По умолчанию: true

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

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

        Размер root-диска. Значение указывается в ГиБ.

        Пример:

        diskSizeGb: 20
        
      • imageстрока

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

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

        Список образов можно найти в документации.

        Внимание! Сейчас поддерживается и тестируется только Ubuntu 18.04, Ubuntu 20.04, Ubuntu 22.04, Centos 7, Centos 8, Centos 9, Debian 9, Debian 10, Debian 11.

        Пример:

        image: projects/ubuntu-os-cloud/global/images/ubuntu-1804-bionic-v20190911
        
      • machineTypeстрока

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

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

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

        GCP позволяет указывать нестандартное количество CPU и RAM, например: custom-8-40960 или n2-custom-8-40960.

        Пример:

        machineType: n1-standard-4
        
    • nameстрока

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

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

    • nodeTemplateобъект

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

      • annotationsобъект

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

      • labelsобъект

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

      • taintsмассив объектов

        Аналогично полю .spec.taints из объекта Node. Внимание! Доступны только поля effect, key, values.

        • effectстрока

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

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

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

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

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

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

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

    Список GCP VPC networks, с которыми будет объединена сеть кластера.

    Сервис-аккаунт должен иметь доступ ко всем перечисленным VPC. Если доступа нет, то пиринг необходимо настраивать вручную.

  • providerобъект

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

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

    • regionстрока

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

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

    • serviceAccountJSONстрока

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

      Ключ к Service Account’у с правами Project Admin (service account key), в JSON-формате.

      Как получить service account key.

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

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

    По умолчанию, с любого адреса.

  • sshKeyстрока

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

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

  • standardобъект

    Настройки для схемы размещения Standard.

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

      Список имен публичных статических IP-адресов для Cloud NAT.

  • subnetworkCIDRстрока

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

    Шаблон: ^(([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объект

    Настройки для схемы размещения WithoutNAT.

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

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