Skip to content

Update os builders readme - #169

Open
khalford wants to merge 5 commits into
mainfrom
update_os_builders_readme
Open

Update os builders readme#169
khalford wants to merge 5 commits into
mainfrom
update_os_builders_readme

Conversation

@khalford

Copy link
Copy Markdown
Member

During the Januscape CVE patching campaign, the image build process was stress tested by multiple people which exposed flaws in the process. This was mostly around the documentation being unclear which could have been avoided had it been peer reviewed.

This PR is to re-write the documentation to improve the clarity and ease of understanding. It should be easier for anyone to build images without prior knowledge.

See details in commits

@khalford khalford self-assigned this Jul 24, 2026
@khalford khalford added documentation Improvements or additions to documentation OS Images labels Jul 24, 2026
@khalford
khalford force-pushed the update_os_builders_readme branch from 85c5156 to e8f6f13 Compare July 24, 2026 14:23
@khalford
khalford requested a review from a team as a code owner July 24, 2026 14:23
@khalford
khalford requested review from DavidFair and RWhiting78 July 24, 2026 14:23
khalford added 5 commits July 27, 2026 10:38
AQ images are not made public. The rename_images.sh script will not work
for them in it's current form. This updates the script to share any
image ending in "aq" with all of it's members in the current image to
the new one.
Update the CHANGELOG file extension to .md so it renders in GitHub.

Add dates to the releases as these are missing.

Add a link to the next version branch. Unreleased changes will not show
in the main branch, only the feature branch.
We must build images with the flavor that has the smallest disk size.
If you build an image with a flavor disk size bigger than the smallest
flavor, then you will not be able to spawn a VM using that smaller
flavor and that image. On dev our smallest flavor is l3.nano. On prod
our smallest flavor is l6.c2. Rather than change the flavor each time we
build on prod or dev, or create an environment variables file. We can
just use the existing l3.imagecreate flavor that exists on prod and dev.
It has the smallest disk size so will work for any flavor.

Update the build names for all images to reflect the actual OpenStack
image name. This makes it clearer when specifying the build command. You
won't need to check the build file that ubuntu-jammy-22.04-nogui is
called ubuntu-jammy.

For example,

packer build -only openstack.ubuntu-jammy build.pkr.hcl

become

packer build -only openstack.ubuntu-jammy-22.04-nogui build.pkr
Re-writing the instructions for:
- Building images
- Testing images
- Updating the playbooks
- Releasing a new version

This should improve the clarity of the instructions. The recent Ghostlock CVE has required all images to be rebuilt. This rebuild campaign exposed flaws in the build process. There were issues with the playbooks and the documentation. This increased the time to build images by a large and considerable factor. To streamline the process I have made the instructions more detailed and provided better explanations of the process. This is done by the sequence diagrams at the top of the README.md and at each step.
Using an input variable and conditional check we can set either the dev
or prod network ID at runtime. Rather than the user edit the file or
input it on the command line.

Before users had to edit build.pkr.hcl and update the network ID and set
it to either prod or dev.

Now users can just provide the flag --var env=prod when running packer
build and it will use the dev or prod ID depending on the value of the
variable.

The variable defaults to dev if not specified as a saftey catch.
@khalford
khalford force-pushed the update_os_builders_readme branch from e8f6f13 to 6395c27 Compare July 27, 2026 09:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation OS Images

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant