Ben Vincent unkinben
  • Joined on 2024-05-28
unkinben pushed to benvin/bootapi-templates-initial at unkin/bootapi-templates 2026-07-28 23:10:37 +10:00
24fd6b3ffa Seed bootapi templates + distro catalog
unkinben created branch benvin/bootapi-templates-initial in unkin/bootapi-templates 2026-07-28 23:10:37 +10:00
unkinben created pull request unkin/bootapi-templates#1 2026-07-28 23:10:36 +10:00
Seed bootapi templates + distro catalog
unkinben pushed to benvin/vault-ca-cert-refresh at unkin/argocd-apps 2026-07-28 23:02:12 +10:00
08a75ea01a certificates: restore the validly-signed intermediate in vault-ca-cert
unkinben created branch benvin/vault-ca-cert-refresh in unkin/argocd-apps 2026-07-28 23:02:12 +10:00
unkinben created pull request unkin/argocd-apps#305 2026-07-28 23:02:11 +10:00
certificates: restore the validly-signed intermediate in vault-ca-cert
unkinben commented on pull request unkin/bootapi#1 2026-07-28 22:36:35 +10:00
Initial bootapi: NetBox-driven PXE/kickstart boot service

Done. The boot path (/ipxe, /boot/ipxe, /ks) is always served over plain HTTP so installers with no internal-CA trust can reach it; iPXE/kickstart URLs are http:// (BOOTAPI_BASE_URL). bootapi also serves HTTPS in parallel when BOOTAPI_TLS_* is set, for clients that trust the CA. The %post provisioned callback also runs over plain HTTP by default (the token authenticates it, before any CA is installed); BOOTAPI_CALLBACK_BASE_URL can point it at https if you install the CA early. docs/deployment.md now says the Gateway/HTTPRoute must NOT 301 HTTP->HTTPS for the boot endpoints.

unkinben commented on pull request unkin/bootapi#1 2026-07-28 22:36:35 +10:00
Initial bootapi: NetBox-driven PXE/kickstart boot service

Done. Kernel/initrd now come from the artifactapi almalinux remote: {ArtifactBase}/almalinux/${version}/BaseOS/${arch}/os/images/pxeboot/. On 'describe distros in NetBox or env?': neither hardcoded - implemented a distro catalog (catalog/*.yaml in the templates repo), one file per OS (match, kernel/initrd URL templates -> artifactapi remotes, kickstart ref, kernel args). Host->distro selection stays NetBox-driven (platform slug / family / provision_template). Shipped almalinux9 + fedora (fedora remote exists). Adding debian/talos later = a yaml + template (+ maybe a new artifactapi remote), no bootapi code change; their differing artifact shapes are documented in docs/template-authoring.md and the catalog README. Env vars are now only for bootapi's own endpoints.

unkinben commented on pull request unkin/bootapi#1 2026-07-28 22:36:20 +10:00
Initial bootapi: NetBox-driven PXE/kickstart boot service

Done. Default nameserver is now the k8s bind-resolvers LB 198.18.200.7 (BOOTAPI_NAMESERVERS).

unkinben commented on pull request unkin/bootapi#1 2026-07-28 22:36:20 +10:00
Initial bootapi: NetBox-driven PXE/kickstart boot service

Done. bootapi now git-syncs a templates repo (unkin/bootapi-templates, terraform-git PR #50) every BOOTAPI_TEMPLATE_GIT_INTERVAL (default 3m, like argocd), atomically swapping the template set; last-good is kept on a parse failure and embedded defaults are the startup fallback. The templates repo gets CI that validates every template/catalog renders (bootapi validate) + shellcheck on %post.

unkinben commented on pull request unkin/bootapi#1 2026-07-28 22:36:20 +10:00
Initial bootapi: NetBox-driven PXE/kickstart boot service

Done. Puppet now targets the k8s puppetserver: server=puppet.k8s.syd1.au.unkin.net, ca_server=puppetca.k8s.syd1.au.unkin.net, and %post writes /etc/sysconfig/puppet-initial with PUPPETCA_URL (default puppetca.k8s.syd1.au.unkin.net) for the puppet-initial unit instead of hardcoding.

unkinben commented on pull request unkin/bootapi#1 2026-07-28 22:36:19 +10:00
Initial bootapi: NetBox-driven PXE/kickstart boot service

Done. Added a NetBox pxe_enabled boolean custom field (Cobbler's netboot_enabled): a known host with it false now gets the safe local-boot script from /ipxe. And 'something the client unticks at the end of kickstart' -> new token-guarded POST /provisioned/{ident} that clears pxe_enabled in NetBox, called from a %post snippet in the default kickstarts. NetBox token now needs write on that one custom field (flagged in docs/security.md + deployment.md).

unkinben created pull request unkin/terraform-git#50 2026-07-28 22:35:58 +10:00
Add bootapi-templates repository
unkinben pushed to benvin/bootapi-templates-repo at unkin/terraform-git 2026-07-28 22:35:48 +10:00
fe662001c5 Add bootapi-templates repository
unkinben created branch benvin/bootapi-templates-repo in unkin/terraform-git 2026-07-28 22:35:48 +10:00
unkinben pushed to benvin/bootapi-initial at unkin/bootapi 2026-07-28 22:34:57 +10:00
8f356346eb Address PR review: PXE gate + callback, git-sync templates, distro catalog, k8s targets, http+https
unkinben created pull request unkin/argocd-apps#304 2026-07-28 22:22:16 +10:00
Use full postgres image on minimal CNPG clusters so WAL archiving works
unkinben commented on pull request unkin/argocd-apps#302 2026-07-28 22:22:00 +10:00
Revert external-dns writes back to the legacy VM authoritative (#287)

Superseded: the resolver upstream for k8s.syd1.au.unkin.net now points at the in-cluster bind (198.18.200.7), which is where external-dns already writes — reads and writes are aligned without the…

unkinben closed pull request unkin/argocd-apps#302 2026-07-28 22:22:00 +10:00
Revert external-dns writes back to the legacy VM authoritative (#287)
unkinben pushed to benvin/cnpg-backup-fixes at unkin/argocd-apps 2026-07-28 22:21:51 +10:00
3e5d01d584 Use full postgres image on minimal CNPG clusters so WAL archiving works