Deploy beach-head services on Management Cluster itself#
To deploy beach-head services on the management cluster, a MultiClusterService object can be created with .spec.serviceSpec.provider.selfManagement=true as shown below:
apiVersion: k0rdent.mirantis.com/v1beta1
kind: MultiClusterService
metadata:
name: mgmt-mcs
spec:
serviceSpec:
provider:
name: ksm-projectsveltos
selfManagement: true
services:
- template: ingress-nginx-4-11-3
name: ingress-nginx
namespace: ingress-nginx
This will create a ServiceSet which will also have .spec.serviceSpec.provider.selfManagement=true, which in-turn will indicate to the KSM StateManagementProvider that this MCS is supposed to match the management cluster itself.
The default StateManagementProvider is Sveltos, so there is a object named mgmt in the mgmt namespace of the cluster where k0rdent has been installed. This object represents the management cluster itself, and is different from the default k0rdent namespace such as kcm-system. To view this object run:
kubectl -n mgmt get sveltoscluster mgmt --show-labels
The output should be similar to this:
NAME READY VERSION LABELS
mgmt true v1.32.2 k0rdent.mirantis.com/management-cluster=true,projectsveltos.io/k8s-version=v1.32.2,sveltos-agent=present
Any number of ServiceTemplates (ingress-nginx-4-11-3 in this example) can be added to the MultiClusterService's .spec.serviceSpec.services field. See Using and Creating ServiceTemplates for how to create ServiceTemplates.
To verify that the ingress-nginx-4-11-3 beach-head service was sucessfully deployed, the status of the MultiClusterService can be queried with:
kubectl get multiclusterservice mgmt -o yaml
The output should be similar to the following showing that ingress-nginx has been Provisioned:
apiVersion: k0rdent.mirantis.com/v1beta1
kind: MultiClusterService
metadata: {}
spec: {}
status:
conditions:
- lastTransitionTime: "2025-11-07T23:25:25Z"
message: ""
observedGeneration: 2
reason: Succeeded
status: "True"
type: ServicesReferencesValidation
- lastTransitionTime: "2025-11-07T23:25:25Z"
message: ""
observedGeneration: 2
reason: Succeeded
status: "True"
type: ServicesDependencyValidation
- lastTransitionTime: "2025-11-07T23:25:25Z"
message: ""
observedGeneration: 2
reason: Succeeded
status: "True"
type: MultiClusterServiceDependencyValidation
- lastTransitionTime: "2025-11-07T23:28:44Z"
message: 1/1
reason: Succeeded
status: "True"
type: ClusterInReadyState
- lastTransitionTime: "2025-11-07T23:28:44Z"
message: Object is ready
reason: Succeeded
status: "True"
type: Ready
observedGeneration: 2
servicesUpgradePaths:
- availableUpgrades:
- upgradePaths:
- ingress-nginx-4-11-3
name: ingress-nginx
namespace: ingress-nginx
template: ingress-nginx-4-11-3
See Creating multi-cluster services for more detail on deploying beach-head services using MultiClusterService.