|
| 1 | +--- |
| 2 | +title: "Install GitOps Runtime alongside existing Argo CD" |
| 3 | +description: "Install GitOps Runtime on cluster with existing Argo CD" |
| 4 | +group: installation |
| 5 | +toc: true |
| 6 | +--- |
| 7 | + |
| 8 | +If you have a cluster with Argo CD already installed, Codefresh provides an option to install the GitOps Runtime to co-exist with your Argo CD installation. Extend your environment with Codefresh's GitOps capabilities with a few simple configuration changes, and without the need to uninstall Argo CD. |
| 9 | + |
| 10 | +* **Enhance CI/CD with Codefresh GitOps** |
| 11 | + Dive into the world of Codefresh GitOps, exploring its capabilities and features without having to uninstall or reconfigure existing Argo CD installations. Read about our GitOps offering in [Codefresh for GitOps]({{site.baseurl}}/docs/getting-started/gitops-codefresh/). |
| 12 | + |
| 13 | + |
| 14 | +* **Gradual migration to GitOps applications** |
| 15 | + After becoming familiar with Codefresh GitOps, make informed decisions when migrating your Argo CD Applications to Codefresh GitOps. |
| 16 | + |
| 17 | + For a smooth transition from Argo CD Applications to Codefresh's GitOps applications, migrate Applications at your preferred pace. On successful migration, view, track, and manage all aspects of the applications in Codefresh. |
| 18 | + |
| 19 | + |
| 20 | +Follow these steps to install the GitOps Runtime on a cluster with Argo CD: |
| 21 | +* Prepare the Argo CD cluster for GitOps Runtime installation |
| 22 | +* Install the GitOps Runtime via Helm |
| 23 | +* Migrate Argo CD Applications to GitOps Runtime |
| 24 | + |
| 25 | + |
| 26 | +## Prepare Argo CD cluster for GitOps Runtime installation |
| 27 | + |
| 28 | +There are three configuration changes to make _before_ installing the GitOps Runtime on the cluster with Argo CD: |
| 29 | +1. [Switch ownership of Argo project CRDs]({{site.baseurl}}/docs/installation/gitops/hybrid-gitops-helm-installation/#gitops-onlygitops-with-argo-cd-argo-project-crds) |
| 30 | +2. [Synchronize Argo CD chart's minor versions]({{site.baseurl}}/docs/installation/gitops/hybrid-gitops-helm-installation/#gitops-with-argo-cd-synchronize-argo-cd-charts-minor-versions) |
| 31 | +3. [Set native Argo CD resource tracking to `label`]({{site.baseurl}}/docs/installation/gitops/hybrid-gitops-helm-installation/#gitops-with-argo-cd-set-native-argo-cd-resource-tracking-to-label) |
| 32 | + |
| 33 | + |
| 34 | +## Install Hybrid GitOps Runtime via Helm |
| 35 | + |
| 36 | +After completing the configuration changes, follow our [step-by-step installation guide]({{site.baseurl}}/docs/installation/gitops/hybrid-gitops-helm-installation/#install-first-gitops-runtime-in-account) to install the GitOps Runtime. |
| 37 | + |
| 38 | +The GitOps Runtime installation is Helm-based, and installing the Runtime on a cluster with an existing Argo CD, requires additional flags in the installation command and an additional step after installation. |
| 39 | + |
| 40 | + |
| 41 | +## Migrate Argo CD Applications to Codefresh GitOps Runtime |
| 42 | +The final task depending on your requirements is to migrate your Argo CD Applications to the Codefresh GitOps Runtime. |
| 43 | + |
| 44 | +Why would you want to do this? |
| 45 | +Because this allows you to completely and seamlessly manage the applications in Codefresh as GitOps entities. |
| 46 | + |
| 47 | + |
| 48 | +The process to migrate an Argo CD Application is simple: |
| 49 | +1. Add a Git Source to the Runtime to which store application manifests |
| 50 | +1. Make the needed configuration changes in the Argo CD Application |
| 51 | +1. Commit the application to the Git Source for viewing and management in Codefresh |
| 52 | + |
| 53 | + |
| 54 | +### Step 1: Add a Git Source to GitOps Runtime |
| 55 | + |
| 56 | +After installing the GitOps Runtime successfully, you can add a Git Source to the Runtime and commit your applications to it. |
| 57 | +A Git Source is a Git repository managed by Codefresh as an Argo CD Application. |
| 58 | +Read about [Git Sources]({{site.baseurl}}/docs/installation/gitops/git-sources/). |
| 59 | + |
| 60 | + |
| 61 | + |
| 62 | +* Add a [Git Source]({{site.baseurl}}/docs/installation/gitops/git-sources/#create-a-git-source) to your GitOps Runtime. |
| 63 | + |
| 64 | +### Step 2: Modify Argo CD Applications |
| 65 | + |
| 66 | +Modify the Argo CD Application's manifest to remove `finalizers`, if any, and also remove the Application from the `argocd` `namespace` it is assigned to by default. |
| 67 | + |
| 68 | +* Remove `metadata.namespace: argocd`. |
| 69 | +* Remove `metadata.finalizers`. |
| 70 | + |
| 71 | +Below is an example of a manifest for an Argo CD Application with `finalizers`. |
| 72 | + |
| 73 | +```yaml |
| 74 | +apiVersion: argoproj.io/v1alpha1 |
| 75 | +kind: Application |
| 76 | +metadata: |
| 77 | + name: my-sample-app |
| 78 | + namespace: argocd |
| 79 | + finalizers: |
| 80 | + - resources-finalizer.argocd.argoproj.io |
| 81 | +spec: |
| 82 | + project: default |
| 83 | + source: |
| 84 | + path: guestbooks/apps |
| 85 | + repoURL: https://github.com/codefresh-codefresh/argocd-example-apps |
| 86 | + targetRevision: personal-eks |
| 87 | + destination: |
| 88 | + namespace: my-app |
| 89 | + server: https://kubernetes.default.svc |
| 90 | + syncPolicy: |
| 91 | + automated: |
| 92 | + prune: false |
| 93 | + selfHeal: false |
| 94 | + allowEmpty: false |
| 95 | + syncOptions: |
| 96 | + - PrunePropagationPolicy=foreground |
| 97 | + - Replace=false |
| 98 | + - PruneLast=false |
| 99 | + - Validate=true |
| 100 | + - CreateNamespace=true |
| 101 | + - ApplyOutOfSyncOnly=false |
| 102 | + - ServerSideApply=false |
| 103 | + - RespectIgnoreDifferences=false |
| 104 | +``` |
| 105 | +
|
| 106 | +
|
| 107 | +
|
| 108 | +
|
| 109 | +### Step 3: Commit the application to the Git Source |
| 110 | +As the final step in migrating your Argo CD Application to a Codefresh GitOps one, manually commit the updated Application manifest to the Git Source you created in Step 1. |
| 111 | +Once you commit the manifest to the Git Source, it is converted into a GitOps application. You can view it in the Codefresh UI, modify definitions, track it through our different dashboards, and in short, manage it as you would any GitOps resource in Codefresh. |
| 112 | +
|
| 113 | +1. Go to the Git repo where you created the Git Source. |
| 114 | +1. Add and commit the Argo CD Application manifest to the Git Source. |
| 115 | + Here's an example of the `my-sample-app` above committed to a Git Source without `metadata.namespace: argocd` and `metadata.finalizers`. |
| 116 | + |
| 117 | + {% include |
| 118 | + image.html |
| 119 | + lightbox="true" |
| 120 | + file="/images/runtime/helm/migrate-app-sample-in-git-source.png" |
| 121 | + url="/images/runtime/helm/migrate-app-sample-in-git-source.png" |
| 122 | + alt="Argo CD Application committed to GitOps Git Source" |
| 123 | + caption="Argo CD Application committed to GitOps Git Source" |
| 124 | + max-width="50%" |
| 125 | + %} |
| 126 | + |
| 127 | +{:start="3"} |
| 128 | +1. In the Codefresh UI, from the sidebar, below Ops, select [**GitOps Apps**](https://g.codefresh.io/2.0/applications-dashboard/list){:target="\_blank"}. |
| 129 | + The Applications Dashboard displays the new Git Source application. |
| 130 | + |
| 131 | + {% include |
| 132 | + image.html |
| 133 | + lightbox="true" |
| 134 | + file="/images/runtime/helm/migrate-app-apps-dashboard.png" |
| 135 | + url="/images/runtime/helm/migrate-app-apps-dashboard.png" |
| 136 | + alt="GitOps Apps dashboard with Git Source and migrated Application" |
| 137 | + caption="GitOps Apps dashboard with Git Source and migrated Application" |
| 138 | + max-width="50%" |
| 139 | + %} |
| 140 | + |
| 141 | +{:start="4"} |
| 142 | +1. Click the application to drill down to the different tabs. The Configuration tab displays the application's settings which you can modify and update. |
| 143 | + Here's an example of the Current State tab for `my-sample-app`. |
| 144 | + |
| 145 | + {% include |
| 146 | + image.html |
| 147 | + lightbox="true" |
| 148 | + file="/images/runtime/helm/migrate-app-current-state.png" |
| 149 | + url="/images/runtime/helm/migrate-app-current-state.png" |
| 150 | + alt="Current State tab for migrated Argo CD application" |
| 151 | + caption="Current State tab for migrated Argo CD application" |
| 152 | + max-width="50%" |
| 153 | + %} |
| 154 | + |
| 155 | + |
| 156 | + |
| 157 | +## Related articles |
| 158 | +[Creating Argo CD applications]({{site.baseurl}}/docs/deployments/gitops/create-application) |
| 159 | +[Monitoring Argo CD applications]({{site.baseurl}}/docs/deployments/gitops/applications-dashboard) |
| 160 | +[Managing Argo CD applications]({{site.baseurl}}/docs/deployments/gitops/manage-application) |
| 161 | +[Home Dashboard]({{site.baseurl}}/docs/dashboards/home-dashboard) |
| 162 | +[DORA metrics]({{site.baseurl}}/docs/dashboards/dora-metrics/) |
0 commit comments