我正在评估 crossplane 作为我们部署客户不同解决方案的首选工具,并且一直在努力解决一个问题:
我们想将 crossplane 安装到 GCP 上的一个集群(我们手动创建),并使用该 crossplane 来配置新集群,我们可以在该集群上安装 helm 图表并像往常一样部署。到目前为止的主要问题是我们还没有弄清楚如何告诉 crossplane 将舵图安装到其他集群而不是它自己。
这就是我们所尝试的:
示例中的提供程序配置:
apiVersion: helm.crossplane.io/v1beta1
kind: ProviderConfig
metadata:
name: helm-provider
spec:
credentials:
source: InjectedIdentity
...它可以工作,但会将所有内容安装到与交叉平面相同的集群中。
另一个例子:
apiVersion: helm.crossplane.io/v1beta1
kind: ProviderConfig
metadata:
name: default
spec:
credentials:
source: Secret
secretRef:
name: cluster-credentials
namespace: crossplane-system
key: kubeconfig
...这需要大量的 makefile 脚本才能更轻松地为新集群生成 kubeconfig,并且 kubecoinfig 仍然会产生很多错误(但确实开始在新集群中创建一些东西,但它并没有一路工作。错误,例如:“ PodUnschedulable 无法调度 pod:gvisor})。
我只尝试了 crossplane 几天,所以我知道我可能会从一个完全错误的角度来处理这个问题,但与 Terraform 等相比,我确实喜欢 crossplane 的承诺及其方法。
所以问题是:我的想法完全错误,或者我错过了一些明显的东西。使用 kubeconfig 进行的第二次测试现在感觉相当复杂(许多步骤以正确的顺序来实现)。
谢谢