I have been currently playing around with the concept of building an Execution Environment Builder directly in Ascender. You can see it via the eebuilder branch.
Currently it allows you to specify the Name, Registry URL of where to push it, the Version tag, Credential, and EE Definition.
When launched, it spins up a new job type in the control plane which builds the EE and pushes it where you specified. This has some limitations.
- Your Definition file can't use a few features, like appending other files and has to be contained all in a single file.
- Your Control Plane infrastructure may have limited resources
- You may want to use a different image than the Ascender-EE image to build it
I think the first issue can be fixed by instead changing to using a Project instead of supplying a definition file. That way you just point to the project (and maybe the folder with the build files in it) and we will utilize that. That way you can also split up everything how you want, and not have to worry about following a strict forced structure.
Issues 2 and 3 can be fixed by just allowing you to specify the EE Image to use (maybe you are building it with the EE Builder? eh?) and what instance group to run it on. The downsides is this can complicate the builder playbook, as it has to ensure ansible-builder, etc.. are all installed. But its Ansible, so we can probably work through all that.