Upgrade ISD-Argo with Argo CD and Argo Rollouts from v4.1.1 to v4.1.2

This document describes how to upgrade your ISD-Argo from v4.1.1 to v4.1.2 on a Kubernetes cluster.

WARNING: Before starting the upgrade, take a backup of all the databases, particularly the Postgres DB. The backup procedures may vary depending on your usage of external DBs for Autopilot Services.

NOTE: Please note that v4.1.1 to v4.1.2 upgrade does not depend on or use an external script for db upgrade or data migration. So upgrading the helm chart would be enough.

Following are the sequence of activities to perform the upgrade.

Pre-requisites:

  • Users need to have access to the Kubernetes Cluster and namespace where “ISD-Argo with Argo CD and Argo Rollouts” is running i.e v4.1.1 is running.

  • Users need to have access to GitHub and be able to clone enterprise-argo repo.

Cloning the Repo and update values file:

  1. Clone the enterprise-argo repo by using the below command

    git clone https://github.com/OpsMx/enterprise-argo.git

  2. You need to use isd-argo-minimal-values.yaml file for upgrading to v4.1.2.

    Update the isd-argo-minimal-values.yaml file with specifically ISD URL, ArgoCD URL, Argo Rollouts URL, Vela URL, Keycloak URL by using the below commands.

    sed -i "s/ISD.REPLACE.THIS.WITH.YOURCOMPANY.COM/<Provide your ISD url here>/g" isd-argo-minimal-values.yaml

    sed -i "s/ARGO.REPLACE.THIS.WITH.YOURCOMPANY.COM/<Provide your Argo CD url here>/g" isd-argo-minimal-values.yaml

    sed -i "s/ROLLOUTS.REPLACE.THIS.WITH.YOURCOMPANY.COM/<Provide your Argo rollouts url here>/g" isd-argo-minimal-values.yaml

    sed -i "s/VELA.REPLACE.THIS.WITH.YOURCOMPANY.COM/<Provide your VELA url here>/g" isd-argo-minimal-values.yaml

    sed -i "s/KEYCLOAK.REPLACE.THIS.WITH.YOURCOMPANY.COM/<Provide your Keycloak url here>/g" isd-argo-minimal-values.yaml

    Note: The isd-argo-minimal-values.yaml provided in the repo is adequate and recommended for standard 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. Full values.yaml is available at: https://github.com/OpsMx/enterprise-argo/blob/main/charts/isdargo/values.yaml

  3. Set argo crds to false i.e in isd-argo-minimal-values.yaml, under the argo-cd.crds.install to false

  4. Set argo-rollouts crds also to false.

Backup of ConfigMap and Extensions

Take a backup of ConfigMap and “Argo CD Extensions” by using the commands below.

  • Use the below command for taking the backup of the opsmx-services-isd-argo-agent configmap.

    kubectl get cm opsmx-services-isd-argo-agent -o yaml -n < namespace > cm.yaml
  • Use the below command to take the backup of “Argo CD Extensions”.

    kubectl get argocdextensions opsmx-extensions -o yaml -n <namespace> > extensions.yaml

Helm upgrade

Go to the cloned repo, for eg: cd enterprise-argo and execute the below command:

helm upgrade <release name> charts/isdargo/ -f charts/isdargo/isd-argo-minimal-values.yaml -n <namespace> --timeout=10m --debug

Wait for 10 minutes till the helm upgrade completes.

helm upgrade <release name> charts/isdargo/ -f charts/isdargo/isd-argo-minimal-values.yaml -n <namespace> --timeout=10m --debug
Release "<release name>" has been upgraded. Happy Helming!
NAME: <release name>
LAST DEPLOYED: Mon Feb  6 19:40:34 2023
NAMESPACE: <namespace>
STATUS: deployed
REVISION: 2
TEST SUITE: None

Post Installation Steps

  1. Login to ISD UI and check whether the ISD version is updated right after the help button in the top right corner. Refer to the image below.

  2. Edit the Argo CD extensions yaml and change only the version from v0.3.6 to v0.3.11 and save the file. Refer to the below image for the reference section in the file.

  3. Apply the backed up confimap and Argo CD extensions yaml files by using the commands below.

    kubectl replace -f cm.yaml –-force -n <namespace>

    kubectl replace -f extensions.yaml –-force -n <namespace>
  4. Go to the Agent Screen in ISD UI and click on the three dots at end of the row of the Agent entry and then click on the “Edit” button. Refer to the image below.

  5. Click the "Download Agent Manifest" button to download the Agent Manifest file as shown in the image below.

  6. Apply the Agent Manifest file where ISD-Argo is running by using the below command.

    kubectl apply -f isd-argo-agent.yml -n <namespace>

  7. Delete the Agent pod by using the below command.

    kubectl delete po -l agent.opsmx.com/role=agent -n <namespace>
  8. Go to the “CD Integration” page and check whether the agent status is healthy(green). Refer to the image below.

  9. Please verify all the screens in ISD UI.

If an upgrade fails

If anything goes wrong during upgrade, please Rollback to the previous version using the below command:

helm rollback <release name> -n <namespace> <version number>

Last updated