Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Product settings #1031

Merged
merged 29 commits into from
Nov 10, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
ac7063a
Update gitops-products.md
NimRegev Jul 29, 2024
3881c5b
Add images for promote properties
NimRegev Aug 1, 2024
a336ff3
Add example
NimRegev Aug 1, 2024
63b95a5
Merge branch 'master' into product-settings
NimRegev Aug 1, 2024
a16a361
Update gitops-products.md
NimRegev Aug 1, 2024
fe085b1
Merge branch 'product-settings' of https://github.com/codefresh-io/do…
NimRegev Aug 1, 2024
1c33727
Add examples for properties
NimRegev Aug 1, 2024
fe6cac1
Update gitops-products.md
NimRegev Aug 1, 2024
8145819
Update gitops-products.md
NimRegev Aug 1, 2024
c5cc300
Update gitops-products.md
NimRegev Aug 1, 2024
bb692e6
Update gitops-products.md
NimRegev Aug 4, 2024
9ec2617
New content for products
NimRegev Aug 5, 2024
67f1982
Update content
NimRegev Aug 6, 2024
7210165
Update promotion-version-properties.md
NimRegev Aug 6, 2024
1ceb308
Update promotion-version-properties.md
NimRegev Aug 6, 2024
0c88ad7
Update promotion-version-properties.md
NimRegev Aug 6, 2024
9ec001f
Update content
NimRegev Aug 6, 2024
e7832a3
Update content for products bucket
NimRegev Aug 12, 2024
a8c4d35
Update content
NimRegev Aug 14, 2024
39765ec
Update configure-product-settings.md
NimRegev Aug 14, 2024
85ebf01
Update promotion-version-properties.md
NimRegev Aug 18, 2024
381219b
Update product topics
NimRegev Aug 25, 2024
1bf1719
Update product topics
NimRegev Oct 1, 2024
759fff8
Update product content
NimRegev Nov 10, 2024
33eafe9
Update product content
NimRegev Nov 10, 2024
074f6f1
Update product content
NimRegev Nov 10, 2024
a26bc34
Update screenshots
NimRegev Nov 10, 2024
b3c4ba4
Merge branch 'master' into product-settings
NimRegev Nov 10, 2024
07c02a4
Update promotion-version-properties.md
NimRegev Nov 10, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 22 additions & 0 deletions _data/nav.yml
Original file line number Diff line number Diff line change
Expand Up @@ -372,6 +372,24 @@
- title: Troubleshooting Argo CD applications
url: "/troubleshooting-gitops-apps"


- title: Products
url: "/products"
pages:
- title: About Products
url: "/about-products"
- title: Create products
url: "/create-product"
- title: Configure Product Settings
url: "/configure-product-settings"
- title: Assigning applications
url: "/assign-applications"
- title: Configuring app version and promoted properties
url: "/promotion-version-properties"
- title: Configuring promotion flows
url: "/promotion-flow-triggers"


- title: Promotions
url: "/promotions"
pages:
Expand All @@ -398,6 +416,7 @@
url: "/product-releases"



- title: Pipelines
url: "/pipelines"
pages:
Expand Down Expand Up @@ -486,6 +505,9 @@
url: "/what-is-the-codefresh-yaml"





- title: Testing
url: "/testing"
pages:
Expand Down
3 changes: 1 addition & 2 deletions _docs/dashboards/gitops-environments.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,7 @@ group: dashboards
toc: true
---

>**NOTE**
This feature is currently in Beta.


The **Environments** dashboard introduces a new dimension to the developer and deployment experience with Argo CD applications in Codefresh.

Expand Down
437 changes: 60 additions & 377 deletions _docs/dashboards/gitops-products.md

Large diffs are not rendered by default.

422 changes: 422 additions & 0 deletions _docs/pipelines/specifications-latest-version.md

Large diffs are not rendered by default.

130 changes: 130 additions & 0 deletions _docs/products/about-products.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,130 @@
---
title: "About Products"
description: "Create Products to group and deploy applications"
group: products
toc: true
---


Explore the power of Products for Argo CD applications and deployments 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.
By grouping applications, Products enhance Environments, allowing complete visibility for efficient deployment across them.

{% include
image.html
lightbox="true"
file="/images/gitops-products/expanded-view.png"
url="/images/gitops-products/expanded-view.png"
alt="GitOps Products dashboard (expanded view)"
caption="GitOps Products dashboard (expanded view)"
max-width="70%"
%}

