An Ansible-driven installer that deploys Ascender, Ledger, and the Galaxy Proxy onto Kubernetes. You do not need an existing cluster or Kubernetes expertise. For every supported platform the installer can provision the cluster on your behalf and write the access file to ~/.kube/config.
- Control machine on Enterprise Linux 8 or 9, or Ubuntu/Debian 24 or 26,
x86_64only- Enterprise Linux covers Rocky, RHEL, Alma, CentOS, and Fedora
- EL 9 is required when
k8s_platformisaks,gke, oreks - Ubuntu and Debian are not supported for
aks,gke, oreks
git:sudo dnf install git -yorsudo apt-get install git -yansible-core: installed bysetup.shwhen missing- SSH access to
ascender_hostas a user that canbecomeroot - An existing
~/.kube/config, orkube_install: trueto build the cluster
Clone the repository onto the control machine:
git clone https://github.com/ctrliq/ascender-install.git
cd ascender-installGenerate a configuration file, point the inventory at your target host, then run the installer:
./config_vars.sh # interactive; writes custom.config.yml (gitignored)
./setup.shsetup.sh reads custom.config.yml when present and falls back to default.config.yml. To change an existing deployment (switching to SSL, adding Ledger, or moving to a new Ascender version), edit the config and rerun setup.sh.
Platform-by-platform walkthroughs, including config and inventory templates for each, are in docs/README.md.
Two files drive every install, both at the repository root:
| File | Purpose |
|---|---|
default.config.yml |
Every available variable, documented inline by comment |
inventory |
Defines ascender_host with ansible_host, ansible_user, and ansible_port |
The variables referenced most often:
k8s_platform:k3s,eks,aks,gke,rke2,dkp,ocp, ortkgikube_install: whether the installer provisions the cluster itselfk8s_offline: use bundled images instead of pulling from the internetk8s_lb_protocol:http, orhttpswith certificate and key pathsLEDGER_INSTALL: whether Ledger is deployed alongside AscenderPROXY_INSTALL: whether the Galaxy Proxy is deployedtmp_dir: where install artifacts are staged on the control machine
On k3s, RKE2, and DKP the installer can run without outside internet access, using either the bundled container images or images you have mirrored into an internal registry. A bundled Ascender Operator is included for the same purpose. See the guide for your platform in docs/installation.
- 8 platform installers: k3s, EKS, AKS, GKE, RKE2, DKP, OCP, TKGI
- 12 roles: cluster setup, Ascender, Ledger, Galaxy Proxy, backup, restore, migration
- AWX migration: move an existing AWX deployment onto Ascender in place
- Troubleshooting guides: DNS, kubeconfig, API startup, namespace deletion
| 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.
- Report bugs and platform requests 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.md and COPYRIGHT.md.