【问题标题】:install dapr helm chart on a second namespace while already installed on another namespace in same cluster在第二个命名空间上安装 dapr helm chart,而已安装在同一集群中的另一个命名空间上
【发布时间】:2021-10-12 15:02:14
【问题描述】:

我正在尝试在名称空间“test”上安装第二个 dapr helm chart,而它已经安装在同一集群中的名称空间“dev”上。

helm upgrade -i --namespace $NAMESPACE \
    dapr-uat dapr/dapr
already installed config exists whith following name:
NAME                NAMESPACE   REVISION    UPDATED                                 STATUS      CHART                   APP VERSION
dapr                dev         1           2021-10-06 21:16:27.244997 +0100 +01    deployed    dapr-1.4.2              1.4.2

我收到以下错误

Error: rendered manifests contain a resource that already exists. Unable to continue with install: ClusterRole "dapr-operator-admin" in namespace "" exists and cannot be imported into the current release: invalid ownership metadata; annotation validation error: key "meta.helm.sh/release-name" must equal "dapr-uat": current value is "dapr"; annotation validation error: key "meta.helm.sh/release-namespace" must equal "test": current value is "dev"
Tried specifying a different version for the installation but with no success
helm upgrade -i --namespace $NAMESPACE \
    dapr-uat dapr/dapr \
    --version 1.4.0

开始认为当前图表不允许在同一个集群上存在多个实例(开发和测试)。 有没有人遇到过同样的问题? 谢谢,

【问题讨论】:

  • 如果图表安装了集群全局资源,那么它实际上不能同时安装。可能在第二次安装中更改发布名称dapr-uat 会有所帮助,但这取决于图表代码。图表是您自己编写的,还是您只是想安装第三方图表?
  • 使用第三方图表:github.com/dapr/dapr/tree/master/charts/dapr 是的,更改名称或版本号无济于事

标签: kubernetes kubernetes-helm dapr


【解决方案1】:

现有的 dapr 图表应用集群范围的资源,其中给出的名称不考虑命名空间名称。因此,当尝试安装第二个配置时,集群范围的资源名称与预先存在的集群范围的资源发生冲突:

Error: UPGRADE FAILED: rendered manifests contain a resource that already exists. Unable to continue with update: ClusterRole "dapr-operator-admin" in namespace "" exists and cannot be imported into the current release: invalid ownership metadata; annotation validation error: key "meta.helm.sh/release-name" must equal "dapr-uat": current value is "dapr-dev"; annotation validation error: key "meta.helm.sh/release-namespace" must equal "uat": current value is "dev"

我不得不编辑图表:

git clone https://github.com/dapr/dapr.git

我在子图表 dapr_rbac 中编辑了 RBAC 资源,其中资源名称现在考虑 dapr_rbac/templates/ClusterRoleBinding.yaml 中的命名空间名称

上一个文件:

kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: dapr-operator
...

现在编辑包含所有资源上的元数据名称:

kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: dapr-operator-{{ .Release.Namespace }}
...

相同的逻辑已应用于文件 dapr_sidecar_injector/templates/dapr_sidecar_injector_webhook_config.yaml 中子图表 dapr_sidecar_injector 中的 MutatingWebhookConfiguration

如需完整编辑,请参阅分叉回购: https://github.com/redaER7/dapr/tree/DEV/charts/dapr

【讨论】:

    猜你喜欢
    • 2021-10-31
    • 2022-11-17
    • 1970-01-01
    • 2022-10-08
    • 2017-04-23
    • 1970-01-01
    • 2012-05-27
    • 1970-01-01
    • 2019-12-17
    相关资源
    最近更新 更多