Skip to content

Latest commit

 

History

1,477 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Ascender Operator

CI License Operator SDK

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.

Requirements

  • A Kubernetes cluster, and kubectl configured to reach it
  • helm, if installing from the chart
  • make, nox, and molecule, for development and testing

Installation

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 deploy

Using the operator

Apply a custom resource describing the deployment you want, then let the operator reconcile it:

kubectl apply -f awx-demo.yml

An automation mesh ingress is declared the same way, using awxmeshingress-demo.yml as the starting point.

Configuration

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.

Included content

The operator watches four custom resource kinds in the awx.ansible.com group:

  • AWX: the Ascender deployment itself, reconciled by the installer role
  • AWXBackup: backup of an existing deployment, including its database
  • AWXRestore: restore of a deployment from a previously taken backup
  • AWXMeshIngress: ingress configuration for Ascender automation mesh

Testing

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.

Release process

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

The Ascender ecosystem

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

Contributing

  • See CONTRIBUTING.md for development setup, testing, and pull requests.
  • Target the devel branch, 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.

License

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.

About

An Ansible AWX operator for Kubernetes built with Operator SDK and Ansible. 🤖

Resources

Code of conduct

Contributing

Security policy

Stars

7 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages