0cfde41612
ci/woodpecker/tag/docker Pipeline was successful
Clients need one Galaxy server to install both internal collections and galaxy.ansible.com ones; ansible has no virtual type. - merge member collection version lists in member order, the earlier member winning a duplicate version, cached with the shared virtual merge cache - paginate limit/offset over the merged list, following remote member pages - serve version detail from the owning member with href and download_url via the virtual; downloads 302 to the member through the member-redirect validation - fail closed with 502 on a member error or a member versions list shorter than its count - add docs/ansible/virtual.md and an e2e-docker case driving real ansible-galaxy requires unkin/artifactapi#157 Reviewed-on: #158 Co-authored-by: unkin-agent <unkin-agent@unkin.net> Co-committed-by: unkin-agent <unkin-agent@unkin.net>
1.0 KiB
1.0 KiB
ansible virtual
An ansible virtual serves one Galaxy v3 API over local and remote ansible
members: ansible-galaxy collection install works against
/api/v1/virtual/<name>/.
versions/concatenates member version lists in member order; on a duplicate version the earlier member wins. Pagination (limitup to 100,offset) runs over the merged list.versions/<version>/is the owning member's detail withhrefanddownload_urlpointing at the virtual; the download 302s to that member.- A member error fails the request with 502; a member without the collection is skipped. Merges are cached for 60s.
resource "artifactapi_virtual" "ansible" {
name = "ansible"
package_type = "ansible"
members = [artifactapi_local_ansible.internal.name, artifactapi_remote_ansible.galaxy.name]
}
ansible-galaxy collection install unkin.hello community.general \
--server https://artifactapi.example.com/api/v1/virtual/ansible/
Publish to the local member directly; the virtual is read-only.