Skip to content

Commit 117e1f8

Browse files
committed
Update Runner content
Moved arch to main architecture section; changed title of Runner behind firewall topic
1 parent 3d90f0c commit 117e1f8

File tree

3 files changed

+72
-33
lines changed

3 files changed

+72
-33
lines changed

_docs/installation/behind-the-firewall.md

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
title: "Runner installation behind firewalls"
2+
title: "Runner behind firewalls"
33
description: "Run Codefresh pipelines in your own secure infrastructure"
44
group: installation
55
redirect_from:
@@ -8,8 +8,8 @@ redirect_from:
88
toc: true
99
---
1010

11-
As described in [installation options]({{site.baseurl}}/docs/installation/installation-options/), Codefresh offers Runner and GitOps options for hybrid installations.
12-
This articles focuses on the Runner installation option and its advantages.
11+
As described in [installation options]({{site.baseurl}}/docs/installation/installation-options/), Codefresh offers the Hybrid Runner option for Codefresh pipelines.
12+
This articles focuses on how the Runner works within infrastructure behind firewalls.
1313

1414
## Running Codefresh in secure environments
1515

@@ -19,7 +19,7 @@ and improvements done in the platform must also be transferred to the customer p
1919

2020
Hybrid Runner installs the Runner within the customer premises, while the UI (and management platform) stays in Codefresh.
2121

22-
Here is the overall architecture:
22+
Here is a visual representation of the CI/CD flow between the Runner in the customer environment and Codefresh client in the public internet:
2323

2424
{% include image.html
2525
lightbox="true"
@@ -30,22 +30,22 @@ Here is the overall architecture:
3030
max-width="100%"
3131
%}
3232

33-
The advantages for this scenario are multi-fold.
33+
The advantages for this scenario are multi-fold:
3434

35-
Regarding platform maintenance:
35+
**Regarding platform maintenance**
3636

3737
1. Codefresh is responsible for the heavy lifting for platform maintenance, instead of the customer.
3838
1. Updates to the UI, build engine, integrations etc., happen automatically, without any customer involvement.
3939
1. Actual builds run in the customer premises under fully controlled conditions.
4040
1. Codefresh Runner is fully automated. It handles volume claims and build scheduling on its own within the Kubernetes cluster it is placed.
4141

42-
Regarding security of services:
42+
**Regarding security of services**
4343

4444
1. Pipelines can run in behind-the-firewall clusters with internal services.
4545
1. Pipelines can use integrations (such as Docker registries) that are private and secure.
4646
1. Source code does not ever leave the customer premises.
4747

48-
Regarding firewall security:
48+
**Regarding firewall security**
4949

5050
1. Uni-directional, outgoing communication between the Runner and Codefresh. The Runner polls the platform for jobs.
5151
1. Codefresh never connects to the customer network. No ports need to be open in the customer firewall for the runner to work.
@@ -67,16 +67,16 @@ You can easily create pipelines that:
6767
* Create infrastructure such as machines, load balancers, auto-scaling groups etc.
6868

6969
Any of these pipelines will work out the box without extra configuration. In all cases,
70-
all data stays witin the private local network and does not exit the firewall.
70+
all data stays within the private local network and does not exit the firewall.
7171

72-
>Notice that [long-running compositions]({{site.baseurl}}/docs/pipelines/steps/composition/) (preview test environments) are not yet available via the Codefresh Runner.
72+
>**INFO**:
73+
[Long-running compositions]({{site.baseurl}}/docs/pipelines/steps/composition/) (preview test environments) are not yet available via the Codefresh Runner.
7374

7475

7576

7677
### Checking out code from a private GIT repository
7778

78-
To check out code from your private Git repository, you need to connect first to Codefresh via [Git integrations]({{site.baseurl}}/docs/integrations/git-providers/). However, once you define your GIT provider as *on premise* you also
79-
need to mark it as *behind the firewall* as well:
79+
To check out code from your private Git repository, you need to connect first to Codefresh via [Git integrations]({{site.baseurl}}/docs/integrations/git-providers/). However, once you define your GIT provider as *on premise*, you also need to mark it as *behind the firewall* as well:
8080

