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.
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.
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:
- Edit: Takes you to Product > Settings tab where you can configure . See Edit/delete Product.
- Manage Applications: Manually assign unassigned applications to environments in the Products dashboard. See Manually assign applications to Products.
- Delete: Remove the Product from the Products dashboard, unassigning any manually-assigned applications. See Edit/delete Product.
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
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
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
View deployment (Timeline) history for applications
Review the deployments for a specific application in the Products dashboard.
- In the Codefresh UI, from the sidebar, select Products.
- Select the Product with the application for which to take action.
- In the Product Dashboard, go to the environment with the application.
- Click the context menu and then select Application info > Timeline to view deployment history.
- 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.
- In the Codefresh UI, from the sidebar, select Products.
- Select the Product with the application for which to take action.
- In the Product Dashboard, go to the environment with the application.
- 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.
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
- If required, Create an Environment.
Step 2: Add application’s destination settings to Environment definition
- In the Codefresh UI, from the sidebar, select Environments.
In the example below, there are two environments defined:test
andprod
. There are no applications in thetest
environment.
- Mouse over the toolbar for the Environment and click .
- Check the Clusters and Namespaces mapped to the environment.
In the example, the namespacedev
is mapped to this environment.
- Add the namespace defined for the application to the Environment settings.
- Go back to the Product Dashboard.
You will now see your application in the product and in the correct environment.
Related articles
GitOps Environments dashboard
Monitoring Argo CD applications
Home dashboard
DORA metrics
Creating Argo CD applications