Skip to main content

Akuity Platform Declarative Management

Platform-specific settings

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

Managing Argo CD Instances

Use the following steps to manage existing Argo CD instances with the Akuity Platform:

  1. Export Configuration: Use the akuity argocd export <name> --organization-name <org-name> command to export the existing instance configuration.

    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 Configuration: Use the akuity argocd diff <name> --organization-name <org-name> command to compare local configuration with the current state of the Akuity Platform.

    akuity argocd diff demo --organization-name demo -f argocd/demo/
  3. Apply Changes: Use the akuity argocd apply -f <configuration-path> command to apply changes to the Akuity Platform.

    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.

Managing Kargo Instances

Use the following steps to manage existing Kargo instances with the Akuity Platform:

  1. Export Configuration: Use the akuity kargo export <name> --organization-name <org-name> command to export the existing instance configuration.

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

    akuity kargo diff demo --organization-name demo -f kargo/demo/
  3. Apply Changes: Use the akuity kargo apply -f <configuration-path> command to apply changes to the Akuity Platform.

    akuity kargo apply -f kargo/demo/

Configuration specifications

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/.