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

Gitops promotion flow #1075

Open
wants to merge 48 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
48 commits
Select commit Hold shift + click to select a range
8d3858e
Create promotion-flow.md
NimRegev Aug 6, 2024
cdd1c23
Update promotion-flow.md
NimRegev Aug 7, 2024
0a1bcff
Update promotion-flow.md
NimRegev Aug 8, 2024
f1982c1
Create manually-trigger-promotion.md
NimRegev Aug 12, 2024
b9bfdaf
Add promotion outline
NimRegev Aug 22, 2024
ca6937b
Update promotion-components.md
NimRegev Aug 25, 2024
bf6570f
Update promotion content
NimRegev Sep 9, 2024
0a06b31
Update content
NimRegev Sep 10, 2024
f1970bb
Update content for promotion flows
NimRegev Sep 17, 2024
5cfb5f0
Update promotion content
NimRegev Sep 18, 2024
aac9dc5
Update content and structure
NimRegev Sep 18, 2024
f703cf5
Add product releases to bucket
NimRegev Sep 22, 2024
c24c3ec
Update promotion articles
NimRegev Sep 22, 2024
1843a3c
Update promotion topics
NimRegev Oct 27, 2024
f948d40
Update content
NimRegev Oct 30, 2024
d572db9
Update content
NimRegev Oct 31, 2024
6e97c04
Update product-releases.md
NimRegev Oct 31, 2024
c6d0fbd
Update promotion flow
NimRegev Oct 31, 2024
99c8761
Update content
NimRegev Nov 1, 2024
e51cb89
Update releases
NimRegev Nov 3, 2024
cefaf25
Update promotion components
NimRegev Nov 3, 2024
674024d
Update promotion components
NimRegev Nov 3, 2024
8e6bf6f
Update promotion-components.md
NimRegev Nov 3, 2024
51ee791
Update promotion-components.md
NimRegev Nov 3, 2024
bd5752f
Update trigger promotions
NimRegev Nov 4, 2024
4c76a66
Update triggers
NimRegev Nov 4, 2024
05bd0eb
Update trigger promotions
NimRegev Nov 4, 2024
778bb15
Add promotion scenarios
NimRegev Nov 5, 2024
47e9353
Updates
NimRegev Nov 5, 2024
63513dd
Create d-nd-commit.png
NimRegev Nov 6, 2024
237645f
Add screenshots
NimRegev Nov 6, 2024
63442a8
Create dnd-apps-in-prod.png
NimRegev Nov 6, 2024
101ccc3
Create dnd-inital-release.png
NimRegev Nov 6, 2024
f7a2a92
Create dnd-prod-in-env.png
NimRegev Nov 6, 2024
05dba01
Create dnd-prod-versions.png
NimRegev Nov 6, 2024
56a4a39
Create dnd-release-completed.png
NimRegev Nov 6, 2024
b79c3ab
test
NimRegev Nov 6, 2024
f67d75c
Create dnd-releases-page.png
NimRegev Nov 6, 2024
d4e214a
add screenshots
NimRegev Nov 6, 2024
25a80f8
add screenshots
NimRegev Nov 6, 2024
582c499
add screenshots
NimRegev Nov 6, 2024
0397ad6
Add screenshots
NimRegev Nov 6, 2024
1100ae3
add screenshots
NimRegev Nov 6, 2024
226421b
Updates
NimRegev Nov 8, 2024
3d5535b
Update promotion scenarios
NimRegev Nov 8, 2024
d114fcd
Update nav.yml
NimRegev Nov 8, 2024
098fa88
Update promotion scenarios
NimRegev Nov 8, 2024
f69cd0d
Update plus-icon.png
NimRegev Nov 8, 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
24 changes: 24 additions & 0 deletions _data/nav.yml
Original file line number Diff line number Diff line change
Expand Up @@ -368,6 +368,30 @@
- title: Troubleshooting Argo CD applications
url: "/troubleshooting-gitops-apps"

