A Kubernetes operator that deploys and manages Ascender, built with the Operator SDK and Ansible. It reconciles Ascender deployments, their backups and restores, and automation mesh ingress, from custom resources you apply to the cluster.
- A Kubernetes cluster, and
kubectlconfigured to reach it helm, if installing from the chartmake,nox, andmolecule, for development and testing
Most users should not install this directly. The Ascender installer deploys it as part of a normal install.
To deploy it on its own:
make deployApply a custom resource describing the deployment you want, then let the operator reconcile it:
kubectl apply -f awx-demo.ymlAn automation mesh ingress is declared the same way, using awxmeshingress-demo.yml as the starting point.
Deployment options are set as fields on the custom resource rather than as operator settings. The config/ directory holds the CRDs, RBAC, and manager manifests, and .helm/starter holds the chart used for Helm-based installs.
The operator watches four custom resource kinds in the awx.ansible.com group:
AWX: the Ascender deployment itself, reconciled by theinstallerroleAWXBackup: backup of an existing deployment, including its databaseAWXRestore: restore of a deployment from a previously taken backupAWXMeshIngress: ingress configuration for Ascender automation mesh
Molecule drives the operator test suite, orchestrated through nox.
- Full suite:
nox - Molecule directly:
molecule test
Smoke tests also run automatically as part of the release workflows, so there is no need to trigger them by hand.
Releases normally happen through the Stage Release workflow, which runs smoke tests before publishing.
- The workflow creates a draft release, usually triggered from the Ascender release
- Publishing the draft runs the promote workflow, which pushes the image and chart
- To release the operator independently, run Stage Release in this repository
| Repository | Description |
|---|---|
| ascender | The platform itself: web UI, REST API, and task engine |
| ascender-install | Installer for Ascender and Ledger, with Galaxy Proxy support |
| ascender-k8s-install | Kubernetes installer for Ascender, Ledger, and React |
| ascender-pro-install | Enhanced installer adding Reaqt, Registry, and Galaxy Proxy |
| ascender-operator | Kubernetes operator that deploys and manages Ascender |
| ascender-ee | Default execution environment image for Ascender jobs |
| ascender-kit | The ascender command line client and Python API library |
| ascender-collection | The ctrliq.ascender Ansible collection for a controller |
| ascender-ledger | Reporting tool for host facts and playbook changes |
| ascender-galaxy-proxy | Caching proxy for Ansible Galaxy collection downloads |
| ascender-playbooks | Example playbooks for use with Ascender |
- See CONTRIBUTING.md for development setup, testing, and pull requests.
- Target the
develbranch, which is this repository's default and its CI branch. - Report bugs and feature ideas via GitHub Issues.
- For security vulnerabilities, follow SECURITY.md rather than opening an issue.
- Join the Ascender forum to discuss development topics.
Licensed under the Apache License 2.0. See LICENSE for the full text.
Originally built in 2019 by Jeff Geerling as the AWX Operator, and maintained for Ascender by Ctrl IQ.