func dumpNamespace()

in pkg/cmd/dump.go [87:207]


func dumpNamespace(ctx context.Context, c client.Client, ns string, out io.Writer, logLines int) error {
	camelClient, err := versioned.NewForConfig(c.GetConfig())
	if err != nil {
		return err
	}

	// Integrations
	its, err := camelClient.CamelV1().Integrations(ns).List(ctx, metav1.ListOptions{})
	if err != nil {
		return err
	}
	fmt.Fprintf(out, "Found %d integrations:\n", len(its.Items))
	for _, integration := range its.Items {
		ref := integration
		pdata, err := kubernetes.ToYAML(&ref)
		if err != nil {
			return err
		}
		fmt.Fprintf(out, "---\n%s\n---\n", string(pdata))
	}

	// IntegrationKits
	iks, err := camelClient.CamelV1().IntegrationKits(ns).List(ctx, metav1.ListOptions{})
	if err != nil {
		return err
	}
	fmt.Fprintf(out, "Found %d integration kits:\n", len(iks.Items))
	for _, ik := range iks.Items {
		ref := ik
		pdata, err := kubernetes.ToYAML(&ref)
		if err != nil {
			return err
		}
		fmt.Fprintf(out, "---\n%s\n---\n", string(pdata))
	}

	// ConfigMaps
	cms, err := c.CoreV1().ConfigMaps(ns).List(ctx, metav1.ListOptions{})
	if err != nil {
		return err
	}
	fmt.Fprintf(out, "Found %d ConfigMaps:\n", len(cms.Items))
	for _, cm := range cms.Items {
		ref := cm
		pdata, err := kubernetes.ToYAML(&ref)
		if err != nil {
			return err
		}
		fmt.Fprintf(out, "---\n%s\n---\n", string(pdata))
	}

	// Deployments
	deployments, err := c.AppsV1().Deployments(ns).List(ctx, metav1.ListOptions{})
	if err != nil {
		return err
	}
	fmt.Fprintf(out, "Found %d deployments:\n", len(deployments.Items))
	for _, deployment := range deployments.Items {
		ref := deployment
		data, err := kubernetes.ToYAML(&ref)
		if err != nil {
			return err
		}
		fmt.Fprintf(out, "---\n%s\n---\n", string(data))
	}

	// IntegrationPlatforms
	pls, err := camelClient.CamelV1().IntegrationPlatforms(ns).List(ctx, metav1.ListOptions{})
	if err != nil {
		return err
	}
	fmt.Fprintf(out, "Found %d platforms:\n", len(pls.Items))
	for _, p := range pls.Items {
		ref := p
		pdata, err := kubernetes.ToYAML(&ref)
		if err != nil {
			return err
		}
		fmt.Fprintf(out, "---\n%s\n---\n", string(pdata))
	}

	// CamelCatalogs
	cat, err := camelClient.CamelV1().CamelCatalogs(ns).List(ctx, metav1.ListOptions{})
	if err != nil {
		return err
	}
	fmt.Fprintf(out, "Found %d catalogs:\n", len(pls.Items))
	for _, c := range cat.Items {
		ref := c
		cdata, err := kubernetes.ToYAML(&ref)
		if err != nil {
			return err
		}
		fmt.Fprintf(out, "---\n%s\n---\n", string(cdata))
	}

	// Pods and Logs
	lst, err := c.CoreV1().Pods(ns).List(ctx, metav1.ListOptions{})
	if err != nil {
		return err
	}

	fmt.Fprintf(out, "\nFound %d pods:\n", len(lst.Items))
	for _, pod := range lst.Items {
		fmt.Fprintf(out, "name=%s\n", pod.Name)
		dumpConditions("  ", pod.Status.Conditions, out)
		fmt.Fprintf(out, "  logs:\n")
		var allContainers []v1.Container
		allContainers = append(allContainers, pod.Spec.InitContainers...)
		allContainers = append(allContainers, pod.Spec.Containers...)
		for _, container := range allContainers {
			pad := "    "
			fmt.Fprintf(out, "%s%s\n", pad, container.Name)
			err := dumpLogs(ctx, c, fmt.Sprintf("%s> ", pad), ns, pod.Name, container.Name, out, logLines)
			if err != nil {
				fmt.Fprintf(out, "%sERROR while reading the logs: %v\n", pad, err)
			}
		}
	}
	return nil
}