Skip to content

Deprecation of tag: in ee_builder role not carried into controller_execution_environments variable #259

@j-random-geek

Description

@j-random-geek

Summary

With the deprecation of tag: in the execution environment definition (ee_list in the ee_builder role), the change to the tags: list was not carried forward into the controller_execution_environments variable generated in templates/ee_controller.yaml.j2.

Due to tags: not being referenced in templates/ee_controller.yaml.j2, execution environments configured in Controller did not have any tag in the reference, so the results in Controller may not be what was expected.

Issue Type

  • Bug Report

Ansible, Collection, Docker/Podman details

(confirmed in both commandline and in AAP 2.6)

[rstevens@dev2 ee-build]$ ansible --version
ansible [core 2.16.17]
  config file = /home/rstevens/code/ee-build/ansible.cfg
  configured module search path = ['/home/rstevens/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/lib/python3.12/site-packages/ansible
  ansible collection location = /home/rstevens/.ansible/collections:/usr/share/ansible/collections
  executable location = /usr/bin/ansible
  python version = 3.12.12 (main, Apr 16 2026, 00:00:00) [GCC 14.3.1 20250617 (Red Hat 14.3.1-2)] (/usr/bin/python3)
  jinja version = 3.1.6
  libyaml = True

[rstevens@dev2 ee-build]$ ansible-galaxy collection list

# /home/rstevens/.ansible/collections/ansible_collections
Collection              Version     
----------------------- ------------
ansible.controller      4.7.10      
ansible.eda             2.11.0      
ansible.hub             1.0.6       
ansible.platform        2.6.20260306
containers.podman       1.19.2      
infra.aap_configuration 4.4.0       
infra.ee_utilities      4.2.5       

[rstevens@dev2 ee-build]$ podman --version
podman version 5.6.0
  • ansible installation method: one of source, pip, OS package, EE

OS / ENVIRONMENT

Builder host: tried both RHEL9 and RHEL10
Playbook run on RHEL9, RHEL10, and in AAP 2.6 (connecting to RHEL9 or RHEL10 builder VMs)

Desired Behavior

I expect the new EE to be configured on Controller with one of the tags specified in the tags list in the ee_list definition, e.g. the image of the Controller EE definition is my-hub.local.domain/namespace/cisco:1.0.2

Actual Behavior

No error occurs in the playbook or Job Template. The EE is configured on Controller without any tag specified. Taking the example above, the image path shows as my-hub.local.domain/namespace/cisco (note: no tag specified)

Playbook with complete definition:

---
- name: Build Execution Environment | Run the build
  hosts: builder
  gather_facts: false
  become: false
  vars:
    ee_ah_token: "{{ insert_here }}"
    ee_base_registry_username: "{{ insert_here }}"
    ee_base_registry_password: "{{ insert_here }}"

    ee_registry_username: "{{ aap_username }}"
    ee_registry_password: "{{ aap_password }}"

    ee_create_controller_def: true
    ee_aap_version: 2.6
    ee_registry_dest: "{{ aap_hostname | ansible.builtin.urlsplit('hostname') }}/namespace"
    ee_ah_host: "{{ aap_hostname | ansible.builtin.urlsplit('hostname') }}"
    ee_list:
      - name: cisco
        description: Image to use for managing Cisco devices
        tags:
          - 1.0.2
          - latest
        images:
          base_image:
            name: registry.redhat.io/ansible-automation-platform-26/ee-minimal-rhel9:latest
        options:
          package_manager_path: /usr/bin/microdnf
        dependencies:
          python_interpreter:
            python_path: /usr/bin/python3.12
          system:
            - python3.12-pip
            - python3.12-setuptools
          python:
            - genie
            - ncclient
            - ntc-templates
            - paramiko
            - pyats
            - textfsm
            - tts
            - xmltodict
          galaxy:
            collections:
              - name: ansible.netcommon
              - name: ansible.utils
              - name: cisco.ios
              - name: cisco.iosxr
              - name: cisco.nxos
  tasks:
    - name: Invoke the ee_builder role
      ansible.builtin.include_role:
        name: infra.ee_utilities.ee_builder

    - name: Push new image to Automation Controller
      ansible.builtin.include_role:
        name: infra.aap_configuration.controller_execution_environments

...

STEPS TO REPRODUCE

Use the playbook above to generate a new EE, push it to Private Automation Hub, and configure it on Controller.

I have created a PR (256) that appears to fix this in my lab, by arbitrarily using the first item in the tags: list to create the Controller EE definition. But I forgot to add a changelog snippet. Anyway, it's just a suggestion and you may have a better solution to hand.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingnew

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions