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/gitops/hybrid-gitops-helm-installation.md
+47-35Lines changed: 47 additions & 35 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -13,18 +13,17 @@ The [CLI-based installation for Hybrid GitOps]({{site.baseurl}}/docs/installatio
13
13
We will deprecate this installation mode permanently in the coming months. Please stay tuned for further updates and instructions, including guidelines on the migration process.
14
14
15
15
16
-
This article walks you through the process of installing Hybrid GitOps Runtimes in your Codefresh accounts using Helm charts. You can install a single GitOps Runtime on a cluster. Additional Runtimes can be installed in the same account across different clusters. Each Runtime within your account must have a unique name.
16
+
This article walks you through the process of installing Hybrid GitOps Runtimes in your Codefresh accounts using Helm charts. You can install a single GitOps Runtime on a cluster. Additional Runtimes can be installed in the same account across different clusters. Every Runtime within your account must have a unique name.
17
17
18
18
**Installation flavors for GitOps Runtimes**
19
19
Hybrid GitOps Runtime via Helm offers two installation flavors, each catering to specific use cases:
20
-
***Side-by-Side installation: Native Argo CD and GitOps**
20
+
***Side-by-Side GitOps: GitOps & Native Argo CD**
21
21
This flavor combines Argo CD and GitOps Runtime in a side-by-side setup, suitable for environments where you already have Argo CD installed on your cluster, and want to extend it with GitOps capabilities.
22
-
Side-by-Side GitOps installation provides seamless integration of both Native Argo CD and GitOps Runtime features in a single cluster.
23
-
This flavor requires additional configruations to native Argo CD and to the Argo CD deployed by Codefresh to prevent resource conflits and ????
22
+
This flavor requires additional configurations both to the native Argo CD instances and to the Argo CD instance deployed by Codefresh to prevent naming and tracking conflicts across resources.
24
23
25
-
***Dedicated GitOps installation**
24
+
***Standalone GitOps**
26
25
This flavor focuses solely on GitOps, suitable for environments where you want to deploy GitOps Runtime on your cluster without Argo CD.
27
-
Dedicated GitOps installation installs Argo project components as part of the installation process.
26
+
The installation cluster should be free of Argo project components. Standalone GitOps installation installs Argo project components as part of the installation process, managed by Codefresh.
28
27
29
28
Choose the installation option that best aligns with your specific requirements and current environment setup.
30
29
@@ -39,29 +38,37 @@ Choose the installation option that best aligns with your specific requirements
39
38
40
39
41
40
***Additional GitOps Runtime installation**
42
-
If you have already installed a GitOps Runtime in your account and want to install additional Runtimes on different clusters within the same account, continue with a [simplified installation](#install-additional-gitops-runtimes-in-account) from the Codefresh UI, or use [Terraform](/install-gitops-runtime-via-terraform).
43
-
Git provider and Shared Configuration Repository for example are not required for the additional Runtimes, as they are already set up for your account.
41
+
If you have already installed a GitOps Runtime in your account and want to install additional Runtimes on different clusters within the same account:
42
+
* continue with a [simplified installation](#install-additional-gitops-runtimes-in-account) from the Codefresh UI, or use [Terraform](/install-gitops-runtime-via-terraform).
43
+
When installing additional GitOps Runtimes, Git provider and Shared Configuration Repository for example are not required, as they are already set up for your account.
44
44
45
45
>**ArgoCD password WARNING**:
46
46
Avoid changing the ArgoCD password using the `argocd-initial-admin-secret` via the ArgoCD UI. Doing so can cause system instability and disrupt the Codefresh platform.
47
47
48
+
Terminology clarifications:
49
+
In the documentation, Hybrid GitOps Runtimes are also referred to as GitOps Runtimes.
50
+
Similarly, Side-by-Side GitOps is also referred to as Side-by-Side for brevity and ease of understanding.
If you already have Argo project CRDs on your cluster, Codefresh recommends either adopting the CRDs to switch ownership to the GitOps Runtime, or handling the CRDs outside the chart.
68
+
Allowing the GitOps Runtime to manage the CRDs also ensures that the CRDs are automatically upgraded whenever the Runtime is upgraded.
60
69
61
-
### Argo project CRDs
62
-
You can handle Argo project CRDs outside the chart, or as recommended, adopt the CRDs to be managed by the GitOps Runtime Helm release. Allowing the Runtime to manage the CRDs also ensures that the CRDs are automatically upgraded whenever the Runtime is upgraded.
63
70
64
-
If you already have Argo project CRDs on your cluster, you have two options:
71
+
You have two options:
65
72
66
73
#### (Recommended) Adopt the Argo project CRDs
67
74
You can either adopt all CRDs which is the recommended option, or only Argo Rollout CRDs.
You can also adopt only those CRDs that apply to Argo Rollouts. Adopting Argo Rollouts CRDs ensures that there is only one active Argo Rollouts controller active on the Runtime cluster which is recommended.
85
+
You can also adopt only those CRDs that apply to Argo Rollouts. Adopting Argo Rollouts CRDs also switches ownership of the Rollout CRDs to the GitOps Runtime, and ensures that there is only one active Argo Rollouts controller active on the Runtime cluster.
Disable CRD installation under the relevant section for each of the Argo projects in the Helm chart:<br>
90
99
`--set <argo-project>.crds.install=false`<br>
91
100
where:<br>
92
-
`<argo-project>` is the argo project component: `argo-cd`, `argo-workflows`, `argo-rollouts` and `argo-events`.
101
+
`<argo-project>` is the Argo project component: `argo-cd`, `argo-workflows`, `argo-rollouts` and `argo-events`.
93
102
94
103
See [Argo's readme on Helm charts](https://github.com/argoproj/argo-helm/blob/main/README.md){:target="\_blank"}.
95
104
96
105
97
106
98
-
### Side-by-Side: Minor versions
99
-
For Side-by-Side installation, use the same upstream chart version of Argo CD that is used by Codefresh.
107
+
### Side-by-Side GitOps: Synchronize minor versions
108
+
For Side-by-Side installation, use the same upstream chart version of Argo CD as that used by Codefresh.
100
109
101
-
1. Go to `https://github.com/codefresh-io/argo-helm/<upstreamchartversion>-<codefresh-version id>/charts/argo-cd/Chart.yaml`.
110
+
1. Go to `https://github.com/codefresh-io/argo-helm/<upstream-chart-version>-<codefresh-version id>/charts/argo-cd/Chart.yaml`. For example, `https://github.com/codefresh-io/argo-helm/blob/argo-cd-5.38.1-1-cap-CR-18361/charts/argo-cd/Chart.yaml`.
102
111
1. Find the Argo CD chart version that Codefresh uses in `dependencies.version`, as in this example:
103
112
104
113
{% include
@@ -113,10 +122,10 @@ For Side-by-Side installation, use the same upstream chart version of Argo CD th
113
122
114
123
115
124
116
-
### Side-by-Side: Resource tracking by`label`for native Argo CD
117
-
For Side-by-Side installation, verify that the native Argo CD uses `label`for resource tracking.
125
+
### Side-by-Side GitOps: Set native Argo CD resource tracking to`label`
126
+
For Side-by-Side GitOps installation, verify that the native Argo CD instance uses `label`to track resources.
118
127
119
-
In the Argo CD namespace, make sure `argocd-cm.application.resourceTrackingMethod` is either not defined, in which case it defaults to `label`, or if defined is set to `label`.
128
+
In the Argo CD namespace, make sure `argocd-cm.application.resourceTrackingMethod` is either not defined, in which case it defaults to `label`, or if defined, is set to `label`.
120
129
121
130
122
131
## Install first GitOps Runtime in account
@@ -131,8 +140,8 @@ The Codefresh `values.yaml` located [here](https://github.com/codefresh-io/gitop
131
140
<!--- * [Git user token]({{site.baseurl}}/docs/reference/git-tokens/#git-personal-tokens) with the required scopes for Git-based actions -->
132
141
* Server URLs for on-premises Git providers
133
142
* For Side-by-Side installation, verify the following:
134
-
*Verify that Argo CD's minor version is the same as that used by Codefresh (see ????)
135
-
**
143
+
*[Minor version of Argo CD's Helm chart](#side-by-side-gitops-minor-versions)is identical to the version used by Codefresh
144
+
*[Native Argo CD's resource tracking is set to `label`](#side-by-side-gitops-set-native-argo-cd-resource-tracking-to-label)
136
145
* Verify there are no Argo project components and CRDs in the target namespace or that you have adopted the CRDs (see [Argo project components & CRDs](#argo-project-components--crds))
137
146
* For ingress-based runtimes only, verify that these ingress controllers are configured correctly:
@@ -192,7 +201,7 @@ You can define one of three different access modes:
192
201
* Service-mesh-based, which requires explicitly disabling the tunnel- and ingress-based modes in the installation command. The service mesh may also need to be configured before and after installation. See [Ingress controller configuration](#ingress-controller-configuration) in this article.
193
202
194
203
195
-
**Side-by-Side***
204
+
**Side-by-Side GitOps**
196
205
*`fullnameOverride` configuration for resource conflicts
197
206
Side-by-Side installation can cause conflicts when the same resources in your native Argo CD and Codefresh's deployment of Argo CD, have the same name or attempt to control the same objects.
198
207
Customizing `fullnameOverride` values for Argo CD and Argo Rollouts in the GitOps Runtime's `values` file prevents these conflicts.
@@ -367,29 +376,29 @@ By doing so, you can view the Runtime components, monitor health and sync status
367
376
You cannot configure the Runtime as an Argo Application if you have not configured Git credentials for the Runtime, as described in the previous step.
368
377
369
378
370
-
1. Go to back to the List view.
379
+
1. Go back to the List view.
371
380
1. Click **Configure as Argo Application**. Codefresh takes care of the configuration for you.
372
-
1. Continue with [Step 6: (Optional) Create a Git Source](#step-6-optional-create-a-git-source).
For Side-by-Side installations, after confirming successful installation, remove the duplicate Argo Rollouts controller deployment to avoid having two controllers in the cluster.
377
386
378
-
>**IMPORTANT**:
387
+
>**IMPORTANT**:
379
388
Make sure to remove only the `deployment` and not the CRDs. Removing the CRDs also removes Rollout objects resulting in downtime for workloads.
Required only for ALB AWS and NGINX Enterprise ingress-controllers, and Istio service meshes.<br>
394
403
395
404
* Complete configuring these ingress controllers:
@@ -447,8 +456,6 @@ max-width="40%"
447
456
*`<helm-repo-chart-name>` is the name of the repo in which to add the Helm chart, and is either `cf-gitops-runtime` which is the default, or any custom name you define.
448
457
*`--wait` waits until all the pods are up and running for the deployment.
449
458
450
-
451
-
452
459
{:start="4"}
453
460
1. Configure Git credentials to authorize access to and ensure proper functioning of the GitOps Runtime:
454
461
1. In the Sync Status column for the Runtime you just installed, click **Complete Installation**.
@@ -468,9 +475,14 @@ max-width="40%"
468
475
caption="Authorizing access with OAuth2"
469
476
max-width="30%"
470
477
%}
478
+
1. Go back to the List view and click **Configure as Argo Application**. Codefresh takes care of the configuration for you.
479
+
1. For Side-by-Side GitOps, after confirming successful installation, remove the duplicate Argo Rollouts controller `deployment` to avoid having two controllers in the cluster.
480
+
>**IMPORTANT**:
481
+
Make sure to remove only the `deployment` and not the CRDs. Removing the CRDs also removes Rollout objects resulting in downtime for workloads.
Depending on your configuration, if you have private registries, you need to override specific image values, and if your Git servers are on-premises, you need to add custom repository certificates. See [Optional GitOps Runtime configuration](#optional-gitops-runtime-configuration) in this article.
475
487
476
488
You can now add [Git Sources]({{site.baseurl}}/docs/installation/gitops/git-sources), [external clusters]({{site.baseurl}}/docs/installation/gitops/managed-cluster/), [create and deploy GitOps applications]({{site.baseurl}}/docs/deployments/gitops/create-application/).
0 commit comments