Freeze lab-tested PostgreSQL plugin engine
Extract PostgreSQL, Podman runtime and systemd lifecycle adapters while preserving existing lifecycle and scoring behavior. Update RPM layout and add guarded operator-run lab harnesses. Record successful manual stop/start, promotion, demotion and rewind-only rejoin with pinned installed hashes. The unfenced lab does not validate automatic failover, Pacemaker-managed transitions or divergent-data rewind. Validation: 103 offline tests, original-function differential checks, checksum manifest and whitespace checks passed.
This commit is contained in:
+5
-1
@@ -5,7 +5,7 @@ Fedora 43, matching the saved lab package context. The workstation currently
|
||||
reports Fedora 44; this first workflow does not claim a Fedora 44 build test.
|
||||
It runs on main pushes, pull requests and manual dispatch.
|
||||
|
||||
The build installs only the OCF executable and nine shell modules, one Python state helper, plus documentation.
|
||||
The build installs only the OCF executable and 13 shell modules, one Python state helper, plus documentation.
|
||||
It includes no Quadlet, secrets, databases or cluster configuration. There are
|
||||
no RPM lifecycle scriptlets. Installation does not start, stop or restart a
|
||||
service or change maintenance mode. Host PostgreSQL packages are not required.
|
||||
@@ -85,3 +85,7 @@ The disconnected candidate adds a runtime Python 3 dependency and advertises
|
||||
Current operating policy and operator-reported production validation are packaged
|
||||
from `docs/`. The source freeze is distinct from verified deployed-byte identity;
|
||||
see [testing](../docs/testing.md) for production snapshot status.
|
||||
|
||||
The plugin extraction adds three selectors, defaulting to PostgreSQL/Podman/systemd.
|
||||
The package includes all API-1 plugin files and `plugin-engine.md`; Docker and
|
||||
direct-runtime lifecycle management are not implemented.
|
||||
|
||||
@@ -51,7 +51,11 @@ cp packaging/README.md RPM-BUILD.md
|
||||
%install
|
||||
install -d %{buildroot}%{ocf_provider_dir}/managed-container.d
|
||||
install -m 0755 refactored/managed-container %{buildroot}%{ocf_provider_dir}/managed-container
|
||||
install -m 0644 refactored/managed-container.d/*.sh refactored/managed-container.d/*.py %{buildroot}%{ocf_provider_dir}/managed-container.d/
|
||||
for subdir in . applications/postgresql lifecycles runtimes; do
|
||||
install -d %{buildroot}%{ocf_provider_dir}/managed-container.d/$subdir
|
||||
install -m 0644 refactored/managed-container.d/$subdir/*.sh %{buildroot}%{ocf_provider_dir}/managed-container.d/$subdir/
|
||||
done
|
||||
install -m 0644 refactored/managed-container.d/applications/postgresql/promotion_state.py %{buildroot}%{ocf_provider_dir}/managed-container.d/applications/postgresql/
|
||||
|
||||
%check
|
||||
python3 tests/verify_refactor.py
|
||||
@@ -59,6 +63,7 @@ python3 tests/test_promotion_scores.py
|
||||
python3 tests/test_promotion_scheduler.py
|
||||
python3 tests/test_promotion_cleanup.py
|
||||
python3 tests/test_disconnected_state.py
|
||||
python3 tests/test_plugin_engine.py
|
||||
# Check the actual staged layout, including resolution from an unrelated cwd.
|
||||
agent="%{buildroot}%{ocf_provider_dir}/managed-container"
|
||||
"$agent" meta-data > staged-metadata.xml
|
||||
@@ -70,9 +75,16 @@ cmp reference-metadata.xml other-cwd-metadata.xml
|
||||
%files
|
||||
%defattr(-,root,root,-)
|
||||
%doc README.md packaging/PROVENANCE.md RPM-BUILD.md notes/PROMOTION-SCORING.md notes/DISCONNECTED-STANDBY.md
|
||||
%doc docs/operations.md docs/testing.md docs/review.md
|
||||
%doc docs/operations.md docs/testing.md docs/review.md docs/plugin-engine.md
|
||||
%dir %{ocf_provider_dir}
|
||||
%attr(0755,root,root) %{ocf_provider_dir}/managed-container
|
||||
%dir %{ocf_provider_dir}/managed-container.d
|
||||
%attr(0644,root,root) %{ocf_provider_dir}/managed-container.d/*.sh
|
||||
%attr(0644,root,root) %{ocf_provider_dir}/managed-container.d/*.py
|
||||
%dir %{ocf_provider_dir}/managed-container.d/applications
|
||||
%dir %{ocf_provider_dir}/managed-container.d/applications/postgresql
|
||||
%dir %{ocf_provider_dir}/managed-container.d/lifecycles
|
||||
%dir %{ocf_provider_dir}/managed-container.d/runtimes
|
||||
%attr(0644,root,root) %{ocf_provider_dir}/managed-container.d/applications/postgresql/*.sh
|
||||
%attr(0644,root,root) %{ocf_provider_dir}/managed-container.d/applications/postgresql/*.py
|
||||
%attr(0644,root,root) %{ocf_provider_dir}/managed-container.d/lifecycles/*.sh
|
||||
%attr(0644,root,root) %{ocf_provider_dir}/managed-container.d/runtimes/*.sh
|
||||
|
||||
Reference in New Issue
Block a user