Manage multiple environments with consul k8s


I must to perform a migration from service mesh in VM to kubernetes inside a service mesh consul (with cluster federation) (migration service by service, not big bang migration)

I have one kubernetes cluster for "prod env managed by prod team, and another k8s cluser for non prod env managed by my team.

Initially I projected to create a namespace per environment, with a consul k8s inside it and isolated with security features (mtls acl…).
So for each environments:

  • there are a set of VMS in one side which contains some services,
  • and in another side there is a namespace witch contains a consul- k8s installed inside it
  • and the cluster federation is activated beetwin both sides

This approach with multiple consul-k8s in one kubernetes cluster seems not possible.
Correct me if I’m mistaken.

Is there a solution to manage multiple environment (isolated between each other, for acl, intention, MTLS features and isolated service mesh) with one consul k8s installed in one cluster k8s ?

is the only solution is 1 env = 1 consul-k8s installed in cluster k8s?


hello just to update the post :
i have already a installed consul in the namespace consul-dev

helm install “consul-test” almtcore-helm/consul --version “0.31.0” --create-namespace --namespace “consul-test” -f service-mesh-values.yaml --wait --timeout “10m0s”

Error: rendered manifests contain a resource that already exists. Unable to continue with install: CustomResourceDefinition “” in namespace “” exists and cannot be imported into the current release: invalid ownership metadata; annotation validation error: key “” must equal “consul-test”: current value is “consul-dev”; annotation validation error: key “” must equal “consul-test”: current value is “consul-dev”