This project is an implementation using the ansible-collection infra.controller_configuration to configure Ansible Automation Platform using Ansible Automation Platform itself (self-hosted).
Four key principles of GitOps (a term coined by WeaveWorks)
- Describe the desired state of the whole system using a declarative specification.
- There is a convergence mechanism to bring the desired and observed states in sync.
- Hence all Git commits cause verifiable and idempotent updates in the cluster.
- Convergence is eventual.
When we want to adhere to these principles we need to provision the platform so that:
- Reconciliation can run using Ansible Automation Platform
- An organization with galaxy_credentials is present
- Minimal credentials types: Source Control, Vault, Machine
- The Controller project (this repo), is loaded.
- An inventory with localhost is owned.
- A job template from the controller project to run the playbook with the Vault credential.
- This project has configuration as an
inventory
withgroup_vars
for the controller - This configuration manages the Ansible Controller, and adds ansible_inventory and ansible_project.git and demoes.
- Forks of this repo can be used to define your whole infra GitOps style.
- No need to use the API
- No need to write setup playbooks.