Skip to content

chore: use background hostname for admin tasks #446

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

Merged
merged 10 commits into from
Jun 25, 2024
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Next Next commit
chore: use background hostname for admin tasks
  • Loading branch information
f0ssel committed Jun 25, 2024
commit ddc22bf9cfcd0f316d40b197b5c8f908fc74f04c
Original file line number Diff line number Diff line change
Expand Up @@ -141,7 +141,13 @@ class CoderRemoteConnectionHandle {
port = 22
authType = AuthType.OPEN_SSH
}
val accessor = HighLevelHostAccessor.create(credentials, true)
val backgroundCredentials = RemoteCredentialsHolder().apply {
setHost(workspace.hostname)
userName = "coder"
port = 22
authType = AuthType.OPEN_SSH
}
val accessor = HighLevelHostAccessor.create(backgroundCredentials, true)

// Deploy if we need to.
val ideDir = this.deploy(workspace, accessor, indicator, timeout)
Expand Down
18 changes: 17 additions & 1 deletion src/main/kotlin/com/coder/gateway/cli/CoderCLIManager.kt
Original file line number Diff line number Diff line change
Expand Up @@ -281,7 +281,15 @@ class CoderCLIManager(
transform = {
"""
Host ${getHostName(deploymentURL, it)}
ProxyCommand ${proxyArgs.joinToString(" ")} $it
ProxyCommand CODER_SSH_USAGE_APP=jetbrains ${proxyArgs.joinToString(" ")} $it
ConnectTimeout 0
StrictHostKeyChecking no
UserKnownHostsFile /dev/null
LogLevel ERROR
SetEnv CODER_SSH_SESSION_TYPE=JetBrains

Host ${getBackgroundHostName(deploymentURL, it)}
ProxyCommand CODER_SSH_USAGE_APP=disable ${proxyArgs.joinToString(" ")} $it
ConnectTimeout 0
StrictHostKeyChecking no
UserKnownHostsFile /dev/null
Expand Down Expand Up @@ -465,5 +473,13 @@ class CoderCLIManager(
): String {
return "coder-jetbrains--$workspaceName--${url.safeHost()}"
}

@JvmStatic
fun getBackgroundHostName(
url: URL,
workspaceName: String,
): String {
return getHostName(url, workspaceName) + "--bg"
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -214,7 +214,7 @@ class CoderWorkspaceProjectIDEStepView(
} else {
IDECellRenderer(CoderGatewayBundle.message("gateway.connector.view.coder.connect-ssh"))
}
val executor = createRemoteExecutor(CoderCLIManager.getHostName(data.client.url, name))
val executor = createRemoteExecutor(CoderCLIManager.getBackgroundHostName(data.client.url, name))

if (ComponentValidator.getInstance(tfProject).isEmpty) {
logger.info("Installing remote path validator...")
Expand Down
7 changes: 7 additions & 0 deletions src/test/fixtures/outputs/append-blank-newlines.conf
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,11 @@ Host coder-jetbrains--foo-bar--test.coder.invalid
UserKnownHostsFile /dev/null
LogLevel ERROR
SetEnv CODER_SSH_SESSION_TYPE=JetBrains
Host coder-jetbrains--foo-bar--test.coder.invalid--bg
ProxyCommand CODER_SSH_USAGE_APP=disable /tmp/coder-gateway/test.coder.invalid/coder-linux-amd64 --global-config /tmp/coder-gateway/test.coder.invalid/config ssh --stdio foo-bar
ConnectTimeout 0
StrictHostKeyChecking no
UserKnownHostsFile /dev/null
LogLevel ERROR
SetEnv CODER_SSH_SESSION_TYPE=JetBrains
# --- END CODER JETBRAINS test.coder.invalid
7 changes: 7 additions & 0 deletions src/test/fixtures/outputs/append-blank.conf
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,11 @@ Host coder-jetbrains--foo-bar--test.coder.invalid
UserKnownHostsFile /dev/null
LogLevel ERROR
SetEnv CODER_SSH_SESSION_TYPE=JetBrains
Host coder-jetbrains--foo-bar--test.coder.invalid--bg
ProxyCommand CODER_SSH_USAGE_APP=disable /tmp/coder-gateway/test.coder.invalid/coder-linux-amd64 --global-config /tmp/coder-gateway/test.coder.invalid/config ssh --stdio foo-bar
ConnectTimeout 0
StrictHostKeyChecking no
UserKnownHostsFile /dev/null
LogLevel ERROR
SetEnv CODER_SSH_SESSION_TYPE=JetBrains
# --- END CODER JETBRAINS test.coder.invalid
7 changes: 7 additions & 0 deletions src/test/fixtures/outputs/append-no-blocks.conf
Original file line number Diff line number Diff line change
Expand Up @@ -11,4 +11,11 @@ Host coder-jetbrains--foo-bar--test.coder.invalid
UserKnownHostsFile /dev/null
LogLevel ERROR
SetEnv CODER_SSH_SESSION_TYPE=JetBrains
Host coder-jetbrains--foo-bar--test.coder.invalid--bg
ProxyCommand CODER_SSH_USAGE_APP=disable /tmp/coder-gateway/test.coder.invalid/coder-linux-amd64 --global-config /tmp/coder-gateway/test.coder.invalid/config ssh --stdio foo-bar
ConnectTimeout 0
StrictHostKeyChecking no
UserKnownHostsFile /dev/null
LogLevel ERROR
SetEnv CODER_SSH_SESSION_TYPE=JetBrains
# --- END CODER JETBRAINS test.coder.invalid
7 changes: 7 additions & 0 deletions src/test/fixtures/outputs/append-no-newline.conf
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,11 @@ Host coder-jetbrains--foo-bar--test.coder.invalid
UserKnownHostsFile /dev/null
LogLevel ERROR
SetEnv CODER_SSH_SESSION_TYPE=JetBrains
Host coder-jetbrains--foo-bar--test.coder.invalid--bg
ProxyCommand CODER_SSH_USAGE_APP=disable /tmp/coder-gateway/test.coder.invalid/coder-linux-amd64 --global-config /tmp/coder-gateway/test.coder.invalid/config ssh --stdio foo-bar
ConnectTimeout 0
StrictHostKeyChecking no
UserKnownHostsFile /dev/null
LogLevel ERROR
SetEnv CODER_SSH_SESSION_TYPE=JetBrains
# --- END CODER JETBRAINS test.coder.invalid
7 changes: 7 additions & 0 deletions src/test/fixtures/outputs/append-no-related-blocks.conf
Original file line number Diff line number Diff line change
Expand Up @@ -17,4 +17,11 @@ Host coder-jetbrains--foo-bar--test.coder.invalid
UserKnownHostsFile /dev/null
LogLevel ERROR
SetEnv CODER_SSH_SESSION_TYPE=JetBrains
Host coder-jetbrains--foo-bar--test.coder.invalid--bg
ProxyCommand CODER_SSH_USAGE_APP=disable /tmp/coder-gateway/test.coder.invalid/coder-linux-amd64 --global-config /tmp/coder-gateway/test.coder.invalid/config ssh --stdio foo-bar
ConnectTimeout 0
StrictHostKeyChecking no
UserKnownHostsFile /dev/null
LogLevel ERROR
SetEnv CODER_SSH_SESSION_TYPE=JetBrains
# --- END CODER JETBRAINS test.coder.invalid
7 changes: 7 additions & 0 deletions src/test/fixtures/outputs/disable-autostart.conf
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,11 @@ Host coder-jetbrains--foo--test.coder.invalid
UserKnownHostsFile /dev/null
LogLevel ERROR
SetEnv CODER_SSH_SESSION_TYPE=JetBrains
Host coder-jetbrains--foo--test.coder.invalid--bg
ProxyCommand CODER_SSH_USAGE_APP=disable /tmp/coder-gateway/test.coder.invalid/coder-linux-amd64 --global-config /tmp/coder-gateway/test.coder.invalid/config ssh --stdio --disable-autostart foo
ConnectTimeout 0
StrictHostKeyChecking no
UserKnownHostsFile /dev/null
LogLevel ERROR
SetEnv CODER_SSH_SESSION_TYPE=JetBrains
# --- END CODER JETBRAINS test.coder.invalid
9 changes: 9 additions & 0 deletions src/test/fixtures/outputs/extra-config.conf
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,13 @@ Host coder-jetbrains--extra--test.coder.invalid
SetEnv CODER_SSH_SESSION_TYPE=JetBrains
ServerAliveInterval 5
ServerAliveCountMax 3
Host coder-jetbrains--extra--test.coder.invalid--bg
ProxyCommand CODER_SSH_USAGE_APP=disable /tmp/coder-gateway/test.coder.invalid/coder-linux-amd64 --global-config /tmp/coder-gateway/test.coder.invalid/config ssh --stdio extra
ConnectTimeout 0
StrictHostKeyChecking no
UserKnownHostsFile /dev/null
LogLevel ERROR
SetEnv CODER_SSH_SESSION_TYPE=JetBrains
ServerAliveInterval 5
ServerAliveCountMax 3
# --- END CODER JETBRAINS test.coder.invalid
7 changes: 7 additions & 0 deletions src/test/fixtures/outputs/header-command-windows.conf
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,11 @@ Host coder-jetbrains--header--test.coder.invalid
UserKnownHostsFile /dev/null
LogLevel ERROR
SetEnv CODER_SSH_SESSION_TYPE=JetBrains
Host coder-jetbrains--header--test.coder.invalid--bg
ProxyCommand CODER_SSH_USAGE_APP=disable /tmp/coder-gateway/test.coder.invalid/coder-linux-amd64 --global-config /tmp/coder-gateway/test.coder.invalid/config --header-command "\"C:\Program Files\My Header Command\HeaderCommand.exe\" --url=\"%%CODER_URL%%\" --test=\"foo bar\"" ssh --stdio header
ConnectTimeout 0
StrictHostKeyChecking no
UserKnownHostsFile /dev/null
LogLevel ERROR
SetEnv CODER_SSH_SESSION_TYPE=JetBrains
# --- END CODER JETBRAINS test.coder.invalid
7 changes: 7 additions & 0 deletions src/test/fixtures/outputs/header-command.conf
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,11 @@ Host coder-jetbrains--header--test.coder.invalid
UserKnownHostsFile /dev/null
LogLevel ERROR
SetEnv CODER_SSH_SESSION_TYPE=JetBrains
Host coder-jetbrains--header--test.coder.invalid--bg
ProxyCommand CODER_SSH_USAGE_APP=disable /tmp/coder-gateway/test.coder.invalid/coder-linux-amd64 --global-config /tmp/coder-gateway/test.coder.invalid/config --header-command 'my-header-command --url="$CODER_URL" --test="foo bar" --literal='\''$CODER_URL'\''' ssh --stdio header
ConnectTimeout 0
StrictHostKeyChecking no
UserKnownHostsFile /dev/null
LogLevel ERROR
SetEnv CODER_SSH_SESSION_TYPE=JetBrains
# --- END CODER JETBRAINS test.coder.invalid
14 changes: 14 additions & 0 deletions src/test/fixtures/outputs/multiple-workspaces.conf
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,25 @@ Host coder-jetbrains--foo--test.coder.invalid
UserKnownHostsFile /dev/null
LogLevel ERROR
SetEnv CODER_SSH_SESSION_TYPE=JetBrains
Host coder-jetbrains--foo--test.coder.invalid--bg
ProxyCommand CODER_SSH_USAGE_APP=disable /tmp/coder-gateway/test.coder.invalid/coder-linux-amd64 --global-config /tmp/coder-gateway/test.coder.invalid/config ssh --stdio foo
ConnectTimeout 0
StrictHostKeyChecking no
UserKnownHostsFile /dev/null
LogLevel ERROR
SetEnv CODER_SSH_SESSION_TYPE=JetBrains
Host coder-jetbrains--bar--test.coder.invalid
ProxyCommand /tmp/coder-gateway/test.coder.invalid/coder-linux-amd64 --global-config /tmp/coder-gateway/test.coder.invalid/config ssh --stdio bar
ConnectTimeout 0
StrictHostKeyChecking no
UserKnownHostsFile /dev/null
LogLevel ERROR
SetEnv CODER_SSH_SESSION_TYPE=JetBrains
Host coder-jetbrains--bar--test.coder.invalid--bg
ProxyCommand CODER_SSH_USAGE_APP=disable /tmp/coder-gateway/test.coder.invalid/coder-linux-amd64 --global-config /tmp/coder-gateway/test.coder.invalid/config ssh --stdio bar
ConnectTimeout 0
StrictHostKeyChecking no
UserKnownHostsFile /dev/null
LogLevel ERROR
SetEnv CODER_SSH_SESSION_TYPE=JetBrains
# --- END CODER JETBRAINS test.coder.invalid
7 changes: 7 additions & 0 deletions src/test/fixtures/outputs/no-disable-autostart.conf
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,11 @@ Host coder-jetbrains--foo--test.coder.invalid
UserKnownHostsFile /dev/null
LogLevel ERROR
SetEnv CODER_SSH_SESSION_TYPE=JetBrains
Host coder-jetbrains--foo--test.coder.invalid--bg
ProxyCommand CODER_SSH_USAGE_APP=disable /tmp/coder-gateway/test.coder.invalid/coder-linux-amd64 --global-config /tmp/coder-gateway/test.coder.invalid/config ssh --stdio foo
ConnectTimeout 0
StrictHostKeyChecking no
UserKnownHostsFile /dev/null
LogLevel ERROR
SetEnv CODER_SSH_SESSION_TYPE=JetBrains
# --- END CODER JETBRAINS test.coder.invalid
7 changes: 7 additions & 0 deletions src/test/fixtures/outputs/replace-end-no-newline.conf
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,11 @@ Host coder-jetbrains--foo-bar--test.coder.invalid
UserKnownHostsFile /dev/null
LogLevel ERROR
SetEnv CODER_SSH_SESSION_TYPE=JetBrains
Host coder-jetbrains--foo-bar--test.coder.invalid--bg
ProxyCommand CODER_SSH_USAGE_APP=disable /tmp/coder-gateway/test.coder.invalid/coder-linux-amd64 --global-config /tmp/coder-gateway/test.coder.invalid/config ssh --stdio foo-bar
ConnectTimeout 0
StrictHostKeyChecking no
UserKnownHostsFile /dev/null
LogLevel ERROR
SetEnv CODER_SSH_SESSION_TYPE=JetBrains
# --- END CODER JETBRAINS test.coder.invalid
7 changes: 7 additions & 0 deletions src/test/fixtures/outputs/replace-end.conf
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,11 @@ Host coder-jetbrains--foo-bar--test.coder.invalid
UserKnownHostsFile /dev/null
LogLevel ERROR
SetEnv CODER_SSH_SESSION_TYPE=JetBrains
Host coder-jetbrains--foo-bar--test.coder.invalid--bg
ProxyCommand CODER_SSH_USAGE_APP=disable /tmp/coder-gateway/test.coder.invalid/coder-linux-amd64 --global-config /tmp/coder-gateway/test.coder.invalid/config ssh --stdio foo-bar
ConnectTimeout 0
StrictHostKeyChecking no
UserKnownHostsFile /dev/null
LogLevel ERROR
SetEnv CODER_SSH_SESSION_TYPE=JetBrains
# --- END CODER JETBRAINS test.coder.invalid
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,13 @@ Host coder-jetbrains--foo-bar--test.coder.invalid
UserKnownHostsFile /dev/null
LogLevel ERROR
SetEnv CODER_SSH_SESSION_TYPE=JetBrains
Host coder-jetbrains--foo-bar--test.coder.invalid--bg
ProxyCommand CODER_SSH_USAGE_APP=disable /tmp/coder-gateway/test.coder.invalid/coder-linux-amd64 --global-config /tmp/coder-gateway/test.coder.invalid/config ssh --stdio foo-bar
ConnectTimeout 0
StrictHostKeyChecking no
UserKnownHostsFile /dev/null
LogLevel ERROR
SetEnv CODER_SSH_SESSION_TYPE=JetBrains
# --- END CODER JETBRAINS test.coder.invalid
Host test2
Port 443
Expand Down
7 changes: 7 additions & 0 deletions src/test/fixtures/outputs/replace-middle.conf
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,13 @@ Host coder-jetbrains--foo-bar--test.coder.invalid
UserKnownHostsFile /dev/null
LogLevel ERROR
SetEnv CODER_SSH_SESSION_TYPE=JetBrains
Host coder-jetbrains--foo-bar--test.coder.invalid--bg
ProxyCommand CODER_SSH_USAGE_APP=disable /tmp/coder-gateway/test.coder.invalid/coder-linux-amd64 --global-config /tmp/coder-gateway/test.coder.invalid/config ssh --stdio foo-bar
ConnectTimeout 0
StrictHostKeyChecking no
UserKnownHostsFile /dev/null
LogLevel ERROR
SetEnv CODER_SSH_SESSION_TYPE=JetBrains
# --- END CODER JETBRAINS test.coder.invalid
Host test2
Port 443
7 changes: 7 additions & 0 deletions src/test/fixtures/outputs/replace-only.conf
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,11 @@ Host coder-jetbrains--foo-bar--test.coder.invalid
UserKnownHostsFile /dev/null
LogLevel ERROR
SetEnv CODER_SSH_SESSION_TYPE=JetBrains
Host coder-jetbrains--foo-bar--test.coder.invalid--bg
ProxyCommand CODER_SSH_USAGE_APP=disable /tmp/coder-gateway/test.coder.invalid/coder-linux-amd64 --global-config /tmp/coder-gateway/test.coder.invalid/config ssh --stdio foo-bar
ConnectTimeout 0
StrictHostKeyChecking no
UserKnownHostsFile /dev/null
LogLevel ERROR
SetEnv CODER_SSH_SESSION_TYPE=JetBrains
# --- END CODER JETBRAINS test.coder.invalid
7 changes: 7 additions & 0 deletions src/test/fixtures/outputs/replace-start.conf
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,13 @@ Host coder-jetbrains--foo-bar--test.coder.invalid
UserKnownHostsFile /dev/null
LogLevel ERROR
SetEnv CODER_SSH_SESSION_TYPE=JetBrains
Host coder-jetbrains--foo-bar--test.coder.invalid--bg
ProxyCommand CODER_SSH_USAGE_APP=disable /tmp/coder-gateway/test.coder.invalid/coder-linux-amd64 --global-config /tmp/coder-gateway/test.coder.invalid/config ssh --stdio foo-bar
ConnectTimeout 0
StrictHostKeyChecking no
UserKnownHostsFile /dev/null
LogLevel ERROR
SetEnv CODER_SSH_SESSION_TYPE=JetBrains
# --- END CODER JETBRAINS test.coder.invalid
Host test
Port 80
Expand Down