==== Summary ==== The Pulp project is an open-source platform that streamlines software repository management and content distribution across diverse environments. By automating package lifecycle tasks like mirroring, hosting, and versioning, it ensures reliable and consistent artifact delivery for complex systems. To learn more, please refer to https://pulpproject.org. ==== Deployment ==== By adopting a cloud-native strategy, the Pulp cluster is deployed on OpenShift to achieve optimal scalability and high availability. The official resources for OpenShift deployment can be accessed at [[https://pulpproject.org/pulp-operator|Pulp Project Documentation]]. * **Operator-Based Deployment:** The architecture utilizes the Pulp Operator to manage the full lifecycle of the Pulp components, including database (PostgreSQL) and cache (Redis) instances. * **Persistent Storage:** Artifact storage is managed via Persistent Volume Claims (PVCs), ensuring data persistence across pod restarts and updates. * **Exposure:** The service is exposed externally using OpenShift Routes, providing secure access to the Pulp API and content distribution services. * **Configuration:** Cluster settings, such as resource limits, replica counts, and storage classes, are defined within custom resource definitions (CRDs), allowing for consistent deployments across environments. ==== Accessing Pulp Repositories ==== Use pulp-cli to search, filter, and manage Ceph package repositories by leveraging metadata labels. **Prerequisites** The pulp-cli tool must be installed and configured with the appropriate server username and password. Refer to the [[https://pulpproject.org/pulp-cli/docs/user/guides/installation/|Pulp CLI installation guide]] for installation instructions. **Configure Pulp Client** To configure the Pulp client, run the following command with ceph specific Pulp username and password. $ pulp config create --base-url https://pulp.apps.pok.os.sepia.ceph.com/pulp/api/v3/ --username --password **Filtering Repositories by Label** Ceph repositories use metadata labels such as branch names, Ceph versions, or operating systems to help you isolate the specific artifacts you need. * **List repositories by a single label** * $ pulp repository list --label-select "branch=" * **List repositories using multiple labels** * $ pulp repository list --label-select "branch=,distro=" **Inspecting Repository Content** After identifying the target repository using label queries, view the specific packages hosted within it. $ pulp rpm repository show --name ==== Purge and Retention Policy ==== The automated cleanup cycle initiates daily at midnight to maintain storage efficiency. Data longevity is governed by the following retention framework * **Branch-Specific Configurations:** Unique branch settings define varying storage durations (typically 14 to 30 days) and ensure the preservation of a mandatory build count (between 2 and 10 builds) as specified by the policy. * **Standard Retention:** Branches lacking custom rules adhere to a baseline default policy, which maintains artifacts for 14 days without a guaranteed minimum build count.