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:
-
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' -
-
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% -
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:
- Engineers make changes to the declarative configuration of the Akuity Platform in the
argocd
directory and create Pull Request with the proposed changes. - 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.
- Reviewers review the proposed changes and detected changes report and approve the Pull Request.
- GitHub action workflow applies the proposed changes to the Akuity Platform.
See the example live demo at https://github.com/akuity/akp-declarative/.