in pkg/provider/gke/gke.go [294:319]
func (c *GKE) clusterRunning(zone, projectID, clusterID string) (bool, error) {
req := &containerpb.GetClusterRequest{
ProjectId: projectID,
Zone: zone,
ClusterId: clusterID,
}
cluster, err := c.clientGKE.GetCluster(c.ctx, req)
if err != nil {
// We don't consider none existing cluster error a failure. So don't return an error here.
if st, ok := status.FromError(err); ok && st.Code() == codes.NotFound {
return false, nil
}
return false, fmt.Errorf("Couldn't get cluster status:%v", err)
}
if cluster.Status == containerpb.Cluster_ERROR ||
cluster.Status == containerpb.Cluster_STATUS_UNSPECIFIED ||
cluster.Status == containerpb.Cluster_STOPPING {
return false, fmt.Errorf("Cluster not in a status to become ready - %s", cluster.Status)
}
if cluster.Status == containerpb.Cluster_RUNNING {
return true, nil
}
//nolint:staticcheck // SA1019 - Ignore "Do not use.".
log.Printf("Cluster '%v' status:%v , %v", projectID, cluster.Status, cluster.StatusMessage)
return false, nil
}