Repository navigation
Conversation
|
No actionable comments were generated in the recent review. ℹ️ Recent review info
Walkthrough
Merge Risk:
|
|
I investigated the two failed jobs in this run:
All certificate-check-specific lint and deployment jobs are green. I will rerun the complete workflow after the current run finishes rather than retrying only selected jobs. |
|
The workflow has now completed. The failures are the two unrelated runner/environment failures described above; all other matrix jobs, including the upgrade job, passed. I tried to rerun the complete workflow (not individual jobs), but GitHub rejected it because fork contributors do not have repository admin permission. Could a maintainer please rerun the full failed workflow run 36087064533? |
|
The failing deployment jobs are caused by the shared development-memory issue, not by the certificate-check changes: the SOS journal records candlepin.service being killed by the OOM killer. #865 limits the Candlepin heap for development tuning and has passed the complete CI matrix. |
3830444 to
ac343fd
Compare
|
The failing deployment jobs hit the Candlepin heap/OOM problem fixed on current master by #865. I rebased this branch onto that fix; CI is running again. |
|
The only remaining exact-head failure is the CentOS Stream 10 fapolicyd content-proxy job. The proxy ran out of resources while pulling images; this shared matrix problem is fixed by PR #884, where the equivalent job is green. The certificate-check code is not involved. I will rebase after PR #884 lands. |
|
Did you consider a design whereby the checks are handled by Ansible directly, and instead of a stand-alone script there is a foremanctl command when needing to run it stand-alone? If not, could you compare the two? I'm not sure which will be best, but I'd like use to do the due diligence. |
ac343fd to
59bd107
Compare
|
I compared the two approaches now. Doing this directly in Ansible is attractive for the basic checks: Putting those into the role would spread one validator over a fairly long list of registered tasks with The current split keeps Ansible as the orchestrator and one Python implementation as the validator. It runs on the managed host where the certificate paths exist, has deterministic unit tests, reports all failures in one invocation, and can be reused by a future Based on that comparison I would keep the Python helper as the single implementation and add a thin foremanctl command around it separately if we want a supported standalone UX. If you prefer that command to be part of this PR, I can add it here. |
be65d23 to
f12c97e
Compare
340ce79 to
8147c02
Compare
Updated the existing change onto current master with the merged Pulp and container-test prerequisites. Consolidated the PR into one commit. AI assistance: Codex. Project signature: GPT_5.6 Sol.
8147c02 to
c2bc59a
Compare
|
Rebased onto current master in c2bc59a, keeping one commit and the same feature patch. The previous deployment jobs stopped while installing Vagrant from the unavailable PPA. All 12 targeted certificate tests passed locally using OpenSSL 3, along with targeted Ansible lint and Ruff. No pending PR is required for this retry. Fresh CI has been started. |
Why are you introducing these changes? (Problem description, related links)
Fixes #714. Replace the shell certificate validator with a Python implementation that preserves its exit-code contract and makes its checks easier to maintain.
What are the changes introduced in this pull request?
This is independent of other open PRs. Rebased the single commit onto current
master. The previous CI run failed while installing Vagrant from an unavailable PPA, before deployment testing.How to test this pull request
Run
python -m pytest --confcutdir=tests/unit tests/unit/foreman_ceritificate_check_test.py -q, then run the deployment matrix with default and custom certificates. Exercise valid certificates and invalid keys, chains and hostnames.Local verification after rebase: all 12 tests in that certificate suite passed using the existing OpenSSL 3 installation. Ruff passed across the repository's configured Python paths, targeted Ansible lint passed, and
git diff --checkpassed. Full deployment testing remains for CI. No local VM or container stack was started.Checklist
AI assistance: Codex. Project signature: GPT_5.6 Sol.