Skip to content

refactor(tmachine): separate installation profiles - #3419

Open
SDAChess wants to merge 2 commits into
mainfrom
refactor/tmachine-installation-profiles
Open

SDAChess wants to merge 2 commits into
mainfrom
refactor/tmachine-installation-profiles

Conversation

@SDAChess

Copy link
Copy Markdown
Collaborator

Summary

Separate tmachine runtime scenarios from named installation profiles so the same rootful or rootless setup can exercise native and package-based installs. This PR preserves the current native installation and makes the installation name explicit in the CLI and conformance workflow.

Related Issue

No issue required: internal test harness refactor with no product behavior change. Stacked on #3418.

Changes

  • Move the existing native playbooks and inputs into a shared native installation profile.
  • Require an installation profile for tmachine install and tmachine test.
  • Keep conformance jobs on the native profile and document the cache layering.

Testing

  • mise run pre-commit passes (skipped at author request)
  • Unit tests added/updated (not applicable; config and CLI wiring refactor)
  • E2E tests added/updated (not applicable; existing smoke suite is unchanged)
  • cargo fmt --check --manifest-path tests/tmachine/Cargo.toml
  • cargo check --manifest-path tests/tmachine/Cargo.toml
  • nix build --no-link --print-out-paths .#tmachine-config
  • nix run .#tmachine -- test --help
  • actionlint .github/workflows/conformance.yml

Checklist

  • Follows Conventional Commits
  • Commits are signed off (DCO)
  • Architecture docs updated (if applicable)

Signed-off-by: Simon Scatton <sscatton@nvidia.com>
Signed-off-by: Simon Scatton <sscatton@nvidia.com>
@SDAChess

Copy link
Copy Markdown
Collaborator Author

This PR closes the remaining design gap tracked by #2972 under the revised tmachine composition model.

Tmachine now separates:

  • scenarios for machine and runtime setup;
  • installation profiles for installing OpenShell;
  • testsuites for post-install behavior.

This replaces the earlier target / flow / suite model. Clean installation belongs to an installation profile, while stateful transitions such as installing N and upgrading to N+1 belong in a testsuite. The upgrade implementation remains tracked by #2975.

After this PR merges, #2972 can be closed as completed.

Comment thread tests/config.nix
}
];

scenarios = [

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Not critical to this PR, but did we want to rename scenarios at some point. This is basically the "baseos" and "compute backend"? (as an entry in the support matrix).

Comment thread tests/config.nix
Comment on lines +70 to 83
installations = [
{
name = "native";
use_galaxy = false;
playbooks = [
"ansible/playbooks/openshell.yaml"
"ansible/playbooks/gateway.yaml"
];
inputs = {
openshell_cli_binary = "../artifacts/binaries/${muslTarget}/openshell";
openshell_gateway_binary = "../artifacts/binaries/${gnuTarget}/openshell-gateway";
openshell_supervisor_image = "../artifacts/images/openshell-supervisor-tmachine.tar";
openshell_sandbox_image = "../artifacts/images/openshell-sandbox-tmachine.tar";
};

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I like this!
One question: Do we define restrictions on target scenarios here or in the playbooks themselves? For example, we can only install rpms on fedora and debs or snaps on ubuntu?

Base automatically changed from feat/tmachine-add-scalar-playbook-input to main September 17, 2026 20:37
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.

2 participants