- title: Promotions
url: "/promotions"
pages:
- title: About promotions
url: "/promotions-overview"
- title: Promotion building blocks
url: "/promotion-components"
- title: Promotion sequences
url: "/create-promotion-sequence"
- title: Promotion scenarios
url: "/promotion-scenario-examples"
- title: Configuration
url: "/configuration"
sub-pages:
- title: Promotion Flows
url: "/promotion-flow"
- title: Promotion Policies
url: "/promotion-policy"
- title: Trigger promotions
url: "/trigger-promotions"
- title: Tracking releases for products
url: "/product-releases"


- title: Pipelines
url: "/pipelines"
pages:
Expand Down
8 changes: 8 additions & 0 deletions _docs/promotions/configuration.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
---
title: "Configuration"
description: "Configure promotion entities"
group: promotions
toc: true
---

TBD
444 changes: 444 additions & 0 deletions _docs/promotions/configuration/promotion-flow.md

Large diffs are not rendered by default.

324 changes: 324 additions & 0 deletions _docs/promotions/configuration/promotion-policy.md

Large diffs are not rendered by default.

99 changes: 99 additions & 0 deletions _docs/promotions/create-promotion-sequence.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
---
title: "Promotion sequences"
description: "Step-by-step guide to creating, triggering, and monitoring promotions"
group: promotions
toc: true
---


This article covers the end-to-end flow of creating a promotion sequence, from initial setup to execution and monitoring.

