Skip to content

feat: add an isolated test-environment host installer - #76

Open
Nickfost wants to merge 73 commits into
feat/issue-22-deployer-host-installerfrom
feat/issue-23-tester-host
Open

Nickfost wants to merge 73 commits into
feat/issue-22-deployer-host-installerfrom
feat/issue-23-tester-host

Conversation

@Nickfost

@Nickfost Nickfost commented Aug 16, 2026 •

Copy link
Copy Markdown
Member

Adds a dedicated tester host installer and runtime for creating, inspecting, resetting, rolling back, and removing isolated application test environments. Source revisions and image digests are pinned; resource limits, loopback routes, bounded health checks, and expiration cleanup are enforced.

The runtime rejects external Compose imports, credential channels, unsupported IPv4-disabled networks and service-level tmpfs, and unapproved Docker resources before activation. Health compares live resources with the protected model and requires matching DNS/HTTPS probe hosts. Installer checks reject systemd overrides and stale loaded policy. Controller and status-receiver installers also reject residual tester launchers and release pointers, including dangling symlinks.

This PR is stacked on #69. Required CI runs the tester lifecycle and isolation regressions, reciprocal role-admission tests, static/configuration/secret checks, and container builds. Tester hosts require Debian 12 or newer and python3-yaml.

Refs #23. Ready for review at the user's request. Prepared-host install, upgrade, rollback, reset, and cleanup acceptance remains outstanding. Host network isolation and absence of production authority require operator verification. No live host installation or infrastructure change was performed; readiness does not waive those gates or authorize merging.

@Nickfost

Copy link
Copy Markdown
Member Author

@codex review

Please review exact head b86cb94 for isolation boundaries, idempotence, rollback/state preservation, remote-Docker rejection, cleanup scope, and mocked acceptance coverage.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: b86cb94df9

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread scripts/tester-runtime.sh
Comment thread scripts/tester-runtime.sh Outdated
Comment thread scripts/tester-runtime.sh Outdated
Comment thread scripts/tester-runtime.sh Outdated
Comment thread scripts/install-tester.sh Outdated
Comment thread scripts/tester-runtime.sh Outdated
Comment thread scripts/tester-runtime.sh Outdated
Comment thread scripts/test-install-tester.sh
Comment thread scripts/tester-runtime.sh Outdated
Comment thread scripts/tester-runtime.sh
@Nickfost

Copy link
Copy Markdown
Member Author

@codex review

Please confirm exact head a75e2fa69afe6bff6b4f6a2b3f211b80495bd65b after the accepted lifecycle, policy, rollback, health, and release-integrity fixes.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: a75e2fac15

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread scripts/tester-runtime.sh Outdated
Comment thread scripts/tester-runtime.sh
Comment thread scripts/install-tester.sh Outdated
Comment thread scripts/tester-runtime.sh
Comment thread scripts/install-tester.sh
Comment thread scripts/install-tester.sh Outdated
Comment thread scripts/install-tester.sh Outdated
Comment thread scripts/install-tester.sh Outdated
Comment thread scripts/install-tester.sh Outdated
@Nickfost

Copy link
Copy Markdown
Member Author

@codex review

Please confirm exact head f36fa02c3188de680087913e34bcb4f739641bd6; this only makes read-only release tamper/teardown tests work under non-root CI, with the full tester suite passing.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: f36fa02c6d

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread scripts/tester-runtime.sh Outdated
Comment thread scripts/tester-runtime.sh Outdated
@Nickfost

Copy link
Copy Markdown
Member Author

@codex review

Please review exact head 196b121 after the accepted Compose isolation, release recovery, lifecycle locking, teardown, and regression fixes.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 196b121df6

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread scripts/tester-runtime.sh Outdated
Comment thread scripts/tester-runtime.sh Outdated
Comment thread scripts/install-tester.sh Outdated
Comment thread scripts/install-tester.sh Outdated
Comment thread scripts/tester-runtime.sh Outdated
@Nickfost

Copy link
Copy Markdown
Member Author

@codex review

Please review exact head ca39b25 after the accepted immutable-build, model-replacement, teardown, lifecycle-serialization, and hard-link fixes.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: ca39b25234

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread scripts/tester-runtime.sh
Comment thread scripts/install-tester.sh Outdated
Comment thread scripts/install-tester.sh
Comment thread scripts/tester-runtime.sh Outdated
@Nickfost

Copy link
Copy Markdown
Member Author

@codex review

Please review exact head b4736e5 after the accepted cleanup containment, incumbent restoration, reset locking, and atomic model-preservation fixes.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: b4736e5e1a

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread scripts/install-tester.sh
Comment thread scripts/tester-runtime.sh Outdated
Comment thread scripts/tester-runtime.sh Outdated
@Nickfost

Copy link
Copy Markdown
Member Author

@codex review

Please review exact head 841406c after the accepted timer-quiescence, confinement-option, and bounded-teardown fixes.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 841406c946

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread scripts/tester-runtime.sh Outdated
Comment thread scripts/install-tester.sh Outdated
Comment thread scripts/tester-runtime.sh Outdated
Comment thread scripts/tester-runtime.sh Outdated
Comment thread scripts/tester-runtime.sh Outdated
@Nickfost

Copy link
Copy Markdown
Member Author

@codex review

