1 个不稳定版本
0.0.1 | 2024年6月25日 |
---|
#41 in #oci
60KB
368 行
HA-registry
[!IMPORTANT] HA-registry 处于开发初期阶段,不建议用于生产环境。
[!NOTE] HA-registry 是实验性的,API 可能会变化直到稳定。许多功能尚未实现,目前尚无实际用途。
HA-registry 是一个高度可用、速度极快的™ OCI 容器分发服务,用 Rust 编写,利用 S3 后端进行 blob 存储,并使用 PostgreSQL 数据库进行分布式锁定。其目标是支持在更新部署和垃圾回收下,n>2 部署的拉取和推送。
它旨在通过垃圾回收自动化来实现,并希望通过实现虚拟仓库和基于垃圾回收的升级等特性,取代像 artifactory 这样的企业级注册解决方案。
另一个目标是能够通过遍历 S3 存储来建立数据库,确保数据库只在运行时保持一致性。
HA-registry 根据 EUPL-1.2 许可,无需 CLA,并寻求遵守 REUSE 规范。我们还强制执行常规提交,并寻求建立强大的 semver 文化。
项目中使用的其他技术包括 Axum、Tokio 和 Nix,用于开发环境、打包和 NixOS VM 测试。
限制
- 仅支持 S3
OCI API 兼容性
端点
ID | 方法 | API 端点 | 成功 | 失败 | 已实现 |
---|---|---|---|---|---|
end-1 | GET |
/v2/ |
200 |
404 /401 |
|
end-2 | GET / HEAD |
/v2/<name>/blobs/<digest> |
200 |
404 |
|
end-3 | GET / HEAD |
/v2/<name>/manifests/<reference> |
200 |
404 |
|
end-4a | POST |
/v2/<name>/blobs/uploads/ |
202 |
404 |
|
end-4b | POST |
/v2/<name>/blobs/uploads/?digest=<digest> |
201 /202 |
404 /400 |
|
end-5 | PATCH |
/v2/<name>/blobs/uploads/<reference> |
202 |
404 /416 |
|
end-6 | PUT |
/v2/<name>/blobs/uploads/<reference>?digest=<digest> |
201 |
404 /400 |
|
end-7 | PUT |
/v2/<name>/manifests/<reference> |
201 |
404 |
|
end-8a | GET |
/v2/<name>/tags/list |
200 |
404 |
|
end-8b | GET |
/v2/<name>/tags/list?n=<integer>&last=<tagname> |
200 |
404 |
|
end-9 | DELETE |
/v2/<name>/manifests/<reference> |
202 |
404 /400 /405 |
|
end-10 | DELETE |
/v2/<name>/blobs/<digest> |
202 |
404 /405 |
|
end-11 | POST |
/v2/<name>/blobs/uploads/?mount=<digest>&from=<other_name> |
201 |
404 |
|
end-12a | GET |
/v2/<name>/referrers/<digest> |
200 |
404 /400 |
|
end-12b | GET |
/v2/<name>/referrers/<digest>?artifactType=<artifactType> |
200 |
404 /400 |
|
end-13 | GET |
/v2/<name>/blobs/uploads/<reference> |
204 |
404 |
另请参阅
依赖项
~31–48MB
~692K SLoC