Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support for pluggable transports #1353

Closed
wants to merge 33 commits into from

Conversation

adisbladis
Copy link
Member

SSH is not the only way to connect to machines.
I for one am using NixOps to deploy to my local machine and would like to be able to do that without going over SSH.

Another use case this opens up for is one I've been thinking a lot about but is too big for the scope of this PR, namely serial ports to deploy to embedded and air gapped machines that doesn't even have networking.

Additionally this PR contains quite a sizeable refactor to decouple command issuance from SSH which in itself makes all this effort worth it.

It's not used by anything
To avoid circular imports while still typing both Transport and MachineState
This transport is not using any network protocol but is just issuing
commands on the local machine.
The local transport should not use the ssh user for command formatting.
We need the parsed definition to be able to look at how it's configured.
nixops/backends/__init__.py Outdated Show resolved Hide resolved
@adisbladis adisbladis added this to the 2.1 milestone Jul 10, 2020
return shlex.split(command)

# Don't make assumptions about remote login shell
cmd: List[str] = ["bash", "-c", command]

Choose a reason for hiding this comment

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

Suggested change
cmd: List[str] = ["bash", "-c", command]
cmd: List[str] = ["sh", "-c", command]

@adisbladis adisbladis closed this Feb 18, 2024
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.

None yet

3 participants