Skip to main content

change-stack-version

Change the image (registry path or tag) of any Mission Control stack service — mission-control, mission-dispatch, mission-database, mission-simulator, mosquitto, postgres, wpg, cuopt, ota, esp, mas. Updates docker-compose/images.conf via skills/change-stack-version/scripts/set_image.py.

Source facts

Repository
nvidia-isaac/isaac_mission_control
Last source activity
September 15, 2026 at 21:54
Detected SKILL.md language
English
Stars
8
Forks
6

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

File Explorer
5 files

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
change-stack-version
license
Apache-2.0
description
Change the image (registry path or tag) of any Mission Control stack service — mission-control, mission-dispatch, mission-database, mission-simulator, mosquitto, postgres, wpg, cuopt, ota, esp, mas. Updates docker-compose/images.conf via skills/change-stack-version/scripts/set_image.py.
metadata
{"author":"NVIDIA Isaac Team <info@nvidia.com>","version":"1.0.0","permissions":{"file_read":["docker-compose/images.conf"],"file_write":["docker-compose/images.conf"],"execute":["skills/change-stack-version/scripts/preflight.sh","skills/change-stack-version/scripts/set_image.py"]}}
# Change stack version Use this when the user wants to change the compose image for one or more services — for example "change the mission-control compose image tag to 4.6.0", "pin mission-dispatch to a staging tag", or "bump cuopt". This skill only edits the image configuration; it does not start or restart the stack. **Do not edit `docker-compose/images.conf` by hand.** Invoke `skills/change-stack-version/scripts/set_image.py` instead. The script is the source of truth for which `*_IMAGE` variable each service maps to and handles tag-only swaps without disturbing the registry path. ## Prerequisites Before changing an image, run the preflight with the same operation arguments you will pass to `set_image.py`: ```bash bash skills/change-stack-version/scripts/preflight.sh \ --service mission-control --tag 5.0.0 ``` The preflight is read-only. It checks that `python3` and the shipped script are available, verifies that the destination file is writable (or can be created), and exercises the actual `set_image.py` code path with `--dry-run`. It exits non-zero and names the problem if the selected service is absent from the resolved `images.conf`, a tag-only swap cannot be made, or another prerequisite is missing. Pass `--images-file` to both commands when overriding the target file. For multiple services, preflight each service separately. A successful preflight validates the exact operation at that moment; use the same arguments for the write. ## Inputs to collect 1. **Which service(s).** Valid values: `mission-control`, `mission-dispatch`, `mission-database`, `mission-simulator`, `mosquitto`, `postgres`, `wpg` (alias `swagger`), `cuopt`, `ota`, `esp`, `mas`. 2. **New value.** Either: - A full image ref (`nvcr.io/nvidia/isaac/mission-control:5.0.0`) → pass as `--image`. - Only a tag (`4.6.0`, `latest`, `25.10.0-cuda12.8-py3.12`) → pass as `--tag`. The script keeps the existing registry path and replaces only the substring after the final `:`. If the user is vague ("use the new mission-control"), ask which tag — don't guess. ## How to invoke Reads `docker-compose/images.conf` from `$MC_WORKSPACE` (default workspace: `./skills-workspace` in the caller's cwd) if the user has edited it there, else from this skill's shipped `resources/`. Writes the edited `images.conf` to `$MC_WORKSPACE`. Override the target file with `--images-file` if needed. **This skill never reads or writes the compose credentials file.** Image references live in their own `images.conf` so that swapping a tag does not mean rewriting the file that holds the MQTT and postgres secrets. `bring-up-cloud-stack` sources the credentials file first and `images.conf` second, so an image set here wins over a stale duplicate left behind in an older workspace copy. ```bash # Swap only the tag (preferred when the registry path is unchanged): bash skills/change-stack-version/scripts/preflight.sh --service mission-control --tag 5.0.0 python3 skills/change-stack-version/scripts/set_image.py --service mission-control --tag 5.0.0 # Replace the entire image ref: bash skills/change-stack-version/scripts/preflight.sh --service cuopt --image nvidia/cuopt:25.10.0-cuda12.8-py3.12 python3 skills/change-stack-version/scripts/set_image.py --service cuopt --image nvidia/cuopt:25.10.0-cuda12.8-py3.12 # Preview without writing: bash skills/change-stack-version/scripts/preflight.sh --service mission-dispatch --tag 5.0.0 ``` For multiple services, call the scripts once per service. The preflight output is the dry-run preview, so stop after it if the user is exploring. ## After applying Surface this once to the user — do not run it yourself unless asked, since it affects a live stack: ```bash bash skills/bring-up-cloud-stack/scripts/up.sh --pull --recreate ``` `--pull` fetches the new tag (compose `up` won't re-pull a tag it already has cached); `--recreate` forces the affected container to actually swap to the new image. `OTA_IMAGE`, `ESP_IMAGE`, and `MAS_IMAGE` are only used by certain bringup files; mention the relevant file when those are changed (`ESP_IMAGE` / `MAS_IMAGE` → `bringup_demo_services.yaml`; `OTA_IMAGE` is currently commented out in `bringup_services.yaml`). ## Out of scope - The dev container image (`isaac-mission-control-dev`, built by `scripts/run_dev.sh`). - Helm chart values under `helm-chart/`. - Locally-built/Bazel-built images.
View on GitHub