问题标签 [crossplane]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
92 浏览

kubernetes - 如何通过 argocd 和 crossplane 传递配置

我们正在尝试使用 crossplane 和 argocd 创建一个环境。一旦 Crossplane 生成数据库并将凭据保存到管理集群上的密钥中。在我们将凭证从管理集群部署到我们的目标集群到一个秘密之后。

现在我们需要将凭证从秘密 a 传递到应用程序知道的秘密 B。当 argo 不使用 helm install 但模板因此lookup功能不起作用时,问题就开始了。我们考虑过使用保险库作为中间人,但我们不确定如何将值从秘密加载到保险库。

无论如何,如果您遇到这样的问题或有某种解决方案,我们将很高兴听到。谢谢

0 投票
0 回答
72 浏览

kubernetes - 如何将配置连接器写入机密或配置映射以在部署中使用?

在 Crossplane 中,将 SQL 实例的连接详细信息写入 Kubernetes Secret 很简单:

这会将连接详细信息写入 Kubernetes Secret,以便部署可以引用它们。

如何使用配置连接器做到这一点?我错过了什么吗?

0 投票
1 回答
220 浏览

kubernetes - 如何使用 crossplane 将 helm 图表(使用 provider-helm)安装到其他集群中

我正在评估 crossplane 作为我们部署客户不同解决方案的首选工具,并且一直在努力解决一个问题:

我们想将 crossplane 安装到 GCP 上的一个集群(我们手动创建),并使用该 crossplane 来配置新集群,我们可以在该集群上安装 helm 图表并像往常一样部署。到目前为止的主要问题是我们还没有弄清楚如何告诉 crossplane 将舵图安装到其他集群而不是它自己。

这就是我们所尝试的:

示例中的提供程序配置:

...它可以工作,但会将所有内容安装到与交叉平面相同的集群中。

另一个例子:

...这需要大量的 makefile 脚本才能更轻松地为新集群生成 kubeconfig,并且 kubecoinfig 仍然会产生很多错误(但确实开始在新集群中创建一些东西,但它并没有一路工作。错误,例如:“ PodUnschedulable 无法调度 pod:gvisor})。

我只尝试了 crossplane 几天,所以我知道我可能会从一个完全错误的角度来处理这个问题,但与 Terraform 等相比,我确实喜欢 crossplane 的承诺及其方法。

所以问题是:我的想法完全错误,或者我错过了一些明显的东西。使用 kubeconfig 进行的第二次测试现在感觉相当复杂(许多步骤以正确的顺序来实现)。

谢谢

0 投票
1 回答
27 浏览

kubernetes - 从一个清单中提取值并将其分配给集群内的另一个清单

我正在练习 GitOps,并希望尽可能地自动化。ArgoCD 与 Crossplane 一起基于清单创建我的集群。当集群启动并运行时,Crossplane 会创建一个Secret包含常规kubeconfig文件的文件,该文件可以像任何其他 kubeconfig 一样下载和使用。

在 ArgoCD 中,我必须在 -manifest 中分配目标集群 IP 地址AppProject

这个任务我想自动化。

也许有人知道执行此类任务的工具。我假设这些步骤在 K8s 世界中很常见,但我不知道它们。如果没有这样的工具,我想走手动方式。

原始 kubeconfig 秘密:

也就是base64解码对应的kubeconfig

那是我的目标清单:

我可以从秘密中提取地址:

export STAGING_IP=$(kubectl get secret cluster-details-vonhier-staging-cp -o jsonpath="{.data.kubeconfig}" | base64 -d| yq e ".clusters[0].cluster.server" -)

并通过以下方式应用它:

yq e --inplace ".spec.destinations[0].server = \"${STAGING_IP}\"" app-projects/staging.yml

结果如我所料:

目的地:-命名空间:“生产”服务器:“https://123.456.678.0:6443”

这样可行。

但是如何将它“打包”到集群中呢?它在本地工作,..

  • kind: Job-manifest是一个用例吗?
  • 或者有没有类似的东西?
  • 此类任务的任何特定图像?

感谢您为我指明正确的方向