GitOps Products
Create Products for Argo CD applications and view across environments
NOTE: This feature is currently in Beta.
Explore the power of GitOps Products for Argo CD applications.
A Product unifies individual Argo CD applications that share a common element between them. Consider your payment applications organized by Environments that correspond to the regions they are deployed in. With Products, Codefresh allows you to group and track them as a cohesive entity as they move through different Environments.
Read this blog on the world’s first dashboard for GitOps Environments and Products.
What are the benefits of GitOps Products?
-
Group applications
Group and connect Argo CD applications based on a common element through Products. For example, bring all your billing applications under the Billing Product. Assign your applications to logical Products for a consolidated perspective on these applications. -
Bridge applications and GitOps Environments
By creating Products and linking applications to them, the Products dashboard efficiently bridges the gap between applications and their respective Environments. GitOps Products allow you to see how these applications are deployed across the different Environments. -
Enriched insights
With GitOps Products, Codefresh brings you critical information beyond sync and Git hash deployment information. The Products dashboard automatically correlates sync information with other important information from the software lifecycle such as the source code commits and the affected services. All stakeholders, including product and project managers and not just developers can instantly see the information they need for all the applications in the different Environments.
How do you view applications by Product?
In a simple two-step process:
-
Create the Product
You start by creating a Product, giving it a name that makes sense for your use case. -
Connect applications to the Product
Bring your applications into the picture. Link your applications to the Products you’ve created to create the associations you need.
Codefresh automatically identifies and organizes the applications in the correct Environments.
The diagram illustrates how Argo CD applications connected to a Product are grouped by that Product, and organized by Environment. It also shows applications not assigned to any Product.
Create Products
Create a Product with a unique name and define the annotations by which to connect different Argo CD applications to it.
- In the Codefresh UI, from the Ops in the sidebar, select Products.
- Click Add Product.
- Define the following:
- Name: A unique name for your Product, which is also unique in the cluster.
- Connect Applications: The applications to associate with this Product by adding the default or custom annotation to the application manifest.
- To use the default annotation, copy and paste it into the manifest.
- To use a custom annotation, click Add custom annotation, and then define the Key-Value for the annotation. Copy and paste it into the manifest.
- Tags: Any metadata providing additional context and information about the Product, used for filtering and organization purposes.
- Click Add. The Product is displayed in the Products dashboard.
GitOps Products dashboard
Here’s an example of the Products dashboard.
The table describes the information displayed in the Products dashboard.
Item | Description |
---|---|
Search and Filters | Predefined filters that allow you to customize the Products dashboard view by Product Name, Application, or by Environment. See Search/filter applications in Products. |
Default & expanded views |
|
Application views | Clicking the Product name takes you to the detailed view of its applications with pod, Git, and feature information. See Explore application views for Products. |
Actions | In both the collapsed and expanded views, mouse over the row with the Product displays possible actions:
|
Working with Products
Once you create a Product, you can assign applications to the Product, unassign applications from a Product, edit the Product’s settings, or delete the Product.
Manually assign applications to Products
Manually assign an application to a Product directly from the Products dashboard. This is an alternative to assigning applications that are not connected to a Product through annotations in the application’s manifest.
Search for the application by the name of the application, cluster, or namespace mapped for the Product. When assigned to a product, Codefresh identifies and automatically adds it to the column with the correct environment.
- In the Codefresh UI, from the Ops in the sidebar, select Products.
- Do one of the following:
- Click the name of the Product for which to assign applications, and then click Manage Apps on the top right.
- Mouse over the row with the Product name and click
.
- Below the list of Unassigned apps, select the Environment by which to filter unassigned applications, or type a part of the application name in the search field.
- To assign the application, click
.
- To confirm the assignment, click Save. Codefresh adds the application to the environment defined for it.
Use annotations to connect applications to Products
Connect an application to a Product by adding the default or custom annotation to the application’s manifest. The annotation is defined as part of the Product’s settings when creating Products.
- In the Codefresh UI, from the Ops in the sidebar, select Products.
- Mouse over the row with the Product name, and then click
.
- In the Edit Product form, copy the annotation to add to the application’s manifest.
- Expand the Product.
- From the application’s context menu, select Edit.
- In the Configuration tab, switch to the YAML format and add the annotation.
- Commit to save the changes.
Unassign an application from a Product
Unassign an application from a Product directly from the Products dashboard. This is a quick option for applications manually assigned to Products from the Products dashboard.
TIP:
If you used annotations to connect applications to Products, to unassign the application, remove the annotation from the application manifest.
- In the Codefresh UI, from the Ops in the sidebar, select Products.
- Do one of the following:
- Mouse over the row with the Product from which to unassign the application.
- Select the Product with the application to unassign and click Manage Apps.
- In the card with the application to unassign, click
.
- To confirm, click Save. The application reappears in the list of Unassigned applications.
Resolve conflicts for application assigned to multiple Products
Resolve conflicts when the same application is assigned to more than one Product. Unassign the application from any one of the Products.
When Codefresh detects an application assigned to two different Products, it alerts you of the same through a popup in the UI. This conflict typically occurs when you manually assign an application to a Product from the Unassigned list, and then add an annotation to the same application’s manifest connecting it to a different Product.
Edit/delete Product
Edit settings for an existing Product, or delete the Product from the Products dashboard.
Edit all settings including the name of the Product.
Delete a Product from the Products dashboard. Deleting a Product unassigns all the applications manually assigned to it in the Products dashboard. For applications connected through annotations in their manifests, the annotations are not deleted.
- In the Codefresh UI, from the Ops in the sidebar, select Products.
- From the Products dashboard, select the Product to edit or delete.
- From the context menu on the right, select the required option.
- Edit settings, or follow the instructions to delete the Product.
Working with applications in a Product
Selecting a Product displays the applications assigned to that Product organized by environments, and provides different options to view and manage them.
The actions to manage applications in a Product are similar to those available in the Environments dashboard.
In addition, the Product-applications view offers a different a set of filters, and the ability to switch between views with different aspects of information.
Search/filter applications in Products
For the selected Product, search for a specific application, or locate the applications of interest through filters.
Search
Search by free-text to locate the applications you need.
Filters
- Image name: The image created for the application.
- Committer: The user who committed the change.
- Jira ticket: The bug or feature request that initiated the change.
Explore application views in Products
Switch between Kubernetes (Pods), version control (Git) and issue-tracking (Features) views of the applications assigned to the selected Product. Identify the technical details on the deployment, the latest commit, and feature details important to the different stakeholders.
Instead of switching between different systems to get answers to common questions that you have as a project or product manager, you can get your answers for all the applications in the Product through the different view modes.
Pods
Displays Deployment, Rollout, and Promotion information for the application:
- Deployments: Source image, new image and tag, replicas for each deployment
- Rollouts: Type of rollout, health, promote/pause rollout action
- Promotion details: Reason, user who committed the change, and the commit hash
- Cluster and namespace the application is deployed to
Git
Displays version control information to track changes, code history, and collaboration, showing the evolution of the application’s codebase. Useful for project managers and developers to trace:
- Pull request history
- Committer information
- Commit message
- Promotion information
- Cluster and namespace the application is deployed to
Features
Displays issue-tracking information that correlates software features with their deployment, showing which features are included in a release. Useful for project/product managers to identify which feature is in production and when it was released into production.
- Bug/feature request and description
- User to whom the bug/feature request is assigned
- Status of the bug/feature request
- Promotion information
- Cluster and namespace the application is deployed to
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.
Codefresh does more than just show you the version of the application currently deployed in an Environment. Our UI provides intuitive diff views of Environments. You can:
- View the charts (dependencies) deployed with the application and the release for each
- Compare dependency versions with applications in different environments
How to
- In the Codefresh UI, from the Ops in the sidebar, select Environments.
- Click the version number of the application.
- Switch been Table and YAML views to see the dependencies and their versions.
Compare dependency versions and diffs across Environments
Compare the versions of dependencies dependency 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 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.
- In the Codefresh UI, from the Ops in the sidebar, select Environments.
- Click the version number of the application.
- To compare the versions of dependencies in the selected application across different Environments, enable Compare.
- Select the Environments with the applications to compare to.
- To compare the versions of the dependencies for the applications in the selected Environments, switch to Table view.
- To see the actual diffs between the applications, switch to YAML view, and then toggle between Full/Compact views.
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 with the deployment history for the application. See Monitor deployments for selected Argo CD application.
- In the Codefresh UI, from the Ops in the sidebar, select Environments.
- In the Environment column with the application, click the application name 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 of the deployment view.
Manage applications in Products
Manage applications from within Products through the application’s context menu, including manual sync, refresh, and other options.
- In the Codefresh UI, from the Ops in the sidebar, select Products.
- Select the Product with the application for which to take action.
- 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.
Related information
GitOps Environments dashboard
Monitoring Argo CD applications
Home dashboard
DORA metrics
Creating Argo CD applications