A successful promotion sequence relies on [several key components](#{{site.baseurl}}/docs/promotions/promotion-components/) that govern and orchestrate the promotion flow across environments.


<!--- This guide covers the end-to-end flow of creating a promotion sequence, from initial setup to execution. Promotion sequences in Codefresh provide a structured way to move changes through different environments, integrating checks and policies to ensure stability, compliance, and predictable deployments.

A successful promotion sequence relies on several key components that together govern and orchestrate the promotion flow across environments. In the sections that follow, you’ll configure each of these components step-by-step, tailoring them to your specific deployment and compliance needs.

## From basic to complex promotions
The promotion process begins with foundational elements that enable simple deployments and gradually evolves into more complex flows, as additional requirements arise. Here’s how you move from basic to advanced promotion sequences:

Applications, Products, and Environments: These are core deployment entities, required for all types of promotions. Products allow you to group and configure related applications, and environments define where changes to these applications are promoted.
These entities allow for quick drag-and-drop promotions across two environments and an option to select the target to promote to.

Promotion Flow: Once the basics are in place, you can establish orchestration in your promotion sequence. Promotion Flow allows you to define how changes move through multiple environments, to accommodate more complex, multi-environment deployment strategies.

Promotion Workflows: Introducing Argo Workflows adds validations and checks ensures that each environment in the sequence meets your standards and is ready for changes, transitioning from basic deployments to rigorous testing and verification processes.

Promotion Policies: With a structured promotion flow and workflows established, you can implement policies that define rules for your promotions. These can range from global to environment-specific policies, ensuring that promotions comply with operational requirements and maintain consistency across environments and products.

Promotion Templates: Finally, Promotion Templates serve to further streamline your processes by allowing you to define precisely the changes Templates simplify the configuration of promotion attributes for product groups, allowing you to quickly adapt standard settings to multiple products without redundant configuration.
enhance consistency, create reusable templates that apply across products.

-->



The sections that follow describe the steps you'll need to configure for your specific deployment and compliance needs.

### Prerequisites
1. [Configuration Runtime]({{site.baseurl}}/docs/installation/gitops/monitor-manage-runtimes/#designating-configuration-runtimes)
The Configuration Runtime is a GitOps Runtime that stores the manifests of the promotion entities.
Designate at least one GitOps Runtime as the Cofiguration Runtime.
If no GitOps Runtime has been designated as such, Codefresh assigns one of the existing Runtimes.

1. Admin permissions
Only account admins can create promotion entities such as Promotion Policies and Promotion Flows.

1. [User permissions]({{site.baseurl}}/docs/administration/account-user-management/gitops-abac/)
Users need permissions to create Promotion Workflows, configure product settings, and trigger promotions.

### How to: Step-by-step
1. [Create environments]({{site.baseurl}}/docs/dashboards/gitops-environments/#create-environments)
Environments define the starting and the end points of promotions.
For a promotion sequence, you need at least two environments: the trigger environment, which is the source of the changes to promote, and the target environment, to which the changes need to be promoted.

1. [Create applications]({{site.baseurl}}//docs/deployments/gitops/create-application/#create-an-argo-cd-application)
Applications represent the components or services to be promoted and deployed, and are the smallest unit of deployment within a promotion sequence. To promote across an application across environments, you need an application for each target environment.
Create Argo CD applications in our user interface. For seamless promotions, group related applications within a product to manage them collectively.

1. [Create products]({{site.baseurl}}/docs/products/create-product/)
Products connect related applications and group them as a single entity. Applications represent instances of products within each environment.
Being able to apply promotion settings at the level of the product, and being able to promote applications belonging to the same product, simplifies promotion management.
Create a product and connect related applications to it, either manually or declaratively.


1. [Create promotion workflows]({{site.baseurl}}/docs/promotions/promotion-workflows/)
As part of promoting changes across environments, it's customary to run tests and validations that match the requirements of the target environments in the promotion sequence. For example, create workflows that run smoke tests to verify basic functionality or database validation checks to ensure data integrity.
Create Promotion Workflows (Argo Workflows) to implement any type of tests, validations, and custom requirements.

1. [Create policies to govern environment promotions]({{site.baseurl}}/docs/promotions/promotion-policy/)
Govern promotion behavior for environments by setting rules, checks, and validations that environments must meet before and after changes are promoted.
Promotion Policies allow you to define these rules by combining Promotion Workflows and the promotion action based on environment type, product, or other criteria. When a promotion is triggered for an environment, the policy mechanism merges settings from all relevant global policies according to priority, providing automated governance for consistent and reliable promotion behavior.

1. [Create promotion flows to orchestrate promotions]({{site.baseurl}}/docs/promotions/promotion-flow/)
Orchestrate the sequence of actions to move and deploy changes through the required environments, from the trigger environment to the final target environment.
Promotion Flows ensure that changes are promoted in a controlled and predictable manner by integrating environments, products and applications, promotion workflows, and policies.

1. Configure [promotion settings]({{site.baseurl}}/docs/products/configure-product-settings/#configure-promotion-settings) and [flows]({{site.baseurl}}/docs/products/configure-product-settings/#configure-promotion-flows) for product
After setting up the core and promotion-specific entities, configure additional promotion-specific settings for your product.
These settings include the attributes to be promoted across the product's applications (Product Promotion Templates), the promotion flows valid for the product and flow-specific trigger conditions (Promotion Flows).

1. [Trigger promotions]({{site.baseurl}}/docs/promotions/trigger-promotions/)
Trigger the promotion, either manually or automatically.

1. [Track releases for products]({{site.baseurl}}/docs/promotions/releases/)
Monitor the deployment progress for the product as it moves through the promotion sequence.
Use the Releases feature to track and ensure successful deployments across environments.


<!--- 1. [Configure properties to be promoted]
Instead of doing a manual diff and deciding which changes to promote, or promoting entire applications, configure the precise changes to promote, ensuring consistency and reducing errors.
Promotion Templates define which files and attributes within those files to promote across the applications in the product. -->

## Related articles
[About promotions]({{site.baseurl}}/docs/promotions/promotions-overview/)
[Promotion building blocks]({{site.baseurl}}/docs/promotions/promotion-components/)
[Trigger promotions]({{site.baseurl}}/docs/promotions/trigger-promotions/)
[Tracking product promotions]({{site.baseurl}}/docs/promotions/product-releases/)

Loading