Migrating Existing Kubernetes Clusters Using LM Container Helm Chart

To make the installation and upgrade process easy, LogicMonitor has combined Argus and Collectorset-Controller Helm charts into a higher-order umbrella chart known as LM Container Helm Chart.
Note: We recommend avoiding the usage of individual Argus and Collectorset-Controller Helm charts with the release of LM Container Helm charts.

You can migrate your existing Kubernetes clusters configurations to the new LM Container configuration in the following two ways:

Requirements

Installing Helm Plugin LMC

  1. Run the following command to install Helm plugin LMC:
    helm plugin install https://github.com/logicmonitor/lmc
  2. (Optional) If you have already installed the Helm install plugin previously, run the following command to upgrade to the latest version:
    helm plugin update lmc

Migrating Existing Configurations Using Helm

You can migrate the Kubernetes clusters by using Helm commands. If required, check the access to the Kubernetes cluster with the helm ls -A command. If the command returns Helm version information, then access has been established.

1. Take the backup of the previous Helm chart configurations using the following commands:

  • Run helm ls -n <respective namespace> command to store the output in a file or any desired output. The command also displays the previous Helm chart versions that were installed.
  • Run helm get values collectorset-controller -n <respective namespace> command which displays the latest values in YAML format. Copy the values to a backup file and save it on your system. 
    For example, collectorset-controller.yaml.bkp.  
  • Run helm get values argus -n <respective namespace> and store the output in another backup file.
    For example, argus.yaml.bkp.

Note:  You must not proceed if you were unable to take the configuration backup.

2. Once you successfully take the backup, run the following commands to generate the LM Container configuration:

  • Run helm lmc config migrate command to fetch the previous chart configuration from the cluster and create LM Container configuration files. In addition, the generated configuration files get stored in the lm-container-configuration.yaml.
  • You can view the newly generated configuration file in your preferred text editor and edit the file if required.
    For more information, see <link to lm container helm chart configurations (Container Monitoring TOC#Configurations section page)> work in progress configuration parameters.

3. You must delete the previous installations from the cluster, using the following commands:

  • Run the following command to delete Argus:
    helm delete argus -n <respective namespace>
  • Run the following command to delete Collectorset-Controller:
    helm delete collectorset-controller -n <respective namespace>
  • Delete Custom Resource Definition (CRD) object by using the following command as CRD object doesn’t get deleted with Helm chart:
    kubectl delete crd collectorsets.logicmonitor.com
  • Delete client cache configmaps using the following command:
    kubectl delete configmaps -l argus=cache

4. Install LM Container Helm Chart. For more information, see Installing LM Container Helm chart.

Migrating Existing Configurations Without Using Helm

Although we recommend using the Helm commands for seamless migration of configuration as it fetches the live configuration from the Kubernetes cluster. However, if you do not wish to use the Helm utility to deploy Helm charts, complete the following steps to migrate the existing configuration YAML files.

Requirements

  • Install migration command-line utility by downloading the binary of the latest release.

Procedure

1. Navigate to Resources > Add Kubernetes cluster.

2. Add the required information and click Save and then click Next.

3. From the Installation Instructions section, download Argus and Collectorset-Controller YAML files.

4. Store both files on the system where the migration utility is installed.

5. Run the following command to migrate and generate lm-container-configuration.yaml file:
lmc config migrate --using-files

Note:

  • Command attempts to find the configuration file names present in the current directory as:
    collectorset-controller-configuration.yaml and argus-configuration.yaml.
  • If you want to set custom file names, then see more details about flags using the -h or --help option.

6. Once you generate the lm-container-configuration.yaml file, review if the configuration has been correctly copied from the previous files.

7. Delete previous installations from the cluster, by completing the following steps:

  • Run helm delete argus -n <respective namespace> command to delete Argus.
  • Run  helm delete collectorset-controller -n <respective namespace> command to delete Collectorset-controller.
  • As Custom Resource Definition (CRD) does not get deleted with Helm chart, you must delete the previous CRD object using the command kubectl delete crd collectorsets.logicmonitor.com
  • Remove Logicmonitor’s Helm repository.

8. Install LM Container Helm Chart. For more information see Installing LM Container Helm chart.

Installing LM Container Helm Chart

Requirements

  • Install Helm to use the charts. For more information, see the Helm documentation.
  • Ensure you have administrator access to the LogicMonitor account.

Procedure

1. Run the following command to add a new LogicMonitor Helm chart repository:
helm repo add logicmonitor
https://logicmonitor.github.io/helm-charts

Note: If you already have a repository added, run the following command to load new Helm charts if released:
helm repo update logicmonitor

2. Select the desired Helm chart version for installation using the following steps:

a. To load the  latest version of the charts in the repository, enter the following command:
helm repo update logicmonitor

b. To check the current version of the LM Container chart, enter the following command:
helm search repo -r logicmonitor/lm-container

Note:

  • Use option -l to list all versions if you want to select the previous version
  • Use --devel option to list early access version

c. Define version criteria using the selected version by applying the following rules:

  • For example, you have selected 1.0.0 
  • Define version criteria as "1" to automatically roll out new versions with newly added features and fixes
  • Define version criteria as "1.0" to automatically rollout only fixed versions and not the newly added features
  • Define version criteria as specific version “1.0.0” to roll out new versions manually

3. Run the following command to upgrade the LM Container configuration:

helm upgrade --install --debug --wait --namespace="logicmonitor" --create-namespace -f ./lm-container-configuration.yaml lm-container --version "<version-criteria>" logicmonitor/lm-container

Note: If the Helm upgrade command timeouts while waiting on deployment pods to become ready, then you can add  –timeout option to the Helm upgrade command with a duration of more than 5 minutes and run the command again. For example, –timeout=10m.

4. Once the LM Container Helm chart installs successfully, verify if newly created Kubernetes resources are getting discovered in LogicMonitor and have started collecting metrics.