Skip to content

[Feature Request] Add a Kubernetes Resource Summary to the diff output #224

@cstanislawski

Description

@cstanislawski

Problem Statement

The current diff summary provides a helpful overview of which top-level Argo CD Application resources have changed.

However, it doesn't provide insight into the scope of the underlying Kubernetes resource changes within those applications.

A small change to a single Application could result in changes to dozens of Deployments, Services, and ConfigMaps. Without a resource-level summary, it's difficult to gauge the true magnitude of a pull request without expanding each section and scrolling through the entire diff.

This can make code reviews less efficient, as the full impact isn't immediately obvious.

Proposed Solution

I propose adding a new, more detailed summary that aggregates all the underlying Kubernetes resource changes (e.g., Deployments, Services, ConfigMaps) across all affected Argo CD Applications.

This new summary would be displayed at the top of the output, providing an immediate, at-a-glance view of the planned changes before the detailed diffs.

This would give reviewers an instant understanding of the plan.

Implementation Ideas

This new resource-level summary could take one of a few forms. I am open to feedback and other suggestions.

Option A: Terraform-style Summary

A simple, high-level count of all resource changes, inspired by Terraform's plan output. This is concise and easy to parse.

Example:

Resource Changes: 3 to add, 2 to change, 1 to remove.

------------------------------------------------------------------------

Option B: Detailed Table Summary

A more detailed, table-based summary that groups Kubernetes resources by their apiVersion and Kind. This provides more context while still being easy to read.

Example:

| apiVersion | Kind       | Added | Changed | Removed |
|------------|------------|-------|---------|---------|
| apps/v1    | Deployment | 1     | 1       | 0       |
| v1         | Service    | 1     | 0       | 0       |
| v1         | ConfigMap  | 0     | 0       | 1       |

Before I start working on an implementation, I'd like to get feedback on this proposal. Do you think this would be a useful addition? And if so, which option do you prefer?

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions