During a binary fetch operation from the Cloud Services Provider (CSP) or upstream repository, the VMware Postgres Orchestrator completes the fetch but logs an "Incomplete Postgres" warning for specific database versions.
Symptoms
The Orchestrator logs or CLI output shows validation failures similar to the following:
Fetching binaries from csp source for OS el9 and Postgres versions 17.7,18.0...
Incomplete Postgres 17.7: 9 RPMs present, 1 missing
Missing packages:
- vmware-postgres-advanced-patroni-python3.12-4.0.5.0-3.el9.x86_64.rpm
Incomplete Postgres 18.0: 9 RPMs present, 1 missing
Missing packages:
- vmware-postgres-advanced-patroni-python3.12-4.0.5.0-2.el9.x86_64.rpm
The Orchestrator API Server uses a string match filter against the package_excludes configuration array. When the string "python" is present in this exclusion list, the download logic automatically skips any package containing that substring—including the required vmware-postgres-advanced-patroni-python3.12-*.rpm package.
Because this package is mandatory for High Availability (Patroni) clusters, the internal validator marks the repository sync as incomplete even though the 9 core Postgres engine binaries were downloaded successfully.
Remove the "python" string filter from the package_excludes configuration block.
Step-by-Step Instructions
1. Access the API Server
Establish an SSH session to the VMware Postgres Orchestrator API Server node (root or sudo access required).
2. Backup the Configuration
Create a timestamped backup of the configuration file before making edits:
3. Edit the Configuration File
Bash
sudo vi /etc/pg-orchestrator-api/config.yaml
Locate the storage section and update package_excludes to the default recommended values:
YAML
storage:
package_excludes: ["debuginfo", "debugsource", "static", "doc", "tests"]Note: This keeps standard debug, documentation, and test packages excluded while allowing the required Patroni Python runtime package to bypass the filter.
4. Restart the API Service
Restart the daemon to apply the configuration changes:
sudo systemctl restart pg-orchestrator-api.service
5. Re-run the Binary Fetch
Execute the binary synchronization command again. The Patroni Python RPM should now download successfully, and validation will complete cleanly.
Verification
After re-fetching, the command output will no longer display the "Incomplete Postgres" messages and will verify that all required packages (10 RPMs total per database version) are present.
References
Installing and Configuring the Orchestrator
Additional Notes