-
Notifications
You must be signed in to change notification settings - Fork 69
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Should we add a section for Execution Environments? #107
Comments
I'm in favour. I even have something to contribute re. versioning:
|
Bumping this idea. This a complicated topic full of nuance and gotchas that if not considered early leads to hard dependencies that are difficult to untangle. There is not a one size fits all, but I think we can call out some gotchas and a middle of the road recommendation that will work in most situations. Lets start with something easy ;) Naming is always the hardest part, and there are going to be many situations where this example isn't the best fit. I still think it would be good to recommend a possible solution. Execution Environment NamingHere are some good practices to enable quick identification of the appropriate EE thanks to the tendency of tools to sort alphabetically. 1 - Standardized conventionExample: "the-quick-brown-fox-jumps-over-the-lazy-dog" Execution environment names should follow a single naming convention such as Kebab-case. 2 - Identify it as an execution environmentExample: 'ee' A consistent prefix such as 'ee' will make it simple to identify what container images were built as execution environments. 2 - Identify the organization responsible for itExample: 'acme' Custom execution environments that are not maintained publicly or by a vendor should be labeled up front to make the ownership plainly visible. Displaying the ownership of the EE prominently can reduce confusion over who is responsible for that EE, and who to contact if there are issues. 3 - Include a generic area of responsibilityExample: 'cloud' This is a short name to describe the types of collections and tools that the EE is built to handle. 4 - Include specific areas of responsibility when neededExample: 'images' This provides an extra identifier for specific and edge use-cases. For example including build tools, out-of-date dependencies and custom code. Depending on the diversity of the organization, this may also be needed to differentiate between EE within a generic area of responsibility with different and/or conflicting dependencies. 5 - Identify the base operating systemExample 'win' Having the base operating system included provides a quick way to identify the needed operating system, and simplifies the process of testing and deploying upgraded operating systems as they become available. 6 - Identify the python versionThe version of python available will have an impact on the functionality of local and remote systems. It is very likely that different versions will be required for different use-cases. The python version should be identified to facilitate testing and release of different and newer versions. 7 - Identify the Ansible versionThe version of Ansible impacts the availability of bundled content, compatibility and available features. This should be identified to facilitate the safe testing and release of newer versions. 8 - Example
Container Name: ee-acme-network-el8-311-217 TagsTODO |
Since it's imho a relevant part of Ansible, should we add a section for EE good practices?
Things like: single purpose, versioning, version pinning of deps etc.
The text was updated successfully, but these errors were encountered: