@mhausenblas mhausenblas released this Sep 16, 2018 · 8 commits to master since this release

Assets 2

This is really the same as release 0.5.1, just adding a container image definition in online/. Run like so:

$ kubectl create ns kd
$ kubectl -n kd run kubedsh

@mhausenblas mhausenblas released this Feb 16, 2018 · 27 commits to master since this release

Assets 4

This release is essentially the same as the 0.5 release (that is, no new features) just with many things fixed:

43a841d fixes launch Step 3 (copying)
569576a fixes launch re output of single-shot
7d0e9a6 fixes nasty pod shadowing issue
6fc67a2 simplifies and uniforms launch of dprocs
fb919a0 improves UX for long-running foreground dprocs
6f965a3 fixes #22
a1f4bfe improves interactive mode
2b350d1 improves GC, #22
004b9d8 adds GC for orphaned terminating dprocs, #22
79c1a50 adds dproc type labels on launch, towards #22
4578469 inits work on #22
cb4415a fixes hot-reload bug
a225192 completes first e2e test case (long-running dproc)
65b31e8 inits e2e test suite #21
c48e29e adds binary TC to ignore
96566ca re-orgs test cases
041ea90 undoes the interactivity hack
2b0e318 fixes interactivity
02804ec updates link to Katacoda scenario
14745a3 Merge pull request #20 from marekjelen/master
3fce77d Ruby example
dd33eba fixes #19 for real
f218c1a fixes #19
1c38af7 updates to dos
ccb043d updates usage docs
30028f8 updates docs on built-in commands
b38dd48 updates docs to 0.5


@mhausenblas mhausenblas released this Feb 4, 2018 · 56 commits to master since this release

Assets 4

Besides fixing bugs, the major changes in this release are: environments and scripting. In addition, the overview docs have been improved. Thanks for all your feedback!


See the design as well as #6 for what environments are and how to work with them. In a nutshell, there are now four new sub-commands (env list, env create ENVNAME, env select ENVNAME, and env delete ENVNAME) that allow you to manage environments. Those envs are represented by labels on the resources and when deleted, they are reaped and go back into the global scope.


It is now possible to not only interactively use kubed-sh but also via a script, see also #9 for details. Example:

$ cat test.kbdsh
#!/usr/bin/env kubed-sh
use minikube
# This line is a comment that will be ignored
node ../thescript.js &
$ chmod 755 test.kbdsh
$ ./test.kbdsh

Change log summary:

a68817c closes #10 re pre-pull
4eed68f adds the (local) sleep command
5d0b8ed implements the delete env command properly
945dcfa improves autocomplete around env and ps
6f65c4f completes work on envs, closes #6
2f1826b adds cluster object env labelling
b22eb31 adds env list command
dd0d022 inits work on #6 (env management)
e44711c fixes remove svc in kill command
bc342b8 adds help suggestion on start-up
1a323ef fixes #17
1b28706 fixes prompt set at context switch
08767d4 improves scripting testing
922cb59 completes #9 that is adds scripting support
2fa5e90 improves readability of user docs
58785e7 improves intro and UC docs
d89e46f adds debug info to use built-in cmd
eba2bc2 adds debug indicator


@mhausenblas mhausenblas released this Jan 23, 2018 · 93 commits to master since this release

Assets 4

This is the current 0.4 release with a couple of fixes and improvements over the original one. It supports an experimental hot-reload feature (for scripts) using the HOTRELOAD=true env variable. See also this demo for details. In a nutshell the hot-reload feature works as follows:

  1. In kubed-sh enable the feature:

     [minikube::default]$ HOTRELOAD=true
  2. Once enabled, a watch in the current directory (where you launched kubed-sh) is actively monitoring changes to script files. When you modify a script file—for example by changing the content in your editor—kubed-sh will detect the change and update the process in the cluster.

Change log summary:

0e00a0a improves ps
0556aa6 adds support for user-defined service name
34ee017 refactors cmds and improves help
ec19f3f adds support for comments
a6ae611 completes experimental support for #12
8406b99 changes debug env var
47875f9 adds cd command
6a7d41a fixes startup and updates planning
12dfee2 fixes missing service port env set

Jan 23, 2018


release 0.4
mainly experimental support for #12 and a number of fixes and some more built-ins

@mhausenblas mhausenblas released this Jan 19, 2018 · 127 commits to master since this release

Assets 4

With this release you can now specify a custom kubectl binary rather than letting kubed-sh auto-detect it. Use the $KUBECTL_BINARY env variable for this, for example:

$ KUBECTL_BINARY=$(which oc) kubed-sh

Further, the prompt has been improved, it now includes the active namespace, for example:


Change log summary:

c9ab90a completes prompt improvements
c66158e adds support for custom kubectl, fixes #2
27860b8 adds long-running Python test case
f523c4d adds interactive script test case
ca55444 fixes error handling of raw mode
75747aa adds curl as built-in command


@mhausenblas mhausenblas released this Jan 17, 2018 · 140 commits to master since this release

Assets 4

This is a minor improvement over the 0.1 release but since it fixes #3 it is recommended that you use this one over the 0.1 release.

By default, the supported images are pre-pulled via DaemonSets. This is a one-time operation, only necessary the first time when kubed-sh starts up. If you are in an environment that doesn't allow you to create DaemonSets (you will notice at start-up time) then set the environment variable KUBEDSH_NOPREPULL=true at or before launching kubed-sh.


@mhausenblas mhausenblas released this Jan 16, 2018 · 155 commits to master since this release

Assets 4

This is the first release. Currently only macOS and Linux binaries are available with Windows planned (see also #1 for details). The following features are currently available in kubed-sh:

  • You can launch any (Linux ELF) binary or (Node.js/Python/Ruby) script either in a one-shot manner or in the background, as a long-running process, appending a & as you would in a local shell.
  • You can get a list of the long-running processes with ps.
  • You can stop and remove a long-running process using kill.
  • You can list and switch between available Kubernetes contexts using contexts and use, respectively.
  • To execute kubectl commands directly, prepend them with a `, so for example if you enter `get pods then kubed-sh executes a kubectl get pods command and prints the result.
  • To list defined environment variables, use env, to print their value use echo. For example, to show the value of the default container image used for Python scripts, enter echo $PYTHON_IMAGE.