gpt4 book ai didi

aws-cloudformation - 即使未明确指定,AWS CDK Stack 也会以静默方式部署

转载 作者:行者123 更新时间:2023-12-03 07:30:44 26 4
gpt4 key购买 nike

我有多堆栈 CDK 设置,核心堆栈包含 VPC 和 EKS。 “租户”堆栈部署一些 s3 存储桶和 k8s 命名空间以及其他一些与租户相关的部署。

cdk ls正在按预期显示所有现有堆栈。

- eks-stack
- tenant-a
- tenant-b

如果我只想部署一个租户堆栈,我可以运行 cdk deploy tenant-a 。令我惊讶的是,我在我的 k8s 集群中看到 tenant-1 的 list 和tenant-b已部署,而不仅仅是tenant-a正如我所料。

CLI 上的 CDK 输出正确输出 tenant-a被部署。 CLI 输出未提及 ⁣ tenant-b 。我还发现大多数更改确实发生在 eks 堆栈内部,而不是租户堆栈中,因为我正在使用引用资料。

# app.py
# ...
# EKS
efs_stack = EksStack(
app,
"eks-stack",
stack_log_level="INFO",
)


# Tenant Specific stacks
tenants = ['tenant-a', 'tenant-b']

for tenant in tenants:
tenant_stack = TenantStack(
app,
f"tenant-stack-{tenant}",
stack_log_level="INFO",
cluster=eks_cluster_stack.eks_cluster,
tenant=tenant,
)
--
#
# Inside TenantStack.py a manifest is applied to k8s
self.cluster.add_manifest(f'db-job-{self.tenant}', {
"apiVersion": 'v1',
"kind": 'Pod',
"metadata": {"name": 'mypod'},
"spec": {
"serviceAccountName": "bootstrap-db-job-access-ssm",
"containers": [
{
"name": 'hello',
"image": 'amazon/aws-cli',
"command": 'magic stuff ....'
}
]
}
})

我发现当我通过属性和引用导入集群时例如。

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

我可以部署租户堆栈 ab分别和我的核心eks堆栈保持不变。现在我已经阅读了建议使用引用,因为 CDK 可以自动创建依赖项并检测循环依赖项。

最佳答案

有一个选项可以排除依赖项。使用 cdk deploytenant-a --exclusively 不部署依赖项。

关于aws-cloudformation - 即使未明确指定,AWS CDK Stack 也会以静默方式部署,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69014168/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com