You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: _docs/installation/behind-the-firewall.md
+12-12Lines changed: 12 additions & 12 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,5 +1,5 @@
1
1
---
2
-
title: "Runner installation behind firewalls"
2
+
title: "Runner behind firewalls"
3
3
description: "Run Codefresh pipelines in your own secure infrastructure"
4
4
group: installation
5
5
redirect_from:
@@ -8,8 +8,8 @@ redirect_from:
8
8
toc: true
9
9
---
10
10
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.
13
13
14
14
## Running Codefresh in secure environments
15
15
@@ -19,7 +19,7 @@ and improvements done in the platform must also be transferred to the customer p
19
19
20
20
Hybrid Runner installs the Runner within the customer premises, while the UI (and management platform) stays in Codefresh.
21
21
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:
23
23
24
24
{% include image.html
25
25
lightbox="true"
@@ -30,22 +30,22 @@ Here is the overall architecture:
30
30
max-width="100%"
31
31
%}
32
32
33
-
The advantages for this scenario are multi-fold.
33
+
The advantages for this scenario are multi-fold:
34
34
35
-
Regarding platform maintenance:
35
+
**Regarding platform maintenance**
36
36
37
37
1. Codefresh is responsible for the heavy lifting for platform maintenance, instead of the customer.
38
38
1. Updates to the UI, build engine, integrations etc., happen automatically, without any customer involvement.
39
39
1. Actual builds run in the customer premises under fully controlled conditions.
40
40
1. Codefresh Runner is fully automated. It handles volume claims and build scheduling on its own within the Kubernetes cluster it is placed.
41
41
42
-
Regarding security of services:
42
+
**Regarding security of services**
43
43
44
44
1. Pipelines can run in behind-the-firewall clusters with internal services.
45
45
1. Pipelines can use integrations (such as Docker registries) that are private and secure.
46
46
1. Source code does not ever leave the customer premises.
47
47
48
-
Regarding firewall security:
48
+
**Regarding firewall security**
49
49
50
50
1. Uni-directional, outgoing communication between the Runner and Codefresh. The Runner polls the platform for jobs.
51
51
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:
67
67
* Create infrastructure such as machines, load balancers, auto-scaling groups etc.
68
68
69
69
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.
71
71
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.
73
74
74
75
75
76
76
77
### Checking out code from a private GIT repository
77
78
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:
Copy file name to clipboardExpand all lines: _docs/installation/codefresh-runner.md
+7-7Lines changed: 7 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -11,7 +11,7 @@ toc: true
11
11
12
12
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.
13
13
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.
15
15
The CLI-based installation is considered legacy and will be deprecated in the coming months.
16
16
17
17
@@ -40,7 +40,7 @@ As the Codefresh Runner is **not** dependent on any special dockershim features,
40
40
To install the Codefresh Runner, follow the [chart installation instructions](https://artifacthub.io/packages/helm/codefresh-runner/cf-runtime#install-chart) in ArtifactHub.
41
41
42
42
**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:
44
44
Delete the existing `values` file and reinstall the Codefresh Runner with the new `values` file.
45
45
46
46
@@ -182,7 +182,7 @@ After you install the Codefresh Runner, review the [configuration](https://artif
182
182
183
183
## Runtime Environment specifications
184
184
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.
186
186
187
187
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/).
188
188
@@ -363,8 +363,8 @@ dockerDaemonScheduler:
363
363
## CLI-based Codefresh Runner installation
364
364
365
365
>**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.
368
368
369
369
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.
370
370
@@ -801,7 +801,7 @@ dockerDaemonScheduler:
801
801
802
802
Once you have applied the patch, future builds will include the label preventing eviction.
803
803
804
-
### Install monitoring component: only for CLI - each dprecated section should have a reference to the Hel
804
+
### Install monitoring component
805
805
806
806
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.
807
807
@@ -825,7 +825,7 @@ where:
825
825
* `<CONTEXT>`, `<NAMESPACE>`, '<CLUSTER_NAME>' are the context, namespace, and the name of the cluster to which install the monitoring component.
826
826
* `<TOKEN>` is the token to authenticate to the cluster.
827
827
828
-
### Injecting AWS ARN roles into the cluster: same as above
828
+
### Injecting AWS ARN roles into the cluster
829
829
830
830
**Step 1** - Make sure the OIDC provider is connected to the cluster
Copy file name to clipboardExpand all lines: _docs/installation/runtime-architecture.md
+53-14Lines changed: 53 additions & 14 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -31,9 +31,10 @@ The Codefresh Control Plane is the SaaS component in the platform. External to t
31
31
32
32
### GitOps Runtime
33
33
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).
36
35
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.
37
38
38
39
### GitOps Clients
39
40
@@ -63,9 +64,9 @@ max-width="100%"
63
64
<br>
64
65
65
66
#### 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.
67
68
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/).
69
70
70
71
<br>
71
72
@@ -194,17 +195,54 @@ Each microservice within the Codefresh Pipeline and GitOps modules has its own d
194
195
Stores data for legacy builder and windows nodes.
195
196
196
197
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
198
222
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.
200
229
201
-
**Codefresh VPC:** All internal Codefresh services run in the VPC. Codefresh uses Mongo and PostgreSQL to store user and authentication information.
230
+
<br>
202
231
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.
204
244
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.
206
245
207
-
See [Runner installation behind firewalls]({{site.baseurl}}/docs/installation/behind-the-firewall/).
208
246
209
247
210
248
@@ -299,17 +337,18 @@ The Argo Project includes:
299
337
* Argo Workflows as the workflow engine
300
338
* Argo Events for event-driven workflow automation framework
301
339
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.
305
344
306
345
307
346
308
347
### Request Routing Service
309
348
The Request Routing Service is installed on the same cluster as the GitOps Runtime in the customer environment.
310
349
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.
311
350
312
-
>Important:
351
+
>**IMPORTANT**:
313
352
The Request Routing Service is available from Runtime version 0.0.543 and higher.
314
353
Older Runtime versions are not affected as there is complete backward compatibility, and the ingress controller continues to route incoming requests.
0 commit comments