func DeploySummary()

in gke-deploy/core/resource/resource.go [377:432]


func DeploySummary(ctx context.Context, objs Objects) (string, error) {
	// Sort values
	var sorted []*Object
	for _, obj := range objs {
		sorted = append(sorted, obj)
	}
	sorted = sortObjectsByKindAndName(sorted)

	// Create table
	padding := 4
	buf := new(bytes.Buffer)
	w := tabwriter.NewWriter(buf, 0, 0, padding, ' ', 0)

	if _, err := fmt.Fprintln(w, "NAMESPACE\tKIND\tNAME\tREADY\t"); err != nil {
		return "", fmt.Errorf("failed to write to writer: %v", err)
	}

	for _, obj := range sorted {
		kind := ObjectKind(obj)
		name, err := ObjectName(obj)
		if err != nil {
			return "", fmt.Errorf("failed to get resource name: %v", err)
		}
		namespace, err := ObjectNamespace(obj)
		if err != nil {
			return "", fmt.Errorf("failed to get namespace of object: %v", err)
		}
		if namespace == "" {
			namespace = "default"
		}

		extraInfo, err := deploySummaryExtraInfo(obj)
		if err != nil {
			return "", fmt.Errorf("failed to get resource summary extra info: %v", err)
		}

		var ready string
		ok, err := IsReady(ctx, obj)
		if err != nil {
			ready = "Unknown"
		} else if ok {
			ready = "Yes"
		} else {
			ready = "No"
		}

		if _, err := fmt.Fprintf(w, "%s\t%s\t%s\t%s\t%s\n", namespace, kind, name, ready, extraInfo); err != nil {
			return "", fmt.Errorf("failed to write to writer: %v", err)
		}
	}
	if err := w.Flush(); err != nil {
		return "", fmt.Errorf("failed to flush writer: %v", err)
	}

	return buf.String(), nil
}