Skip to main content

Using ArgoCD to deploy Thoras

Thoras uses Kubernetes Secrets to share RDBMS passwords between components. Due to how ArgoCD interprets Helm templates, it may detect these Secrets as constantly out of sync, resulting in unnecessary updates. To prevent these updates, add this spec.ignoreDifferences configuration to your ArgoCD Application manifest. This tells ArgoCD to ignore changes to the data fields of thoras Secrets after they are created. It also ignores replica count changes on the thoras-forecast-worker deployment, which Thoras manages directly.

Example Application config

Using ArgoCD to manage a Thoras horizontally controlled workload

When Thoras manages horizontal scaling for a workload, it uses a validation webhook to prevent the default Kubernetes Horizontal Pod Autoscaler (HPA) from reducing replicas during anticipated usage spikes. By design, this ensures workloads remain scaled up until Thoras determines it’s safe to scale down. However, ArgoCD interprets these blocked scale-down attempts as HPA errors. This can cause the Application to appear in a degraded state even though the workload is healthy. To prevent this, you can customize ArgoCD’s health assessment logic for HPAs so that these Thoras-specific conditions are handled correctly.

When Do I Need This?

You only need this customization if all of the following are true:
  • The workload is horizontally controlled by Thoras.
  • You are using ArgoCD to monitor the workload state.
  • You notice ArgoCD incorrectly marking the HPA as Degraded when Thoras blocks a scale-down.
If your workloads are not using Thoras for horizontal scaling, this customization is unnecessary. 1. Edit the ArgoCD ConfigMap: Open the argocd-cm ConfigMap in the argocd namespace:
2. Add the following customizations under data:
3. Edit the ArgoCD ConfigMap: 4. Restart ArgoCD components (to apply changes):