Please review exact head d88df91 after the accepted cross-link, timer-restoration, namespace, interpolation, and activation-timeout fixes.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: d88df91e1d

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread scripts/tester-runtime.sh
Comment thread scripts/tester-runtime.sh Outdated
Comment thread scripts/install-tester.sh
Comment thread scripts/tester-runtime.sh Outdated
Comment thread scripts/install-tester.sh
@Nickfost

Copy link
Copy Markdown
Member Author

@codex review

Please review exact head bec7c76 after the accepted include, UTS, stable-launcher, logging, and lock-directory fixes.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: bf92f669a8

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread scripts/tester-runtime.sh
Comment thread scripts/tester-runtime.sh
@Nickfost

Copy link
Copy Markdown
Member Author

@codex review

Please review current head f053174. It includes the residual tester-role guards, IPv4-disabled/service-tmpfs model rejection, the previously validated loaded-systemd-policy and matching-probe fixes, and the deployer reboot-lock update from #69. The controller built locally before push. Role-admission regressions, deployer unit tests, documentation links, secret scanning, and title/commit validation passed. The full tester lifecycle suite is running against a fixed detached checkout; required CI must pass on this exact commit. Prepared-host acceptance remains outstanding.

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Something went wrong. Try again later by commenting “@codex review”.

Unknown error
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@Nickfost

Copy link
Copy Markdown
Member Author

@codex review current head f053174. Retrying the previous review request after its Unknown error. Local tester lifecycle, reciprocal role-admission, and static checks passed; required CI is running.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: f053174be3

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread scripts/tester-runtime.sh Outdated
Comment thread scripts/install-tester.sh
Comment thread scripts/tester-runtime.sh
@Nickfost

Copy link
Copy Markdown
Member Author

@codex review current head 1ab8d3a. The latest fixes reject device_cgroup_rules before activation and device permissions during health checks, reject duplicate resolved network/volume names, and reject residual deployer/status installation roots and metadata in installer/runtime admission. Static checks passed. Full local tester lifecycle validation is running in a fixed detached checkout, and this new head requires fresh hosted CI. Prepared-host acceptance remains outstanding.

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Something went wrong. Try again later by commenting “@codex review”.

Unknown error
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@Nickfost

Copy link
Copy Markdown
Member Author

@codex review current head 1ab8d3a. Retrying after the Unknown error on the last request. Review the device restrictions, unique Docker resource names, and residual host-role admission fixes.

@Nickfost

Copy link
Copy Markdown
Member Author

@codex review current head cd5294d. This corrects the role regression arguments from 1ab8d3a. The focused role-admission checks pass with real directory remnants and dangling pointers in install/check/runtime-health paths. Full lifecycle validation is running against a fixed detached cd5294d checkout. The device and unique-resource-name fixes are unchanged; required CI must validate this exact new commit.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: cd5294d92f

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread scripts/tester-runtime.sh Outdated

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: cd5294d92f

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread scripts/install-tester.sh
Comment thread scripts/install-tester.sh Outdated
Comment thread scripts/tester-runtime.sh Outdated
@Nickfost

Copy link
Copy Markdown
Member Author

@codex review current head 910b877. This addresses capability-list consistency, effective foreign systemd unit inventory, no-op uninstall side effects, and scoped teardown during role drift. Focused admission and recovery regressions passed, along with ShellCheck, documentation links, secret scanning, and commit validation. The full lifecycle suite is running in a fixed detached checkout. Required CI must pass on this exact head. The deployer-owned files are untouched, #76 remains stacked on #69, and prepared-host acceptance remains outstanding.

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Something went wrong. Try again later by commenting “@codex review”.

Unknown error
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@Nickfost

Copy link
Copy Markdown
Member Author

@codex review current head 910b877. Retrying after the Unknown error. Full local tester lifecycle and isolation validation passed on this fixed head; required hosted CI is running.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 910b8778ee

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread scripts/install-tester.sh Outdated
@Nickfost

Copy link
Copy Markdown
Member Author

@codex review current head addde3e. The systemd inventory guard now accepts documented empty list-unit-files results with status 1 and no diagnostics, while rejecting genuine inspection errors. It queries unfiltered, untruncated, plain inventories and filters foreign unit names locally. Regressions cover empty results, status-1 diagnostics, other failures, allowed ordinary/tester units, and foreign units. A real systemctl --root check verifies CLI behavior against a temporary offline filesystem. Focused checks and static validation passed; full lifecycle validation is running on a fixed detached head. This new head requires fresh hosted CI; prepared-host acceptance remains outstanding.

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Something went wrong. Try again later by commenting “@codex review”.

Unknown error
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@Nickfost

Copy link
Copy Markdown
Member Author

@codex review current head addde3e. Retrying after the Unknown error. Full local tester lifecycle and isolation validation passed on this fixed head, including real offline systemctl inventory checks. Required hosted CI is running.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: addde3e6e3

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread scripts/install-status-receiver.sh
Comment thread scripts/install-tester.sh Outdated
@Nickfost

Copy link
Copy Markdown
Member Author

@codex review

Please review the final reconciled head beaac58. It incorporates deployer head 10e3c12 and fixes reciprocal effective systemd inventory admission plus clean-host rollback markers. Focus on tester lifecycle and host isolation. Prepared-host acceptance is still missing, and the two deployer containment findings remain open. No host access or merge is authorized.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat: Add idempotent install-tester.sh for persistent test environment hosts

1 participant