我需要写一个新的Pulumi程序来做一些k8s的事情。一个任务是在不同的集群中创建新的名称空间。
我想做的事情应该是这样的:
const ns1 = new k8s.core.v1.Namespace("foo-ns", {cluster: "foo_cluster"});
const ns2 = new k8s.core.v1.Namespace("bar-ns", {cluster: "bar_cluster"});
我看了Namespaces(https://www.pulumi.com/registry/packages/kubernetes/api-docs/core/v1/namespace/)的文档,我不太确定如何控制命名空间的创建位置。我看到有一个传入集群名称的选项(https://www.pulumi.com/registry/packages/kubernetes/api-docs/core/v1/namespace/#clustername_nodejs),但文档说
对象所属集群的名称,用于区分不同集群中同名同姓的资源。该字段目前没有设置,如果在create或update请求中设置,apiserver会忽略。
(重点是我的)
所以现在我想知道:如果我告诉Pulumi创建一个新的命名空间,命名空间将在哪个集群中创建?
(我还想问一下在不同GCP项目的不同GKE环境中的相似命名集群中创建命名空间的问题-因为这可能是这段代码的下一阶段,但如果我不能在同一个项目中指定不同的集群,我看不出有什么意义)
1条答案
按热度按时间cnjp1d6j1#
您可以使用资源提供程序(具体地说,是显式资源提供程序)来实现这一点
Kubernetes resource provider支持多种方式来配置对集群的访问,例如传递
kubeconfig
或Kubernetes上下文: