What is your environment(Kubernetes version, Fluid version, etc.)
k8s version: 1.34.0
fluid version: 1.0.8
Describe the bug
When installing multiple Fluid Helm releases in different namespaces, the second installation fails because the Helm chart uses fixed names for cluster-scoped resources.
The first installation succeeds. However, installing another release in a different namespace fails:
Error: INSTALLATION FAILED: Unable to continue with install: ClusterRole "alluxioruntime-controller" 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 "fluid-1": current value is "fluid"; annotation validation error: key "meta.helm.sh/release-namespace" must equal "test": current value is "default"
The conflict occurs because the first release creates the cluster-scoped ClusterRole with a fixed name and Helm ownership metadata associated with the first release. The second release renders the same resource name, but Helm cannot adopt the existing resource because it is owned by the first release.
This issue also prevents deploying separate Fluid releases using different chart or application versions in different namespaces when each release is intended to be independently managed.
Locations:
|
name: alluxioruntime-controller |
|
name: alluxioruntime-clusterrolebinding |
What you expect to happen:
Each Helm release should be able to create and manage its own release-specific cluster-scoped resources when multiple isolated Fluid installations are deployed on the same cluster.
Cluster-scoped resource names that are intended to be independently managed by each Helm release should be generated from the Helm release context, for example by using the existing fluid.fullname helper, rather than using hardcoded names, for example:
metadata:
name: {{ include "fluid.fullname" . }}-alluxioruntime-controller
The corresponding ClusterRoleBinding should reference the same release-specific ClusterRole.
How to reproduce it
deploy multiple Fluid Helm releases in different namespaces
Additional Information
What is your environment(Kubernetes version, Fluid version, etc.)
k8s version: 1.34.0
fluid version: 1.0.8
Describe the bug
When installing multiple Fluid Helm releases in different namespaces, the second installation fails because the Helm chart uses fixed names for cluster-scoped resources.
The first installation succeeds. However, installing another release in a different namespace fails:
The conflict occurs because the first release creates the cluster-scoped ClusterRole with a fixed name and Helm ownership metadata associated with the first release. The second release renders the same resource name, but Helm cannot adopt the existing resource because it is owned by the first release.
This issue also prevents deploying separate Fluid releases using different chart or application versions in different namespaces when each release is intended to be independently managed.
Locations:
fluid/charts/fluid/fluid/templates/role/alluxio/rbac.yaml
Line 5 in de578cd
fluid/charts/fluid/fluid/templates/role/alluxio/rbac.yaml
Line 150 in de578cd
What you expect to happen:
Each Helm release should be able to create and manage its own release-specific cluster-scoped resources when multiple isolated Fluid installations are deployed on the same cluster.
Cluster-scoped resource names that are intended to be independently managed by each Helm release should be generated from the Helm release context, for example by using the existing fluid.fullname helper, rather than using hardcoded names, for example:
metadata:
name: {{ include "fluid.fullname" . }}-alluxioruntime-controller
The corresponding ClusterRoleBinding should reference the same release-specific ClusterRole.
How to reproduce it
deploy multiple Fluid Helm releases in different namespaces
Additional Information