Spec-Zone.ru › Chef 16

azurerm_aks_cluster ресурс

[править на GitHub]

Используйте ресурс проверки InSpec azurerm_aks_cluster, чтобы проверить свойства кластера Azure AKS.

Версия Azure REST API

Этот ресурс взаимодействует с версией 2018-03-31 API Azure Management. Дополнительную информацию см. в официальной документации Azure.

В настоящее время нет способа выбрать версию документации API Azure. Если вы обнаружите более новую версию, упомянутую в официальной документации, откройте вопрос или отправьте запрос на добавление с обновлённой версией.

Доступность

Установка

Этот ресурс доступен в inspec-azure пакете ресурсов. Чтобы его использовать, добавьте следующее в свой inspec.yml в вашем профиле верхнего уровня:

depends:
  - name: inspec-azure
    git: https://github.com/inspec/inspec-azure.git

Вам также потребуется настроить свои учетные данные Azure; см. README пакета ресурсов.

Синтаксис

Блок ресурса azurerm_aks_cluster определяет кластер AKS по имени и группе ресурсов.

describe azurerm_aks_cluster(resource_group: 'example', name: 'ClusterName') do
  ...
end

Примеры

Проверка, что пример группы ресурсов содержит указанный кластер AKS

describe azurerm_aks_cluster(resource_group: 'example', name: 'ClusterName') do
  it { should exist }
end

Проверка, что указанный кластер AKS был успешно развернут

describe azurerm_network_security_group(resource_group: 'example', name: 'ClusterName') do
  its('properties.provisioningState') { should cmp 'Succeeded' }
end

Проверка, что у указанного кластера AKS правильное количество узлов в пуле

describe azurerm_network_security_group(resource_group: 'example', name: 'ClusterName') do
  its('properties.agentPoolProfiles.first.count') { should cmp 5 }
end

Параметры

  • name
  • resource_group

Примеры параметров

Группа ресурсов, а также имя кластера AKS.

describe azurerm_aks_cluster(resource_group: 'example', name: 'ClusterName') do
  it { should exist }
end

Атрибуты

Все атрибуты доступны через обозначение с точкой. Это пример доступных в настоящее время атрибутов.

control 'azurerm_aks_cluster' do
  describe azurerm_aks_cluster(resource_group: 'example', name: 'ClusterName') do
    it { should exist }
    its('properties.provisioningState') { should cmp 'Succeeded' }
    its('properties.kubernetesVersion') { should cmp '1.11.3' }
    its('properties.dnsPrefix') { should cmp 'ClusterName' }
    its('properties.fqdn') { should cmp 'ClusterName' }
    its('properties.agentPoolProfiles.first.name') { should cmp 'agentpool' }
    its('properties.agentPoolProfiles.first.count') { should cmp 3 }
    its('properties.agentPoolProfiles.first.vmSize') { should cmp 'Standard_DS2_V2' }
    its('properties.agentPoolProfiles.first.storageProfile') { should cmp 'ManagedDisks' }
    its('properties.agentPoolProfiles.first.maxPods') { should cmp 110 }
    its('properties.agentPoolProfiles.first.osType') { should cmp 'Linux' }
  end
end

Другие атрибуты

Есть дополнительные атрибуты, к которым можно получить доступ, но которые мы не документировали. Обратитесь к документации Azure. Любой атрибут в ответе можно получить по ключам, разделённым точками (.).

API может не всегда возвращать ключи, у которых нет связанных данных. В некоторых случаях вложенное свойство может не содержать нужного атрибута в цепочке вызовов. Если вы обнаружите необходимость создания тестов на свойства, которые могут быть пустыми, создайте форк этого пакета ресурсов и добавьте к нему метод доступа к ресурсу. В этом методе доступа вы сможете предотвратить обращение к пустым ключам. Запросы на добавление всегда приветствуются.

Матчеры

Этот ресурс проверки InSpec имеет следующие специальные матчеры. Полный список доступных матчеров вы найдете на странице Универсальные матчеры.

exists

Проверка пройдёт, если ресурс возвращает результат. Используйте should_not если ожидается ноль совпадений.

# If we expect 'ClusterName' to always exist
describe azurerm_aks_cluster(resource_group: 'example', name: 'ClusterName') do
  it { should exist }
end

# If we expect 'ClusterName' to never exist
describe azurerm_aks_cluster(resource_group: 'example', name: 'ClusterName') do
  it { should_not exist }
end

Разрешения Azure

Ваш сервисный принцип должен быть настроен с ролью contributor на подписке, которую вы хотите проверить.

© 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/azurerm_aks_cluster/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API