GitOps Environments dashboard

Track and manage Argo CD applications within and across Environments

NOTE
This feature is currently in Beta.

Codefresh offers a range of dashboards, each offering unique insights into Argo CD applications and their deployments. The GitOps Overview dashboard offers a high-level view, showcasing essential Key Performance Indicators (KPIs). The GitOps Apps dashboard centralizes the monitoring and management of individual application deployments, resources, and configurations.

While these dashboards provide extensive data on applications, they don’t inherently reveal the relationships between different but interconnected Argo CD Applications. This is where the GitOps Environments dashboard comes in.

The GitOps Environments dashboard introduces a new dimension to your GitOps experience with Argo CD applications.

  • It places Argo CD applications within the context of their environments, providing a comprehensive view of their journey through the software development lifecycle.
  • Beyond visibility, it allows you to delve into the deployment history of individual applications and take actions such as synchronization and refresh, among others.

GitOps Environments

GitOps Environments

Read this blog on the world’s first dashboard for GitOps Environments.

What is an Environment in Codefresh GitOps?

An Environment is a custom entity in Codefresh defined by one or more pairs of K8s clusters and namespaces. It consolidates information for all Argo CD applications deployed to those clusters and namespaces, allowing you to easily track what’s deployed where at any given moment.

Codefresh allows you to define Environments that can exist without any applications deployed to them.

What can you view in a GitOps Environment?
  1. Argo CD applications: Environments are populated by the Argo CD applications in the clusters and namespaces mapped to them.
  2. Deployment lifecycle phase: The current phase of each application’s deployment.
  3. Commit information: Trace the commit/pull request (PR) history, such as the developer who initiated the promotion to each Environment.
Benefits of GitOps Environments
  • Account-level visibility: GitOps Environments in Codefresh are managed at the account level, providing a holistic view of all Argo CD applications across GitOps Runtimes in clusters mapped to the Environments.
  • Application traceability: Gain insights into application promotions across diverse Environments, enriched with commit and PR histories, and developers responsible for each change.
  • Micro-service visibility: Get a clear understanding of what is running in an Environment, including dependencies and services/components to enhance your control and management capabilities.

The diagram illustrates how Codefresh organizes different Argo CD applications in their deployment contexts in the GitOps Environments dashboard.

Argo CD applications organized in GitOps Environments

Argo CD applications organized in GitOps Environments

Create Environments by defining key settings (see Create GitOps Environments), and see how Codefresh pulls in all the information into an intuitive dashboard (see GitOps Environments dashboard). Learn how to work with GitOps Environments and work with Argo CD applications within Environments.

Remember you can further refine application views in Environments through Products. Read about in GitOps Products.

GitOps Environments dashboard

Here’s an example of the GitOps Environments dashboard.

GitOps Environment dashboard

GitOps Environment dashboard

The table describes the information displayed in the GitOps Environments dashboard.

Item Description
Filters Predefined filters that allow you to customize the Environment dashboard view by Product or Application.
Each Environment allows filtering the applications within it by health status which correspond to Argo CD’s official list of health status.
Star a card with a product and application as a favorite and view only the starred products.
Select the to star as a favorite.

To filter by favorites, on the filters bar, select .
Detailed/Compact views View details on the application in an Environment, including the version deployed in each environment.
  • Compact: The default view, displays the application's version, health, and sync status.
  • Detailed: Includes commit information that resulted in the application being promoted, including the commit message, Git hash, user who made the commit.
    Cluster and namespace the application is deployed to.
    .
Environments Environments are organized into columns, color-coded to differentiate between non-production Environments (in gray) and production Environments (in blue).
The column title is the name of the Environment. Mouse over displays the edit, delete, and move icons to manage Environments. See Working with GitOps Environments.
Each Environment is populated with the applications in the cluster-namespace pairs mapped to it.
An empty Environment indicates that there are no applications in the cluster-namespaces mapped to it.
Each Environment allows filtering its applications based on their Health status.
Applications Applications in different Environments are displayed as a list of cards. Every card has the following information:
  • Product/application name: If the application is assigned to a Product, the Product name is displayed as the title. If not, the application name is used.
  • Version: Currently supported for Helm-based applications. The version of the Helm chart identifying the specific release of the application in the different environments. Clicking the version displays additional information and options.
    See Identify application versions in different Environments.
  • Deployment history: Clicking the application name displays the deployment history. See View deployment (Timeline) history for applications.
  • Actions: Every application has a context-menu with quick access to frequently performed actions, such as Synchronize and Refresh. See Manage applications in Environments.

Create GitOps Environments

Create one or more GitOps Environments corresponding to any stage in your development and deployment lifecycle.
Define the configuration of the Environment through a unique name, it’s intended usage, and one or more cluster-namespace pairs that define the Argo CD applications populated for that Environment.

  1. In the Codefresh UI, from the Ops in the sidebar, select Environments, and then click Add Environment.
  2. Define the following:
    1. Name: A unique name for your GitOps Environment, which is meaningful in the context of your development and deployment cycle.
    2. Kind: The purpose of this GitOps Environment, and can be either Production where the live versions of the applications are deployed, or Non-production where development, testing, staging versions are deployed.
    3. Tags: Any metadata providing additional context and information about the GitOps Environment, used for filtering and organization purposes.
    4. Clusters and Namespaces: Single or multiple cluster-namespace pairs to map to the GitOps Environment. Adding a cluster with one or more namespaces populates the Environment with all the applications deployed in the namespaces.

Create a GitOps Environment

Create a GitOps Environment
  1. Click Add. The environment is displayed in the GitOps Environments dashboard.

Working with GitOps Environments

