-
Notifications
You must be signed in to change notification settings - Fork 61
Description
Hi 😃. I was looking into running a PyPi-like Server for hosting an Internal / Private Python Package Registry at work. This Project appeared to be very promising in Terms of Features compared to e.g. Devpi or other Projects like that.
However, whether it's due to my lack of Knowledge in Kubernetes (I only plan on deploying this as a docker-compose.yml File, possibly we'll see about HA or Kubernetes later) or just some Links that broke after an update in the Codebase ... Basically I find it very difficult (to some extent even Impossible) to find any Information.
I think I got to a reasonable Level in terms of Docker/Podman and Compose Files so far, yet
I'm currently stuck at starting Docker Compose and the PostgreSQL Database.
I'm running in Windows 11 with Docker Desktop (we have a License for that at Work) using Bind Mounts. The first obstacle was to touch some Files (IIRC passwd for PostgreSQL and settings.py for the pulp Server Service), otherwise Docker would complain that File is mounted as Folder or vice versa.
Once I managed to fix that, PostgreSQL Container kept complaining that it couldn't find the postgres User. The only Way to solve that and get PostgreSQL to initialize its Database was to REMOVE the passwd File Volume Mount. I actually NEVER used the passwd File with a PostgreSQL Container before so I'm not really sure what it's meant to do. I usually use Podman Secrets (or on some Projects don't support them, the corresponding Environment Variables), but I couldn't find anything in the Documentation that clearly states how to configure the Database using passwd File (as outlined in the Quickstart Guide) or without passwd. Is that meant to contain a single Line for the postgres User in Linux /etc/passwd/ File Format ? Or which Accounts does it require to be Defined there ?
It could be one Issue with WSL2 and Docker Desktop, so I'll also try directly on an Ubuntu 24.04 Virtual Machine on HyperV to rule that out. But the main Mystery based on what I could (not) find is how does pulp-minimal Services determine the Host/Port/Username/Password to connect to PostgreSQL ?
I would expect at least one of the following Options for configuring pulp-minimal within docker-compose.yml:
- Docker Secrets (
POSTGRES_USER_FILE,POSTGRES_PASSWORD_FILE, ...) - Environment Variables like for
postgresqlContainer itself (POSTGRES_USER,POSTGRES_PASSWORD, ...) settings.pybut unsure how exactly it's supposed to be configured, what Options are available (might be "standard" Django Options, but I am not familiar with django, so it's really a Guess Game)
The Reference Guide doesn't seem to contain any PostgreSQL Setting (it contains Redis Settings though).
The following Links are broken:
- https://pulpproject.org/pulp-operator/#configuring-pulp-operator-to-use-an-external-postgresql-installation
- https://pulpproject.org/pulp-operator/#configuring-pulp-operator-to-use-an-external-redis-installation
- https://docs.pulpproject.org/pulp_operator/configuring/storage/
- https://pulpproject.org/pulp-oci-images/#configure-pulp-to-talk-to-the-database-fedora-36-and-ubuntu-2204-only
- https://docs.pulpproject.org/pulp_operator/pulp/#database
Looking at the PULP Database Configuration but it's only mentioning Kubernetes.
The only thing that remotely resembles a Syntax that I can recognize would be the Ansible Role for Pulp Database (https://docs.pulpproject.org/pulp_installer/roles/pulp_database/). But it seems more related to Ansible than anything else 😞.
There's probably an Assumption within the Project that everybody is using/going to use Kubernetes ? Not sure ... I find the Kubernetes learning Curve quite steep 😞.
Thanks in advance for your Help