Argo CD

Argo CD is a declarative, GitOps continuous delivery tool for Kubernetes. Argo CD aligns with the GitOps principles, ensuring that the deployment of groundcover is always in sync with the predefined configurations in your Git repository. This means that any changes made to the deployment configurations are automatically applied to the cluster, streamlining updates and ensuring that all instances of groundcover are consistent across different environments.

Argo CD’s multi-environment support ensures that groundcover can be deployed consistently across various Kubernetes clusters, whether they are designated for development, testing, or production.

To deploy groundcover through Argo CD, use the following steps:

Create Argo CD Application Manifest

Set <project-name> to match your environment.

Set <groundcover-version> a specific chart version or use">= 1.0.0" for auto upgrades.

apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
  name: groundcover
  namespace: argocd
spec:
  project: <project-name>
  source:
    chart: groundcover
    repoURL: https://helm.groundcover.com
    targetRevision: "<groundcover-version>"
    helm:
      releaseName: groundcover
      valueFiles:
      - values.yaml
  destination:
    server: "https://kubernetes.default.svc"
    namespace: groundcover
  # avoid OutOfSync state on secrets with random-data.
  # https://argo-cd.readthedocs.io/en/stable/user-guide/helm/#random-data
  syncPolicy:
    syncOptions:
    - CreateNamespace=true
    - RespectIgnoreDifferences=true
  ignoreDifferences:
  - kind: Secret
    jsonPointers:
    - /data
  - group: apps
    kind: '*'
    jsonPointers:
    - /spec/template/metadata/annotations/checksum~1secret

Create Secrets

  • Either manually or using a secret manager, create a secret in the following structure

<apikey> can be fetched using groundcover's CLI. groundcover auth print-api-key

apiVersion: v1
kind: Secret
metadata:
  name: groundcover-api-key
  namespace: groundcover
stringData:
  API_KEY: <apikey>
type: Opaque
---
apiVersion: v1
kind: Secret
metadata:
  name: groundcover-clickhouse
  namespace: groundcover
type: Opaque
stringData:
  admin-password: <random-password>
  • Add the following overrides to your helm override values

The <cluster-name> value below can be any name you wish to assign to the cluster where the platform is installed. In multi-cluster installations, make sure to change it according to the cluster being installed!

clusterId: <cluster-name>
global:
  groundcoverPredefinedTokenSecret:
    secretKey: API_KEY
    secretName: groundcover-api-key
  clickhouse:
    auth:
      existingSecretKey: admin-password
      existingSecret: groundcover-clickhouse

Last updated