Helm 将 v1.23.0 的 Kubeversion 读取错误:>=1.22.0-0 为 v1.20.0

问题描述 投票:0回答:3

如何使用 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),
)

关于修复版本错误和实际集群版本之间的这种奇怪现象有什么想法吗?

我已经尝试过:

  • 删除所有内容并重新开始。
  • 更新到最新的 ArgoCD 安装 yaml。
kubernetes kubernetes-helm amazon-eks pulumi argocd
3个回答
1
投票

我可以重现您的问题,但我不太确定是什么导致版本之间不匹配。最好在 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 要求,然后从本地路径安装图表。


1
投票

升级头盔。我遇到了类似的问题,我的 k8s 是 1.25,但 helm 抱怨它是 1.20。尝试了其他所有方法,升级头盔成功了。


0
投票

是的,这是 helm 问题。

错误:- 警告:跳过就绪副本检查:预览期间未知 - 将在应用后测试 错误:错误:调用 kubernetes:helm:template 返回错误:无法为指定的 Helm 图表生成 YAML:无法从模板创建图表:图表需要 kubeVersion:>= 1.22.0-0,与 Kubernetes v1.20.0 不兼容

解决方案:-

© www.soinside.com 2019 - 2024. All rights reserved.