Generating a clouds.yaml file
Kolla creates an admin.rc file using the environment variables. I want to then use this in a terraform plan, but I’d rather not generate terrafoprm specific code for the Keystone login data. So, a...
View ArticleDiscoverability in API design
There are a handful of questions a user will (implicitly) ask when using your API: What actions can I do against this endpoint?How do I find the URLs for those actions?What information do I need to...
View ArticleERROR: Boot option loading failed
When PXE Booting an AARCH64 server, the above message probably means that you are fetching an x86_64 image for iPXE, not ARM64. Here’s how I debugged it. You can check by looking in the DHCP messages...
View ArticleBifrost Spike on an Ampere AltraMax
For the past week I worked on getting a Ironic standalone to run on an Ampere AltraMax server in our lab. As I recently was able to get a baremetal node to boot, I wanted to record the steps I went...
View ArticleHow do you keep the Kolla Playing?
(With apologies to Bergman and Legrand) I need to modify how the ipxe container mounts directories. Why? AARCH64 iPXE stuff. Specifically, I need to get my own version of a file into the directory...
View Articleipxe.efi for aarch64
To make the AARCH64 ipxe process work using bifrost, I had to git clone https://github.com/ipxe/ipxe.git cd ipxe/src/ make bin-arm64-efi/snponly.efi ARCH=arm64 sudo cp bin-arm64-efi/snponly.efi...
View ArticleKeystone LDAP with Bifrost
I got keystone in my Bifrost install to talk via LDAP to our Freeipa server. Here’s what I had to do. I started with a new install of bifrost, using Keystone and TLS. ./bifrost-cli install...
View ArticleErrors running Keystone pep8
The command to run the formatting tests for the keystone project is: tox -e pe8 Running this on Fedora35 failed for me with this error: ERROR: pep8: could not install deps...
View ArticleBuilding Linux tip-of-tree on an Ampere based system
I Have an Ampere Altra-Max/INGRASYS Yushan Server System running Centos 8 stream. Because we are a chip manufacteror, we don’t sell end systems, we provide a reference platform that is a starting...
View ArticleParsing libvirt xmldump using xpath
In a recent article, I saw yet another example of using grep to pull information out of xml, and then to manually look for a field. However, XML is structured, and with XPath, we can pull out exactly...
View ArticleConverting an OpenGL project to use Autotools
In a science fiction game I play, we often find ourselves asking “which side of the Sun is Mars from the Earth right now?” Since this is for a game, the exact distance is not important, just “same...
View ArticleConan-izing an OpenGL project.
Now that I can build my app with Autotools, I want to make it work with conan. In my head, I have conan mapped to projects like cargo in rust and pip in Python. However, C++ has a far less homogenized...
View ArticleIntro to libvirt based virtualization on Linux
The processes of development, installation, testing, and debugging of software all benefit from the use of a virtual machines. If you are working in a Linux based infrastructure, you have access to...
View ArticleCopy in for-each loops in C++
I had a bug in my OpenGL program. Here was the original code: for (Orbitor o : orbitors){ o.calculate_position(); } and here was the working version for (std::vector::iterator it = orbitors.begin() ;...
View ArticleXPath for libvirt external snapshop path
The following xmllint XPath query will pull out the name of the backing file for a VM named fedora-server-36 and an external snapshot named fedora-36-post-install, virsh snapshot-dumpxml...
View ArticleUsing virt-install and cloud-init
I want to call out a stellar article that told me exactly what I needed to do in order to use virt-install and cloud-init to launch a cloud-image. The only thing I have to add is the caveat that the...
View ArticlePassing an Object as a Parameter
I think there area couple of competing guidelines here: Don’t Repeat Yourself versus Let the Complexity Emerge. But let’s start with your previous article on Naive Implementations. The very first...
View ArticleLearning ACPI for ARM64 part 1: Finding the Root.
It started as a request from our tech lead: please help triage these patches. So I lookedat the set of patches and started with what looked like the simplest one: Fix topology for Core scheduling. It...
View ArticleLearning ACPI for ARM64 part 2: Completeing Early intialization
Last article got up through allocating the memory for the ACPI Tables. Now we want to populate them. There are many lines between the allocation of the space for the tables and the finalization of the...
View ArticleACPI root pointer from UEFI System Table.
As I found out after I posted my lat entry , the correct way to find the Root pointer for the ACPI tables is to get it from the EFI System table. Where does that get set? Here’s the general flow:...
View Article