support for remote tmate servers
This commit is contained in:
@@ -1,6 +1,10 @@
|
|||||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
||||||
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||||
|
|
||||||
|
## Unreleased
|
||||||
|
### Added
|
||||||
|
- support for self-hosted tmate instances
|
||||||
|
|
||||||
## 1.6.1
|
## 1.6.1
|
||||||
### Changed
|
### Changed
|
||||||
- restrict temporary volumes used with docker plugins
|
- restrict temporary volumes used with docker plugins
|
||||||
|
|||||||
@@ -202,6 +202,18 @@ func registerCompile(app *kingpin.Application) {
|
|||||||
cmd.Flag("tmate-enabled", "tmate enabled").
|
cmd.Flag("tmate-enabled", "tmate enabled").
|
||||||
BoolVar(&c.Tmate.Enabled)
|
BoolVar(&c.Tmate.Enabled)
|
||||||
|
|
||||||
|
cmd.Flag("tmate-server-host", "tmate server host").
|
||||||
|
StringVar(&c.Tmate.Server)
|
||||||
|
|
||||||
|
cmd.Flag("tmate-server-port", "tmate server port").
|
||||||
|
StringVar(&c.Tmate.Port)
|
||||||
|
|
||||||
|
cmd.Flag("tmate-server-rsa-fingerprint", "tmate server rsa fingerprint").
|
||||||
|
StringVar(&c.Tmate.RSA)
|
||||||
|
|
||||||
|
cmd.Flag("tmate-server-ed25519-fingerprint", "tmate server rsa fingerprint").
|
||||||
|
StringVar(&c.Tmate.ED25519)
|
||||||
|
|
||||||
// shared pipeline flags
|
// shared pipeline flags
|
||||||
c.Flags = internal.ParseFlags(cmd)
|
c.Flags = internal.ParseFlags(cmd)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -110,6 +110,10 @@ type Config struct {
|
|||||||
Tmate struct {
|
Tmate struct {
|
||||||
Enabled bool `envconfig:"DRONE_TMATE_ENABLED" default:"false"`
|
Enabled bool `envconfig:"DRONE_TMATE_ENABLED" default:"false"`
|
||||||
Image string `envconfig:"DRONE_TMATE_IMAGE" default:"drone/drone-runner-docker:1"`
|
Image string `envconfig:"DRONE_TMATE_IMAGE" default:"drone/drone-runner-docker:1"`
|
||||||
|
Server string `envconfig:"DRONE_TMATE_HOST"`
|
||||||
|
Port string `envconfig:"DRONE_TMATE_PORT"`
|
||||||
|
RSA string `envconfig:"DRONE_TMATE_FINGERPRINT_RSA"`
|
||||||
|
ED25519 string `envconfig:"DRONE_TMATE_FINGERPRINT_ED25519"`
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -144,6 +144,10 @@ func (c *daemonCommand) run(*kingpin.ParseContext) error {
|
|||||||
Tmate: compiler.Tmate{
|
Tmate: compiler.Tmate{
|
||||||
Image: config.Tmate.Image,
|
Image: config.Tmate.Image,
|
||||||
Enabled: config.Tmate.Enabled,
|
Enabled: config.Tmate.Enabled,
|
||||||
|
Server: config.Tmate.Server,
|
||||||
|
Port: config.Tmate.Port,
|
||||||
|
RSA: config.Tmate.RSA,
|
||||||
|
ED25519: config.Tmate.ED25519,
|
||||||
},
|
},
|
||||||
Environ: provider.Combine(
|
Environ: provider.Combine(
|
||||||
provider.Static(config.Runner.Environ),
|
provider.Static(config.Runner.Environ),
|
||||||
|
|||||||
@@ -336,6 +336,18 @@ func registerExec(app *kingpin.Application) {
|
|||||||
cmd.Flag("tmate-enabled", "tmate enabled").
|
cmd.Flag("tmate-enabled", "tmate enabled").
|
||||||
BoolVar(&c.Tmate.Enabled)
|
BoolVar(&c.Tmate.Enabled)
|
||||||
|
|
||||||
|
cmd.Flag("tmate-server-host", "tmate server host").
|
||||||
|
StringVar(&c.Tmate.Server)
|
||||||
|
|
||||||
|
cmd.Flag("tmate-server-port", "tmate server port").
|
||||||
|
StringVar(&c.Tmate.Port)
|
||||||
|
|
||||||
|
cmd.Flag("tmate-server-rsa-fingerprint", "tmate server rsa fingerprint").
|
||||||
|
StringVar(&c.Tmate.RSA)
|
||||||
|
|
||||||
|
cmd.Flag("tmate-server-ed25519-fingerprint", "tmate server rsa fingerprint").
|
||||||
|
StringVar(&c.Tmate.ED25519)
|
||||||
|
|
||||||
cmd.Flag("debug", "enable debug logging").
|
cmd.Flag("debug", "enable debug logging").
|
||||||
BoolVar(&c.Debug)
|
BoolVar(&c.Debug)
|
||||||
|
|
||||||
|
|||||||
@@ -57,6 +57,10 @@ type Resources struct {
|
|||||||
type Tmate struct {
|
type Tmate struct {
|
||||||
Image string
|
Image string
|
||||||
Enabled bool
|
Enabled bool
|
||||||
|
Server string
|
||||||
|
Port string
|
||||||
|
RSA string
|
||||||
|
ED25519 string
|
||||||
}
|
}
|
||||||
|
|
||||||
// Compiler compiles the Yaml configuration file to an
|
// Compiler compiles the Yaml configuration file to an
|
||||||
@@ -236,6 +240,14 @@ func (c *Compiler) Compile(ctx context.Context, args runtime.CompilerArgs) runti
|
|||||||
envs["DRONE_DOCKER_VOLUME_PATH"] = volume.HostPath.Path
|
envs["DRONE_DOCKER_VOLUME_PATH"] = volume.HostPath.Path
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// create tmate variables
|
||||||
|
if c.Tmate.Server != "" {
|
||||||
|
envs["DRONE_TMATE_HOST"] = c.Tmate.Server
|
||||||
|
envs["DRONE_TMATE_PORT"] = c.Tmate.Port
|
||||||
|
envs["DRONE_TMATE_FINGERPRINT_RSA"] = c.Tmate.RSA
|
||||||
|
envs["DRONE_TMATE_FINGERPRINT_ED25519"] = c.Tmate.ED25519
|
||||||
|
}
|
||||||
|
|
||||||
// create the .netrc environment variables if not
|
// create the .netrc environment variables if not
|
||||||
// explicitly disabled
|
// explicitly disabled
|
||||||
if c.NetrcCloneOnly == false {
|
if c.NetrcCloneOnly == false {
|
||||||
|
|||||||
@@ -63,20 +63,14 @@ remote_debug() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if [ ! -z "${DRONE_TMATE_HOST}" ]; then
|
||||||
|
echo "set -g tmate-server-host $DRONE_TMATE_HOST" >> $HOME/.tmate.conf
|
||||||
|
echo "set -g tmate-server-port $DRONE_TMATE_PORT" >> $HOME/.tmate.conf
|
||||||
|
echo "set -g tmate-server-rsa-fingerprint $DRONE_TMATE_FINGERPRINT_RSA" >> $HOME/.tmate.conf
|
||||||
|
echo "set -g tmate-server-ed25519-fingerprint $DRONE_TMATE_FINGERPRINT_ED25519" >> $HOME/.tmate.conf
|
||||||
|
fi
|
||||||
|
|
||||||
if [ "${DRONE_BUILD_DEBUG}" = "true" ]; then
|
if [ "${DRONE_BUILD_DEBUG}" = "true" ]; then
|
||||||
trap remote_debug EXIT
|
trap remote_debug EXIT
|
||||||
fi
|
fi
|
||||||
`
|
`
|
||||||
|
|
||||||
// TODO(bradrydzewski) add timeout 30m to tmate
|
|
||||||
|
|
||||||
//
|
|
||||||
// TODO(bradrydzewski) support custom tmate config options:
|
|
||||||
//
|
|
||||||
// if [ ! -z "${DRONE_TMATE_SERVER_HOST}" ]; then
|
|
||||||
// echo "set -g tmate-server-host \"$DRONE_TMATE_SERVER_HOST\"" >> $HOME/.tmate.conf
|
|
||||||
// echo "set -g tmate-server-port $DRONE_TMATE_SERVER_PORT" >> $HOME/.tmate.conf
|
|
||||||
// echo "set -g tmate-server-rsa-fingerprint \"$DRONE_TMATE_SERVER_RSA_FINGERPRINT\"" >> $HOME/.tmate.conf
|
|
||||||
// echo "set -g tmate-server-ed25519-fingerprint \"$DRONE_TMATE_SERVER_ED25519_FINGERPRINT\"" >> $HOME/.tmate.conf
|
|
||||||
// fi
|
|
||||||
//
|
|
||||||
|
|||||||
Reference in New Issue
Block a user