Skip to content

Commit

Permalink
chore: use background hostname for admin tasks
Browse files Browse the repository at this point in the history
  • Loading branch information
f0ssel committed Jun 24, 2024
1 parent 82849ba commit 9917621
Show file tree
Hide file tree
Showing 20 changed files with 153 additions and 4 deletions.
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
19 changes: 17 additions & 2 deletions src/main/kotlin/com/coder/gateway/cli/CoderCLIManager.kt
Original file line number Diff line number Diff line change
Expand Up @@ -256,7 +256,6 @@ class CoderCLIManager(
val isRemoving = workspaceNames.isEmpty()
val proxyArgs =
listOfNotNull(
"CODER_SSH_USAGE_APP=jetbrains",
escape(localBinaryPath.toString()),
"--global-config",
escape(coderConfigPath.toString()),
Expand All @@ -280,7 +279,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 @@ -463,5 +470,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 CODER_SSH_USAGE_APP=jetbrains /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

0 comments on commit 9917621

Please sign in to comment.