8181
{% include image.html
8282
lightbox="true"

_docs/installation/codefresh-runner.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ toc: true
1111

1212
Install the Codefresh Runner on your Kubernetes cluster to run pipelines and access secure internal services without compromising on-premises security requirements. These pipelines run on your infrastructure, even behind the firewall, and keep code on your Kubernetes cluster secure.
1313

14-
We have transitioned to a Helm-based installation for the Codefresh Runner. All new Runner installations must be installed with Helm. For existing installations, we encourage you to transition to the new Helm installation.
14+
We have transitioned to a new Helm-based installation for the Codefresh Runner. All new Runner installations must be installed with Helm. For existing installations, we encourage you to transition to the new Helm installation.
1515
The CLI-based installation is considered legacy and will be deprecated in the coming months.
1616

1717

@@ -40,7 +40,7 @@ As the Codefresh Runner is **not** dependent on any special dockershim features,
4040
To install the Codefresh Runner, follow the [chart installation instructions](https://artifacthub.io/packages/helm/codefresh-runner/cf-runtime#install-chart) in ArtifactHub.
4141

4242
**Existing installations**
43-
For existing Runner installations, based on either older Helm installations or CLI-based installations:
43+
For existing Runner installations, based on either older Helm installations or CLI-based installations:
4444
Delete the existing `values` file and reinstall the Codefresh Runner with the new `values` file.
4545

4646

@@ -182,7 +182,7 @@ After you install the Codefresh Runner, review the [configuration](https://artif
182182

183183
## Runtime Environment specifications
184184

185-
The following section describes the specfications for the Runtime Environment specification and possible options to modify it.
185+
The following section describes the specifications for the Runtime Environment.
186186

187187
Notice that there are additional and hidden fields that are autogenerated by Codefresh that complete a full runtime spec. You can view and edit these fields only for [Codefresh On-Premises Installation]({{site.baseurl}}/docs/installation/codefresh-on-prem/).
188188

@@ -363,8 +363,8 @@ dockerDaemonScheduler:
363363
## CLI-based Codefresh Runner installation
364364

365365
>**LEGACY CONTENT**
366-
Please be aware that the content in this section is _no longer receiving active updates_.
367-
We have transitioned to a [Helm-based installation](https://artifacthub.io/packages/helm/codefresh-runner/cf-runtime){:target="\_blank"} for the Codefresh Runner. As a result, this content will be deprecated in the coming months.
366+
Please be aware that the content in this section and subsections is _no longer actively updated_.
367+
We have transitioned to a [new Helm-based installation](https://artifacthub.io/packages/helm/codefresh-runner/cf-runtime){:target="\_blank"} for the Codefresh Runner. As a result, this content will be deprecated in the coming months.
368368

369369
Access to the Codefresh CLI is only needed when installing the Codefresh Runner. After installation, the Runner authenticates on its own using the details provided. You don't need to install the Codefresh CLI on the cluster running Codefresh pipelines.
370370

@@ -801,7 +801,7 @@ dockerDaemonScheduler:
801801

802802
Once you have applied the patch, future builds will include the label preventing eviction.
803803

804-
### Install monitoring component: only for CLI - each dprecated section should have a reference to the Hel
804+
### Install monitoring component
805805

806806
If your cluster is located [behind the firewall]({{site.baseurl}}/docs/installation/behind-the-firewall/), you can use the Runner's monitoring component to get valuable information about cluster resources to Codefresh dashboards. For example, to [Kubernetes](https://g.codefresh.io/kubernetes/services/){:target="\_blank"} and [Helm Releases](https://g.codefresh.io/helm/releases/releasesNew/){:target="\_blank"} dashboards.
807807

@@ -825,7 +825,7 @@ where:
825825
* `<CONTEXT>`, `<NAMESPACE>`, '<CLUSTER_NAME>' are the context, namespace, and the name of the cluster to which install the monitoring component.
826826
* `<TOKEN>` is the token to authenticate to the cluster.
827827

828-
### Injecting AWS ARN roles into the cluster: same as above
828+
### Injecting AWS ARN roles into the cluster
829829

830830
**Step 1** - Make sure the OIDC provider is connected to the cluster
831831

_docs/installation/runtime-architecture.md

Lines changed: 53 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,10 @@ The Codefresh Control Plane is the SaaS component in the platform. External to t
3131

3232
### GitOps Runtime
3333
The GitOps Runtime is installed on a Kubernetes cluster, and houses the enterprise distribution of the Codefresh Application Proxy and the Argo Project.
34-
Depending on the type of GitOps installation, the GitOps Runtime is installed either in the Codefresh platform (Hosted GitOps), or in the customer environment (Hybrid GitOps). Read more in [GitOps Runtime architecture](#gitops-runtime-architecture).
35-
34+
Depending on the type of GitOps installation, the GitOps Runtime is installed either in the Codefresh platform (Hosted GitOps), or in the customer environment (Hybrid GitOps). Read more about it in [GitOps Runtime architecture](#gitops-runtime-architecture).
3635

36+
### Codefresh Runner
37+
The Codefresh Runner, also known as the Agent, enables running Codefresh pipeline builds in the customer's environment. It provides a way to run pipeline builds, tests, and deployments within your private network or on-premises environment by making API calls to the Codefresh platform.
3738

3839
### GitOps Clients
3940

@@ -63,9 +64,9 @@ max-width="100%"
6364
<br>
6465

6566
#### Codefresh Runner
66-
The Codefresh Runner can be installed on the same cluster as the On-Premises platform or on a remote cluster. It provides a way to run builds, tests, and deployments within your private network or on-premises environment by making API calls to the Codefresh platform.
67+
The Codefresh Runner can be installed on the same cluster as the On-Premises platform or on a remote cluster. It provides a way to run pipeline builds, tests, and deployments within your private network or on-premises environment by making API calls to the Codefresh platform.
6768

68-
Read more about how it works in [Runner installation behind firewalls]({{site.baseurl}}/docs/installation/behind-the-firewall/).
69+
Read more about how it works in [Runner behind firewalls]({{site.baseurl}}/docs/installation/behind-the-firewall/).
6970

7071
<br>
7172

@@ -194,17 +195,54 @@ Each microservice within the Codefresh Pipeline and GitOps modules has its own d
194195
Stores data for legacy builder and windows nodes.
195196

196197

197-
## Codefresh Runner
198+
## Codefresh Runner architecture
199+
This section shows a detailed view of the Codefresh Runner architecture, and a description of the components. See [Runner installation behind firewalls]({{site.baseurl}}/docs/installation/behind-the-firewall/).
200+
201+
???
202+
203+
204+
The Codefresh Runner includes two main components:
205+
206+
### Runner Agent
207+
The Codefresh Runner, often referred to as the Agent, is responsible for executing and managing tasks within the Runtime Environment.
208+
Main functions include:
209+
210+
Executing and terminating pipeline builds.
211+
Creating and deleting necessary resources, such as engine and DinD pods, as well as DinD PVCs.
212+
213+
### Runtime Environment
214+
215+
The Runtime Environment is attached to the Codefresh Runner, and includes the following components:
216+
217+
**Volume Provisioner**
218+
The Volume Provisioner is the central component that controls all Codefresh services, and performs the following functions:
219+
Acting as a Persistent Volume (PV) Kubernetes controller
220+
Managing DinD Persistent Volume Claim s(PVCs)
221+
Optimizing Docker caching volumes to enhance cache utilization for Codefresh builds
198222

199-
The most important components are the following:
223+
<br>
224+
225+
**Volume Cleaners**
226+
The Volume Cleaners are responsible for PV management based on the environment setup:
227+
* LV-Monitor: Installed when local volumes are used to allocate disk space for PVs on the cluster nodes.
228+
* Dind Volume Cleanup: Installed instead of the LV Monitor when local volumes are not used, to delete PVs according to retention policies.
200229

201-
**Codefresh VPC:** All internal Codefresh services run in the VPC. Codefresh uses Mongo and PostgreSQL to store user and authentication information.
230+
<br>
202231

203-
**Pipeline execution environment**: The Codefresh engine component is responsible for taking pipeline definitions and running them in managed Kubernetes clusters by automatically launching the Docker containers that each pipeline needs for its steps.
232+
**Cluster Monitor**
233+
Optional. When installed, provides visibility on cluster resources in Codefresh, through the Kubernetes Services dashboard.
234+
235+
<br>
236+
237+
**App-Proxy**
238+
Another optional component, the App-Proxy serves as an extension to the Codefresh platform. Its purpose is to enable remote operations, such as displaying Git repositories for Git providers behind firewalls and creating webhooks, while maintaining security.
239+
240+
241+
### Clients
242+
* API
243+
Codefresh offers a [public API]({{site.baseurl}}/docs/integrations/codefresh-api/) that is consumed both by the Web user interface and the [Codefresh CLI](https://codefresh-io.github.io/cli/){:target="\_blank"}. The API is also available for any custom integration with external tools or services.
204244

205-
**External actors**. Codefresh offers a [public API]({{site.baseurl}}/docs/integrations/codefresh-api/) that is consumed both by the Web user interface and the <!--should i differentiate between the CI Cli and GitOps CLI -->[Codefresh CLI](https://codefresh-io.github.io/cli/){:target="\_blank"}. The API is also available for any custom integration with external tools or services.
206245

207-
See [Runner installation behind firewalls]({{site.baseurl}}/docs/installation/behind-the-firewall/).
208246

209247

210248

@@ -299,17 +337,18 @@ The Argo Project includes:
299337
* Argo Workflows as the workflow engine
300338
* Argo Events for event-driven workflow automation framework
301339

302-
>Codefresh users rely on our platform to deliver software reliably, and predictably without interruption.
303-
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.
304-
Typically, new versions of Argo are available within 30 days of release in Argo.
340+
>**NOTE**:
341+
Codefresh users rely on our platform to deliver software reliably, and predictably without interruption.
342+
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.
343+
Typically, new versions of Argo are available within 30 days of release in Argo.
305344

306345

307346

308347
### Request Routing Service
309348
The Request Routing Service is installed on the same cluster as the GitOps Runtime in the customer environment.
310349
It receives requests from the the Tunnel Client (tunnel-based) or the ingress controller (ingress-based), and forwards the request URLs to the Application Proxy, and webhooks directly to the Event Sources.
311350

312-
>Important:
351+
>**IMPORTANT**:
313352
The Request Routing Service is available from Runtime version 0.0.543 and higher.
314353
Older Runtime versions are not affected as there is complete backward compatibility, and the ingress controller continues to route incoming requests.
315354

0 commit comments

Comments
 (0)