From 7459138d2f4d69ed3ca1e7d2628c88e7d96a1281 Mon Sep 17 00:00:00 2001 From: NimRegev Date: Tue, 17 Jan 2023 09:26:01 +0200 Subject: [PATCH 1/2] Update gitops and concepts Added content to GitOps with CF and concepts --- _docs/getting-started/cd-codefresh.md | 1 + _docs/getting-started/ci-codefresh.md | 1 + _docs/getting-started/concepts.md | 143 +++++++++++----------- _docs/getting-started/gitops-codefresh.md | 89 ++++++++++++-- 4 files changed, 153 insertions(+), 81 deletions(-) diff --git a/_docs/getting-started/cd-codefresh.md b/_docs/getting-started/cd-codefresh.md index 54807ca3..07f06507 100644 --- a/_docs/getting-started/cd-codefresh.md +++ b/_docs/getting-started/cd-codefresh.md @@ -114,4 +114,5 @@ See [DORA metrics]({{site.baseurl}}/docs/dashboards/dora-metrics/). ## Related articles [Codefresh for CI]({{site.baseurl}}/docs/getting-started/ci-codefresh/) +[Codefresh for GitOps]({{site.baseurl}}/docs/getting-started/gitops-codefresh/) [Concepts in Codefresh]({{site.baseurl}}/docs/getting-started/concepts/) \ No newline at end of file diff --git a/_docs/getting-started/ci-codefresh.md b/_docs/getting-started/ci-codefresh.md index b24cae6d..f5bc3443 100644 --- a/_docs/getting-started/ci-codefresh.md +++ b/_docs/getting-started/ci-codefresh.md @@ -129,6 +129,7 @@ See [Jira notifications in Codefresh]({{site.baseurl}}/docs/integrations/notific ## Related articles [Codefresh for CD]({{site.baseurl}}/docs/getting-started/cd-codefresh/) +[Codefresh for GitOps]({{site.baseurl}}/docs/getting-started/gitops-codefresh/) [Concepts in Codefresh]({{site.baseurl}}/docs/getting-started/concepts/) diff --git a/_docs/getting-started/concepts.md b/_docs/getting-started/concepts.md index 420824a3..fcc250b9 100644 --- a/_docs/getting-started/concepts.md +++ b/_docs/getting-started/concepts.md @@ -1,46 +1,59 @@ --- -title: "Concepts in Codefresh" +title: "WIP: Concepts in Codefresh" description: "Understand terminology and nuances in Codefresh" group: getting-started toc: true --- -Work in progress + +Familiarize yourself with the main concepts in Codefresh (listed in alphabetical order). +## Applications +An application is a deployment to a Kubernetes or any Kubernetes-compatible cluster or clusters. +Codefresh supports two types of applications: +* Containerized applications packaged as Docker images or +* Argo CD applications -### Runtime -A Runtime in Codefresh is a GitOps installation in your Codefresh account, in either a Hosted or Hybrid installation environment. Hosted Runtimes are installed on a Codefresh cluster and managed by Codefresh. Hybrid Runtimes are installed on customer clusters, and managed by the customers. -You can install a single Hosted runtime, and multiple Hybrid Runtines in a Codefresh account. +**Containerized applications** +Containerized applications are compiled, packaged, and deployed through Codefresh pipelines. Codefresh has native support for Docker artifacts, and also supports non-Dockerized applications that don’t use a Dockerfile for the actual build. +Deploy an application directly to Kubernetes through the Codefresh UI, or use Helm as a package manager to deploy to Kubernetes, again from Codefresh. +Codefresh offers several levels of visibility into your deployments : +* The Kubernetes dashboard displays the status of pods and Docker images. +* The Helm dashabord displays the applications deployed to the cluster through Helm packages. +* The Environment dashbaord displays both Helm and Kubernetes releases, the status of the cluster, and most importantly that of the builds that affect it. - -A single Runtime can connect to and manage multiple remote clusters. +See: +Quick starts for [Kubernetes]({{site.baseurl}}/docs/quick-start/ci-quickstart/deploy-to-kubernetes/) and [Helm]({{site.baseurl}}/docs/quick-start/ci-quickstart/deploy-with-helm/) deployments +[Deployment options for Kubernetes]({{site.baseurl}}/docs/deployments/kubernetes/deployment-options-to-kubernetes/) +[Using Helm in Codefresh pipelines]({{site.baseurl}}/docs/deployments/helm/using-helm-in-codefresh-pipeline/) -See: -[GitOps runtime architecture]({{site.baseurl}}/docs/installation/runtime-architecture) -[Hybrid GitOps Runtime installation]({{site.baseurl}}/docs/installation/gitops/hybrid-gitops) -[Hosted GitOps Runtime installation]({{site.baseurl}}/docs/installation/gitops/hosted-runtime) +**Argo CD applications** +Argo CD applications conform to Argo CD's application definition CRD (Custom Resource Definition). Argo CD supports several types of Kubernetes manifests, including Jsonnet, Kustomize applications, Helm charts, and YAML/json files, and supports webhook notifications from Git. +Create Argo CD applications that are fully GitOps-compliant in Codefresh. Identify and fix errors before commit with our built-in validations. The application manifest is generated, committed to Git, and synced to your cluster. +See: +[Creating]({{site.baseurl}}/docs/deployments/gitops/create-application/) and [Managing]({{site.baseurl}}/docs/deployments/gitops/manage-application/) GitOps applications -### Runner -The Runner is the hybrid installation option for pipelines in your Codefresh account. The Runner is installed as a Kubernetes native application on any Kubernetes-compliant cluster. It allows you to run pipelines on your own Kubernetes cluster, including private clusters behind company firewalls. +Just as with Dockerized applications, you get full visibily into the applications and their deployment through the global Analytics, DORA metrics, and the Application dashboards. The Applications dashboard shows the current state of all the resources in the application, including information for each resource, and possible actions. +See: +[Monitoring applications]({{site.baseurl}}/docs/deployments/gitops/applications-dashboard/) -Codefresh Runner gives you: -* Access to secure services (such as Git repositories or databases) that are behind the firewall and normally not accessible to the public cloud. -* The ability to use special resources in your Codefresh pipeline that are unique to your application, GPU nodes or other special hardware only present in your data center. -* Complete control over the build environment in addition to resources for pipelines. -Every Runner installation creates a runtime enviroment in your account. Assign the Runner to any pipeline to automatically run the pipeline in your own cluster. External integrations (such as Docker registry or Helm repositories) are also available to the Runner making pipelines exactly the same regardless of their runtime environment. +## Pipeline +The pipeline is the central component in Codefresh that implements CI/CD processes. Everything for CI/CD in Codefresh starts and ends with pipelines. Codefresh pipelines can do only CI, only CD, both CI and CD, or run any custom action, such as unit and integration tests. -You can have multiple Runner installations in the same Codefresh account. A Runner can also manage multiple remote clusters in your account. +A CI pipeline can compile and package code, build and push Docker images. A CD pipeline can deploy applications/artifacts to VMs, Kubernetes clusters, FTP sites, S3 buckets, and more. And a CI/CD pipeline can combine code compilation, integration, and deployment for full CI/CD. -See: -[Codefresh Runner installation]({{site.baseurl}}/docs/installation/codefresh-runner) -[Runner installation behind firewalls]({{site.baseurl}}/docs/reference/behind-the-firewall) +Codefresh offers a rich set of capabilites for easy creation and maintenance of pipelines such as ready-to-use steps for common tasks, variable, shared configuration, and more. +See: +[Introduction to Codefresh pipelines]({{site.baseurl}}/docs/pipelines/introduction-to-codefresh-pipelines/) +[Pipeline definitions YAML]({{site.baseurl}}/docs/pipelines/what-is-the-codefresh-yaml/) +[Creating pipelines]({{site.baseurl}}/docs/pipelines/pipelines/) -### Project +## Project A project is a top-level entity in Codefresh for grouping related pipelines. Projects can group pipelines according to any criteria that is relevant to your enterprise. The criteria can be logical and based on teams, departments, or location for example, or funtional, and based on microservices in applications. Projects centralize viewing and configuration settings for the pipelines that belong to them: * Selecting a pipeline shows the other pipelines in the same project @@ -51,78 +64,62 @@ There are no limits to the number of projects you can create in your account. Yo See: [Projects in pipelines]({{site.baseurl}}/docs/pipelines/pipelines/#pipeline-concepts) -### Pipeline -The pipeline is the central component in Codefresh that implements CI/CD processes. Everything for CI/CD in Codefresh starts and ends with pipelines. a pipeline can do only CI, only CD, both CI and CD, or run any custom action, such as unit and integration tests. - -A CI pipeline can compile and package code, build and push Docker images. A CD pipeline can deploy applications/artifacts to VMs, Kubernetes clusters, FTP sites, S3 buckets, and more. And a CI/CD pipeline can combine code compilation, integration, and deployment for full CI/CD. - -More to be added... - - +You can have multiple Runner installations in the same Codefresh account. A Runner can also manage multiple remote clusters in your account. -### Step +See: +[Codefresh Runner installation]({{site.baseurl}}/docs/installation/codefresh-runner) +[Runner installation behind firewalls]({{site.baseurl}}/docs/installation/behind-the-firewall) -TBW +## Runtime +A Runtime in Codefresh is a GitOps installation in your Codefresh account, in either a Hosted or Hybrid installation environment. Hosted Runtimes are installed on a Codefresh cluster and managed by Codefresh. Hybrid Runtimes are installed on customer clusters, and managed by the customers. +You can install a single Hosted runtime, and multiple Hybrid Runtines in a Codefresh account. -### Applications -An application is a deployment to a Kubernetes, or any Kubernetes-compatible cluster or clusters. -Codefresh supports two types of applications: -* Containerized applications packaged as Docker images or -* Argo CD applications -**Containerized applications** -Containerized applications are compiled, packaged, and deployed through Codefresh pipelines. Codefresh has native support for Docker artifacts, and also supports non-Dockerized applications that don’t use a Dockerfile for the actual build. + +A single Runtime can connect to and manage multiple remote clusters. -Deploy an application directly to Kubernetes through the Codefresh UI, or use Helm as a package manager to deploy to Kubernetes, again from Codefresh. -Codefresh offers several levels of visibility into your deployments : -* The Kubernetes dashboard displays the status of pods and Docker images. -* The Helm dashabord displays the applications deployed to the cluster through Helm packages. -* The Environment dashbaord displays both Helm and Kubernetes releases, the status of the cluster, and most importantly that of the builds that affect it. -See: +See: +[GitOps runtime architecture]({{site.baseurl}}/docs/installation/runtime-architecture) +[Hybrid GitOps Runtime installation]({{site.baseurl}}/docs/installation/gitops/hybrid-gitops) +[Hosted GitOps Runtime installation]({{site.baseurl}}/docs/installation/gitops/hosted-runtime) -**Argo CD applications** -Argo CD applications conform to Argo CD's application definition CRD (Custom Resource Definition). Argo CD supports several types of Kubernetes manifests, including Jsonnet, Kustomize applications, Helm charts, and YAML/json files, and supports webhook notifications from Git. +## Triggers +Triggers are events that launch pipelines and Argo Workflows in Codefresh. -Create Argo CD applications that are fully GitOps-compliant from the Codefresh UI. Work in form mode or directly in YAML in the Create Application wizard. Built-in validation makes it easy to identify and fix errors before commit. The application manifest is generated, committed to Git, and synced to your cluster. -After creation, you can edit and optimize the application, +Codefresh pipelines offer a rich set of triggers. You have triggers based on code-repository events triggers (Git triggers), triggers based on events in external systems (Docker Hub, Azure, Quay, and more), and triggers based on scheduled jobs (Cron). +See: +[Triggers in Codefresh pipelines]({{site.baseurl}}/docs/pipelines/triggers/) -Just as with Dockerized applications, you get full visibily into the applications and their deployment thorugh the global Analytics, DORA metrics, and the Application dashboards. The Applications dashboard displays the individual deployments across your enterprise. Drill down shows the current state of all the resources in the application with actions and detilaed information for each resource. +For Argo Workflows in Codefresh, triggers are managed by Argo Events. You can define the event-source and the Sensor that determines if and when to trigger the event. Codefresh supports Git and Cron events for Argo Workflows. +To enable Argo Workflows in Codefresh, contact support. +See: +[Trigger conditions for events]({{site.baseurl}}/docs/workflows/create-pipeline/#configure-trigger-conditions-for-events) -### Triggers -Triggers are events that launch pipelines and Argo Workflows in Codefresh. -A trigger can define an event defines an event or events, mapped to one or more Git repositories. -Codefresh offers a rich set of triggers - and defines an event or event or events defined in pipelines and Argo Workflows that are mapped to one or more Git Codefresh offers a rich set of triggers that you can select and define through the Codefresh UI as part of creating an Argo Workflow. These include Git and Cron triggers. The triggers and the event that are mapped to sensors and +## Argo Workflows -### Events -TBD +A workflow is type of Kubernetes resource that lets you define and run automated workflows, and stores their state. +Argo Workflows is an open source workflow engine that orchestrates parallel tasks on Kubernetes, implemented as a set of Kubernetes custom resource definitions (CRDs). -### Image annotations +Argo Workflows is part of the Argo project, which provides Kubernetes-native software delivery tools including Argo CD, Argo Events and Argo Rollouts. -### Argo Workflow ## Related articles [Codefresh for CI]({{site.baseurl}}/docs/getting-started/ci-codefresh/) [Codefresh for CD]({{site.baseurl}}/docs/getting-started/cd-codefresh/) +[Codefresh for GitOps]({{site.baseurl}}/docs/getting-started/gitops-codefresh/) diff --git a/_docs/getting-started/gitops-codefresh.md b/_docs/getting-started/gitops-codefresh.md index 7659d49f..5e58a8ef 100644 --- a/_docs/getting-started/gitops-codefresh.md +++ b/_docs/getting-started/gitops-codefresh.md @@ -1,18 +1,91 @@ --- -title: "Codefresh for GitOps" -description: "Argo CD with Codefresh GitOps" +title: "WIP: Codefresh for GitOps" +description: "GitOps and Argo CD with Codefresh" group: getting-started toc: true --- -Work in progress TBD +This article reviews the concepts of GitOps and Argo CD, and how Codefresh integrates with and impe -## Brief intro to GitOps -## Brief intro to Argo CD +## What is GitOps? +Weaveworks, who introduced the concept of GitOps, describes it as "a way of implementing Continuous Deployment for cloud native applications. It focuses on a developer-centric experience when operating infrastructure, by using tools developers are already familiar with, including Git and Continuous Deployment tools." -## Brief intro to GitOps Runtimes with Codefresh +At the root of the GitOps pardigm is having "Git as the single source of truth". Git repositories are the source-control systems that declaratively describe applications and infrastructure using code. The continuous integration and continuous delivery processes synchronize these changes with live environments, making sure that the production state always match the desried in Git. -## Brief into to application deployment +The key difference is that while the traditional workflow is based on “pushing” new code changes through the pipeline to production, a GitOps workflow is a “pull” process in which new changes are submitted, and the GitOps agent detects and synchronizes them with the production environment. -## Rest of Argo Rollouts, Workflows etc +Read more in our blog, [What is a GitOps workflow](https://codefresh.io/learn/gitops/gitops-workflow-vs-traditional-workflow-what-is-the-difference/){:target="\_blank"}. + + +## Argo CD + +Argo CD is "a declarative, GitOps continuous delivery tool for Kubernetes." + +Argo CD uses a Kubernetes controller to constantly monitor the state of all resources in production and compare them against the desired states set in Git. When then are changes to the desired state, the controller detects and works to synchronize the production to the desired configuration. + +Argo CD is also designed to work with Argo Rollouts, a progressive delivery tool for handling canary and blue/green deployments with robust support for most load balancers in use today. + + +## GitOps & Argo CD with Codefresh + +Where does Codefresh come into play with GitOps and Argo CD? + +Codefresh is the easiest way to get started with GitOps and Argo CD. Codefresh leverages Argo components to have the entire desired state applied from Git to your Kubernetes cluster, and then reported back to Codefresh. + +TBD + + +Every state change operation in Codefresh is made via Git +Codefresh audit log is derived from the Git changelog +Codefresh access control is derived from Git permissions + + + + +## GitOps Runtimes + +Codefresh offers two models for GitOps deployments: + +* Hosted GitOps, a fully-managed version of Argo CD. The runtime for Hosted GitOps is hosted on a Codefresh cluster (easy setup) and managed by Codefresh (zero maintenance overhead). + If you already have Argo CD installations, this is the option for you. Click once to provision the hosted runtime, and start deploying applications to clusters without having to install and maintain Argo CD. + +* Hybrid GitOps has the runtime hosted on the customer cluster and managed by the customer. + The hybrid offering retains runtimes within the customer infrastructure while giving you the power of Argo CD with Codefresh’s CI and CD tools, to help achieve continuous integration and continuous delivery goals. + +Review [Runtime architecture]({{site.baseurl}}/docs/installation/runtime-architecture/#gitops-architecture). +For installation, see [Hosted GitOps setup]({{site.baseurl}}/docs/installation/gitops/hosted-runtime/) and [Hybrid GitOps installation]({{site.baseurl}}/docs/installation/gitops/hybrid-gitops/). + +## Argo CD applications + +Codefresh supports the complete lifecyle to create and deploy Argo CD applications. +You can create full-featured Argo CD applications in Form or YAML modes. Built-in validations make it easy to identify and fix errors before commit. + +The application is also completely GitOps-compliant. The application manifest is generated, committed to Git, and synced to your cluster. +See [Creating]({{site.baseurl}}/docs/deployments/gitops/create-application/) and [Managing]({{site.baseurl}}/docs/deployments/gitops/manage-application/) GitOps applications. + + +Once deployed, our dashboards give you enterprise-wide visibility into deployments, and key metrics. +From global analytics on applications and deployments (Home dashboard), to failure rate and lead time for changes (DORA dashboard), to application configuration, resource, and rollout management (Applications dashboard). + +See: +[Home]({{site.baseurl}}/docs/dashboards/home-dashboard/) +[DORA metrics]({{site.baseurl}}/docs/dashboards/dora-metrics/) +[Monitoring applications]({{site.baseurl}}/docs/deployments/gitops/applications-dashboard/) + +## Argo Project & Codefresh +Codefresh brings the power of the Argo project to your Kubernetes deployments: + +Argo CD for declarative continuous deployment +Argo Rollouts for progressive delivery +Argo Workflows as the workflow engine +Argo Events for event-driven workflow automation framework + +Codefresh creates a conformed fork of the Argo project, providing an enterprise-supported version of the same, enhanced with unique functionality. + +>Our users rely on the Codefresh platform to deliver software, reliably and predictably without interruption. To maintain that high standard, we add several weeks of testing and bug fixes to new versions of Argo before making them available within Codefresh. Typically, new versions of Argo are available within 30 days of their release. + +## Related articles +[Codefresh for CI]({{site.baseurl}}/docs/getting-started/ci-codefresh/) +[Codefresh for CD]({{site.baseurl}}/docs/getting-started/cd-codefresh/) +[Concepts in Codefresh]({{site.baseurl}}/docs/getting-started/concepts/) From f489d592b27b0201267e6c7b1b1d56e6e9047141 Mon Sep 17 00:00:00 2001 From: NimRegev Date: Tue, 17 Jan 2023 09:54:05 +0200 Subject: [PATCH 2/2] Minor fixes --- _docs/getting-started/concepts.md | 20 ++++++++++---------- _docs/getting-started/gitops-codefresh.md | 20 ++++++++++---------- 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/_docs/getting-started/concepts.md b/_docs/getting-started/concepts.md index fcc250b9..5ef3006c 100644 --- a/_docs/getting-started/concepts.md +++ b/_docs/getting-started/concepts.md @@ -19,8 +19,8 @@ Containerized applications are compiled, packaged, and deployed through Codefres Deploy an application directly to Kubernetes through the Codefresh UI, or use Helm as a package manager to deploy to Kubernetes, again from Codefresh. Codefresh offers several levels of visibility into your deployments : * The Kubernetes dashboard displays the status of pods and Docker images. -* The Helm dashabord displays the applications deployed to the cluster through Helm packages. -* The Environment dashbaord displays both Helm and Kubernetes releases, the status of the cluster, and most importantly that of the builds that affect it. +* The Helm dashboard displays the applications deployed to the cluster through Helm packages. +* The Environment dashboard displays both Helm and Kubernetes releases, the status of the cluster, and most importantly that of the builds that affect it. See: Quick starts for [Kubernetes]({{site.baseurl}}/docs/quick-start/ci-quickstart/deploy-to-kubernetes/) and [Helm]({{site.baseurl}}/docs/quick-start/ci-quickstart/deploy-with-helm/) deployments @@ -36,7 +36,7 @@ See: [Creating]({{site.baseurl}}/docs/deployments/gitops/create-application/) and [Managing]({{site.baseurl}}/docs/deployments/gitops/manage-application/) GitOps applications -Just as with Dockerized applications, you get full visibily into the applications and their deployment through the global Analytics, DORA metrics, and the Application dashboards. The Applications dashboard shows the current state of all the resources in the application, including information for each resource, and possible actions. +Just as with Dockerized applications, you get full visibility into the applications and their deployment through the global Analytics, DORA metrics, and the Application dashboards. The Applications dashboard shows the current state of all the resources in the application, including information for each resource, and possible actions. See: [Monitoring applications]({{site.baseurl}}/docs/deployments/gitops/applications-dashboard/) @@ -46,7 +46,7 @@ The pipeline is the central component in Codefresh that implements CI/CD process A CI pipeline can compile and package code, build and push Docker images. A CD pipeline can deploy applications/artifacts to VMs, Kubernetes clusters, FTP sites, S3 buckets, and more. And a CI/CD pipeline can combine code compilation, integration, and deployment for full CI/CD. -Codefresh offers a rich set of capabilites for easy creation and maintenance of pipelines such as ready-to-use steps for common tasks, variable, shared configuration, and more. +Codefresh offers a rich set of capabilities to easily create and maintain pipelines such as ready-to-use steps for common tasks, variable, shared configuration, and more. See: [Introduction to Codefresh pipelines]({{site.baseurl}}/docs/pipelines/introduction-to-codefresh-pipelines/) @@ -54,7 +54,7 @@ See: [Creating pipelines]({{site.baseurl}}/docs/pipelines/pipelines/) ## Project -A project is a top-level entity in Codefresh for grouping related pipelines. Projects can group pipelines according to any criteria that is relevant to your enterprise. The criteria can be logical and based on teams, departments, or location for example, or funtional, and based on microservices in applications. +A project is a top-level entity in Codefresh for grouping related pipelines. Projects can group pipelines according to any criteria that is relevant to your enterprise. The criteria can be logical and based on teams, departments, or location for example, or functional, and based on microservices in applications. Projects centralize viewing and configuration settings for the pipelines that belong to them: * Selecting a pipeline shows the other pipelines in the same project * Access control and user-defined variables for the project are inherited by all the pipelines assigned to the project @@ -72,7 +72,7 @@ Codefresh Runner gives you: * The ability to use special resources in your Codefresh pipeline that are unique to your application, GPU nodes or other special hardware only present in your data center. * Complete control over the build environment in addition to resources for pipelines. -Every Runner installation creates a runtime enviroment in your account. Assign the Runner to any pipeline to automatically run the pipeline in your own cluster. External integrations (such as Docker registry or Helm repositories) are also available to the Runner making pipelines exactly the same regardless of their runtime environment. +Every Runner installation creates a runtime environment in your account. Assign the Runner to any pipeline to automatically run the pipeline in your own cluster. External integrations (such as Docker registry or Helm repositories) are also available to the Runner making pipelines exactly the same regardless of their runtime environment. You can have multiple Runner installations in the same Codefresh account. A Runner can also manage multiple remote clusters in your account. @@ -90,7 +90,7 @@ A single Runtime can connect to and manage multiple remote clusters. See: -[GitOps runtime architecture]({{site.baseurl}}/docs/installation/runtime-architecture) +[GitOps runtime architecture]({{site.baseurl}}/docs/installation/runtime-architecture/#gitops-architecture) [Hybrid GitOps Runtime installation]({{site.baseurl}}/docs/installation/gitops/hybrid-gitops) [Hosted GitOps Runtime installation]({{site.baseurl}}/docs/installation/gitops/hosted-runtime) @@ -113,13 +113,13 @@ See: ## Argo Workflows -A workflow is type of Kubernetes resource that lets you define and run automated workflows, and stores their state. +A workflow is a type of Kubernetes resource that lets you define and run automated workflows, and stores their state. Argo Workflows is an open source workflow engine that orchestrates parallel tasks on Kubernetes, implemented as a set of Kubernetes custom resource definitions (CRDs). Argo Workflows is part of the Argo project, which provides Kubernetes-native software delivery tools including Argo CD, Argo Events and Argo Rollouts. ## Related articles -[Codefresh for CI]({{site.baseurl}}/docs/getting-started/ci-codefresh/) -[Codefresh for CD]({{site.baseurl}}/docs/getting-started/cd-codefresh/) +[Codefresh for CI]({{site.baseurl}}/docs/getting-started/ci-codefresh/) +[Codefresh for CD]({{site.baseurl}}/docs/getting-started/cd-codefresh/) [Codefresh for GitOps]({{site.baseurl}}/docs/getting-started/gitops-codefresh/) diff --git a/_docs/getting-started/gitops-codefresh.md b/_docs/getting-started/gitops-codefresh.md index 5e58a8ef..d3671808 100644 --- a/_docs/getting-started/gitops-codefresh.md +++ b/_docs/getting-started/gitops-codefresh.md @@ -5,13 +5,13 @@ group: getting-started toc: true --- -This article reviews the concepts of GitOps and Argo CD, and how Codefresh integrates with and impe +This article reviews the concepts of GitOps and Argo CD, and how Codefresh integrates and implements both. -## What is GitOps? +## GitOps Weaveworks, who introduced the concept of GitOps, describes it as "a way of implementing Continuous Deployment for cloud native applications. It focuses on a developer-centric experience when operating infrastructure, by using tools developers are already familiar with, including Git and Continuous Deployment tools." -At the root of the GitOps pardigm is having "Git as the single source of truth". Git repositories are the source-control systems that declaratively describe applications and infrastructure using code. The continuous integration and continuous delivery processes synchronize these changes with live environments, making sure that the production state always match the desried in Git. +At the root of the GitOps paradigm is having "Git as the single source of truth". Git repositories are the source-control systems that declaratively describe applications and infrastructure using code. The continuous integration and continuous delivery processes synchronize these changes with live environments, making sure that the production state always matches the desired state in Git. The key difference is that while the traditional workflow is based on “pushing” new code changes through the pipeline to production, a GitOps workflow is a “pull” process in which new changes are submitted, and the GitOps agent detects and synchronizes them with the production environment. @@ -22,7 +22,7 @@ Read more in our blog, [What is a GitOps workflow](https://codefresh.io/learn/gi Argo CD is "a declarative, GitOps continuous delivery tool for Kubernetes." -Argo CD uses a Kubernetes controller to constantly monitor the state of all resources in production and compare them against the desired states set in Git. When then are changes to the desired state, the controller detects and works to synchronize the production to the desired configuration. +Argo CD uses a Kubernetes controller to constantly monitor the state of all resources in production and compare them against the desired states set in Git. When there are changes to the desired state, the controller detects and works to synchronize the production to the desired configuration. Argo CD is also designed to work with Argo Rollouts, a progressive delivery tool for handling canary and blue/green deployments with robust support for most load balancers in use today. @@ -53,12 +53,12 @@ Codefresh offers two models for GitOps deployments: * Hybrid GitOps has the runtime hosted on the customer cluster and managed by the customer. The hybrid offering retains runtimes within the customer infrastructure while giving you the power of Argo CD with Codefresh’s CI and CD tools, to help achieve continuous integration and continuous delivery goals. -Review [Runtime architecture]({{site.baseurl}}/docs/installation/runtime-architecture/#gitops-architecture). +Review [GitOps runtime architecture]({{site.baseurl}}/docs/installation/runtime-architecture/#gitops-architecture). For installation, see [Hosted GitOps setup]({{site.baseurl}}/docs/installation/gitops/hosted-runtime/) and [Hybrid GitOps installation]({{site.baseurl}}/docs/installation/gitops/hybrid-gitops/). ## Argo CD applications -Codefresh supports the complete lifecyle to create and deploy Argo CD applications. +Codefresh supports the complete lifecycle to create and deploy Argo CD applications. You can create full-featured Argo CD applications in Form or YAML modes. Built-in validations make it easy to identify and fix errors before commit. The application is also completely GitOps-compliant. The application manifest is generated, committed to Git, and synced to your cluster. @@ -83,9 +83,9 @@ Argo Events for event-driven workflow automation framework Codefresh creates a conformed fork of the Argo project, providing an enterprise-supported version of the same, enhanced with unique functionality. ->Our users rely on the Codefresh platform to deliver software, reliably and predictably without interruption. To maintain that high standard, we add several weeks of testing and bug fixes to new versions of Argo before making them available within Codefresh. Typically, new versions of Argo are available within 30 days of their release. +>Our users rely on the Codefresh platform to deliver software, reliably and predictably, without disruptions. To maintain that high standard, we add several weeks of testing and bug fixes to new versions of Argo before making them available within Codefresh. Typically, new versions of Argo are available within 30 days of their release. ## Related articles -[Codefresh for CI]({{site.baseurl}}/docs/getting-started/ci-codefresh/) -[Codefresh for CD]({{site.baseurl}}/docs/getting-started/cd-codefresh/) -[Concepts in Codefresh]({{site.baseurl}}/docs/getting-started/concepts/) +[Codefresh for CI]({{site.baseurl}}/docs/getting-started/ci-codefresh/) +[Codefresh for CD]({{site.baseurl}}/docs/getting-started/cd-codefresh/) +[Concepts in Codefresh]({{site.baseurl}}/docs/getting-started/concepts/)