Installing Ascender Pro
Overview
This guide covers installing Ascender Pro alongside an existing Ascender deployment.
Ascender Pro provides analytics, reporting, and log aggregation for Ascender. It captures job events, change tracking, and fact data from Ascender in real time and presents them through a dedicated web interface.
Ascender Pro is installed using the same ascender-install tool and custom.config.yml configuration file as Ascender. See the Ascender Installation Guide for full details on setting up Ascender first. The installer deploys three components into their own Kubernetes namespace:
- Web: the Ascender Pro UI for viewing analytics and reports
- Parser: ingests log data from Ascender and stores it in the database
- Database: a MariaDB instance for persistent storage (or an external database you provide)
CIQ distributes Ascender Pro images through the Depot registry (depot.ciq.com). Contact us if you would like to learn more or get access.
Prerequisites
- A working Ascender installation (see the Ascender Installation Guide)
- Depot registry credentials (username and token) from the CIQ Portal
- A DNS-resolvable hostname for the Ascender Pro web UI
- If using TLS, both the Ascender and Ascender Pro hostnames should be covered by the same certificate. If that is not possible, contact CIQ support for guidance on split-certificate configurations.
System Requirements
When installing Ascender Pro alongside Ascender on a single K3s node, the minimum requirements increase:
| Resource | Ascender Only | Ascender + Ascender Pro |
|---|---|---|
| CPUs | 2 | 2 |
| Memory | 4 GB | 8 GB |
Disk (/var) | 20 GB | 30 GB |
These are minimums. For production use, 4 CPUs, 16 GB memory, and 60 GB in /var are recommended. Additional parser and web replicas each add roughly 1 GB of memory overhead.
Configuration
Ascender Pro was previously named Ledger. The product has been renamed but the configuration variables still use the LEDGER_ prefix. LEDGER_INSTALL, LEDGER_HOSTNAME, and all related variables refer to Ascender Pro.
In your custom.config.yml, set LEDGER_INSTALL: true and configure the Ascender Pro variables. The following sets the minimum required variables to deploy Ascender Pro (your file will also contain the Ascender and platform variables from the Ascender Installation Guide):
LEDGER_INSTALL: true
LEDGER_HOSTNAME: ledger.example.com
LEDGER_NAMESPACE: ledger
LEDGER_REGISTRY:
BASE: depot.ciq.com
USERNAME: <your-depot-username>
PASSWORD: <your-depot-token>
LEDGER_ADMIN_PASSWORD: "change-me"
LEDGER_DB_PASSWORD: "change-me"
LEDGER_VERSION: latest
LEDGER_WEB_IMAGE: depot.ciq.com/ascender-ledger-pro/ascender-ledger-pro-images/ledger-web
LEDGER_PARSER_IMAGE: depot.ciq.com/ascender-ledger-pro/ascender-ledger-pro-images/ledger-parser
LEDGER_DB_IMAGE: depot.ciq.com/ascender-ledger-pro/ascender-ledger-pro-images/ledger-db
The LEDGER_REGISTRY block is required when pulling images from depot.ciq.com. The installer uses these credentials to create a Kubernetes image pull secret in the Ascender Pro namespace.
Full Example (K3s with Ascender Pro)
Use this as a starting point for a fresh K3s deployment with both Ascender and Ascender Pro. For a full walkthrough of the Ascender variables and install process, see the Ascender Installation Guide:
k8s_platform: k3s
k8s_lb_protocol: https
kube_install: true
download_kubeconfig: true
tls_crt_path: "~/ascender.crt"
tls_key_path: "~/ascender.key"
ASCENDER_HOSTNAME: ascender.example.com
ASCENDER_ADMIN_PASSWORD: "change-me"
ascender_image_pull_policy: IfNotPresent
LEDGER_INSTALL: true
LEDGER_HOSTNAME: ledger.example.com
LEDGER_NAMESPACE: ledger
LEDGER_REGISTRY:
BASE: depot.ciq.com
USERNAME: <your-depot-username>
PASSWORD: <your-depot-token>
LEDGER_ADMIN_PASSWORD: "change-me"
LEDGER_DB_PASSWORD: "change-me"
LEDGER_VERSION: latest
LEDGER_WEB_IMAGE: depot.ciq.com/ascender-ledger-pro/ascender-ledger-pro-images/ledger-web
LEDGER_PARSER_IMAGE: depot.ciq.com/ascender-ledger-pro/ascender-ledger-pro-images/ledger-parser
LEDGER_DB_IMAGE: depot.ciq.com/ascender-ledger-pro/ascender-ledger-pro-images/ledger-db
Running the Installer
Update your custom.config.yml with the Ascender Pro variables above and run the installer:
sudo ./setup.sh
The installer detects that LEDGER_INSTALL is true and deploys the Ascender Pro components into the configured namespace. It also automatically configures Ascender's logging integration to send data to the Ascender Pro parser.
Post-Installation
Verify the Deployment
Check that the Ascender Pro pods are running:
kubectl get pods -n ledger
You should see pods for the web, parser, and database components, all in Running state.
Logging Integration
The installer automatically configures Ascender to forward job events and log data to Ascender Pro. You can verify this by logging into Ascender and navigating to Settings > Logging Settings. You should see:
- External Logging is enabled
- Logging Aggregator shows an internal cluster IP address (the parser service)
- Logging Aggregator Password shows
ENCRYPTED(this is token-based authentication configured automatically)
If logging integration needs to be reconfigured, re-running the installer will reset these settings.
Default Credentials
The Ascender Pro admin username is admin. The password is the value you set for LEDGER_ADMIN_PASSWORD in your configuration.
License Activation
Ascender Pro requires a license file provided by CIQ. If you do not have one, contact your CIQ sales representative or open a ticket at portal.ciq.com.
To activate the license:
- Log into the Ascender Pro web UI at your configured
LEDGER_HOSTNAME - Navigate to Settings > License
- Upload the provided
.jsonlicense file
Do not modify the license file in any way. The file contains an embedded signature that must match exactly. It must retain its .json extension.
Once the license is activated, Ascender Pro begins receiving and displaying data from Ascender. To test the integration, log into Ascender, navigate to Projects, and sync one of the projects. In Ascender Pro, the Dashboard should show data populating in the Job Events graphs. As you run additional jobs in Ascender, Changes and Fact data will appear in real time.
Scaling
Ascender Pro can be scaled by adding web and parser replicas. Each additional replica increases capacity for concurrent users (web) or log ingestion throughput (parser).
ledger_web_replicas: 2
ledger_parser_replicas: 2
As a rough guideline, each additional container adds approximately 1 GB of memory overhead. After changing replica counts, re-run the installer to apply the changes.
Upgrading
To pick up a new Ascender Pro release, force a rollout restart so Kubernetes pulls the latest image:
kubectl rollout restart deployment/web deployment/parser deployment/db -n ledger
This works when LEDGER_VERSION is set to latest (the default). If you have pinned LEDGER_VERSION to a specific tag, update it in custom.config.yml and re-run ./setup.sh instead.
Ascender Pro upgrades currently use a different workflow than Ascender upgrades. Ascender is upgraded by re-running ./setup.sh after bumping the version in custom.config.yml. Ascender Pro with LEDGER_VERSION: latest requires a manual kubectl rollout restart instead. Aligning these workflows is a known gap that will be addressed in a future installer update.
Configuration Reference
Core Settings
| Variable | Default | Description |
|---|---|---|
LEDGER_INSTALL | false | Set to true to install Ascender Pro |
LEDGER_HOSTNAME | ledger.example.com | DNS-resolvable hostname for the Ascender Pro web UI |
LEDGER_NAMESPACE | ledger | Kubernetes namespace for Ascender Pro objects |
LEDGER_VERSION | latest | Image tag for Ascender Pro containers |
LEDGER_ADMIN_PASSWORD | (required) | Admin password (username is admin). Change this before installing |
LEDGER_DB_PASSWORD | mydbpassword | Password for the built-in MariaDB database |
Container Images
Ascender Pro customers use the Depot registry images:
| Variable | Value |
|---|---|
LEDGER_WEB_IMAGE | depot.ciq.com/ascender-ledger-pro/ascender-ledger-pro-images/ledger-web |
LEDGER_PARSER_IMAGE | depot.ciq.com/ascender-ledger-pro/ascender-ledger-pro-images/ledger-parser |
LEDGER_DB_IMAGE | depot.ciq.com/ascender-ledger-pro/ascender-ledger-pro-images/ledger-db |
The open-source defaults (ghcr.io/ctrliq/ascender-ledger/...) are available for non-Pro deployments but are not covered by this guide.
Registry Authentication
Required when pulling from depot.ciq.com or any authenticated registry:
LEDGER_REGISTRY:
BASE: depot.ciq.com
USERNAME: your-username
PASSWORD: your-token
Scaling
| Variable | Default | Description |
|---|---|---|
ledger_web_replicas | 1 | Number of Ascender Pro web pods |
ledger_parser_replicas | 1 | Number of Ascender Pro parser pods |
Database
By default, Ascender Pro deploys its own MariaDB instance. To use an external database instead:
| Variable | Default | Description |
|---|---|---|
LEDGER_DB_HOST | db | Database hostname. Change from db to use an external database |
LEDGER_DB_PORT | 3306 | Database port |
LEDGER_DB_NAME | ledger | Database name |
LEDGER_DB_USERNAME | ledger | Database username |
Storage
Storage for the built-in database is configurable on new installs only:
| Variable | Default | Description |
|---|---|---|
LEDGER_PVC_SIZE_GB | 10 | PVC size in GB for the MariaDB database |
LEDGER_PVC_STORAGE_CLASS | (cluster default) | Storage class for the PVC |
Do not change LEDGER_PVC_SIZE_GB or LEDGER_PVC_STORAGE_CLASS on an existing install. The operator does not handle PVC resizing automatically.