Ресурс google_container_regional_cluster
Синтаксис
Для проверки ресурса Google RegionalCluster используется google_container_regional_cluster
Примеры
describe google_container_regional_cluster(project: 'chef-gcp-inspec', location: 'europe-west2', name: 'inspec-gcp-regional-cluster') do
it { should exist }
its('initial_node_count') { should eq '1'}
its('location') { should eq 'europe-west2'}
end
describe google_container_regional_cluster(project: 'chef-gcp-inspec', location: 'europe-west2', name: 'nonexistent') do
it { should_not exist }
end
Свойства
Свойства, к которым можно получить доступ из ресурса google_container_regional_cluster:
name- Название этого кластера. Название должно быть уникальным в рамках этого проекта и расположения, и может содержать до 40 символов. Допускаются только строчные буквы, цифры и дефисы. Название должно начинаться с буквы и заканчиваться цифрой или буквой.
description- Необязательное описание этого кластера.
initial_node_count- Количество узлов, которые необходимо создать в этом кластере. Вы должны убедиться, что у вас достаточно квот ресурсов Compute Engine для этого количества экземпляров. Вам также должны быть доступны квоты на брандмауэры и маршруты. Для запросов это поле следует использовать только вместо объекта «nodePool», поскольку эта конфигурация (вместе с «nodeConfig») будет использоваться для создания объекта «NodePool» с автоматически сгенерированным именем. Не используйте это поле и nodePool одновременно. Это поле устарело. Используйте вместо него nodePool.initial_node_count.
node_config- Параметры, используемые при создании узлов кластера. Для запросов это поле следует использовать только вместо объекта «nodePool», поскольку эта конфигурация (вместе с «initialNodeCount») будет использоваться для создания объекта «NodePool» с автоматически сгенерированным именем. Не используйте это поле и nodePool одновременно. Для ответов это поле будет заполнено конфигурацией узлов первого пула узлов. Если не указано иное, используются значения по умолчанию.
machine_type- Имя типа машины Google Compute Engine (например, n1-standard-1). Если не указано иное, используется тип машины по умолчанию n1-standard-1.
disk_size_gb- Размер диска, подключенного к каждому узлу, в ГБ. Минимальный размер диска — 10 ГБ. Если не указано иное, используется размер диска по умолчанию — 100 ГБ.
oauth_scopes- Набор областей видимости Google API, которые должны быть доступны на всех виртуальных машинах узлов в рамках учетной записи «по умолчанию». Следующие области видимости рекомендуются, но не являются обязательными, и по умолчанию не включены: https://www.googleapis.com/auth/compute необходим для монтирования постоянного хранилища на ваших узлах. https://www.googleapis.com/auth/devstorage.read_only необходим для связи с gcr.io (Google Container Registry). Если не указано иное, области видимости не добавляются, если не включены Cloud Logging или Cloud Monitoring, в этом случае будут добавлены необходимые для них области видимости.
service_account- Учетная запись сервиса Google Cloud Platform, которая должна использоваться виртуальными машинами узлов. Если учетная запись сервиса не указана, используется учетная запись «по умолчанию».
metadata- Ключ/значение пар метаданных, назначенные экземплярам в кластере. Ключи должны соответствовать регулярному выражению [a-zA-Z0-9-_]+ и иметь длину менее 128 байт. Они отображаются как часть URL-адреса на сервере метаданных. Кроме того, чтобы избежать неоднозначности, ключи не должны конфликтовать с другими ключами метаданных для проекта или быть одним из четырех зарезервированных ключей: «instance-template», «kube-env», «startup-script» и «user-data». Значения — это свободные строки, и они имеют смысл только в контексте интерпретации ими образа, работающего в экземпляре. Единственное ограничение, накладываемое на них, заключается в том, что размер каждого значения должен быть меньше или равен 32 КБ. Общий размер всех ключей и значений должен быть меньше 512 КБ. Объект, содержащий список пар «ключ»: значение. Пример: { «name»: «ключ», «mass»: «1.3кг», «count»: «3» }
image_type- Тип образа, который необходимо использовать для этого узла. Обратите внимание, что для данного типа образа будет использоваться последняя версия.
labels- Карта меток Kubernetes (ключ/значение) которые будут применены к каждому узлу. Эти метки будут добавлены дополнительно к любым меткам по умолчанию, которые Kubernetes может применить к узлу. В случае конфликта ключей меток применённый набор может отличаться в зависимости от версии Kubernetes — лучше всего считать поведение неопределённым, и конфликты следует избегать. Для получения дополнительной информации, включая использование и допустимые значения, см.: http://kubernetes.io/v1.1/docs/user-guide/labels.html Объект, содержащий список пар «ключ»: значение. Пример: { «name»: «ключ», «mass»: «1.3кг», «count»: «3» }
local_ssd_count- Количество локальных SSD-дисков, которые необходимо подключить к узлу. Предел для этого значения зависит от максимального количества дисков, доступных на машине в каждой зоне. См.: https://cloud.google.com/compute/docs/disks/local-ssd#local_ssd_limits для получения дополнительной информации.
tags- Список меток экземпляра, применённых ко всем узлам. Метки используются для идентификации допустимых источников или целей для сетевых брандмауэров и указываются клиентом при создании кластера или пула узлов. Каждая метка в списке должна соответствовать RFC1035.
preemptible- Создаются ли узлы как предварительные виртуальные машины. См.: https://cloud.google.com/compute/docs/instances/preemptible для получения дополнительной информации о предварительных виртуальных машинах.
accelerators- Список аппаратных ускорителей, которые необходимо подключить к каждому узлу. См. https://cloud.google.com/compute/docs/gpus для получения дополнительной информации об ускорителях.
accelerator_count- Количество карт ускорителей, доступных экземпляру.
accelerator_type- Имя ресурса типа ускорителя.
disk_type- Тип диска, подключаемого к каждому узлу (например, «pd-стандарт» или «pd-ssd»). Если не указано иное, по умолчанию используется тип диска «pd-стандарт».
min_cpu_platform- Минимальная платформа процессора, которая должна использоваться этим экземпляром. Экземпляр может быть размещен на указанной или более новой платформе процессора.
taints- Список меток kubernetes, которые необходимо применить к каждому узлу. Для получения дополнительной информации, включая использование и допустимые значения, см.: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
key- Ключ для метки.
value- Значение для метки.
effect- Эффект для метки.
master_auth- Информация об аутентификации для доступа к конечному пункту подключения.
username- Имя пользователя, используемое для аутентификации HTTP по принципу «пользователь/пароль» к конечному пункту подключения.
password- Пароль, используемый для аутентификации HTTP по принципу «пользователь/пароль» к конечному пункту подключения. Поскольку конечный пункт подключения открыт для интернета, необходимо создать надежный пароль длиной не менее 16 символов.
client_certificate_config- Конфигурация аутентификации клиента с помощью сертификата для кластера. Для кластеров версии до v1.12, если никакая конфигурация не указана, выдаётся сертификат клиента.
issue_client_certificate- Выдать сертификат клиента.
cluster_ca_certificate- Публичный сертификат в кодировке Base64, являющийся корневым сертификатом доверия для кластера.
client_certificate- Публичный сертификат в кодировке Base64, используемый клиентами для аутентификации с конечным пунктом подключения кластера.
client_key- Приватный ключ в кодировке Base64, используемый клиентами для аутентификации с конечным пунктом подключения кластера.
logging_servicemonitoring_servicenetworkprivate_cluster_configenable_private_nodesenable_private_endpointmaster_ipv4_cidr_blockprivate_endpointpublic_endpointcluster_ipv4_cidrenable_tputpu_ipv4_cidr_block1.2.3.4/29).addons_confighttp_load_balancingdisabled- Включен ли контроллер балансировки нагрузки HTTP в кластере. При включении он запускает небольшой pod в кластере, который управляет балансировщиками нагрузки.
horizontal_pod_autoscalingdisabled- Включена ли функция автоматического горизонтального масштабирования под в кластере. При включении она гарантирует, что в кластере запущен под Heapster, который также используется сервисом Google Cloud Monitoring.
kubernetes_dashboarddisabled- Включена ли панель управления Kubernetes для этого кластера.
network_policy_config- Конфигурация для NetworkPolicy. Этот параметр отслеживает только включение/выключение плагина на Master-узле, не отслеживая, включена ли политика сети для узлов.
disabled- Включена ли политика сети для этого кластера.
subnetwork- Имя подсети Google Compute Engine, к которой подключен кластер.
locations- Список зон Google Compute Engine, в которых должны располагаться узлы кластера.
resource_labels- Метки ресурсов для кластера, используемые для аннотирования связанных ресурсов Google Compute Engine.
label_fingerprint- Отпечаток набора меток для этого кластера.
legacy_abac- Конфигурация для режима авторизации ABAC legacy.
enabled- Включен ли авторизатор ABAC для этого кластера. При включении, идентификаторам в системе, включая учетные записи сервисов, узлы и контроллеры, будут статически предоставлены разрешения, выходящие за рамки тех, которые предоставлены конфигурацией RBAC или IAM.
network_policy- Настройки для функции NetworkPolicy.
provider- Выбранный поставщик политики сети.
enabled- Включена ли политика сети в кластере.
default_max_pods_constraint- Установленное ограничение на максимальное количество под-процессов, которые могут выполняться одновременно на узле в пуле узлов этого кластера. Действует только в случае создания кластера с поддержкой IP-псевдонимов.
max_pods_per_node- Ограничение, накладываемое на максимальное количество под-процессов на узел.
ip_allocation_policy- Конфигурация для управления выделением IP-адресов в кластере
use_ip_aliases- Используются ли IP-псевдонимы для адресов под-процессов в кластере
create_subnetwork- Создается ли автоматически новая подсеть для кластера
subnetwork_name- Настраиваемое имя подсети, которое будет использоваться, если createSubnetwork равно true. Если это поле пустое, то для новой подсети будет выбрано автоматическое имя.
cluster_secondary_range_name- Имя вторичного диапазона, используемого для блока CIDR кластера. Вторичный диапазон будет использоваться для адресов под-процессов. Этот параметр должен соответствовать существующему вторичному диапазону, связанному с подсетью кластера
services_secondary_range_name- Имя вторичного диапазона, используемого для блока CIDR сервисов. Вторичный диапазон будет использоваться для адресов сервисов ClusterIPs. Этот параметр должен соответствовать существующему вторичному диапазону, связанному с подсетью кластера.
cluster_ipv4_cidr_block- Диапазон IP-адресов для под-процессов кластера. Если это поле установлено, то cluster.cluster_ipv4_cidr должно быть оставлено пустым. Это поле применимо только при useIpAliases равно true. Оставьте пустым, чтобы выбрать диапазон с размером по умолчанию. Установите /маска (например, /14), чтобы выбрать диапазон со специфической маской.
node_ipv4_cidr_block- Диапазон IP-адресов IP-адресов экземпляров в этом кластере. Это применимо только если createSubnetwork равно true. Оставьте пустым, чтобы выбрать диапазон с размером по умолчанию. Установите /маска (например, /14), чтобы выбрать диапазон со специфической маской.
services_ipv4_cidr_block- Диапазон IP-адресов сервисов в этом кластере. Если пусто, диапазон будет автоматически выбран с размером по умолчанию. Это поле применимо только когда useIpAliases равно true. Оставьте пустым, чтобы выбрать диапазон с размером по умолчанию. Установите /маска (например, /14), чтобы выбрать диапазон со специфической маской.
tpu_ipv4_cidr_block- Диапазон IP-адресов Cloud TPUs в этом кластере. Если не указано, будет автоматически выбран диапазон с размером по умолчанию. Это поле применимо только при useIpAliases равно true. Если не указано, диапазон будет использовать размер по умолчанию. Установите /маска (например, /14), чтобы выбрать диапазон со специфической маской.
endpoint- IP-адрес конечной точки мастер-узла этого кластера. К конечной точке можно получить доступ из интернета по адресу https://имя_пользователя:пароль@конечная_точка/. См. свойство masterAuth этого ресурса для получения информации об имени пользователя и пароле.
initial_cluster_version- Версия программного обеспечения мастер-узла и kubelet, используемых в кластере при его первом создании. Версия может быть обновлена со временем.
current_master_version- Текущая версия программного обеспечения мастер-узла.
current_node_version- Текущая версия программного обеспечения узлов. Если они в настоящее время находятся на разных версиях из-за процесса обновления, это отражает минимальную версию всех узлов.
create_time- Дата создания кластера в формате RFC3339.
status- Текущий статус этого кластера.
status_message- Дополнительная информация о текущем статусе этого кластера, если доступна.
node_ipv4_cidr_size- Размер адресного пространства на каждом узле для размещения контейнеров. Он выделяется из диапазона container_ipv4_cidr.
services_ipv4_cidr- Диапазон IP-адресов Kubernetes-сервисов в этом кластере в обозначении CIDR (например, 1.2.3.4/29). Адреса сервисов обычно находятся в последней /16 части диапазона container CIDR.
current_node_count- Количество узлов, в настоящее время находящихся в кластере.
expire_time- Время автоматического удаления кластера в формате RFC3339.
conditions- Какие условия привели к текущему состоянию кластера.
code- Представление состояния для машин.
message- Представление состояния для человека.
master_authorized_networks_config- Конфигурация для управления выделением IP-адресов в кластере
enabled- Включены ли авторизованные сети мастер-узла.
cidr_blocks- Определите до 50 внешних сетей, которые могут получить доступ к мастер-узлу Kubernetes через HTTPS.
display_name- Необязательное поле, используемое для идентификации блоков CIDR.
cidr_block- Блок, указанный в формате CIDR.
location- Расположение развертывания кластера
Разрешения GCP
Убедитесь, что API Kubernetes Engine включен для текущего проекта.
© Chef Software, Inc.
Licensed under the Creative Commons Attribution 3.0 Unported License.
The Chef™ Mark and Chef Logo are either registered trademarks/service marks or trademarks/servicemarks of Chef, in the United States and other countries and are used with Chef Inc's permission.
We are not affiliated with, endorsed or sponsored by Chef Inc.
https://docs.chef.io/inspec/resources/google_container_regional_cluster/