Once you create an Environment, it is displayed in the GitOps Environments dashboard. The Environments dashboard consolidates in one location the environments defined for the account along with the applications that belong to each Environment, and the Products they are assigned to if you have created Products.

Edit Environments

Update the Environment’s configuration settings when required. You can change all settings for an Environment, including it’s name.

  1. In the Codefresh UI, from the Ops in the sidebar, select Environments.
  2. Mouse over the column with the Environment to edit, and click .
  3. Edit the settings as required.

Reorder Environments with drag and drop

Change the order of the Environments displayed in the Environments dashboard to suit your requirements by simple drag and drop. By default, the Environments are displayed in the same order in which they were created.

For example, if you have two non-production and one production Environment for your e-commerce application, you can order them to display first the non-production and then the production Environments to reflect the corresponding stages.

  1. In the Codefresh UI, from the Ops in the sidebar, select Environments.
  2. Mouse over the column with the Environment to move.
  3. Click and drag the column to the required location.

Drag and drop to move Environments

Drag and drop to move Environments

Delete Environments

Delete unused or legacy Environments to avoid clutter. Deleting an Environment removes it from the GitOps Environments dashboards. The underlying resources or configuration, including the products and applications remain intact.

  1. In the Codefresh UI, from the Ops in the sidebar, select Environments.
  2. Mouse over the column with the Environment to delete.
  3. Click , type the name of the environment to confirm Delete.

Delete a GitOps Environment

Delete a GitOps Environment

Working with applications in GitOps Environments

In the Environments dashboard, you get both visibility into applications running in different Environments, detailed information on each application, and the ability to sync, refresh, and perform other actions for the application.

Filter applications in Environments by health status

Quickly filter applications within an environment by health status. For health status descriptions, see Health status for application resources.

  1. In the Codefresh UI, from the Ops in the sidebar, select Environments.
  2. From any Environment, click the Health status or statuses by which to filter.
    The Environment displays those applications that match the selected status.

Filter applications in Environment by Health Status

Filter applications in Environment by Health Status

Trace applications across Environments

Trace the same application as it moves across different Environments in its development, testing, and deployment cycle. See the version of the application running in each Environment, the most recent commit indicating the change, and the user who made the commit.

Alternatively, track a set of applications deployed to multiple Environments of the same kind and at the same level. For example, track the billing application deployed to multiple production Environments based on regions. Here too, see which applications are running on each Environment, the most recent commit to the application, and the user who made the commit.

  1. In the Codefresh UI, from the Ops in the sidebar, select Environments.
  2. Switch to Detailed view.

Example: Tracing application progress across different GitOps Environments

Example: Tracing application progress across different GitOps Environments

You can then view the deployment history for a specific version of the application.

Identify application versions in different Environments

Identify the version of the application deployed in different Environments to track the progress of the applications, understand the changes made, and ensure that customers are using the latest or most appropriate release.

How to
  1. In the Codefresh UI, from the Ops in the sidebar, select Environments.
  2. Click the version number of the application.

Helm chart version for application

Helm chart version for application
  1. Switch been Table and YAML views to see the dependencies and their versions.

Table and YAML views of chart dependencies

Table and YAML views of chart dependencies

Compare dependency versions and diffs across Environments

Compare the versions of dependencies in the same application across different Environments. View detailed or summarized diffs for Helm charts, values, and Kubernetes resource definitions between an application in two or more Environments.

  • The tabular view displays a complete list of all dependencies and their versions across more than two Environments.
  • The YAML view displays a diff between two Environments.
  1. In the Codefresh UI, from the Ops in the sidebar, select Environments.
  2. Click the version number of the application.
  3. To compare the versions of dependencies for the selected application across different Environments, enable Compare.
  4. Select the Environments to compare to.
  5. To compare the versions of the dependencies for the applications in the selected Environments, switch to Table view.

App dependencies and versions

App dependencies and versions
  1. To see the actual diffs between the applications, switch to YAML view, and then toggle between Full/Compact views.

Compare versions of dependencies in different Environments

Compare versions of dependencies in different Environments

View deployment (Timeline) history for applications

Review the deployments for an application. Clicking the application name takes you to the familiar Timeline tab in the GitOps Apps dashboard displaying the deployment history for the application. See Monitor deployments for selected Argo CD application.

  1. In the Codefresh UI, from the Ops in the sidebar, select Environments.
  2. In the Environment column with the application, click the application name to view deployment history.

View deployment history for Argo CD application from GitOps Environments

View deployment history for Argo CD application from GitOps Environments
  1. To view all the application’s tabs, including the Current State, Configuration, and others, click the link to Full View at the top of the deployment view.

Manage applications from within Environments

Manage applications from within Environments through the application’s context menu, including manual sync, refresh, and other options.

  1. In the Codefresh UI, from the Ops in the sidebar, select Environments, and then click Add Environment.
  2. Go to the Environment with the application for which to take action.
  3. Click the context menu to the right of the application, and select the option:
    • Quick View: View deployment, definition, and event information for the selected application in the same location.
    • Synchronize: Manually synchronize the application to expedite Git-to-cluster sync.
    • Edit: Update General or Advanced configuration settings for the application.
    • Refresh/Hard Refresh: As an alternative to manually syncing an application, either sync the application with the desired state in Git (refresh), or sync the application with the desired state Git while removing the cache (hard refresh).
    • Delete: Delete the application from Codefresh.

Context menu with actions for Argo CD applications within GitOps Environments

Context menu with actions for Argo CD applications within GitOps Environments

GitOps Products dashboard
Monitoring Argo CD applications
Home dashboard
DORA metrics
Creating Argo CD applications