Skip to content

Drop the empty octavia certificate placeholders - #877

Merged
berendt merged 1 commit into
mainfrom
pr/octavia-placeholders
Sep 15, 2026
Merged

berendt merged 1 commit into
mainfrom
pr/octavia-placeholders

Conversation

@ideaship

Copy link
Copy Markdown
Contributor

The template shipped four zero-byte files under environments/kolla/files/overlays/octavia/: client.cert-and-key.pem, client_ca.cert.pem, server_ca.cert.pem, server_ca.key.pem.

These are the amphora certificates. The deploy guide already documents generating them, with octavia-certificates and copy-octavia-certificates run as part of bringing Octavia up, so the procedure is not the gap. The placeholders are.

Empty files are worse than absent ones, because Kolla already guards this. Its octavia precheck stats each of the four names and fails when one does not exist — a clear failure at the right time. A zero-byte file satisfies that stat, so the precheck passes, the unusable files are copied into the service configuration, and Octavia instead fails much later at first use with CertificateGenerationException: Unable to load PEM file, leaving every load balancer in ERROR. The placeholders turned off the one check that catches a skipped or misordered cert step.

Removing them lets the precheck fire again. A .gitkeep takes their place carrying the explanation: what the four files are, why they are not shipped, the two commands, a pointer to the deploy guide, and the secret the CA is keyed to. It is not one of the names Kolla looks for, so it does not re-create the problem.

It is a .gitkeep rather than a README because the file is load-bearing: the certificates are installed into this directory rather than committed, so it has to exist beforehand, and git carries no empty directory. .gitkeep is the name that says that, is already used that way elsewhere in this template (environments/kolla/certificates/ca/), and is less likely to be tidied away.

Related, in another repository — the play that installs the certificates does not create its own target directory, which is what makes a marker file necessary here at all:

Neither change depends on the other. Repositories generated before this one keep the directory via the placeholders; repositories generated after it get the .gitkeep. Landing the playbook change first simply means this file is documentation rather than the only thing holding the directory open.

🤖 Generated with Claude Code

The template shipped four zero-byte files under
environments/kolla/files/overlays/octavia/:

  client.cert-and-key.pem  client_ca.cert.pem
  server_ca.cert.pem       server_ca.key.pem

These are the amphora certificates. The deploy guide already documents
generating them, with octavia-certificates and copy-octavia-certificates
run as part of bringing Octavia up, so the procedure is not the gap. The
placeholders are.

Empty files are worse than absent ones, because Kolla already guards
this. Its octavia precheck stats each of the four names and fails when
one does not exist, which is a clear failure at the right time. A
zero-byte file satisfies that stat, so the precheck passes, the empty
PEMs are copied into the service configuration, and Octavia instead
fails much later at first use with

  CertificateGenerationException: Unable to load PEM file

leaving every load balancer in ERROR. So the placeholders turned off the
one check that catches a skipped or misordered cert step, and turned a
loud early failure into a quiet late one.

Remove them so the precheck fires again, and leave a .gitkeep in their
place carrying the explanation: what the four files are, why they are
not shipped, the two commands, a pointer to the deploy guide, and the
secret the CA is keyed to. It is not one of the names Kolla looks
for, so it does not re-create the problem.

The file is load-bearing rather than decorative, which is why it is a
.gitkeep and not a README. copy-octavia-certificates installs the
certificates with docker cp, which creates the files but not the
directory holding them, and git carries no empty directory -- so
removing this file removes the directory and the copy fails on a missing
path. .gitkeep is the name that says "this directory has to exist", it
is already used that way elsewhere in this template
(environments/kolla/certificates/ca/), and it is far less likely to be
tidied away than a README.

Assisted-by: Claude:claude-opus-5
Signed-off-by: Roger Luethi <luethi@osism.tech>
@ideaship ideaship self-assigned this Sep 15, 2026
@ideaship
ideaship marked this pull request as ready for review September 15, 2026 06:50
@ideaship
ideaship requested a review from berendt September 15, 2026 06:50
@berendt
berendt merged commit 4c9a819 into main Sep 15, 2026
3 checks passed
@github-project-automation github-project-automation Bot moved this from New to Done in Human Board Sep 15, 2026
@berendt
berendt deleted the pr/octavia-placeholders branch September 15, 2026 08:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

3 participants