Skip to main content

Akuity Platform Declarative Management

Platform-specific settings

Declarative management of platform-specific settings is implemented using akuity CLI.

Use the following steps to start managing existing Argo CD instance managed by the Akuity Platform:

  1. Export existing instance configuration using akuity argocd export <name> --organization-name <org-name> command:

    Note. yq provides a convenient way to split the output into multiple files.

    akuity argocd export demo --organization-name demo | yq -s '.metadata.name' -
  2. Compare local configuration with the current state of the Akuity Platform using akuity argocd diff <name> --organization-name <org-name> command:

    akuity argocd diff demo --organization-name demo -f argocd/demo/

    ===== argoproj.io/v1alpha1/ArgoCD/demo ======
    6c6
    < description: Demo purposes (https://demo.cd.akuity.cloud/)
    ---
    > description: Demo purposes
    ▸ print diff: exit status 1%
  3. Apply changes to the Akuity Platform using akuity argocd apply -f <configuration-path> command:

    akuity argocd apply -f argocd/demo/

Configuration specifications

The declarative configuration that defines Argo CD instance state has the same format as open-source Argo CD and described here. The Akuity Platform specific settings, such as instance name, IP allows lists and other additional features are defined using argocd.akuity.io/v1alpha1/ArgoCD resource.

Example of the declarative configuration:

apiVersion: argocd.akuity.io/v1alpha1
kind: ArgoCD
metadata:
name: test-inst
spec:
version: v2.6.0
description: test-inst
instanceSpec:
ipAllowList:
- ip: "1.2.3.4"
description: dummy entry
declarativeManagementEnabled: true

The reference specifications are available here.

Automated workflow

The GitOps workflow is implemented using GitHub Actions and is provides the following experience:

  1. Engineers make changes to the declarative configuration of the Akuity Platform in the argocd directory and create Pull Request with the proposed changes.
  2. GitHub action workflow compares the proposed changes with the current state of the Akuity Platform and posts detected changes as a comment to the Pull Request.
  3. Reviewers review the proposed changes and detected changes report and approve the Pull Request.
  4. GitHub action workflow applies the proposed changes to the Akuity Platform.

See the example live demo at https://github.com/akuity/akp-declarative/.