Skip to content

ArgoCD for DataRobot Kubernetes Installation

ArgoCD is a declarative, Kubernetes-native Continuous Delivery (CD) tool that follows the GitOps paradigm. For more info see: ArgoCD Official Documentation

概要

ArgoCD continuously performs a reconciliation loop:

  • Monitor: ArgoCD watches the defined Git repository (the Target State).
  • Compare: It compares the configuration in the Git repository to the actual running configuration in the Kubernetes cluster (the Live State).
  • Sync/Heal: If a difference (a "drift") is detected, ArgoCD either alerts the user or automatically applies the necessary changes to make the Live State match the Target State. This ensures the cluster is self-healing and always conforms to the desired configuration.

This approach is highly suitable for deploying complex, multi-component applications like DataRobot, as it automates deployment and ensures environmental consistency.

前提条件

Before starting, ensure the following are in place:

  • A running Kubernetes Cluster meeting requirements for you installation.
  • ArgoCD is installed and running in the cluster.
  • kubectl configured to interact with the cluster.
  • Access to the private repository containing the official DataRobot Container Images amd Helm charts.
  • Required configuration variables.
  • Prepared DataRobot platfrom Helm vlaues. See Installing Datarobot with Helm Chart.

ArgoCD Application Definition

Create an ArgoCD Application definition file datarobot-platform.yaml. This file defines the target cluster, the source repository, and the Helm parameters.

Here is an exmaple datarobot-platform.yaml:

apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
  name: datarobot-platform
  namespace: ARGOCD_NAMESPACE
spec:
  project: default
  destination:
    server: https://kubernetes.default.svc
    namespace: DATAROBOT_NAMESPACE
  syncPolicy:
    automated:
      prune: true
      selfHeal: true
    syncOptions:
      - CreateNamespace=true
    ignoreDifferences:
      - group: apps
        kind: Deployment
        jsonPointers:
          - /spec/replicas
      - group: apps
        kind: StatefulSet
        jsonPointers:
          - /spec/replicas
  source:
    repoURL: registry-1.docker.io
    targetRevision: X.X.X
    chart: datarobotdev/datarobot-prime
    helm:
      valuesObject:
        ... 

Make sure to populate valuesObject with the DataRobot platform values suitable for your environment. For details see: Installing Datarobot with Helm Chart

  • Replace ARGOCD_NAMESPACE with your ArgoCD namespace.
  • Replace DATAROBOT_NAMESPACE with your DataRobot namespace.
  • Replace X.X.X with the latest release chart version.

ArgoCD Self-Heal

Certain DataRobot platform resources can be manually scaled by an administrator or an autoscaler (like the Horizontal Pod Autoscaler - HPA) after the initial deployment. If ArgoCD isn't configured to ignore these manual changes, it will detect the discrepancy between the desired and the live states in the cluster and try to "self-heal" by reverting the replica counts back.

To prevent this unwanted behaviour, you must configure ArgoCD to ignore differences for specific fields, allowing operational flexibility without compromising the overall control plane.

Make sure following snipped exist in the ArgoCD Application definition for the DataRobot platform.

spec:
  syncPolicy:
    ignoreDifferences:
      - group: apps
        kind: Deployment
        jsonPointers:
          - /spec/replicas
      - group: apps
        kind: StatefulSet
        jsonPointers:
          - /spec/replicas