Enabling and disabling the Canonical Service controller
Note: Canonical Services are supported automaticallyin Cloud Service Mesh version 1.6.8 and higher.
The Canonical Service controller groups workloads belonging to the same logical service and is required for the full functionality of the Services dashboard in the Google Cloud console.
All managed Cloud Service Mesh installations and in-cluster installations with asmcli from version 1.25 provisioned with the managed Canonical Service controller. The in-cluster Canonical Service Controller has been deprecated and will no longer receive updates. While existing deployments of in-cluster controller will continue to operate, we strongly recommend migrating to the managed Canonical Service Controller to ensure compatibility with future releases, access to the latest features, and continued support.
To determine if the in-cluster Canonical Service controller is enabled on your cluster:
kubectlgetservices-nasm-systemDisable the in-cluster Canonical Service controller
For existing in-cluster controller deployments, you should migrate to the managed Canonical Service controller. Follow themigration guide.
Enable the Managed Canonical Service Controller
If you installed managed Cloud Service Mesh, then the Managed Canonical Service Controller was installed by default. Also, all the in-cluster Cloud Service Mesh installations with asmcli from version 1.25 will be provisioned with the managed Canonical Service controller.
Ensure you are running the Managed Canonical Service Controller by running the following command:
Replace FLEET_PROJECT_ID with the ID of your Fleet Host project. Generally, the FLEET_PROJECT_ID has the same name as the project.
gcloudbetacontainerhubmeshdescribe--projectFLEET_PROJECT_IDIf the description states that the Canonical Services are reconciled successfully, then Manged Canonical Service Controller is operating as expected. No further action is required.
projects/<your project number>/locations/<location>/memberships/<membership-name>: code: OK description: |- Revision(s) ready for use: asm-managed. All Canonical Services have been reconciled successfully. servicemeshFeatureState: {} updateTime: '2021-11-16T21:10:36.289467777Z'If the description states that Managed Canonical Service Controller is yielding to the in-cluster controller, follow themigration guide.
projects/<your project number>/locations/<location>/memberships/<membership-name>: code: OK description: |- Revision(s) ready for use: istiod-asm-173-6. The Managed Canonical Service Controller is yielding to the in-cluster controller. See https://cloud.google.com/service-mesh/docs/canonical-service-controller-enable-and-disable#disable-in-cluster-service-controller for instructions on removing the in-cluster controller. servicemeshFeatureState: {} updateTime: '2021-11-16T21:05:43.286828851Z' lifecycleState: ENABLEDFor any other issues, refer toResolve Managed Canonical Service Controller issues fortroubleshooting guidance.
What's next
Learn about:
- Canonical Services
- Best practices in Canonical Services
- Define a Canonical Service
- Resolving Canonical Service issues
Except as otherwise noted, the content of this page is licensed under theCreative Commons Attribution 4.0 License, and code samples are licensed under theApache 2.0 License. For details, see theGoogle Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2026-02-19 UTC.