Skip to content

feat(vagrant): the Vagrant box catalog's web page, and vagrant.almalinux.org as its address - #380

Merged
andrewlukoshko merged 2 commits into
AlmaLinux:mainfrom
yuravk:vagrant-catalog-index
Oct 26, 2026
Merged

andrewlukoshko merged 2 commits into
AlmaLinux:mainfrom
yuravk:vagrant-catalog-index

Conversation

@yuravk

@yuravk yuravk commented Oct 26, 2026

Copy link
Copy Markdown
Collaborator

Why

Since #379, the almalinux/* Vagrant boxes are published in our own catalog on S3, which is now served at https://vagrant.almalinux.org (CloudFront in front of the bucket's vagrant/ folder). With HCP Vagrant gone (shutdown on 2026-12-31), users lose the Discover page that listed the boxes, their versions and providers. Also, the repository still named the bucket's S3 address as the one to use.

What changes

The catalog page (tools/vagrant-catalog-index.html)

A page at the catalog's address showing what the HCP Vagrant Discover page did:

  • the setup snippet, VAGRANT_SERVER_URL=https://vagrant.almalinux.org, for Linux/macOS, PowerShell and cmd;
  • the catalog boxes (almalinux/8, 9, 10, 10-x86_64_v2, 10-kitten, 10-kitten-x86_64_v2), with their providers, architectures, latest version, release date and number of versions, filterable by text and provider;
  • per box: how to use it (Vagrantfile, vagrant init, vagrant box add) and its versions, newest first. Each version lists every provider and architecture with the box size, sha256 (copyable) and download link, filterable by provider and architecture.

How it works:

  • One static file in the almalinux.org style: Montserrat, its navy and accent colours, with the logo and favicon inline. No build step, no external scripts.
  • Reads the catalog live from <root>/almalinux/<box>.json (same origin) when it loads. That's the root on vagrant.almalinux.org and /vagrant on the bucket's own address. Publishing needs no change to the page. The bucket can't be listed publicly, so BOXES names the catalog boxes, and a new catalog box needs adding there.
  • Old HCP versions without an architecture (unknown; all x86_64 boxes of almalinux/8 and almalinux/9) show the architecture of their box file. The catalog itself keeps unknown, which Vagrant accepts on any host.
  • Box sizes come from HEAD requests to the box files. The bucket's CORS rule allows GET/HEAD from https://vagrant.almalinux.org (already applied).

The page is uploaded by hand when it changes: as the vagrant/ object (the root of vagrant.almalinux.org), vagrant/index.html and vagrant. The command is in VAGRANT_BUILD_TEST_PUBLISH.md, "The catalog page".

vagrant.almalinux.org as the catalog's address

  • vagrant-build-test-publish.yml: a new VAGRANT_SERVER_URL: https://vagrant.almalinux.org env. The publish job's summary and Mattermost message now name it.
  • Reads and checks stay on the bucket. The job still reads the current catalog from the bucket's own address and checks its upload there, because CloudFront may serve a file up to its max-age (5 minutes) old. Reading through the CDN could build on a stale catalog.
  • Docs: VAGRANT_BUILD_TEST_PUBLISH.md describes vagrant.almalinux.org as the address users set, with the bucket address as the origin.

A page at the catalog's address, https://vagrant.almalinux.org, showing
what the HCP Vagrant Discover page did: the catalog boxes with their
providers, architectures, latest version and release date; per box, how
to use it (Vagrantfile, vagrant init, vagrant box add) and every
version's box files, with size, sha256 and download link, filterable by
provider and architecture; and the VAGRANT_SERVER_URL setting for
Linux/macOS, PowerShell and cmd.

tools/vagrant-catalog-index.html is a single static file in the
almalinux.org style (Montserrat, its navy, cyan, green and yellow; the
logo and favicon inline). It reads <root>/almalinux/<box>.json, same
origin, when it loads - the root on vagrant.almalinux.org (CloudFront in
front of the bucket's vagrant/ folder), /vagrant on the bucket's own
address - so publishing needs no change to it; the BOXES list names the
catalog boxes, as the bucket cannot be listed publicly. The versions HCP
recorded no architecture for ("unknown": all x86_64 boxes of
almalinux/8 and almalinux/9) show the architecture of their box file.
Box sizes come from HEAD requests to the box files, allowed from
vagrant.almalinux.org by the bucket's CORS rule.

It is uploaded by hand as the vagrant/ object (the root of
vagrant.almalinux.org), vagrant/index.html and vagrant (documented in
VAGRANT_BUILD_TEST_PUBLISH.md).
The Vagrant box catalog is now served at https://vagrant.almalinux.org
(CloudFront in front of the bucket's vagrant/ folder), the address users
set as VAGRANT_SERVER_URL. The publish job's summary and Mattermost
message name it (VAGRANT_SERVER_URL in the workflow env), and the docs
describe it; the job still reads and checks the catalog on the bucket
itself, as CloudFront may serve a file up to its max-age old.
@andrewlukoshko
andrewlukoshko merged commit 0505ef6 into AlmaLinux:main Oct 26, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants