Skip to content

Commit e8a3b70

Browse files
committed
Update hybrid-gitops-helm-installation.md
Added terminology clarifications, more content edits for additional installations
1 parent d6aeeb5 commit e8a3b70

File tree

1 file changed

+47
-35
lines changed

1 file changed

+47
-35
lines changed

_docs/installation/gitops/hybrid-gitops-helm-installation.md

Lines changed: 47 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -13,18 +13,17 @@ The [CLI-based installation for Hybrid GitOps]({{site.baseurl}}/docs/installatio
1313
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.
1414

1515

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.
1717

1818
**Installation flavors for GitOps Runtimes**
1919
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**
2121
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.
2423

25-
* **Dedicated GitOps installation**
24+
* **Standalone GitOps**
2625
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.
2827

2928
Choose the installation option that best aligns with your specific requirements and current environment setup.
3029

@@ -39,29 +38,37 @@ Choose the installation option that best aligns with your specific requirements
3938

4039

4140
* **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.
4444

4545
>**ArgoCD password WARNING**:
4646
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.
4747

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.
4851

4952
## Preparing for Hybrid GitOps installation
5053

5154
The table lists the prerequsites for
5255

53-
| Option | Side-by-Side | Standalone |
56+
| Feature configuration | Side-by-Side GitOps | Standalone GitOps |
5457
|------------------------------------- |:------------: |:-------------:|
5558
| Argo project components<br> | N/A ||
56-
| [Minor versions](#minor-versions) || N/A |
5759
| [Argo project CRDs(Custom Resource Definitions)](#argo-project-crds) |||
60+
| [Minor versions](#minor-versions) || N/A |
5861
| [`label` for resource tracking](#side-by-side-label-versus-annotation-for-resource-tracking) || N/A |
5962

63+
### Standalone GitOps: Argo project components
64+
For Standalone GitOps, the GitOps Runtime cluster must not have any Argo project components: Argo Rollouts, Argo CD, Argo Events, and Argo Workflows.
65+
66+
### Side-by-Side & Standalone GitOps: Argo project CRDs
67+
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.
6069

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.
6370

64-
If you already have Argo project CRDs on your cluster, you have two options:
71+
You have two options:
6572

6673
#### (Recommended) Adopt the Argo project CRDs
6774
You can either adopt all CRDs which is the recommended option, or only Argo Rollout CRDs.
@@ -75,7 +82,9 @@ curl https://raw.githubusercontent.com/codefresh-io/gitops-runtime-helm/main/scr
7582
```
7683

7784
**Option 2: Adopt only Argo Rollout CRDs**
78-
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.
86+
87+
Run this script _before_ installation:
7988
```
8089
#!/bin/sh
8190
RELEASE=<runtime-helm-release-name>
@@ -89,16 +98,16 @@ kubectl annotate --overwrite crds $(kubectl get crd | grep argoproj.io | awk '{p
8998
Disable CRD installation under the relevant section for each of the Argo projects in the Helm chart:<br>
9099
`--set <argo-project>.crds.install=false`<br>
91100
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`.
93102

94103
See [Argo's readme on Helm charts](https://github.com/argoproj/argo-helm/blob/main/README.md){:target="\_blank"}.
95104

96105

97106

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.
100109

101-
1. Go to `https://github.com/codefresh-io/argo-helm/<upstream chart version>-<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`.
102111
1. Find the Argo CD chart version that Codefresh uses in `dependencies.version`, as in this example:
103112

104113
{% include
@@ -113,10 +122,10 @@ For Side-by-Side installation, use the same upstream chart version of Argo CD th
113122

114123

115124

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.
118127

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`.
120129

121130

122131
## Install first GitOps Runtime in account
@@ -131,8 +140,8 @@ The Codefresh `values.yaml` located [here](https://github.com/codefresh-io/gitop
131140
<!--- * [Git user token]({{site.baseurl}}/docs/reference/git-tokens/#git-personal-tokens) with the required scopes for Git-based actions -->
132141
* Server URLs for on-premises Git providers
133142
* 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)
136145
* 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))
137146
* For ingress-based runtimes only, verify that these ingress controllers are configured correctly:
138147
* [Ambassador ingress configuration](#ambassador-ingress-configuration)
@@ -192,7 +201,7 @@ You can define one of three different access modes:
192201
* 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.
193202

194203

195-
**Side-by-Side***
204+
**Side-by-Side GitOps**
196205
* `fullnameOverride` configuration for resource conflicts
197206
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.
198207
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
367376
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.
368377

369378

370-
1. Go to back to the List view.
379+
1. Go back to the List view.
371380
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).
381+
1. Continue with [Step 6: Side-by-Side GitOps: Remove Rollouts controller deployment](#step-6-side-by-side-remove-rollouts-controller-deployment).
373382

374383

375-
### Step 8: Side-by-Side: Remove Rollouts controller deployment
384+
### Step 6: Side-by-Side GitOps: Remove Rollouts controller deployment
376385
For Side-by-Side installations, after confirming successful installation, remove the duplicate Argo Rollouts controller deployment to avoid having two controllers in the cluster.
377386

378-
>**IMPORTANT**:
387+
>**IMPORTANT**:
379388
Make sure to remove only the `deployment` and not the CRDs. Removing the CRDs also removes Rollout objects resulting in downtime for workloads.
380389

381390
1. Remove the duplicate Argo Rollouts controller:
382391
`kubectl delete deployment <argo-rollouts-controller-name> -n <argo-rollouts-controller-namespace>`
383-
1. Continue with [Step 9: (Optional) Configure ingress-controllers](#step-9-optional-configure-ingress-controllers).
392+
1. Continue with [Step 7: (Optional) Create a Git Source](#step-7-optional-create-a-git-source).
384393

385-
### Step 8: (Optional) Create a Git Source
394+
### Step 7: (Optional) Create a Git Source
386395
Create a Git Source for the Runtime. A Git Source is a Git repository with an opinionated folder structure, managed by Codefresh.
387396
You can always create Git Sources after installation whenever you need to from the Codefresh UI.
388397

389398
1. Optional. Create a [Git Source]({{site.baseurl}}/docs/installation/gitops/git-sources/#create-a-git-source).
390-
1. Continue with [Step 9: (Optional) Configure ingress-controllers](#step-7-optional-configure-ingress-controllers).
399+
1. Continue with [Step 8: (Optional) Configure ingress-controllers](#step-8-optional-configure-ingress-controllers).
391400

392-
### Step 9: (Optional) Configure ingress-controllers
401+
### Step 8: (Optional) Configure ingress-controllers
393402
Required only for ALB AWS and NGINX Enterprise ingress-controllers, and Istio service meshes.<br>
394403

395404
* Complete configuring these ingress controllers:
@@ -447,8 +456,6 @@ max-width="40%"
447456
* `<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.
448457
* `--wait` waits until all the pods are up and running for the deployment.
449458

450-
451-
452459
{:start="4"}
453460
1. Configure Git credentials to authorize access to and ensure proper functioning of the GitOps Runtime:
454461
1. In the Sync Status column for the Runtime you just installed, click **Complete Installation**.
@@ -468,9 +475,14 @@ max-width="40%"
468475
caption="Authorizing access with OAuth2"
469476
max-width="30%"
470477
%}
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.
482+
`kubectl delete deployment <argo-rollouts-controller-name> -n <argo-rollouts-controller-namespace>`
471483

472-
**What to do next**
473484

485+
**What to do next**
474486
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.
475487

476488
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

Comments
 (0)