ISD-Argo Installation with Argo CD and Argo Rollouts

Introduction:

This document provides step-by-step instructions for installing ISD-Argo with the ability to add additional Argo CD instances. The installation involves the following components:

After successful installation, Argo CD will be integrated with ISD by default through an agent.

Note: ISD-Argo Installation with Argo CD and Argo Rollouts v4.1.6 supports the following Argo Components:

  • Argo CD - v2.9

  • Argo Rollouts - v1.6.3

  • Argo CLI - v2.8.4

Environment requirements:

It is assumed that you have a Kubernetes cluster with NGINX and cert-manager already installed. If not, refer to the document here for more information on the Environment setup for ISD for Argo.

Installation Steps:

Following are the sequence of activities for ISD-Argo Installation with Argo CD and Argo Rollouts.

Step:1 Create Namespace

Create a namespace in your cluster by executing the below command.

kubectl create namespace opsmx-argo

Step:2 Clone the Repo

Clone the enterprise Argo repo and change the directory to enterprise-argo by using below commands.

git clone https://github.com/OpsMx/enterprise-argo.git -b v4.1.6
cd enterprise-argo/charts/isdargo/

Note: The isd-argo-minimal-values.yaml provided in the repo is adequate and recommended for “ISD-Argo Installation with Argo CD and Argo Rollouts” Installation. If you would like to have some advanced-level configurations for secret management, cluster configuration, etc, you can use values.yaml. If you need any additional clarifications with respect to values.yaml for installation, please contact OpsMx support.

Step:3 Configure URLs

  1. Configure URLs for ISD, Argo CD, Argo Rollouts, Keycloak and Vela as per your DNS record.

  2. Update the URLs of ISD, Argo CD, Argo Rollouts, Keycloak and Vela as per your DNS records in all occurrences of the isd-argo-minimal-values.yaml. Optional: Update forwarder.externalName URL in isd-argo-minimal-values.yaml. The actual DNS needs to be created/updated after installation.

Step:4 Install Application

  1. Add opsmx helm repo to your local machine.

    helm repo add isdargo https://opsmx.github.io/enterprise-argo/

    Note: If opsmx helm repo is already added, do a repo update before installing the chart by executing the below command.

    helm repo update
  2. Run the below command to install the application using the helm chart.

    helm install isdargo isdargo/isdargo -f isd-argo-minimal-values.yaml -n opsmx-argo --timeout 15m
  3. Optional: Once installation is completed, please create/update the DNS, based on the loadbalancer created using instructions here.

    Note: The Optional steps above can be done after the installation at a later point, if required.

  4. Create vela-ingress tls secret using the wild-card certificate and key. For example, kubectl create secret tls vela-ingress -n opsmx-argo --cert cert1.pem --key privkey1.pem

    Replace cert1.pem and privkey1.pem file in the above command with the certificates you have created from cert-manager or your certificate provider.

Step:5 Confirm Installation

  1. Please use the below command to check the pods in your namespace.

    kubectl -n opsmx-argo get pods
  2. Get the ISD-Argo Platform, Argo CD URLs by using the below command.

    kubectl -n opsmx-argo get ing
  3. Access the URLs (ISD/Argo CD) through browser and login into application using the credentials listed below:

    • User Name: admin

    • Password: Execute the following command to retrieve the password

      kubectl -n opsmx-argo get secret openldap -o jsonpath='{.data.LDAP_ADMIN_PASSWORD}'| base64 -d

      In case "base64 command not found": Please execute the below command.

      kubectl -n opsmx-argo get secret openldap -o jsonpath='{.data.LDAP_ADMIN_PASSWORD}'

      After executing the above command, copy the output and decode it using any online decoding site such as https://www.base64decode.org/.

  4. Now go to the ISD UI and refresh it, you will see the Agent in healthy status, which means the agent is successfully connected to ISD and Argo CD is integrated with ISD by default. Refer to the image below.

  5. Now you can create applications in Argo CD and they will automatically sync in ISD.

Troubleshooting

  1. Everything is installed but I don't see any applications.

    • It automatically installs sample applications, including a working rollouts sample.

    • If connecting to an existing argo or adding a new argo, please ensure that the user-token generated has admin RBAC permissions.

  2. Clicking on an application in Home-screen takes me to a blank page or a page with an error.

    • Vela service needs wild-card DNS and wild-card TLS certificates for this to work due to restrictions in Argo CD.

    • We can test it by opening another tab in the browser and placing the "isd.VELA.REPLACE.THIS.WITH.YOURCOMPANY.COM" URL.It should load and say "Failed to load".

Post Installation

After the successful installation, you can create an application and enable the verification for the deployment of your application.

  • To create an application, refer here.

  • To enable verification , refer here.

Last updated