Understanding Feature State Conditions

Note: Canonical Services are supported automatically in Cloud Service Mesh version 1.6.8 and higher.

This page describes how to interpret and act upon Conditions reported on your Cloud Service Mesh cluster or fleet.

To check for conditions, run this command:

  gcloud container fleet mesh describe --project FLEET_PROJECT

The output may include conditions in membershipStates for a cluster, like:

  ...
  membershipStates:
    projects/test-project/locations/us-central1/memberships/my-membership:
      servicemesh:
        conditions:
          - code: <CONDITION_CODE>
            details: ...
            documentationLink: ....
            severity: ...

Values of code are described in more detail on this page.

NODEPOOL_WORKLOAD_IDENTITY_FEDERATION_REQUIRED

You may see the NODEPOOL_WORKLOAD_IDENTITY_FEDERATION_REQUIRED error code in the Conditions field of your membership:

    membershipStates:
      projects/test-project/locations/us-central1/memberships/my-membership:
        servicemesh:
          conditions:
          - code: NODEPOOL_WORKLOAD_IDENTITY_FEDERATION_REQUIRED
            details: One or more node pools have workload identity federation disabled.
            documentationLink: https://cloud.google.com/kubernetes-engine/docs/how-to/workload-identity
            severity: ERROR
          controlPlaneManagement:
            details:
            - code: REVISION_FAILED_PRECONDITION
              details: Required in-cluster components are not ready. This will be retried
                within 15 minutes.
            implementation: TRAFFIC_DIRECTOR
            state: FAILED_PRECONDITION

This error is shown if the GKE cluster does not have Workload Identity Federation enabled on all node pools of that cluster, since this is a prerequisites for the installation of Cloud Service Mesh.

To resolve this error message, you must follow instructions to Enable Workload Identity Federation on all node pools. Note that enablement may vary depending on your specific cluster case.

After enablement, the error message should be automatically removed and your cluster should go back to ACTIVE state. If the issue persists and you need additional assistance, see Getting support.

MESH_IAM_PERMISSION_DENIED

This error indicates that the service account does not have enough permission to access your fleet project. Follow the steps for troubleshooting:

  1. Verify if your service account has granted Anthos Service Mesh Service Agent role. For details on how to verify IAM permission and add it, go to Revision(s) reporting as unhealthy error and use the same steps there.

  2. If permission is verified while issue persists, contact Google customer support for further assistance.

MESH_IAM_CROSS_PROJECT_PERMISSION_DENIED

This error indicates that the fleet project service account does not have enough permission to access a different project (the cluster project or the network project).

For Shared VPC, make sure to grant all the fleet projects service account Anthos Service Mesh Service Agent role in the Shared VPC network project.

For the GKE fleet project and cluster project scenarios, make sure to grant the fleet project service account Anthos Service Mesh Service Agent role in the cluster project.

Example troubleshooting command:

  1. Verify if your network project or cluster project service account has granted Anthos Service Mesh Service Agent role to the fleet project service account. If not, run:

    gcloud projects add-iam-policy-binding NETWORK_OR_CLUSTER_PROJECT_ID  \
        --member "serviceAccount:service-FLEET_PROJECT_NUMBER@gcp-sa-servicemesh.iam.gserviceaccount.com" \
        --role roles/anthosservicemesh.serviceAgent
    

    In addition, confirm that you don't have automation that would remove this binding.

  2. If permission is verified while issue persists, contact Google customer support for further assistance.