GitOps Products

Create Products to group and manage interrelated Argo CD applications environments

Explore the power of products for Argo CD applications in Codefresh GitOps.

Managing complex applications across multiple environments is a common challenge faced by developers and platform engineers. The diverse nature of applications and the variety of environments they deploy to can lead to fragmented management and deployment processes.

In Codefresh GitOps, Products serve as a strategic layer that bridges this gap. Products group different yet interconnected applications based on their similarities and dependencies.

GitOps Products (expanded view)

GitOps Products (expanded view)

Read more on the first of their kind dashboards for GitOps Environments and Products in this blog.

This article focuses on the Product Dashboard and the insights you can gain from it.

For detailed information on creating products and how to work with them, see About Products and Creating products.

Products page

Here’s an example of the Product page with the list of all the products.

GitOps Products (expanded view)

GitOps Products (expanded view)

Here are some key features of the Products page:

Collapsed & expanded views

  • Collapsed view: The default view, displays the Product name alongside the Environments with the number of applications in each Environment.
    The options on the right allow you to manage products.
  • Expanded view: The expanded view displays the applications in the product organized by their Environments.

Product management options

Mouse over the row with the product to display possible actions:

Product Dashboard

Clicking a Product name navigates you to the Product Dashboard with a detailed view of the product and its applications. It also includes integrated insights into Git and issue-tracking systems and how they relate to deployments.

In addition, the application version and enriched image information are especially useful.

Application release version
  • Version information, currently supported for Helm-based applications, identifies the specific release of the application in different Environments.
  • Clicking the version displays the application’s dependencies, enabling comparison across different applications.

See View and compare deployed versions for dependencies.

Integrated Pod/Git/Feature information
  • The Products dashboard correlates sync information with other parts of the software lifecycle, such as issue-tracking systems.
  • Switch between Pods, Git, and Features views to gain insights beyond development, including source code commits, affected services, commit authorship, and incorporated features in releases.

See Application lifecycle insights with pods, Git and features.

Manage applications

Manage individual applications without navigating away from the Products dashboard. The actions available mirror those in the GitOps Apps dashboard.

Integrated insights with Pod, Git, Feature views

Navigate seamlessly between Kubernetes (Pods), version control (Git), and issue-tracking (Features) views for the Product to get consolidated data from the same location.

Pods

Deployment, Rollout, and Promotion information for the application.

  • Deployments: Source image, new image and tag, replicas for each deployment
  • Rollouts: The services rolled out, the type of rollout, the result of the rollout, promote/pause rollout action
  • Promotion: The change that resulted in the promotion, with details on who committed the change, and the commit hash
  • Cluster and Namespace the application is deployed to

Product Dashboard: Pod view with deployments

Product Dashboard: Pod view with deployments

Product Dashboard: Pod view with Rollouts

Product Dashboard: Pod view with Rollouts

Git

Codefresh retrieves the data here directly from the application repository, not the GitOps repository. You can trace the complete commit history of the application’s repo, up to the commit that initiated the build and deployed the new version.

History of individual commits with deep links to source control.

Useful for project managers and developers to trace:

  • PR (pull request) history
  • Committer and commit information
  • Promotion
  • Cluster and Namespace the application is deployed to

Product Dashboard: Git view

Product Dashboard: Git view

Features

Connect commits to the application repo to tickets in your issue-tracking tool or system. This integration enhances traceability and context, enabling you to monitor the deployment’s impact by tying deployed features to specific feature requests or bug fixes.

  • Gain insights into deployment specifics
  • Review all commits leading up to the latest one that triggered the deployment
  • Align deployed features with related feature requests

Product Dashboard: Features view

Product Dashboard: Features view

View deployment (Timeline) history for applications

Review the deployments for a specific application in the Products dashboard.

  1. In the Codefresh UI, from the sidebar, select Products.
  2. Select the Product with the application for which to take action.
  3. In the Product Dashboard, go to the environment with the application.
  4. Click the context menu and then select Application info > Timeline to view deployment history.

View deployment history for application from Products dashboard

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

Manage applications in products

Manage applications grouped within a product through each application’s context menu, that includes manual sync, refresh, and other options.

  1. In the Codefresh UI, from the sidebar, select Products.
  2. Select the Product with the application for which to take action.
  3. In the Product Dashboard, go to the environment with the application.
  4. 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.
  • Diff View: Analyze out of sync applications. This option is disabled when applications are synced.
  • Synchronize: Manually synchronize the application to expedite Git-to-cluster sync.
  • 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).
  • Edit: Update General or Advanced configuration settings for the application.
  • Delete: Delete the application from Codefresh.

Context menu with actions to manage applications within Products

Context menu with actions to manage applications within Products

Troubleshooting Products

Here are a few tips to troubleshoot issues you may encounter

Applications not displayed for Product

You have created the Product but not assigned or connected any applications to it.

You must assign every application to the Product, either directly in the Products dashboard or through an annotation in the application’s manifest.
See Assigning applications to Products.

Applications assigned to products not displayed

Issue

Applications assigned to a product are not displayed in the Product Dashboard.

Possible cause

One of the following:

  • No environments created
  • Application does not exist in the clusters-namespaces mapped to existing environments.
Possible solution

Applications assigned to products are only relevant in the context of the environments they are defined in. Either create an environment, or add the cluster-namespace defined for the application to the existing environment’s definition.

Step 1: Create an Environment

Step 2: Add application’s destination settings to Environment definition

  1. In the Codefresh UI, from the sidebar, select Environments.
    In the example below, there are two environments defined: test and prod. There are no applications in the test environment.

Defined environment without applications

Defined environment without applications
  1. Mouse over the toolbar for the Environment and click .
  2. Check the Clusters and Namespaces mapped to the environment.
    In the example, the namespace dev is mapped to this environment.

Example: Environment settings

Example: Environment settings
  1. Add the namespace defined for the application to the Environment settings.
  2. Go back to the Product Dashboard.
    You will now see your application in the product and in the correct environment.

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