This topic outlines the supported packages for smart archiving. It includes the policy conditions that apply to each package type.
Package Type | Supported Release Version | Age (Packages Older Than) | Usage (Packages Not Downloaded Since) | Version (Number of Latest Versions to Keep) |
---|---|---|---|---|
Alpine | 7.111 | |||
Docker | ||||
Maven | ||||
Ansible | ||||
npm | ||||
Gradle | ||||
Generic | ||||
RPM | ||||
Conan | ||||
NuGet | ||||
PyPI | ||||
Helm | ||||
Go | ||||
Debian | ||||
Gems | ||||
Cargo | ||||
HuggingFaceML | ||||
Machine Learning | ||||
CocoaPods | ||||
Terraform | ||||
Terraform BE | ||||
OCI | ||||
Helm OCI | ||||
Conda | ||||
Hex | ||||
SBT | ||||
Vagrant | ||||
Swift | upcoming |
Note
Because some of the package types include multiple artifacts the package-level archive mechanism relies on the lead artifact statistics. The following are the lead artifacts per package type:
Docker: manifest.json, list.manifest.json
Maven/Gradle: .pom
Conan: conanfile.py
Docker Archive Method
Docker images support the ability to tag the same image multiple times, and utilize list.manifests
to manage multi-architecture images. Each list.manifest
can refer to multiple manifests, with each manifest representing a specific architecture or operating system.
Therefore, version-based archive policies, if applied to Docker images, can disrupt builds by detaching the relationships between tags and breaking the links between list.manifests
and their respective manifests. Consequently, this could lead to partial or corrupted image deletions, ultimately impacting the reliability and consistency of Docker repositories.
To mitigate these risks, Archive Policies exclusively use time-based conditions for Docker packages. This approach ensures that only images and tags that have not been used within a specified period are archived, thereby preserving the integrity of tag relationships and multi-architecture references. This maintains a stable and predictable environment for Docker image management within Artifactory.
Also, JFrog recommends using the Packages Not Downloaded Since condition with Docker packages to ensure that packages currently in use are not archived.