Explore the [Product dashboard]({{site.baseurl}}/docs/dashboards/gitops-products/).
Read more on the first dashboard for GitOps Environments and Products in this [blog](https://codefresh.io/blog/introducing-the-worlds-first-dashboard-for-gitops-environments/){:target="\_blank"}.


<!--- >>**NOTE**
In the documentation, both Product (capitalized) and product (lowercase) refer to the same entity in Codefresh GitOps. They are used interchangeably for readability and consistency across the text. -->

## What is a Product in Codefresh GitOps?
In Codefresh GitOps, a Product is a custom entity that allows you to group interconnected Argo CD applications, providing a cohesive view of the applications as they progress through the development and deployment lifecycle.

Consider a practical scenario of numerous applications connected to billing or payment. Instead of monitoring and promoting each application separately, creating a Product for this enables you to track and manage them collectively.

The diagram illustrates how Argo CD applications connected to a Product are grouped by that product and organized by environments. It also shows applications not assigned to any Product.

{% include
image.html
lightbox="true"
file="/images/gitops-products/apps-grouped-by-product.png"
url="/images/gitops-products/apps-grouped-by-product.png"
alt="Argo CD applications grouped by Products and organized by Environments"
caption="Argo CD applications grouped by Products and organized by Environments"
max-width="70%"
%}

## Benefits of Products
* **Unified application management**
Managing complex Argo CD applications across multiple environments can be challenging.
By grouping similar Argo CD applications into a unit, Products allow you to also efficiently manage them cohesively.

* **Bridging applications and environments**
Products act as a bridge between applications and their respective environments. By linking applications to Products, you can easily track their deployment across different environments, providing clarity and control over your deployment pipelines.

* **Deployment visibility**
Deploying a Product generates a release that provides a comprehensive view of the entire deployment process. This includes visualization of Promotion Workflows across all environments, and detailed insights into issue tracking, Git activity, and other actions that led to the deployment, giving developers and stakeholders a clear understanding of the process.

* **Effortless creation**
As with Environments, creating a Product is equally straightforward. You can create Products from the UI, or declaratively through annotations in your application manifests.

* **Real-time insights with integrated views**
The Product Dashboard offers three distinct views-Pods, Git, and Features. These views provide real-time insights into the changes in the application repo, deployment details, code changes, and feature tracking. Whether you're a developer tracking the latest commits or a project manager monitoring feature releases, these integrated views offer valuable insights tailored to your role.



## Work with Products & applications

We have made it simple to work with Products and applications in environments.

##### Create
Begin by [Creating a Product]({{site.baseurl}}/docs/products/create-product/).



##### View
Once you create a product, you can see it in the Products page.
Select the Product to drill down into the [Product Dashboard]({{site.baseurl}}/docs/dashboards/gitops-products/). The Product Dashboard offers a clear view of its applications in their respective environments, with additional information on the application.

{% include
image.html
lightbox="true"
file="/images/gitops-products/apps-grouped-by-product.png"
url="/images/gitops-products/apps-grouped-by-product.png"
alt="Argo CD applications grouped by products and organized in environments"
caption="Argo CD applications grouped by products and organized in environments"
max-width="70%"
%}


##### Configure

Once you create a product, everything else you need to define for the product, including its applications and promotion definitions are available in the Product Settings tab.

* [Assign applications to the Product]({{site.baseurl}}/docs/products/assign-applications/)
Bring your applications into the picture by linking them to the product.

* [Configure promotion settings]({{site.baseurl}}/docs/products/configure-product-settings/)
Fine-tune the promotion process by configuring the version source and specifying the attributes that should be promoted within applications in the product. This ensures that the correct versions and components are consistently promoted through each stage of deployment.

* [Configure promotion flows and triggers]({{site.baseurl}}/docs/products/promotion-flow-triggers/)
Select specific Promotion Flows that match the Product, and customize the conditions that trigger each of these flows, automating and controlling when and how applications in the product are promoted.

{% include
image.html
lightbox="true"
file="/images/gitops-products/settings/product-settings-general.png"
url="/images/gitops-products/settings/product-settings-general.png"
alt="Product Settings tab to connect applications and configure promotion settings"
caption="Product Settings tab to connect applications and configure promotion settings"
max-width="70%"
%}

##### Monitor
[Monitor and track]({{site.baseurl}}/docs/promotions/releases) the product's ongoing and historical deployments in the Releases tab.

{% include
image.html
lightbox="true"
file="/images/gitops-products/releases/product-releases-tab.png"
url="/images/gitops-products/releases/product-releases-tab.png"
alt="Product Release tab to monitor promotions"
caption="Product Release tab to monitor promotions"
max-width="70%"
%}


For how-to instructions, see [Configure product settings]({{site.baseurl}}/docs/products/configure-product-settings/).
33 changes: 33 additions & 0 deletions _docs/products/assign-applications.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
---
title: "Assigning applications to products"
description: "Manually or declaratively connect applications to Products"
group: products
toc: true
---

After creating products, the next step is to assign applications to it.
Assigning applications to products groups these applications into a single cohesive entity, enabling efficient management for promotions and deployments.

There are two methods of assigning applications to a product:

* Declarative assignment
Defines an annotation with the Product name in the application's manifest. If the Product doesn’t exist, Codefresh automatically creates it for you.
The annotation is committed and saved in Git as part of the application definition.
Fully GitOps-compatible, this is the preferred method.
For how-to instructions, see [Connect applications to products with annotations]({{site.baseurl}}/docs/products/configure-product-settings/#connect-applications-to-product-with-annotations).

* Manual assignment
A one-click action for quick assignment within Product Settings.
Unlike other UI actions, manual assignment does not require a commit action. Applications assigned to a product are not stored in the product's resource definition.
Recommended for testing purposes and not as the preferred method.
For how-to instructions, see [Manually assign unassigned applications]({{site.baseurl}}/docs/products/configure-product-settings/#manually-assign-unassigned-applications).

You can always unassign an application from a product, for declaratively assigned applications by removing the annotation, and for manually assigned applications, by removing them through [Product Settings](products/configure-product-settings/#unassign-manually-assigned-applications).


## Related articles
[Configuring promotion flows and triggers for products]({{site.baseurl}}/docs/products/promotion-flow-triggers/)
[Configuring version and promotable properties for products]({{site.baseurl}}/docs/products/promotion-version-properties/)
[Tracking product releases]({{site.baseurl}}/docs/promotions/product-releases/)
[Product Dashboard]({{site.baseurl}}/docs/dashboards/gitops-products/)
[Creating products]({{site.baseurl}}/docs/products/create-product/)
Loading