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
Overview¶
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.
Prerequisites¶
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_NAMESPACEwith your ArgoCD namespace. - Replace
DATAROBOT_NAMESPACEwith your DataRobot namespace. - Replace
X.X.Xwith 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