如何使用 ArgoCD Helm Chart 通过 Pulumi 在 K8 上部署?
Pulumi 诊断:
kubernetes:helm.sh/v3:Release (argocd):
error: failed to create chart from template: chart requires kubeVersion: >=1.22.0-0 which is incompatible with Kubernetes v1.20.0
集群版本是:v1.23.0,已在 AWS 上验证。而不是 1.20.0
ArgoCD 安装 yaml 与 CRD2Pulumi 一起使用:https://raw.githubusercontent.com/argoproj/argo-cd/master/manifests/core-install.yaml
来源:
...
cluster = eks.Cluster("argo-example") # version="1.23"
# Cluster provider
provider = k8s.Provider(
"eks",
kubeconfig=cluster.kubeconfig.apply(lambda k: json.dumps(k))
#kubeconfig=cluster.kubeconfig
)
ns = k8s.core.v1.Namespace(
'argocd',
metadata={
"name": "argocd",
},
opts=pulumi.ResourceOptions(
provider=provider
)
)
argo = k8s.helm.v3.Release(
"argocd",
args=k8s.helm.v3.ReleaseArgs(
chart="argo-cd",
namespace=ns.metadata.name,
repository_opts=k8s.helm.v3.RepositoryOptsArgs(
repo="https://argoproj.github.io/argo-helm"
),
values={
"server": {
"service": {
"type": "LoadBalancer",
}
}
},
),
opts=pulumi.ResourceOptions(provider=provider, parent=ns),
)
关于修复版本错误和实际集群版本之间的这种奇怪现象有什么想法吗?
我已经尝试过:
我可以重现您的问题,但我不太确定是什么导致版本之间不匹配。最好在 pulumi 的 k8s 存储库提出问题。
查看https://github.com/argoproj/argo-helm/blame/main/charts/argo-cd/Chart.yaml的历史,可以看到5.9.1之后增加了kubeversion要求。因此,使用该版本可以成功部署 Helm Chart。例如
import * as k8s from "@pulumi/kubernetes";
const namespaceName = "argo";
const namespace = new k8s.core.v1.Namespace("namespace", {
metadata: {
name: namespaceName,
}
});
const argo = new k8s.helm.v3.Release("argo", {
repositoryOpts: {
repo: "https://argoproj.github.io/argo-helm"
},
chart: "argo-cd",
version: "5.9.1",
namespace: namespace.metadata.name,
})
(不推荐)或者,您也可以克隆图表的源代码,注释掉
Chart.yaml
中的 kubeVersion 要求,然后从本地路径安装图表。
升级头盔。我遇到了类似的问题,我的 k8s 是 1.25,但 helm 抱怨它是 1.20。尝试了其他所有方法,升级头盔成功了。