GitLab/Object/Storage
GitLab stores some data in a Ceph-based S3-compatible object storage called APUS. This reduces disk usage and shortens backup and restore cycles for the GitLab hosts.
Artifacts
This files are generated in CI jobs and contain job logs, build artifacts and other files. This files are stored in a bucket called gitlab-artifacts
on the APUS Ceph cluster. All GitLab instances (production and replicas) share the same bucket and data. Replicas use read-only credentials. This also means during a failover no artifacts have to be synchronized.
Packages
This files are also generated in CI jobs but contain bigger files like compiled applications, releases, Debian packages. This files will be stored in a bucket called gitlab-packages
on the APUS Ceph cluster, currently packages are still stored on the GitLab host, see T378922.
Accessing the Ceph buckets
Direct access to the buckets is possible using tools like s3cmd
. This tool is installed on newer cumin hosts and can be used when a .s3cfg file is populated with the correct credentials (which can be found in private puppet hieradata/common/profile/ceph/s3/client.yaml
).
s3cmd
can be used to list or delete files, create buckets or change acls:
jelto@cumin2002:~$ s3cmd mb gitlab-artifacts
jelto@cumin2002:~$ s3cmd mb gitlab-packages
jelto@cumin2002:~$ s3cmd ls
2025-05-27 08:32 s3://gitlab-artifacts
2025-05-27 08:32 s3://gitlab-packages
jelto@cumin2002:~$ s3cmd ls s3://gitlab-artifacts
...
See also https://phabricator.wikimedia.org/T378922, this is work in progress