on your machine locally
kubectl installed &
configured to talk to minikube
We recommend creating a virtual environment
to install kubessh into for development, although other methods should work just as
Create a virtual environment in the root of your clone of this repository
python3 -m venv venv/
Activate the virtual environment
Install kubessh & all its dependencies into this environment
pip install --editable .
Create a ssh server key for kubessh to use. This will be presented by kubessh
to any clients to verify its authenticity. If you don’t create this manually,
kubessh will use an ephemeral key - this will cause warnings in your ssh
client each time you restart your server.
ssh-keygen -f dummy-kubessh-host-key
Don’t use a passphrase when generating this key.
You’re all set to run kubessh now!
Start the kubessh process
This should start kubessh in debug mode, with DummyAuthenticator
for authentication. You can see the other options chosen in
kubessh_dummy_config.py file, using traitlets
to specify configuration. You can copy this file and make
changes to try out various options.
In another terminal, ssh into kubessh, with any username & password same as
ssh -p 8022 yourname@localhost
Since we use DummyAuthenticator by default, you should use the username
as the password.
This should spawn a user pod in minikube, and ssh you into it! \o/
Now you have a working local install, and can fiddle around with it as you
kubessh doesn’t clean up user pods when it restarts. If you make a change
that modifies the structure of the pod being spawned, you must manually
delete the pod before ssh’ing again.