Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 24 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [5.0.0] - 2026-05-09

### Breaking changes

- **`ctf deploy` no longer passes `ansible_incus_remote` as an Ansible extra variable.**
`ansible-playbook` with `-e ansible_incus_remote=<value>` overrides inventory on every host, which broke mixed containers / VMs deployments.

**Migration:** Do not depend on `ansible_incus_remote` being injected by deploy for
playbook-wide VM/cluster targeting.

Use something like:
```
vars:
ansible_incus_remote: "{{ ansible_incus_container_remote if ansible_incus_container_remote else 'local' }}"
```

[5.0.0]: https://github.com/nsec/ctf-script/compare/v4.6.2...v5.0.0
2 changes: 1 addition & 1 deletion challenges/mock-track-apache-php/ansible/inventory
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,5 @@ all:
vars:
ansible_connection: community.general.incus
ansible_user: root
ansible_incus_remote: local
ansible_incus_remote: "{{ ansible_incus_container_remote if ansible_incus_container_remote else 'local' }}"
ansible_incus_project: mock-track-apache-php
2 changes: 1 addition & 1 deletion challenges/mock-track-python-service/ansible/inventory
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,5 @@ all:
vars:
ansible_connection: community.general.incus
ansible_user: root
ansible_incus_remote: local
ansible_incus_remote: "{{ ansible_incus_container_remote if ansible_incus_container_remote else 'local' }}"
ansible_incus_project: mock-track-python-service
2 changes: 1 addition & 1 deletion challenges/mock-track-with-build/ansible/inventory
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ all:
# Do not change these.
ansible_connection: community.general.incus
ansible_user: root
ansible_incus_remote: local
ansible_incus_remote: "{{ ansible_incus_container_remote if ansible_incus_container_remote else 'local' }}"
# Name of your track. Do not change.
ansible_incus_project: mock-track-with-build

Expand Down
2 changes: 1 addition & 1 deletion ctf/deploy.py
Original file line number Diff line number Diff line change
Expand Up @@ -481,7 +481,7 @@ def run_ansible_playbook(

extra_args += [
"-e",
f"ansible_incus_remote={remote}",
f"ansible_incus_container_remote={remote}",
"-e",
f"ansible_incus_vm_remote={vm_remote if vm_remote else remote}",
"-e",
Expand Down
2 changes: 1 addition & 1 deletion ctf/templates/new/common/inventory.j2
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ all:
# Do not change these.
ansible_connection: community.general.incus
ansible_user: root
ansible_incus_remote: local
ansible_incus_remote: "{{ '{{' }} ansible_incus_container_remote if ansible_incus_container_remote else 'local' {{ '}}' }}"
# Name of your track. Do not change.
ansible_incus_project: {{ data.name }}

Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ dependencies = [
"typer==0.24.1",
"pydantic",
]
version = "4.6.3"
version = "5.0.0"
classifiers = [
"Programming Language :: Python :: 3",
"Operating System :: OS Independent",
Expand Down
Loading