From 3a1593ebb2106e3f04a595c8095d772136b00212 Mon Sep 17 00:00:00 2001 From: Dan Garfield Date: Fri, 20 Dec 2024 09:41:18 -0700 Subject: [PATCH 1/2] Add details on codefresh GitOps Signed-off-by: Dan Garfield --- docs/tool-comparison.md | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/docs/tool-comparison.md b/docs/tool-comparison.md index e8de6030..ef268355 100644 --- a/docs/tool-comparison.md +++ b/docs/tool-comparison.md @@ -30,7 +30,7 @@ were introduced. | **Home-Grown CI Solution** | Whatever you want | Whatever you want | Whatever you want | | **Telefonistka** | Environment directory contents | Automated PR (DRY branch) | When branch protection rules pass | | **Kargo** | git commits, image tags, or Helm chart versions | A variety of options (PRs, commits, out-of-sync apps) | Defined by a DAG and a variety of rules | -| **Codefresh Products** | json-path-specified fields | Codefresh backend | Manually or according to promotion rules | +| **Codefresh GitOps** | json-paths in Helm/Kustomize/or other manifests | Automated PR or commit (DRY) in folder or branch | When promotion policies are met | ## GitOps Promoter @@ -71,14 +71,18 @@ be assembled in a DAG. You can interact with the DAG via a custom UI/CLI. pushing a commit, leaving "freight" as "unqualified" (represented as status fields on CRs) 3. When to promote: defined by a DAG and a variety of rules such as manual approval or Argo CD app health -## Codefresh Products +## Codefresh GitOps -This tool uses file selectors and json paths. You can structure your git repo however you want. Then you write file +[Codefresh GitOps](https://codefresh.io/) uses file selectors and json paths. You can structure your git repo however you want. Then you write file selectors and json paths to determine which parts of the repo should be moved from file to file. For example, if your app is structured as a Helm chart with environment-specific values files, you can define your promotion rules to copy the .image.tag field from the values-dev.yaml file to the values-prod.yaml file. -1. What to promote: json-path-specified fields from lower-env yaml files to higher-env files -2. How to "hold" the change: Codefresh backend -3. When to promote: manually or according to promotion rules (TODO: further research this part) +This tool tracks the relationship between Argo CD applications by using a "product" name and then groups those products by "environment". An Environment can be any combination of clusters, namespaces, or Application annotations. Changes are coordinated by the GitOps control plane across any number of Argo instances, clusters, or applications. + +Currently, diffing is limited to DRY manifests with [hydrated server-side rendered diffs planned](https://roadmap.codefresh.io/c/128-promotion-preview). + +1. What to promote: json-path-specified fields from lower-env yaml files to higher-env files between Argo CD applications linked by a "product" name" +2. How to "hold" the change: Pull Request or Commit +3. When to promote: when promotion policies are met, for example, tests pass, approvals are given, pull request requirements are met, environment has certain tags, or manual promotion is allowed (drag and drop). From f3364ba93c5811832fcde8b0040c3233f70e2fb8 Mon Sep 17 00:00:00 2001 From: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com> Date: Fri, 3 Jan 2025 13:20:36 -0500 Subject: [PATCH 2/2] Update docs/tool-comparison.md Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com> --- docs/tool-comparison.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tool-comparison.md b/docs/tool-comparison.md index ef268355..ca714ac8 100644 --- a/docs/tool-comparison.md +++ b/docs/tool-comparison.md @@ -73,7 +73,7 @@ be assembled in a DAG. You can interact with the DAG via a custom UI/CLI. ## Codefresh GitOps -[Codefresh GitOps](https://codefresh.io/) uses file selectors and json paths. You can structure your git repo however you want. Then you write file +[Codefresh GitOps' promotion feature](https://codefresh.io/docs/docs/promotions/promotions-overview/) uses file selectors and json paths. You can structure your git repo however you want. Then you write file selectors and json paths to determine which parts of the repo should be moved from file to file. For example, if your app is structured as a Helm chart with environment-specific values files, you can define your promotion rules to copy the .image.tag field from the values-dev.yaml file to the values-prod.yaml file.