diff --git a/experimental/ssh/cmd/connect.go b/experimental/ssh/cmd/connect.go index a02098923e3..2c1af41c5c8 100644 --- a/experimental/ssh/cmd/connect.go +++ b/experimental/ssh/cmd/connect.go @@ -12,13 +12,15 @@ import ( func newConnectCommand() *cobra.Command { cmd := &cobra.Command{ Use: "connect", - Short: "Connect to Databricks compute via SSH", - Long: `Connect to Databricks compute via SSH. + Short: "Connect to your Databricks compute and workspace via SSH", + Long: `Connect to your Databricks compute and workspace via SSH. -This command establishes an SSH connection to Databricks compute, setting up -the SSH server and handling the connection proxy. +Connect to serverless: + databricks ssh connect + databricks ssh connect --accelerator= # AI Runtime -` + disclaimer, +Connect to a dedicated cluster: + databricks ssh connect --cluster=`, } var clusterID string @@ -38,17 +40,14 @@ the SSH server and handling the connection proxy. var environmentVersion int var autoApprove bool - cmd.Flags().StringVar(&clusterID, "cluster", "", "Databricks cluster ID (for dedicated clusters)") + cmd.Flags().StringVar(&clusterID, "cluster", "", "Databricks dedicated cluster ID") cmd.Flags().DurationVar(&shutdownDelay, "shutdown-delay", defaultShutdownDelay, "Delay before shutting down the server after the last client disconnects") cmd.Flags().IntVar(&maxClients, "max-clients", defaultMaxClients, "Maximum number of SSH clients") cmd.Flags().BoolVar(&autoStartCluster, "auto-start-cluster", true, "Automatically start the cluster if it is not running") - cmd.Flags().StringVar(&connectionName, "name", "", "Connection name (for serverless compute)") - cmd.Flags().MarkHidden("name") - cmd.Flags().StringVar(&accelerator, "accelerator", "", "GPU accelerator type (GPU_1xA10 or GPU_8xH100)") - cmd.Flags().MarkHidden("accelerator") + cmd.Flags().StringVar(&connectionName, "name", "", "Connection name to reuse across sessions (serverless only)") + cmd.Flags().StringVar(&accelerator, "accelerator", "", "Serverless GPU accelerator type (GPU_1xA10 or GPU_8xH100)") cmd.Flags().StringVar(&ide, "ide", "", "Open remote IDE window (vscode or cursor)") - cmd.Flags().MarkHidden("ide") cmd.Flags().BoolVar(&proxyMode, "proxy", false, "ProxyCommand mode") cmd.Flags().MarkHidden("proxy") @@ -69,7 +68,7 @@ the SSH server and handling the connection proxy. cmd.Flags().BoolVar(&skipSettingsCheck, "skip-settings-check", false, "Skip checking and updating IDE settings") cmd.Flags().MarkHidden("skip-settings-check") - cmd.Flags().IntVar(&environmentVersion, "environment-version", defaultEnvironmentVersion, "Environment version for serverless compute") + cmd.Flags().IntVar(&environmentVersion, "environment-version", defaultEnvironmentVersion, "Environment version for AI Runtime") cmd.Flags().MarkHidden("environment-version") cmd.Flags().BoolVar(&autoApprove, "auto-approve", false, "Skip confirmation prompts, installing IDE extensions and applying IDE settings without asking") diff --git a/experimental/ssh/cmd/server.go b/experimental/ssh/cmd/server.go index d73ad2d5c4e..47e16cdc649 100644 --- a/experimental/ssh/cmd/server.go +++ b/experimental/ssh/cmd/server.go @@ -16,9 +16,7 @@ func newServerCommand() *cobra.Command { Long: `Run SSH tunnel server. This command starts an SSH tunnel server that accepts WebSocket connections -and proxies them to local SSH daemon processes. - -` + disclaimer, +and proxies them to local SSH daemon processes.`, // This is an internal command spawned by the SSH client running the "ssh-server-bootstrap.py" job Hidden: true, } diff --git a/experimental/ssh/cmd/setup.go b/experimental/ssh/cmd/setup.go index a97afa845fa..ff67501445e 100644 --- a/experimental/ssh/cmd/setup.go +++ b/experimental/ssh/cmd/setup.go @@ -12,13 +12,12 @@ import ( func newSetupCommand() *cobra.Command { cmd := &cobra.Command{ Use: "setup", - Short: "Setup SSH configuration for Databricks compute", - Long: `Setup SSH configuration for Databricks compute. + Short: "Setup SSH configuration for dedicated (single-user) clusters", + Long: `Setup SSH configuration for dedicated (single-user) clusters. -This command configures SSH to connect to Databricks compute by adding -an SSH host configuration to your SSH config file. +After running setup, you can connect with ` + "`ssh `" + `. -` + disclaimer, +For serverless connections, use ` + "`databricks ssh connect`" + ` (no setup step needed).`, } var hostName string diff --git a/experimental/ssh/cmd/ssh.go b/experimental/ssh/cmd/ssh.go index b1425054359..9939d2f7050 100644 --- a/experimental/ssh/cmd/ssh.go +++ b/experimental/ssh/cmd/ssh.go @@ -4,27 +4,19 @@ import ( "github.com/spf13/cobra" ) -const disclaimer = `WARNING! This is an experimental feature: -- The product is in preview and not intended to be used in production; -- The product may change or may never be released; -- While we will not charge separately for this product right now, we may charge for it in the future. You will still incur charges for DBUs; -- There's no formal support or SLAs for the preview - so please reach out to your account or other contact with any questions or feedback;` - func New() *cobra.Command { cmd := &cobra.Command{ Use: "ssh", - Short: "Connect to Databricks compute with ssh", + Short: "Connect to your Databricks compute and workspace via SSH", Hidden: true, - Long: `Connect to Databricks compute with ssh. - -SSH commands let you setup and establish ssh connections to Databricks compute. + Long: `Connect to your Databricks compute and workspace via SSH. Common workflows: - databricks ssh connect --cluster= --profile= # connect to a cluster without any setup - databricks ssh setup --name=my-compute --cluster= # update local ssh config - ssh my-compute # connect to the compute using ssh client + databricks ssh connect --ide=cursor # connect to serverless through Cursor + databricks ssh setup --name= --cluster= # update ~/.ssh/config so you can reconnect to a dedicated cluster + ssh # connect to dedicated cluster after setup -` + disclaimer, +Use ` + "`databricks ssh connect --help`" + ` to see all available flags.`, } cmd.AddCommand(newSetupCommand())