ASDF Version Manager Plugins
26 Apr 2020Installing and managing the latest version of a command line tool can be a pain and very time consuming.
As developers we typically want to use the latest and greatest version of a tool before it becomes more widely
available via official deployment channels, such as deb
or snap
on Linux and homebrew
on Mac.
Luckily, there is a simple version manager, asdf, which makes life very easy with it’s plugin capabilities.
There are many plugins provided by the community, including for:
- DotNet Core
- Crystal
- GitHub CLI
- Helm
- kubectx
- …
And, creating plugins is easy. You need 3 shell scripts, namely:
bin/list-all
- lists all installable versionsbin/download
- download source code or binary for the specified versionbin/install
- installs the specified version
See the official documentation for more details.
I spend a fair amount of time doing technical research, so often times there isn’t a distribution of the command line tool I’m testing out, so I usually resort to spending 10 to 15 minutes whipping up an asdf plugin for the given tool.
This involves creating a new repository on GitHub, from the asdf-plugin-template and then editing the
lib/utils.bash
file, providing the plugin name and GitHub repo URL of the tool in question.
Here are some of the plugins I’ve created:
asdf-aws-vault
- AWS Vault is a tool to securely store and access AWS credentials in a development environment.asdf-devspace
- DevSpace is the next-generation tool for fast cloud-native software development.asdf-docker-compose
- Compose is a tool for defining and running multi-container Docker applications.asdf-docker-machine
- Machine lets you create Docker hosts on your computer, on cloud providers, and inside your own data center.asdf-glooctl
- Gloo is a feature-rich, Kubernetes-native ingress controller, and next-generation API gateway.asdf-grv
- GRV is a terminal interface for viewing git repositories.asdf-helm
- Helm is the best way to find, share, and use software built for Kubernetes.asdf-istioctl
- Istio configuration command line utility for service operators to debug and diagnose their Istio mesh.asdf-k9s
- Kubernetes CLI to manage your clusters in style.asdf-kubebuilder
- SDK for building Kubernetes APIs using CRDs.asdf-kubectx
- Faster way to switch between clusters and namespaces in kubectl.asdf-skaffold
- For easy and repeatable Kubernetes development.asdf-sonarscanner
- SonarScanner is the scanner to use when there is no specific scanner for your build system.asdf-tilt
- A multi-service dev environment for teams on Kubernetes.