Spec-Zone.ru › Chef 17

ресурс aws_eks_cluster

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

Используйте aws_eks_cluster ресурс проверки InSpec, чтобы протестировать свойства отдельного кластера AWS Elastic Container Service для Kubernetes.

Синтаксис

Блок ресурса aws_eks_cluster объявляет тесты для отдельного кластера EKS по имени кластера.

describe aws_eks_cluster('my-eks') do
  it { should exist }
end

describe aws_eks_cluster(cluster_name: 'my-eks') do
  it { should exist }
end

Параметры

cluster_name (обязательно)

Этот ресурс требует одного параметра — имени кластера EKS. Его можно передать как строку или как cluster_name: 'value' пару ключ-значение в хэше.

См. также документацию AWS по кластерам EKS.

Свойства

Свойство Описание
arn Amazon Resource Name (ARN) кластера.
name Имя кластера.
endpoint Точка входа для вашего API-сервера Kubernetes.
status Текущий статус кластера.
version Версия сервера Kubernetes для кластера.
certificate_authority Данные certificate-authority вашего кластера.
subnets_count Количество подсетей, связанных с вашим кластером.
subnet_ids Подсети, связанные с вашим кластером.
security_groups_count Количество групп безопасности, связанных с вашим кластером.
security_group_ids Группы безопасности, связанные с кросс-аккаунтовыми интерфейсами эластичной сети, которые используются для обеспечения связи между вашими узлами-рабочими и контрольной плоскостью Kubernetes.
role_arn Amazon Resource Name (ARN) роли IAM, предоставляющей разрешения для контрольной плоскости Kubernetes на выполнение вызовов операций API AWS от вашего имени.
vpc_id VPC, связанная с вашим кластером.
created_at Маркер временной шкалы Unix в секундах для момента создания кластера.
creating Булево значение, указывающее, находится ли состояние кластера в состоянии CREATING.
active Булево значение, указывающее, находится ли состояние кластера в состоянии ACTIVE.
failed Булево значение, указывающее, находится ли состояние кластера в состоянии FAILED.
deleting Булево значение, указывающее, находится ли состояние кластера в состоянии DELETING.
tags Теги кластера

Примеры

Проверка, что кластер EKS имеет как минимум 2 подсети

describe aws_eks_cluster('my-cluster') do
  its('subnets_count') { should be > 1 }
end

Убедитесь, что кластер имеет правильный статус.

describe aws_eks_cluster(cluster_name: 'my-eks') do
  its('status') { should eq 'ACTIVE' }
end

Убедитесь, что кластер EKS находится в правильной VPC

describe aws_eks_cluster('my-cluster') do
  its('vpc_id') { should eq 'vpc-12345678' }
end

Убедитесь, что кластер EKS использует правильную роль IAM.

describe aws_eks_cluster('my-cluster') do
  its('role_arn') { should cmp 'rn:aws:iam::012345678910:role/eks-service-role-AWSServiceRoleForAmazonEKS-J7ONKE3BQ4PI' }
end

Интеграция с другими ресурсами

Используйте сочетание ресурсов AWS InSpec для проверки, что ваш кластер EKS не использует Default VPC.

# Find the default Security Group for our VPC
cluster_vpc = aws_eks_cluster(cluster_name: 'my-cluster').vpc_id
default_sg  = aws_security_group(group_name: 'default', vpc_id: cluster_vpc)

# Ensure we are not using the default Security Group
describe aws_eks_cluster(cluster_name: 'my-cluster') do
  its('security_group_ids') { should_not include default_security_group.group_id }
end

Сопоставители

У этого ресурса проверки InSpec нет специальных сопоставителей. Полный список доступных сопоставителей см. на нашей странице Универсальные сопоставители.

exist

Управление пройдет успешно, если описание вернет по крайней мере один результат.

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

describe aws_eks_cluster('AnExistingCluster') do
  it { should exist }
end

describe aws_eks_cluster('ANonExistentCluster') do
  it { should_not exist }
end

Разрешения AWS

Вашему принципалу потребуются разрешения eks:DescribeCluster action, установленные на «Разрешить».

Подробную документацию можно найти по адресу Политики IAM Amazon EKS, роли и разрешения. Документация по действиям EKS находится по адресу Структура политики

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

Spec-Zone.ru

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