We designed this shell as the last layer of abstraction. It stitches all the tools together like
terraform. As time progresses,
there will undoubtedly be even more that come into play. For this reason, we chose to use a combination of
make which together are ideally suited to combine the strengths of all these wonderful tools into one powerful shell, without raising the barrier to entry too high.
For the default environment variables, check out
Dockerfile. We believe using ENVs this way is both consistent with the "cloud" (12 Factor Pattern) way of doing things, as well as a clear way of communicating what values are being passed without using a complicated convention. Additionally, you can set & forget these ENVs in your shell.
We leverage as many semantics of the linux shell as we can to make the experience as frictionless as possible.
is where shell profiles are stored (like aliases). These are executed when the shell starts.
is where all bash completion scripts are kept and sourced when the shell starts.
has some helper scripts like
s3 to manage
fstab for remote s3 filesystems.
is the current "Message of the Day"
is where we configure the S3 filesystems we should mount
is where we house the local state (like your temporary AWS credentials). This is your native
$HOME directory mounted into the container.
is where we mount S3 buckets; these files are never written to disk and only kept in memory for security
Geodesic was written to be easily extended by leveraging Docker inheritance. This will let you add or modify any core functionality and easily upgrade between releases.
You can easily extend the Geodesic shell by creating your own Git repo with a
Dockerfile. Simply have your
FROM geodesic:latest (or we recommend to pin it to a release for stability).
Inside your docker image, you can replace any of our code with your own to make it behave exactly as you wish. We recommend creating one dedicated repo per cluster with configurations tailored specifically for that cluster.
Want to add additional aliases or affect the shell? Drop your script in
/etc/profile.d and it will be loaded automatically when the shell starts.
As you can see, you can easily change almost any aspect of how the shell works simply by extending it.
|Geodesic Quick Start|