Spec-Zone.ru › Chef 16

ресурс aws_eks_cluster

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

Используйте ресурс проверки InSpec aws_eks_cluster для проверки свойств отдельного кластера 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 Данные удостоверяющего центра для вашего кластера.
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

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

Используйте комбинацию ресурсов InSpec AWS, чтобы убедиться, что ваш кластер 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 со значением разрешения.

Подробную документацию можно найти по адресу Политики 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