azurerm_aks_cluster ресурс
Используйте ресурс проверки InSpec azurerm_aks_cluster для проверки свойств кластера Azure AKS.
Версия Azure REST API
Этот ресурс взаимодействует с версией 2018-03-31 API Azure Management. Дополнительную информацию можно найти в официальной документации Azure.
В настоящее время, похоже, нет способа выбрать версию документации Azure API. Если вы заметите упоминание более новой версии в официальной документации, пожалуйста, откройте задачу или отправьте запрос на включение обновленной версии.
Доступность
Установка
Этот ресурс доступен в 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
Параметры
nameresource_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 может не всегда возвращать ключи, не имеющие связанных данных. Возможно, в некоторых случаях глубоко вложенная свойство не будет иметь нужного атрибута в цепочке вызова. Если вы обнаружите необходимость написания тестов на свойства, которые могут быть nil, вильните этот пакет ресурсов и добавьте к нему метод доступа к ресурсу. В этом методе доступа вы сможете защититься от nil-ключей. Запросы на включение всегда приветствуются.
Матчи
Этот ресурс проверки 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/