ArticlesAscender

Update the Ascender Execution Environment on Kubernetes

ascenderkubernetesexecution environmenttroubleshootingawx

Stephen Simpson
Senior Customer Support Engineer

Aug 03, 2026

Introduction

Ascender runs project syncs and job templates inside an execution environment (EE) container. When a new EE image is published, for example to pick up a security fix, a Kubernetes-based Ascender deployment does not load it automatically. The running pods keep using the image they already pulled. This article shows how to force Ascender to pull the updated EE. It applies to Ascender Pro deployed on Kubernetes.

Problem

You force Ascender onto a new EE for one of two reasons.

The most common is to pull a patched EE, usually to pick up CVE remediation in a newer image. The other is recovery: if the current EE can no longer complete project updates or job templates, for example after an upstream change affects one of the dependencies it relies on, pulling the updated image restores the environment.

Resolution

Confirm the image pull policy, then restart the task deployment so Kubernetes re-pulls the EE.

First, check the pull policy so a restart actually fetches the new image. Replace ascender with your namespace and ascender-app with your Ascender resource name if they differ:

kubectl -n ascender get awx ascender-app -o=jsonpath='{.spec.image_pull_policy}'

This should return Always. With any other policy, Kubernetes reuses the cached image and a restart alone will not pick up the update (see Notes).

Then restart the task deployment to re-pull the EE and load the patched container:

kubectl -n ascender rollout restart deployment/ascender-app-task

⚠️ WARNING This restarts the Ascender task pods, which interrupts any jobs currently running. Perform it during a maintenance window or when the environment is idle.

Once the new pods are running, re-run a project sync to confirm it now uses the new EE. If a broken EE was blocking syncs or templates, they should run normally afterward.

Notes

  • If the pull policy is not Always, Kubernetes will not re-pull an image it already has cached, so the restart will not pick up the patched EE. Set image_pull_policy to Always on the Ascender resource (this is configured at install time through the Ascender install script) and allow the operator to reconcile before restarting the deployment.
  • This procedure refreshes the EE that ships with Ascender. If you maintain your own EE image, see Building a Custom Execution Environment for Ascender.

Root Cause

Kubernetes pulls a container image when a pod first starts and then caches it. A running Ascender task pod keeps using the EE image it started with, even after a new image is published under the same tag. With image_pull_policy set to Always, restarting the deployment forces Kubernetes to re-pull the current image, so the replacement pods come up on the patched EE.

Building a Custom Execution Environment for Ascender
Update SSL Certificates for Ascender