Argo CD
vCluster Platform provides several points of integration with Argo CD, a popular GitOps tool for Kubernetes. The Argo CD integration is designed to help users take advantage of the speed and ease of creating virtual clusters, as well as the power of Argo CD for managing and deploying applications within those virtual clusters.
Argo CD Integration has three major components or levels, with each level adding additional integration touch points.
- Sync virtual clusters to Argo CD
- Enable SSO Integration (sign in to Argo CD via vCluster Platform)
- Create Argo CD App Project per vCluster Platform Project
The simplest level of integration is syncing virtual clusters into Argo CD as available clusters
for deployments. In this deployment model, virtual clusters that are part of an Argo enabled
project, and have the loft.sh/import-argocd
label set to true
will be automatically "synced"
to Argo CD. These virtual clusters will show up as clusters that are available for deployments
in the Argo CD UI. When the virtual clusters are deleted, vCluster Platform will automatically remove the
deleted cluster from Argo CD.
The second integration level is enabling SSO integration. This is a project level setting that will configure Argo CD to allow users to authenticate via vCluster Platform. After enabling this setting users who browse to the Argo CD instance will see a button to login via vCluster Platform. All members of the project will be able to log in via vCluster Platform and gain access to Argo CD.
The final integration level is the App Project/Argo CD Project integration. This tier configures an App Project in Argo CD that corresponds to the vCluster Platform project. This option allows for configuring the Argo CD Project's source repositories (repositories that can be deployed to clusters in the given project), as well as RBAC roles to apply to the project.
Configuration of each of these integration modes all starts at the vCluster Platform project object. Argo CD can be enabled on a per-project basis, where multiple projects can be configured to integrate with a single Argo CD instance, or with different Argo CD instances depending on your requirements.
Project Integration
Enable Argo CD Integration Per Project
If there are any errors establishing Argo CD integration, an Argo CD Error
message will appear
under the 'Project Settings' button.
- During Project Creation
- On Existing Project
Select + New Project from the projects dropdown at the top of the left navigation bar.
In the drawer that appears from the right, create your project as normal.
Click the Argo CD configuration tab.
Slide the Enable Argo CD Integration slider to enabled.
In the new configurations that appeared under the Enable Argo CD Integration slider, select either Clusters or Virtual Clusters from the dropdown box in the Where is Argo CD running dropdown. This tells vCluster Platform if your Argo CD instance lives in a connected physical cluster, or if it is running inside of a virtual cluster.
In the next drop down to the right, select the name of the cluster or virtual cluster that your Argo CD instance is deployed in.
If your Argo CD instance is deployed in a namespace other than
argocd
, enter the name of the namespace in the Argo CD Namespace box.Finish configuring anything else you'd like on your project, then click the button.
Click on Settings for the appropriate project under the projects dropdown at the top of the left navigation bar.
In the drawer that appears from the right, click the Argo CD configuration tab.
Slide the Enable Argo CD Integration slider to enabled.
In the new configurations that appeared under the Enable Argo CD Integration slider, select either Clusters or Virtual Clusters from the dropdown box in the Where is Argo CD running dropdown. This tells vCluster Platform if your Argo CD instance lives in a connected physical cluster, or if it is running inside of a virtual cluster.
In the next drop down to the right, select the name of the cluster or virtual cluster that your Argo CD instance is deployed in.
If your Argo CD instance is deployed in a namespace other than
argocd
, enter the name of the namespace in the Argo CD Namespace box.Click the button.
Upon disabling of Argo integration at the project, all virtual clusters will be removed from Argo CD, so be careful when disabling Argo CD at the project level.
Enable Argo CD SSO Integration
Projects may also enable SSO integration with Argo CD, which allows all members of the vCluster Platform project to log in to Argo CD via vCluster Platform.
The loftHost
vCluster Platform configuration must be set to enable this integration. The loftHost
can be
configured via with the Helm values, or in the Admin
section of the UI on the Config
pane.
- During Project Creation
- On Existing Project
Select + New Project from the projects dropdown at the top of the left navigation bar.
In the drawer that appears from the right, create your project as normal.
Click the Argo CD configuration tab.
Slide the Enable Argo CD Integration slider to enabled.
In the new configurations that appeared under the Enable Argo CD Integration slider, select either Clusters or Virtual Clusters from the dropdown box in the Where is Argo CD running dropdown. This tells vCluster Platform if your Argo CD instance lives in a connected physical cluster, or if it is running inside of a virtual cluster.
In the next drop down to the right, select the name of the cluster or virtual cluster that your Argo CD instance is deployed in.
If your Argo CD instance is deployed in a namespace other than
argocd
, enter the name of the namespace in the Argo CD Namespace box.Slide the Enable SSO Integration slider to enabled.
In the
ArgoCD Url
field, enter the resolvable and reachable (from vCluster Platform) URL of your Argo CD instance.[Optional] select the desired RBAC role to assign to project members who log into Argo CD via vCluster Platform.
Finish configuring anything else you'd like on your project, then click the button.
Click on Settings for the appropriate project under the projects dropdown at the top of the left navigation bar.
In the drawer that appears from the right, click the Argo CD configuration tab.
Ensure that standard project Argo CD integration is configured.
Slide the Enable SSO Integration slider to enabled.
In the
Argo CD Url
field, enter the resolvable and reachable (from vCluster Platform) URL of your Argo CD instance.[Optional] select the desired RBAC role to assign to project members who log into Argo CD via vCluster Platform.
Finish configuring anything else you'd like on your project, then click the button.
Enable Argo CD App Project Integration
App Project integration, can be enabled by editing a project manifest and setting the
argoCD.project.enabled
field of the project spec to 'true'. Additionally, users may
provide metadata fields to apply the Argo CD App Project object, Argo CD RBAC roles to apply,
and an array of permissible source repositories that may be accessed within the project.
Virtual Cluster Integration
Enable Virtual Cluster Import
Once a project has Argo CD enabled, virtual clusters within that project are eligible to be synced to the Argo instance as available clusters. You can enable virtual cluster import into Argo CD during the virtual cluster creation step, or by enabling this feature on existing virtual clusters.
If the project your virtual cluster resides in does not have Argo CD integration enabled, you will not see the Argo CD import option!
- During Virtual Cluster Creation
- On Existing Virtual Cluster
Select the project you intend to enable Argo CD from from the projects dropdown at the top of the left navigation bar.
Click on Virtual Clusters and the button.
In the popup, optionally select the virtual cluster template, then click the button.
Find your desired virtual cluster in the virtual cluster list. Slide the ArgoCD slider to enabled.
Select the project you intend to enable Argo CD from from the projects dropdown at the top of the left navigation bar.
Find your desired virtual cluster in the virtual cluster list. Slide the ArgoCD slider to enabled.
If there are any errors adding your virtual cluster to Argo CD, the virtual cluster status will show a warning, clicking on the warning will give you a message indicating the cause of the issues.
Disable the Argo CD Integration
The Argo CD integration can be disabled on a per virtual cluster or per project level by toggling the same sliders used to enable it. Disabling the integration at the virtual cluster level simply removes it as a registered cluster in Argo CD. Disabling the integration at the project level removes all virtual clusters from Argo CD, so be careful when disabled Argo at this level.