docs: Added more details on pulp
This commit is contained in:
parent
b85952e518
commit
89568b6d54
1 changed files with 36 additions and 2 deletions
38
caching.md
38
caching.md
|
@ -34,6 +34,9 @@
|
||||||
- Currently of out Scope
|
- Currently of out Scope
|
||||||
- Auth: Cache provides data to anyone who can reach it
|
- Auth: Cache provides data to anyone who can reach it
|
||||||
|
|
||||||
|
- Nice to have
|
||||||
|
- Repo Cache: Can store uploaded artifacts
|
||||||
|
|
||||||
### Architectural Solutions
|
### Architectural Solutions
|
||||||
|
|
||||||
#### File System-Based Caching
|
#### File System-Based Caching
|
||||||
|
@ -98,15 +101,17 @@
|
||||||
- basically only maven support
|
- basically only maven support
|
||||||
- does not suffice for our use case
|
- does not suffice for our use case
|
||||||
|
|
||||||
- Community Edition has more features but is limited in sizing. Upgrade to Pro edition necessary in those limits are exceeded.
|
- Community Edition has more features but is limited in sizing. Upgrade to Pro edition necessary if those limits are exceeded.
|
||||||
|
|
||||||
#### Artifactory
|
#### Artifactory
|
||||||
|
|
||||||
- Open source / free version
|
- Open source / free version
|
||||||
|
|
||||||
- Limited feature set
|
- Limited feature set
|
||||||
- Separate distributions per repo type java / container / etc
|
- Separate distributions per repo type java / container / etc
|
||||||
|
|
||||||
- Inconvenient and insufficient for our use case
|
- Inconvenient and insufficient for our use case
|
||||||
|
- Full feature set requires paid license
|
||||||
|
|
||||||
License evaluation needed
|
License evaluation needed
|
||||||
[EULA](https://jfrog.com/artifactory/eula/)
|
[EULA](https://jfrog.com/artifactory/eula/)
|
||||||
|
@ -116,6 +121,8 @@ License evaluation needed
|
||||||
[GH](https://github.com/artipie/artipie)
|
[GH](https://github.com/artipie/artipie)
|
||||||
[Wiki](https://github.com/artipie/artipie/wiki)
|
[Wiki](https://github.com/artipie/artipie/wiki)
|
||||||
|
|
||||||
|
- Self-hosted and upstream artifact caching
|
||||||
|
|
||||||
- MIT License
|
- MIT License
|
||||||
|
|
||||||
- might be abandoned / low dev activity / needs new maintainer
|
- might be abandoned / low dev activity / needs new maintainer
|
||||||
|
@ -124,17 +131,32 @@ License evaluation needed
|
||||||
- Mostly headless
|
- Mostly headless
|
||||||
- Brings a limited web interface
|
- Brings a limited web interface
|
||||||
- Repo creation, artifact viewing
|
- Repo creation, artifact viewing
|
||||||
|
- Buggy default config
|
||||||
|
- config changes require restart, which seems to be a bug?
|
||||||
|
- Easy to setup, once bugs and buggy config are mitigated/worked around
|
||||||
|
- File system and object storage supported
|
||||||
|
- No databases required
|
||||||
|
|
||||||
- Pro: Config in yaml file
|
- Pro: Config in yaml file
|
||||||
|
|
||||||
|
- Due to its simplicity it might be a good candidate for a first upstream caching solution
|
||||||
|
|
||||||
#### Pulp
|
#### Pulp
|
||||||
|
|
||||||
[Website](https://pulpproject.org/)
|
[Website](https://pulpproject.org/)
|
||||||
[GH](https://github.com/pulp/pulpcore)
|
[GH](https://github.com/pulp/pulpcore)
|
||||||
|
|
||||||
|
- Self-hosted and upstream artifact caching
|
||||||
|
|
||||||
- GPL 2.0 License
|
- GPL 2.0 License
|
||||||
|
|
||||||
- Pull-Through Caches are only technical previews and might not work correctly
|
- Pull-Through Caches are only technical previews and might not work correctly
|
||||||
|
- Pull-through cache does not fit into the concept of how artifacts are stored an tracked
|
||||||
|
- Intended workflow is to sync dedicated artifacts with some upstream repo, not the entire repo
|
||||||
|
- Setup and config are quite complex
|
||||||
|
- Build for high availability
|
||||||
|
- File system and object storage supported
|
||||||
|
- Requires SQL Db (Postgres) and possibly Redis
|
||||||
|
|
||||||
#### kube-image-keeper
|
#### kube-image-keeper
|
||||||
|
|
||||||
|
@ -186,5 +208,17 @@ License evaluation needed
|
||||||
- Reduces build times significantly if dependencies have to be downloaded from outside networks
|
- Reduces build times significantly if dependencies have to be downloaded from outside networks
|
||||||
- Avoid using fs cache, i.e. forgejo runner cache, long term or at all
|
- Avoid using fs cache, i.e. forgejo runner cache, long term or at all
|
||||||
- Unless you can handle proper cache invalidation
|
- Unless you can handle proper cache invalidation
|
||||||
- Promote immutable infra and reproducible builds without side effects
|
- Promotes immutable infra and reproducible builds without side effects
|
||||||
- Use as additional layer if there is no local cache repo
|
- Use as additional layer if there is no local cache repo
|
||||||
|
|
||||||
|
- Repo caches
|
||||||
|
- Can replace file system cache if network and repo are fast enough
|
||||||
|
- Optimal solution would be a Nexus/Artifactory-like unified solution
|
||||||
|
- Foss solutions like Artipie and Pulp have severe problems
|
||||||
|
- Requires us to add features/fixes/maintenance
|
||||||
|
- Due to scarce landscape of proper foss solutions we might have to opt for multiple dedicated solutions
|
||||||
|
- If we opt for a dedicated container cache, we should re-evaluate Harbor or Quay
|
||||||
|
|
||||||
|
- Try to use Artipie as a first, simple solution and use Forgejo Runner caches in conjunction for even better performance
|
||||||
|
- If Artipie does not work correctly or does not fit some reason we didn't waste too much time on it
|
||||||
|
- If Artipie is abandoned but the concept works for us, we should consider maintaining it and continuing its development
|
||||||
|
|
Loading…
Reference in a new issue