diff --git a/.agents/skills/add-cli-command/SKILL.md b/.agents/skills/add-cli-command/SKILL.md index e5533eb47..2e590f93c 100644 --- a/.agents/skills/add-cli-command/SKILL.md +++ b/.agents/skills/add-cli-command/SKILL.md @@ -51,17 +51,12 @@ class MyNewKollaCommand(KollaAnsibleMixin, KayobeAnsibleMixin, VaultMixin, Comma def take_action(self, parsed_args): self.app.LOG.debug("Running my new kolla command") - self.handle_kolla_tags_limits_deprecation(parsed_args) playbooks = _build_playbook_list("my-new-playbook") self.run_kayobe_playbooks(parsed_args, playbooks) # Run kolla-ansible steps as needed, e.g.: # self.run_kolla_ansible_overcloud(parsed_args, "deploy") ``` -`handle_kolla_tags_limits_deprecation(parsed_args)` **must** be called first in -every `KollaAnsibleMixin` command. It enforces warnings and mutual-exclusion -checks for `--kolla-limit`, `--kolla-tags`, and `--kolla-skip-tags`. - Key helpers: - `_build_playbook_list("name1", "name2")` builds absolute paths to `ansible/.yml` - `_get_playbook_path("name")` returns a single playbook path diff --git a/CLAUDE.md b/CLAUDE.md new file mode 120000 index 000000000..47dc3e3d8 --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1 @@ +AGENTS.md \ No newline at end of file diff --git a/doc/source/upgrading.rst b/doc/source/upgrading.rst index b0e221aca..d59a578a0 100644 --- a/doc/source/upgrading.rst +++ b/doc/source/upgrading.rst @@ -459,4 +459,3 @@ scope of the upgrade:: Using tags is not tested in either Kayobe or Kolla-Ansible CI, and as such should only be used if you know what you're doing. Proceed with caution. - diff --git a/kayobe/cli/commands.py b/kayobe/cli/commands.py index 529d9b623..ea7a577dd 100644 --- a/kayobe/cli/commands.py +++ b/kayobe/cli/commands.py @@ -14,7 +14,6 @@ import glob import json -import logging import os import re import sys @@ -31,8 +30,6 @@ # This is set to an arbitrary large number to simplify the sorting logic DEFAULT_SEQUENCE_NUMBER = sys.maxsize -LOG = logging.getLogger(__name__) - def _build_playbook_list(*playbooks): """Return a list of names of playbook files given their basenames.""" @@ -118,31 +115,6 @@ def generate_kolla_ansible_config(self, parsed_args, install=False, self.run_kayobe_playbooks(parsed_args, playbooks, ignore_limit=True, check=False) - def handle_kolla_tags_limits_deprecation(self, parsed_args): - if (parsed_args.kolla_limit or parsed_args.kolla_tags or - parsed_args.kolla_skip_tags): - self.app.LOG.warning("The use of --kolla-tags, --kolla-limit, and " - "--kolla-skip-tags is deprecated. Please " - "switch to just using --tags, --limit, or " - "--skip-tags, these are now passed into " - "kolla-ansible too. Kolla tags/limit will be " - "removed in the next release.") - if parsed_args.limit and parsed_args.kolla_limit: - self.app.LOG.error("You can no longer use both --limit and " - "--kolla-limit at the same time. Please switch " - "to just using --limit") - sys.exit(1) - if parsed_args.tags and parsed_args.kolla_tags: - self.app.LOG.error("You can no longer use both --tags and " - "--kolla-tags at the same time. Please switch " - "to just using --tags") - sys.exit(1) - if parsed_args.skip_tags and parsed_args.kolla_skip_tags: - self.app.LOG.error("You can no longer use both --skip-tags and " - "--kolla-skip-tags at the same time. Please " - "switch to just using --skip-tags") - sys.exit(1) - class KollaAnsibleMixin(object): """Mixin class for commands running Kolla Ansible.""" @@ -305,7 +277,6 @@ def get_parser(self, prog_name): def take_action(self, parsed_args): self.app.LOG.debug("Bootstrapping Kayobe Ansible control host") - self.handle_kolla_tags_limits_deprecation(parsed_args) ansible.install_galaxy_roles(parsed_args) ansible.install_galaxy_collections(parsed_args) playbooks = _build_playbook_list("bootstrap") @@ -580,8 +551,6 @@ def add_kolla_ansible_args(self, group): def take_action(self, parsed_args): self.app.LOG.debug("Running Kolla Ansible command") - self.handle_kolla_tags_limits_deprecation(parsed_args) - # First prepare configuration. self.generate_kolla_ansible_config(parsed_args) @@ -762,7 +731,6 @@ class SeedVMProvision(KollaAnsibleMixin, KayobeAnsibleMixin, VaultMixin, def take_action(self, parsed_args): self.app.LOG.debug("Provisioning seed VM") - self.handle_kolla_tags_limits_deprecation(parsed_args) self.run_kayobe_playbook(parsed_args, _get_playbook_path("ip-allocation"), limit="seed") @@ -781,7 +749,6 @@ class SeedVMDeprovision(KollaAnsibleMixin, KayobeAnsibleMixin, VaultMixin, def take_action(self, parsed_args): self.app.LOG.debug("Deprovisioning seed VM") - self.handle_kolla_tags_limits_deprecation(parsed_args) self.run_kayobe_playbook(parsed_args, _get_playbook_path("seed-vm-deprovision")) @@ -953,7 +920,6 @@ def take_action(self, parsed_args): "you understand this.") sys.exit(1) self.app.LOG.debug("Destroying seed services") - self.handle_kolla_tags_limits_deprecation(parsed_args) self.generate_kolla_ansible_config(parsed_args, service_config=False, bifrost_config=False) extra_args = ["--yes-i-really-really-mean-it"] @@ -1436,8 +1402,6 @@ class OvercloudFactsGather(KollaAnsibleMixin, KayobeAnsibleMixin, VaultMixin, def take_action(self, parsed_args): self.app.LOG.debug("Gathering overcloud host facts") - self.handle_kolla_tags_limits_deprecation(parsed_args) - # Gather facts for Kayobe. playbooks = _build_playbook_list("overcloud-facts-gather") self.run_kayobe_playbooks(parsed_args, playbooks) @@ -1575,8 +1539,6 @@ def get_parser(self, prog_name): def take_action(self, parsed_args): self.app.LOG.debug("Performing overcloud database backup") - self.handle_kolla_tags_limits_deprecation(parsed_args) - # First prepare configuration. self.generate_kolla_ansible_config(parsed_args, service_config=False) @@ -1605,8 +1567,6 @@ def take_action(self, parsed_args): self.app.LOG.debug("Performing overcloud database recovery") extra_vars = {} - self.handle_kolla_tags_limits_deprecation(parsed_args) - # First prepare configuration. self.generate_kolla_ansible_config(parsed_args, service_config=True) @@ -1647,8 +1607,6 @@ def get_parser(self, prog_name): def take_action(self, parsed_args): self.app.LOG.debug("Generating overcloud service configuration") - self.handle_kolla_tags_limits_deprecation(parsed_args) - # First prepare configuration. self.generate_kolla_ansible_config(parsed_args) @@ -1684,7 +1642,6 @@ def get_parser(self, prog_name): def take_action(self, parsed_args): self.app.LOG.debug("Validating overcloud service configuration") - self.handle_kolla_tags_limits_deprecation(parsed_args) extra_vars = {} if parsed_args.output_dir: extra_vars[ @@ -1766,8 +1723,6 @@ def get_parser(self, prog_name): def take_action(self, parsed_args): self.app.LOG.debug("Deploying overcloud services") - self.handle_kolla_tags_limits_deprecation(parsed_args) - # First prepare configuration. self.generate_kolla_ansible_config(parsed_args) @@ -1828,8 +1783,6 @@ def get_parser(self, prog_name): def take_action(self, parsed_args): self.app.LOG.debug("Deploying overcloud services (containers only)") - self.handle_kolla_tags_limits_deprecation(parsed_args) - # First prepare configuration. self.generate_kolla_ansible_config(parsed_args) @@ -1878,8 +1831,6 @@ def get_parser(self, prog_name): def take_action(self, parsed_args): self.app.LOG.debug("Running overcloud prechecks") - self.handle_kolla_tags_limits_deprecation(parsed_args) - # First prepare configuration. self.generate_kolla_ansible_config(parsed_args) @@ -1928,8 +1879,6 @@ def get_parser(self, prog_name): def take_action(self, parsed_args): self.app.LOG.debug("Reconfiguring overcloud services") - self.handle_kolla_tags_limits_deprecation(parsed_args) - # First prepare configuration. self.generate_kolla_ansible_config(parsed_args) @@ -1992,8 +1941,6 @@ def take_action(self, parsed_args): self.app.LOG.debug("Stopping overcloud services") - self.handle_kolla_tags_limits_deprecation(parsed_args) - # First prepare configuration. self.generate_kolla_ansible_config(parsed_args) @@ -2041,8 +1988,6 @@ def get_parser(self, prog_name): def take_action(self, parsed_args): self.app.LOG.debug("Upgrading overcloud services") - self.handle_kolla_tags_limits_deprecation(parsed_args) - # First prepare configuration. self.generate_kolla_ansible_config(parsed_args, install=True) @@ -2101,8 +2046,6 @@ def take_action(self, parsed_args): self.app.LOG.debug("Destroying overcloud services") - self.handle_kolla_tags_limits_deprecation(parsed_args) - # First prepare configuration. self.generate_kolla_ansible_config(parsed_args) @@ -2128,8 +2071,6 @@ class OvercloudContainerImagePull(KayobeAnsibleMixin, KollaAnsibleMixin, def take_action(self, parsed_args): self.app.LOG.debug("Pulling overcloud container images") - self.handle_kolla_tags_limits_deprecation(parsed_args) - # First prepare configuration. self.generate_kolla_ansible_config(parsed_args, service_config=False) diff --git a/kayobe/kolla_ansible.py b/kayobe/kolla_ansible.py index 7304fe82d..3b3f21225 100644 --- a/kayobe/kolla_ansible.py +++ b/kayobe/kolla_ansible.py @@ -54,21 +54,8 @@ def add_args(parser): "Kolla Ansible" % (CONFIG_PATH_ENV, DEFAULT_CONFIG_PATH), action='append') - # TODO(mattcrees): Remove kl, kt, and kolla-skip-tags in 2026.2. - parser.add_argument("-kl", "--kolla-limit", metavar="SUBSET", - help="[DEPRECATED: Please use -l or --limit instead] " - "further limit selected hosts to an additional " - "pattern") parser.add_argument("-kp", "--kolla-playbook", metavar="PLAYBOOK", help="path to Ansible playbook file") - parser.add_argument("--kolla-skip-tags", metavar="TAGS", - help="[DEPRECATED: Please use -skip-tags instead] " - "only run plays and tasks whose tags " - "do not match these values in Kolla Ansible") - parser.add_argument("-kt", "--kolla-tags", metavar="TAGS", - help="[DEPRECATED: Please use -t or --tags instead] " - "only run plays and tasks tagged with these " - "values in Kolla Ansible") parser.add_argument("--kolla-venv", metavar="VENV", default=default_venv, help="path to virtualenv where Kolla Ansible is " "installed (default=$%s or $PWD/%s)" % @@ -166,17 +153,13 @@ def build_args(parsed_args, command, inventory_filename, extra_vars=None, # Quote and escape variables originating within the python CLI. extra_var_value = utils.quote_and_escape(extra_var_value) cmd += ["-e", "%s=%s" % (extra_var_name, extra_var_value)] - if parsed_args.limit or parsed_args.kolla_limit or limit: + if parsed_args.limit or limit: limit_arg = utils.intersect_limits(parsed_args.limit, limit) - limit_arg = utils.intersect_limits(parsed_args.kolla_limit, limit_arg) cmd += ["--limit", utils.quote_and_escape(limit_arg)] - if parsed_args.skip_tags or parsed_args.kolla_skip_tags: - all_tags = [t for t in [parsed_args.skip_tags, - parsed_args.kolla_skip_tags] if t] - cmd += ["--skip-tags", ",".join(all_tags)] - if parsed_args.tags or parsed_args.kolla_tags or tags: - all_tags = [t for t in [parsed_args.tags, parsed_args.kolla_tags, - tags] if t] + if parsed_args.skip_tags: + cmd += ["--skip-tags", parsed_args.skip_tags] + if parsed_args.tags or tags: + all_tags = [t for t in [parsed_args.tags, tags] if t] cmd += ["--tags", ",".join(all_tags)] if parsed_args.list_tasks: cmd += ["--list-tasks"] diff --git a/releasenotes/notes/drop-kolla-tags-and-kolla-limits-e1aa489321d20a2c.yaml b/releasenotes/notes/drop-kolla-tags-and-kolla-limits-e1aa489321d20a2c.yaml new file mode 100644 index 000000000..fe76ba958 --- /dev/null +++ b/releasenotes/notes/drop-kolla-tags-and-kolla-limits-e1aa489321d20a2c.yaml @@ -0,0 +1,5 @@ +--- +upgrade: + - | + Removed the deprecated options ``--kolla-tags`` and ``kolla-limit`` from + all commands. diff --git a/zuul.d/project.yaml b/zuul.d/project.yaml index b10876f99..95ca3b492 100644 --- a/zuul.d/project.yaml +++ b/zuul.d/project.yaml @@ -29,7 +29,10 @@ - kayobe-overcloud-ubuntu-noble - kayobe-overcloud-ubuntu-noble-podman - kayobe-overcloud-upgrade-rocky10 - - kayobe-overcloud-upgrade-ubuntu-noble + # TODO(priteau): Enable when + # https://review.opendev.org/c/openstack/kolla-ansible/+/992397 is + # merged + #- kayobe-overcloud-upgrade-ubuntu-noble - kayobe-seed-rocky10 - kayobe-seed-rocky10-podman - kayobe-seed-ubuntu-noble @@ -58,7 +61,10 @@ - kayobe-overcloud-ubuntu-noble - kayobe-overcloud-ubuntu-noble-podman - kayobe-overcloud-upgrade-rocky10 - - kayobe-overcloud-upgrade-ubuntu-noble + # TODO(priteau): Enable when + # https://review.opendev.org/c/openstack/kolla-ansible/+/992397 is + # merged + #- kayobe-overcloud-upgrade-ubuntu-noble - kayobe-seed-rocky10 - kayobe-seed-rocky10-podman - kayobe-seed-ubuntu-noble