jumppad
jumppad copied to clipboard
Tools
The bash version of shipyard used to have a tools
command which ran an interactive terminal containing common tools such as HashiCorp command line tools and KubeCtl.
We need to bring this feature to Shipyard. The tools container should be run as follows.
shipyard tools
If an existing tools container is running then a shell to this container will be attached
If the tools container is not running then it will be started.
In addition we need to improve the user experience for the tools container.
At present you define the tools container as follows:
container "tools" {
image {
name = "shipyardrun/tools:latest"
}
command = ["tail", "-f", "/dev/null"]
# Nomad files
volume {
source = "./nomad_config"
destination = "/files/nomad"
}
network = "network.cloud"
env {
key = "NOMAD_ADDR"
value = "http://nomad-http.cloud.shipyard:4646"
}
}
Tools should be rolled into a custom resource called tools
and many of the following options should be automatically set:
- Kube config files for running Kubernetes clusters should be automatically be mounted
- Environment variables for Nomad and Kubernetes clusters should be automatically set
- Should be possible to specify a custom tools container
- Networks are automatically attached
- As a stretch goal there should be a feature where the networks/variables on a tools container are automatically updated as the state changes.
I see some parallels with the usecases described in:
https://discord.com/channels/771742803196772402/771742803196772405/861695860127957022 https://discord.com/channels/771742803196772402/771742803196772405/861695889889558588