Как добавить профиль fargate в существующий кластер с помощью CDK

#amazon-eks #aws-cdk

Вопрос:

Я хочу добавить новый профиль fargate в существующий кластер eks. Кластер создается в другом стеке, и в моем стеке для конкретного клиента я импортирую свой кластер eks с помощью атрибутов.

         self.cluster: Cluster = Cluster.from_cluster_attributes(
            self, 'cluster', cluster_name=cluster,
            open_id_connect_provider=eks_open_id_connect_provider,
            kubectl_role_arn=kubectl_role
        )
 

Ошибка в том, что:

  Object of type @aws-cdk/core.Resource is not convertible to @aws-cdk/aws-eks.Cluster
 

и это появляется на этой строке здесь

 FargateProfile(self, f"tenant-{self.tenant}", cluster=self.cluster, selectors=[Selector(namespace=self.tenant)])
 

Если я попытаюсь позвонить

 self.cluster.add_fargate_profile(f"tenant-{self.tenant}", selectors=[Selector(namespace=self.tenant)])
 

Я получаю сообщение об ошибке, что объект self.cluster не имеет атрибута add_fargate_profile

Хотя вы можете подумать, что что-то не так с импортом кластера, добавление манифестов и диаграмм управления работает просто отлично.

  self.cluster.add_manifest(...) <-- this is working
 

Ответ №1:

В настоящее время это невозможно в CDK.

Согласно документам, eks.Cluster.fromClusterAttributes возвращает an ICluster , в то время FargateProfile как явно ожидает Cluster a.

A FargateCluster в настоящее время может быть создан только в CDK, а не импортирован.