The wildcard heads entries admitted a branch archive from any repository
on GitHub. patterns is the admission allowlist, so only the repos that
need a branch install belong in it.
- Replace the wildcard heads entries with one anchored entry per repo
- Cover the 14 Neovim plugins that publish no tags, zip and tar.gz
- List each repo in both patterns and mutable_patterns
patterns is a strict allowlist evaluated before mutable_patterns, so
/archive/refs/heads/ downloads are denied despite the mutable entry.
- Add heads .zip and .tar.gz to patterns
- Add heads .zip to mutable_patterns and escape the tar.gz dots
jellyfin-ha bakes the LDAP and SSO auth plugins into its image, and all
outside artifacts must be fetched via artifactapi rather than direct.
- Add remote_generic/jellyfin.yaml proxying repo.jellyfin.org, scoped to
the ldap-authentication plugin zip.
- Add a github.yaml pattern for 9p4/jellyfin-plugin-sso release zips
(GitHub redirects release downloads to objects.githubusercontent.com,
which the existing github remote already follows).
Adds the ^oauth2-proxy/ pattern to the quay.io remote so the
artifactapi caching proxy will serve quay.io/oauth2-proxy/oauth2-proxy.
Needed so the arrproxy oauth2-proxy sidecar can pull the real upstream
quay.io address via the rke2 registries.yaml mirror.
Rackspace (syd.mirror.rackspace.com) never synced Fedora 44: it serves
releases/43 but 404s on releases/44/.../repomd.xml, breaking dnf makecache
for F44 through the caching proxy. Repoint to gsl-syd.mm.fcix.net, a
Sydney-local FCIX tier-1 mirror that is fully synced for F44 (releases +
updates + Packages, verified 200, ~25ms), using the standard
/fedora/linux layout root.
The k8up operator (deployed via the k8up-system app) and its restic
backup/prune/check jobs both run ghcr.io/k8up-io/k8up, which the
containerd mirror only serves when the image path is allowlisted.
- Add ^k8up-io/ to the ghcr remote patterns
Adds a valkey helm remote and allowlists the operator/exporter images so the
valkey-operator install in argocd-apps resolves everything through artifactapi.
- Add config/remote_helm/valkey.yaml proxying https://valkey.io/valkey-helm
- Add valkey to the virtual/helm member list
- Allow ^valkey-io/ on the ghcr remote (operator image ghcr.io/valkey-io/valkey-operator)
- Allow ^oliver006/redis_exporter on dockerhub (Valkey metrics exporter)
The k8up backup operator will be installed via ArgoCD, which pulls charts
through the artifactapi virtual helm proxy. That proxy resolves only the
remotes listed as members, so the upstream k8up repo must be registered.
- Add config/remote_helm/k8up.yaml pointing at https://k8up-io.github.io/k8up
- Register k8up as a member of the virtual helm repository
dl.fedoraproject.org is the throttled master, causing F44 cold-fetch
timeouts. uni-stuttgart is a fast tier-1 mirror carrying the full
releases+updates tree.
The fcix micromirror (gsl-syd.mm.fcix.net) does not carry F44, so dnf
gets HTTP 404 for releases/44/Everything/x86_64/os/repodata/repomd.xml.
dl.fedoraproject.org is the canonical always-current Fedora source.
The k8s Gitea deployment pulls gitea/gitea (rootless) from Docker Hub via the
artifactapi mirror. Add it to the dockerhub allowlist.
- add "^gitea/gitea" to config/remote_docker/dockerhub.yaml patterns
Claude-Session: https://claude.ai/code/session_015ur3i7D2azsMAWTSVABApv
Declares a local generic (raw-file) repo for bootapi's node rootfs tarballs and
wires the local_generic kind through the module. Depends on
terraform-provider-artifactapi #12 releasing v0.1.4 (adds artifactapi_local_generic);
the provider version pin is bumped to 0.1.4, so plan/validate stay red until that
release is available.
- config/local_generic/rootfs-images.yaml (new repo).
- local_generic wiring: config.hcl, module variables.tf + main.tf, env
terragrunt.hcl inputs; provider pin 0.1.3 -> 0.1.4.
Claude-Session: https://claude.ai/code/session_015ur3i7D2azsMAWTSVABApv
NetBox is being deployed to k8s (argocd-apps) as the source of truth for
host/interface/IPAM data. Its image is ghcr.io/netbox-community/netbox, pulled
through the artifactapi ghcr mirror, so add the ^netbox-community/ pattern to
the ghcr remote allowlist.
Claude-Session: https://claude.ai/code/session_015ur3i7D2azsMAWTSVABApv
The puppet AlmaLinux hosts now consume a general rpm-vendor repo (alongside
the per-distro rpm-vendor-elN repos), mirroring the rpm-internal split. Add
the backing local rpm repo so the baseurl resolves.
- add config/local_rpm/rpm-vendor.yaml
Claude-Session: https://claude.ai/code/session_015ur3i7D2azsMAWTSVABApv
The VerticalPodAutoscaler rollout pulls registry.k8s.io/autoscaling/vpa-recommender.
Serve it through the existing k8s-registry pull-through cache, consistent with how
external-dns and sig-storage images from registry.k8s.io are already gated.
The iplocate patterns were added to mutable_patterns only, which tags TTL but
does not allowlist — requests 403'd 'access denied'. Verified: existing
mutable_patterns-only paths (branch archives, webadmin) also 403, while patterns
entries (uv) return 200. Add the iplocate patterns to patterns (the allowlist),
keeping them in mutable_patterns so the daily-updated DB stays mutable.
Add patterns to the github.com generic remote for the iplocate ip-to-asn /
ip-to-country databases rather than standing up a new remote. The files are
Git-LFS, so the /raw/ path redirects to media.githubusercontent.com; the github
remote already follows github's cross-host redirects (as it does for release
assets), and the raw path returns the real bytes (verified: 12MB zip / 78MB mmdb).
Marked mutable (branch content).