|
| 1 | +--- |
| 2 | +title: "Concepts in Codefresh" |
| 3 | +description: "Understand terminology and nuances in Codefresh" |
| 4 | +group: getting-started |
| 5 | +toc: true |
| 6 | +--- |
| 7 | +Work in progress |
| 8 | + |
| 9 | + |
| 10 | +### Runtime |
| 11 | +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. |
| 12 | +You can install a single Hosted runtime, and multiple Hybrid Runtines in a Codefresh account. |
| 13 | + |
| 14 | + |
| 15 | +<!--add diagram --> |
| 16 | +A single Runtime can connect to and manage multiple remote clusters. |
| 17 | + |
| 18 | + |
| 19 | +See: |
| 20 | +[GitOps runtime architecture]({{site.baseurl}}/docs/installation/runtime-architecture) |
| 21 | +[Hybrid GitOps Runtime installation]({{site.baseurl}}/docs/installation/hybrid-gitops) |
| 22 | +[Hosted GitOps Runtime installation]({{site.baseurl}}/docs/installation/hosted-runtime) |
| 23 | + |
| 24 | + |
| 25 | + |
| 26 | +### Runner |
| 27 | +The Runner is the hybrid installation option for CI/CD 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. |
| 28 | + |
| 29 | +Codefresh Runner gives you: |
| 30 | +* Access to secure services (such as Git repositories or databases) that are behind the firewall and normally not accessible to the public cloud. |
| 31 | +* 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. |
| 32 | +* Complete control over the build environment in addition to resources for pipelines. |
| 33 | + |
| 34 | +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. |
| 35 | + |
| 36 | +You can have multiple Runner installations in the same Codefresh account. A Runner can also manage multiple remote clusters in your account. |
| 37 | + |
| 38 | +See: |
| 39 | +[Codefresh Runner installation]({{site.baseurl}}/docs/installation/codefresh-runner) |
| 40 | +[Runner installation behind firewalls]({{site.baseurl}}/docs/reference/behind-the-firewall) |
| 41 | + |
| 42 | + |
| 43 | +### Project |
| 44 | +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 microservices in applications. |
| 45 | +Projects centralize viewing and configuration settings for the pipelines that belong to them: |
| 46 | +* Selecting a pipeline shows the other pipelines in the same project. |
| 47 | +* Define access control and user-defined variables for the project, and they are inherited by all the pipelines assigned to the project |
| 48 | + |
| 49 | +There are no limits to the number of projects you can create in your account. You can also create standalone pipelines and assign them later to a project, or detach a pipeline assigned to a project. |
| 50 | + |
| 51 | +See: |
| 52 | +[Projects in pipelines]({{site.baseurl}}/docs/pipelines/pipelines/#pipeline-concepts) |
| 53 | + |
| 54 | +### Pipeline |
| 55 | +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. |
| 56 | + |
| 57 | +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. |
| 58 | + |
| 59 | +More to be added... |
| 60 | + |
| 61 | +<!-- ### Workflow |
| 62 | +A workflow is type of Kubernetes resource that lets you define and run automated workflows, and stores their state. |
| 63 | +Argo Workflows is an open source workflow engine that orchestrates parallel tasks on Kubernetes, implemented as a set of Kubernetes custom resource definitions (CRDs). |
| 64 | +
|
| 65 | +Argo Workflows is part of the Argo project, which provides Kubernetes-native software delivery tools including Argo CD, Argo Events and Argo Rollouts. |
| 66 | +
|
| 67 | +What are worklfows in Codefresh? |
| 68 | +Workflows in Codefresh refers to our integration with Argo Workflows to implement continours integration topped with our unique functionlaity on top of vanilla |
| 69 | +
|
| 70 | +Triggers: 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 |
| 71 | +
|
| 72 | +Workflow Templates: Predefined library of for Argo Workflows. |
| 73 | +
|
| 74 | +
|
| 75 | +
|
| 76 | +Build view dashboard: The Workflows dashboard provides |
| 77 | +See Delivery Pipelines. --> |
| 78 | + |
| 79 | + |
| 80 | +### Applications |
| 81 | +An application is a deployment to a Kubernetes, or any Kubernetes-compatiale cluster or clusters. |
| 82 | +Codefresh supports two types of applications: |
| 83 | +* Containerized applications packaged as Docker images or |
| 84 | +* Argo CD applications |
| 85 | + |
| 86 | +**Containerized applications** |
| 87 | +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. |
| 88 | + |
| 89 | +Deploy an application directly to Kubernetes through the Codefresh UI, or use Helm as a package manager to deploy to Kubernetes, again from Codefresh. |
| 90 | +Codefresh offers several levels of visibility into your deployments : |
| 91 | +* The Kubernetes dashboard displays the status of pods and Docker images. |
| 92 | +* The Helm dashabord displays the applications deployed to the cluster through Helm packages. |
| 93 | +* The Environment dashbaord displays both Helm and Kubernetes releases, the status of the cluster, and most importantly that of the builds that affect it. |
| 94 | + |
| 95 | +See: |
| 96 | + |
| 97 | + |
| 98 | +**Agro CD applications** |
| 99 | +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. |
| 100 | + |
| 101 | +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. |
| 102 | +After creation, you can edit and optimize the application, |
| 103 | + |
| 104 | +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. |
| 105 | + |
| 106 | + |
| 107 | + |
| 108 | +### Triggers |
| 109 | +TBD |
| 110 | + |
| 111 | +### Events |
| 112 | +TBD |
| 113 | + |
0 commit comments