From d451dc35177e51b4f905c1261cfe73a66e5aea56 Mon Sep 17 00:00:00 2001 From: Jimmy Conner Date: Wed, 9 Sep 2026 13:01:41 -0500 Subject: [PATCH 1/5] Ascender 25.6.2 --- README.md | 2 +- default.config.yml | 4 ++-- docs/configuration/upgrading.md | 6 +++--- docs/installation/aks/aks.custom.config.yml | 4 ++-- docs/installation/dkp/dkp.default.config.yml | 4 ++-- docs/installation/eks/eks.custom.config.yml | 4 ++-- docs/installation/gke/gke.custom.config.yml | 4 ++-- docs/installation/k3s/k3s.default.config.yml | 4 ++-- docs/installation/k3s/k3s.offline.default.config.yml | 4 ++-- docs/installation/rke2/rke2.default.config.yml | 4 ++-- playbooks/roles/ascender_install/defaults/main.yml | 2 +- .../templates/ascender-deployment/additional-spec.yml | 2 +- playbooks/roles/awx_migrate_ascender/README.md | 4 ++-- playbooks/roles/config_vars/tasks/ascender.yml | 8 ++++---- 14 files changed, 28 insertions(+), 28 deletions(-) diff --git a/README.md b/README.md index 10993bd..99f5636 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # Ascender Installer [![License](https://img.shields.io/badge/license-Apache--2.0-blue.svg)](./LICENSE.md) -[![Ascender](https://img.shields.io/badge/ascender-25.6.1-blue.svg)](https://github.com/ctrliq/ascender) +[![Ascender](https://img.shields.io/badge/ascender-25.6.2-blue.svg)](https://github.com/ctrliq/ascender) [![Platforms](https://img.shields.io/badge/platforms-8-blue.svg)](./docs/README.md) An Ansible-driven installer that deploys [Ascender](https://github.com/ctrliq/ascender), [Ledger](https://github.com/ctrliq/ascender-ledger), and the [Galaxy Proxy](https://github.com/ctrliq/ascender-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`. diff --git a/default.config.yml b/default.config.yml index f981e2c..f501aac 100644 --- a/default.config.yml +++ b/default.config.yml @@ -213,10 +213,10 @@ ASCENDER_ADMIN_PASSWORD: "myadminpassword" ASCENDER_IMAGE: ghcr.io/ctrliq/ascender # The image tag indicating the version of Ascender you wish to install -ASCENDER_VERSION: 25.6.1 +ASCENDER_VERSION: 25.6.2 # The version of the AWX Operator used to install Ascender and its components -#ASCENDER_OPERATOR_VERSION: 25.6.1 +#ASCENDER_OPERATOR_VERSION: 25.6.2 # DNS resolvable hostname for Ascender Mesh service. This is used by Execution Nodes to access Ascender. # Mesh will not be setup unless this is configured diff --git a/docs/configuration/upgrading.md b/docs/configuration/upgrading.md index fa63d38..62919f8 100644 --- a/docs/configuration/upgrading.md +++ b/docs/configuration/upgrading.md @@ -30,10 +30,10 @@ download_kubeconfig: false You already have a working kubeconfig and don't need to re-download it. ```yaml -ASCENDER_VERSION: 25.6.1 +ASCENDER_VERSION: 25.6.2 ``` -Replace `25.6.1` with the version you want to upgrade to. The list of available versions is here: +Replace `25.6.2` with the version you want to upgrade to. The list of available versions is here: [Ascender Releases](https://github.com/ctrliq/ascender/releases) @@ -104,6 +104,6 @@ kubectl rollout restart deployment/ascender-app-task -n ascender ```bash kube_install: false download_kubeconfig: false -ASCENDER_VERSION: 25.6.1 +ASCENDER_VERSION: 25.6.2 image_pull_policy: Always ``` diff --git a/docs/installation/aks/aks.custom.config.yml b/docs/installation/aks/aks.custom.config.yml index c146966..91fcdbc 100644 --- a/docs/installation/aks/aks.custom.config.yml +++ b/docs/installation/aks/aks.custom.config.yml @@ -51,9 +51,9 @@ ASCENDER_ADMIN_USER: admin # Administrator password for Ascender ASCENDER_ADMIN_PASSWORD: "myadminpassword" # The image tag indicating the version of Ascender you wish to install -ASCENDER_VERSION: 25.6.1 +ASCENDER_VERSION: 25.6.2 # The version of the AWX Operator used to install Ascender and its components -ASCENDER_OPERATOR_VERSION: 25.6.1 +ASCENDER_OPERATOR_VERSION: 25.6.2 # Determines whether to keep the secrets required to encrypt within Ascender (important when backing up) ascender_garbage_collect_secrets: false # External PostgreSQL database name used for Ascender (this DB must exist) diff --git a/docs/installation/dkp/dkp.default.config.yml b/docs/installation/dkp/dkp.default.config.yml index 394d73f..854d9a8 100644 --- a/docs/installation/dkp/dkp.default.config.yml +++ b/docs/installation/dkp/dkp.default.config.yml @@ -50,10 +50,10 @@ ASCENDER_ADMIN_PASSWORD: "myadminpassword" ASCENDER_IMAGE: ghcr.io/ctrliq/ascender # The image tag indicating the version of Ascender you wish to install -ASCENDER_VERSION: 25.6.1 +ASCENDER_VERSION: 25.6.2 # The version of the AWX Operator used to install Ascender and its components -ASCENDER_OPERATOR_VERSION: 25.6.1 +ASCENDER_OPERATOR_VERSION: 25.6.2 # Determines whether to keep the secrets required to encrypt within Ascender (important when backing up) ascender_garbage_collect_secrets: true diff --git a/docs/installation/eks/eks.custom.config.yml b/docs/installation/eks/eks.custom.config.yml index bb74d99..62b38b7 100644 --- a/docs/installation/eks/eks.custom.config.yml +++ b/docs/installation/eks/eks.custom.config.yml @@ -142,10 +142,10 @@ ASCENDER_ADMIN_PASSWORD: "myadminpassword" ASCENDER_IMAGE: ghcr.io/ctrliq/ascender # The image tag indicating the version of Ascender you wish to install -ASCENDER_VERSION: 25.6.1 +ASCENDER_VERSION: 25.6.2 # The version of the AWX Operator used to install Ascender and its components -ASCENDER_OPERATOR_VERSION: 25.6.1 +ASCENDER_OPERATOR_VERSION: 25.6.2 # Determines whether to keep the secrets required to encrypt within Ascender (important when backing up) ascender_garbage_collect_secrets: true diff --git a/docs/installation/gke/gke.custom.config.yml b/docs/installation/gke/gke.custom.config.yml index 2ea6b6b..5b8337b 100644 --- a/docs/installation/gke/gke.custom.config.yml +++ b/docs/installation/gke/gke.custom.config.yml @@ -47,9 +47,9 @@ ASCENDER_ADMIN_USER: admin # Administrator password for Ascender ASCENDER_ADMIN_PASSWORD: "myadminpassword" # The image tag indicating the version of Ascender you wish to install -ASCENDER_VERSION: 25.6.1 +ASCENDER_VERSION: 25.6.2 # The version of the AWX Operator used to install Ascender and its components -ASCENDER_OPERATOR_VERSION: 25.6.1 +ASCENDER_OPERATOR_VERSION: 25.6.2 # Determines whether to keep the secrets required to encrypt within Ascender (important when backing up) ascender_garbage_collect_secrets: false # External PostgreSQL database name used for Ascender (this DB must exist) diff --git a/docs/installation/k3s/k3s.default.config.yml b/docs/installation/k3s/k3s.default.config.yml index e084d61..a54d9e7 100644 --- a/docs/installation/k3s/k3s.default.config.yml +++ b/docs/installation/k3s/k3s.default.config.yml @@ -89,10 +89,10 @@ ASCENDER_ADMIN_PASSWORD: "myadminpassword" ASCENDER_IMAGE: ghcr.io/ctrliq/ascender # The image tag indicating the version of Ascender you wish to install -ASCENDER_VERSION: 25.6.1 +ASCENDER_VERSION: 25.6.2 # The version of the AWX Operator used to install Ascender and its components -ASCENDER_OPERATOR_VERSION: 25.6.1 +ASCENDER_OPERATOR_VERSION: 25.6.2 # Determines whether to keep the secrets required to encrypt within Ascender (important when backing up) ascender_garbage_collect_secrets: true diff --git a/docs/installation/k3s/k3s.offline.default.config.yml b/docs/installation/k3s/k3s.offline.default.config.yml index 432e5d3..dfa55d3 100644 --- a/docs/installation/k3s/k3s.offline.default.config.yml +++ b/docs/installation/k3s/k3s.offline.default.config.yml @@ -89,10 +89,10 @@ ASCENDER_ADMIN_PASSWORD: "myadminpassword" ASCENDER_IMAGE: ghcr.io/ctrliq/ascender # The image tag indicating the version of Ascender you wish to install -ASCENDER_VERSION: 25.6.1 +ASCENDER_VERSION: 25.6.2 # The version of the AWX Operator used to install Ascender and its components -ASCENDER_OPERATOR_VERSION: 25.6.1 +ASCENDER_OPERATOR_VERSION: 25.6.2 # Determines whether to keep the secrets required to encrypt within Ascender (important when backing up) ascender_garbage_collect_secrets: true diff --git a/docs/installation/rke2/rke2.default.config.yml b/docs/installation/rke2/rke2.default.config.yml index 2c4c316..1cf4f57 100644 --- a/docs/installation/rke2/rke2.default.config.yml +++ b/docs/installation/rke2/rke2.default.config.yml @@ -37,9 +37,9 @@ ASCENDER_ADMIN_PASSWORD: "myadminpassword" # The OCI container image for Ascender ASCENDER_IMAGE: ghcr.io/ctrliq/ascender # The image tag indicating the version of Ascender you wish to install -ASCENDER_VERSION: 25.6.1 +ASCENDER_VERSION: 25.6.2 # The version of the AWX Operator used to install Ascender and its components -ASCENDER_OPERATOR_VERSION: 25.6.1 +ASCENDER_OPERATOR_VERSION: 25.6.2 # Determines whether to keep the secrets required to encrypt within Ascender (important when backing up) ascender_garbage_collect_secrets: false # External PostgreSQL database name used for Ascender (this DB must exist) diff --git a/playbooks/roles/ascender_install/defaults/main.yml b/playbooks/roles/ascender_install/defaults/main.yml index de12389..0d1dcae 100644 --- a/playbooks/roles/ascender_install/defaults/main.yml +++ b/playbooks/roles/ascender_install/defaults/main.yml @@ -24,6 +24,6 @@ ASCENDER_IMAGE: ghcr.io/ctrliq/ascender ASCENDER_VERSION: latest # The version of the AWX Operator used to install Ascender and its components -ASCENDER_OPERATOR_VERSION: 25.6.1 +ASCENDER_OPERATOR_VERSION: 25.6.2 k8s_container_registry: ghcr.io/ctrliq diff --git a/playbooks/roles/ascender_install/templates/ascender-deployment/additional-spec.yml b/playbooks/roles/ascender_install/templates/ascender-deployment/additional-spec.yml index 37bc9e1..648dc5b 100644 --- a/playbooks/roles/ascender_install/templates/ascender-deployment/additional-spec.yml +++ b/playbooks/roles/ascender_install/templates/ascender-deployment/additional-spec.yml @@ -3,7 +3,7 @@ {% else %} image: {{ ASCENDER_IMAGE }} {% endif %} - image_version: {{ ASCENDER_VERSION | default("25.6.1") }} + image_version: {{ ASCENDER_VERSION | default("25.6.2") }} {% if k8s_platform == "k3s" and k8s_offline | default(false) | bool %} image_pull_policy: Never {% else %} diff --git a/playbooks/roles/awx_migrate_ascender/README.md b/playbooks/roles/awx_migrate_ascender/README.md index 5a9e1dd..a7e577f 100644 --- a/playbooks/roles/awx_migrate_ascender/README.md +++ b/playbooks/roles/awx_migrate_ascender/README.md @@ -769,13 +769,13 @@ These fields cause the operator to mount volumes, register execution environment | Field | AWX source value | Ascender CR value | Why keep Ascender's | |---|---|---|---| | `image` | Source AWX image | `ghcr.io/ctrliq/ascender` | Different product, different image repo. | -| `image_version` | not in backup | `25.6.1` | Ascender-specific. | +| `image_version` | not in backup | `25.6.2` | Ascender-specific. | | `redis_image` | Source redis image | `ghcr.io/valkey-io/valkey` | Ascender uses valkey, not redis. | | `route_host` | Source AWX hostname | Destination Ascender hostname | DNS-specific. Source hostname would break routing. | | `hostname` | not in backup | Destination Ascender hostname | Matches route_host. | | `extra_settings` (CSRF) | not in backup | CSRF trusted origins for destination hostname | Tied to hostname. | | `admin_user` | `admin` | `admin` | Same. Set by Ascender install. | -| `control_plane_ee_image` | not in backup | `ghcr.io/ctrliq/ascender-ee:25.6.1` | Ascender-specific. | +| `control_plane_ee_image` | not in backup | `ghcr.io/ctrliq/ascender-ee:25.6.2` | Ascender-specific. | | `init_container_image` | not in backup | `ghcr.io/ctrliq/ascender-ee` | Ascender-specific. | | `postgres_image` | not in backup | `quay.io/sclorg/postgresql-15-c9s` | Ascender-specific. | | `garbage_collect_secrets` | `false` | `true` | Ascender install set this. Keep. | diff --git a/playbooks/roles/config_vars/tasks/ascender.yml b/playbooks/roles/config_vars/tasks/ascender.yml index c545f34..088238e 100644 --- a/playbooks/roles/config_vars/tasks/ascender.yml +++ b/playbooks/roles/config_vars/tasks/ascender.yml @@ -85,24 +85,24 @@ - name: "The image tag indicating the version of Ascender you wish to install" prompt: - prompt: "Enter your selection [{{ config_data.ASCENDER_VERSION | default('25.6.1') }}]: " + prompt: "Enter your selection [{{ config_data.ASCENDER_VERSION | default('25.6.2') }}]: " register: config_vars_ascender_version - name: Save the Ascender version vars: - ascender_version_default: "{{ config_data.ASCENDER_VERSION | default('25.6.1') }}" + ascender_version_default: "{{ config_data.ASCENDER_VERSION | default('25.6.2') }}" ascender_version_value: "{{ config_vars_ascender_version.user_input | trim | default(ascender_version_default, true) }}" ansible.builtin.set_fact: config_data: "{{ config_data | combine({'ASCENDER_VERSION': ascender_version_value}, recursive=True) }}" - name: "The version of the AWX Operator used to install Ascender" prompt: - prompt: "Enter your selection [{{ config_data.ASCENDER_OPERATOR_VERSION | default('25.6.1') }}]: " + prompt: "Enter your selection [{{ config_data.ASCENDER_OPERATOR_VERSION | default('25.6.2') }}]: " register: config_vars_ascender_operator_version - name: Save the Ascender operator version vars: - ascender_operator_version_default: "{{ config_data.ASCENDER_OPERATOR_VERSION | default('25.6.1') }}" + ascender_operator_version_default: "{{ config_data.ASCENDER_OPERATOR_VERSION | default('25.6.2') }}" ascender_operator_version_value: "{{ config_vars_ascender_operator_version.user_input | trim | default(ascender_operator_version_default, true) }}" ansible.builtin.set_fact: config_data: "{{ config_data | combine({'ASCENDER_OPERATOR_VERSION': ascender_operator_version_value}, recursive=True) }}" From 67571b0ccf711acc1c886d631201e11c6a45f014 Mon Sep 17 00:00:00 2001 From: Jimmy Conner Date: Wed, 9 Sep 2026 13:37:03 -0500 Subject: [PATCH 2/5] Missed a few --- playbooks/group_vars/all.yml | 6 +++--- setup.sh | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/playbooks/group_vars/all.yml b/playbooks/group_vars/all.yml index 214aa91..6822cb4 100644 --- a/playbooks/group_vars/all.yml +++ b/playbooks/group_vars/all.yml @@ -216,10 +216,10 @@ ASCENDER_ADMIN_PASSWORD: "myadminpassword" ASCENDER_IMAGE: ghcr.io/ctrliq/ascender # The image tag indicating the version of Ascender you wish to install -ASCENDER_VERSION: 25.6.1 +ASCENDER_VERSION: 25.6.2 # The version of the AWX Operator used to install Ascender and its components -ASCENDER_OPERATOR_VERSION: 25.6.1 +ASCENDER_OPERATOR_VERSION: 25.6.2 # DNS resolvable hostname for Ascender Mesh service. This is used by Execution Nodes to access Ascender. # Mesh will not be setup unless this is configured @@ -346,7 +346,7 @@ required_collections: version_type: semver platform: ["azure", "dkp", "eks", "gcp", "k3s", "rke2"] - name: ctrliq.ascender - version: "25.6.1" + version: "25.6.2" compare: ">=" version_type: semver platform: ["azure", "dkp", "eks", "gcp", "k3s", "rke2"] diff --git a/setup.sh b/setup.sh index d3b5937..55eb20d 100755 --- a/setup.sh +++ b/setup.sh @@ -134,7 +134,7 @@ if [ $? -ne 1 ]; then echo "#### INSTALLING COLLECTIONS ####" if [ -f "$(dirname $0)/offline/collections/ansible-posix-1.5.4.tar.gz" ]; then ansible-galaxy collection install $(dirname $0)/offline/collections/ansible-posix-1.5.4.tar.gz - ansible-galaxy collection install $(dirname $0)/offline/collections/ctrliq-ascender-25.6.1.tar.gz + ansible-galaxy collection install $(dirname $0)/offline/collections/ctrliq-ascender-25.6.2.tar.gz ansible-galaxy collection install $(dirname $0)/offline/collections/community-general-8.3.0.tar.gz ansible-galaxy collection install $(dirname $0)/offline/collections/kubernetes-core-2.4.0.tar.gz else From 9fa010e200225a7a0871834e0dbfc9e0a88a96fb Mon Sep 17 00:00:00 2001 From: Jimmy Conner Date: Wed, 9 Sep 2026 13:41:57 -0500 Subject: [PATCH 3/5] And another --- collections/requirements.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/collections/requirements.yml b/collections/requirements.yml index 08fbd8f..aa51ff5 100644 --- a/collections/requirements.yml +++ b/collections/requirements.yml @@ -8,7 +8,7 @@ collections: - name: ansible.posix version: ">=1.5.4" - name: ctrliq.ascender - version: "25.6.1" + version: "25.6.2" - name: community.docker version: ">=3.7.0" - name: community.general From 343e6aa33f99cb4093945f74b10d675c1ef5da19 Mon Sep 17 00:00:00 2001 From: Jimmy Conner Date: Wed, 9 Sep 2026 13:49:20 -0500 Subject: [PATCH 4/5] Fix config vars to ensure ansible is installed --- config_vars.sh | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/config_vars.sh b/config_vars.sh index 3a9f4b8..e886fb2 100755 --- a/config_vars.sh +++ b/config_vars.sh @@ -1,2 +1,41 @@ #!/bin/bash + +# Copyright (c) 2026, Ctrl IQ, Inc. All rights reserved. + +# Determine the OS family so we know which package manager to use +OS_FAMILY=$(grep -oP '(?<=^ID_LIKE=).+' /etc/os-release | tr -d '"') +if [ "$OS_FAMILY" == "" ]; then + OS_FAMILY=$(grep -oP '(?<=^ID=).+' /etc/os-release | tr -d '"') +fi +OS="" + +if [[ "$OS_FAMILY" == *"rhel"* || "$OS_FAMILY" == *"fedora"* || "$OS_FAMILY" == *"centos"* ]]; then + OS="rhel" +elif [[ "$OS_FAMILY" == *"debian"* || "$OS_FAMILY" == *"ubuntu"* ]]; then + OS="debian" +fi + +check_ansible() { + type -p ansible-playbook > /dev/null +} + +check_ansible +if [ $? -ne 0 ]; then + echo "#### INSTALLING ANSIBLE ####" + if [[ "$OS" == "debian" ]]; then + sudo apt-get update -y && sudo apt-get install -y ansible-core + elif [[ "$OS" == "rhel" ]]; then + sudo dnf install -y ansible-core + else + echo "Error: Unsupported OS family $OS_FAMILY. Unable to install Ansible automatically." + exit 1 + fi + + check_ansible + if [ $? -ne 0 ]; then + echo "Error: Ansible installation failed. Please install ansible-core and re-run this script." + exit 1 + fi +fi + ANSIBLE_STDOUT_CALLBACK=minimum_text ansible-playbook -i 'localhost,' playbooks/config_vars.yml From 83aac0f3d0bd81a7d4cdc60a0bf6d970995c42a6 Mon Sep 17 00:00:00 2001 From: Jimmy Conner Date: Wed, 9 Sep 2026 13:52:16 -0500 Subject: [PATCH 5/5] Fix unquoted path --- setup.sh | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/setup.sh b/setup.sh index 55eb20d..75b4b4b 100755 --- a/setup.sh +++ b/setup.sh @@ -79,10 +79,10 @@ if [ -t "0" ]; then ANSIBLE_FORCE_COLORS=True fi -if [ -f "$(dirname $0)/inventory.yml" ]; then - INVENTORY_FILE="$(dirname $0)/inventory.yml" +if [ -f "$(dirname "$0")/inventory.yml" ]; then + INVENTORY_FILE="$(dirname "$0")/inventory.yml" else - INVENTORY_FILE="$(dirname $0)/inventory" + INVENTORY_FILE="$(dirname "$0")/inventory" fi echo "Using Inventory File: ${INVENTORY_FILE}" @@ -132,11 +132,11 @@ fi check_collections if [ $? -ne 1 ]; then echo "#### INSTALLING COLLECTIONS ####" - if [ -f "$(dirname $0)/offline/collections/ansible-posix-1.5.4.tar.gz" ]; then - ansible-galaxy collection install $(dirname $0)/offline/collections/ansible-posix-1.5.4.tar.gz - ansible-galaxy collection install $(dirname $0)/offline/collections/ctrliq-ascender-25.6.2.tar.gz - ansible-galaxy collection install $(dirname $0)/offline/collections/community-general-8.3.0.tar.gz - ansible-galaxy collection install $(dirname $0)/offline/collections/kubernetes-core-2.4.0.tar.gz + if [ -f "$(dirname "$0")/offline/collections/ansible-posix-1.5.4.tar.gz" ]; then + ansible-galaxy collection install "$(dirname "$0")/offline/collections/ansible-posix-1.5.4.tar.gz" + ansible-galaxy collection install "$(dirname "$0")/offline/collections/ctrliq-ascender-25.6.2.tar.gz" + ansible-galaxy collection install "$(dirname "$0")/offline/collections/community-general-8.3.0.tar.gz" + ansible-galaxy collection install "$(dirname "$0")/offline/collections/kubernetes-core-2.4.0.tar.gz" else ansible-galaxy install -r collections/requirements.yml fi