Skip to content

chore: renaming bundles/ to the <tier>/<subject>.<verb>.<object> naming grammar #133

Description

@hyde-repo

chore: renaming bundles/ to a single <tier>/<subject>.<verb>.<object> grammar

Umbrella: #69
Wave: WAVE_04 (since 2026-06-05)
Cross-repo: range42/range42#198, range42/range42-ansible_roles-debug-devkit#114, range42/range42-catalog#178

Why

bundles/ mixes three naming styles (deep path, flat hyphenated, dotted) plus a core/ catch-all, so picking the right bundle to wire into a scenario means guessing the style. This unifies everything under one predictable grammar and drops core/.

Grammar

bundles/<tier>/<subject>.<verb>.<object> - the verb is always the 2nd segment, _ never - for multi-word, the object never repeats the subject. Tiers replace core/: admin / proxmox / generic / student / ctf / decom.

Full rename map

admin/  (objects normalized - -> _)
  admin/software.install.deployer-api-backend   ->  admin/software.install.deployer_api_backend
  admin/software.install.deployer-ui            ->  admin/software.install.deployer_ui
  admin/software.install.misp-standalone        ->  admin/software.install.misp_standalone
  admin/software.install.wazuh-agent            ->  admin/software.install.wazuh_agent
  admin/software.install.{gitea,kong,mattermost,nextcloud,rocketchat,wazuh}   unchanged

proxmox/
  core/proxmox/configure/vm-bootstrap            ->  proxmox/vm.bootstrap
  core/proxmox/configure/templates/ubuntu_noble  ->  proxmox/template.build.ubuntu_noble
  core/proxmox/configure/templates/alpine        ->  proxmox/template.build.alpine
  core/proxmox/configure/templates/debian        ->  proxmox/template.build.debian

generic/
  core/tailscale-on-group                        ->  generic/software.install.tailscale
  core/network-baseline-ssh                      ->  generic/network.baseline.ssh
  core/network-baseline-ssh-http                 ->  generic/network.baseline.ssh_http
  core/network-baseline-kong                     ->  generic/network.baseline.kong
  core/network-baseline-deployer-ui              ->  generic/network.baseline.deployer_ui
  core/network-baseline-deployer-backend-api     ->  generic/network.baseline.deployer_backend_api
  core/system-baseline-default                   ->  generic/systems.baseline.default
  core/system-baseline-docker-host               ->  generic/systems.baseline.docker_host
  core/system-baseline-with-utils                ->  generic/systems.baseline.with_utils
  core/gitclone                                  ->  generic/repo.clone
  core/gitclone-kunai-repository                 ->  generic/repo.clone.kunai_workshop
  core/linux/ubuntu/install/docker               ->  generic/software.install.docker
  core/linux/ubuntu/install/basic-packages       ->  generic/software.install.basic_packages
  core/linux/ubuntu/install/dot-files            ->  generic/software.install.dotfiles
  core/linux/ubuntu/install/docker-compose       ->  generic/software.install.docker_compose
  core/linux/ubuntu/configure/add-user           ->  generic/credentials.create.user
  core/software.install.kunai_official_workshop  ->  generic/software.install.kunai_official_workshop
  core/software.install.warmup.dot_files         ->  generic/software.install.warmup_dotfiles
  core/systems.configure.add_user                ->  generic/systems.configure.add_user
  core/systems.configure.authorized_keys         ->  generic/systems.configure.authorized_keys
  core/systems.configure.ssh_keypair             ->  generic/systems.configure.ssh_keypair
  core/systems.configure.sudo                    ->  generic/systems.configure.sudo
  core/systems.configure.os_auto_updates         ->  generic/systems.configure.os_auto_updates
  ping                                           ->  generic/systems.checks.ping

decom/  (dead)
  core/proxmox/configure/default/vms/*   (15 bundles)   ->  decom/

ctf/    unchanged

Shorter import prefix (RANGE42_BUNDLE_DIR)

Today every import repeats the long prefix {{ lookup('env','RANGE42_GITDIR__ROOT_DIR') }}/range42-playbooks/bundles/<...>/main.yml. A new RANGE42_BUNDLE_DIR env var (exported by range42-context, pointing straight at the bundles dir) shortens them to {{ lookup('env','RANGE42_BUNDLE_DIR') }}/<tier>/<subject>.<verb>.<object>/main.yml. import_playbook resolves at parse time, so a shortening prefix has to be an env var.)

Scenarios

The scenarios that compose these bundles are updated as part of the rename: every import_playbook reference (~165) is rewritten to the new path and switched to the RANGE42_BUNDLE_DIR prefix. git mv preserves history ; no behaviour change, only paths.

Impact

range42-playbooks for the renames + scenario refs ; range42 core for the one RANGE42_BUNDLE_DIR export. range42-backend-api and range42-deployer-ui reference a few of the moved bundles by runtime string and update on their side.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions