hubctl
hubctl is a missing package manager for the cloud.
Example of usage
hubctl elaborate hub.yaml params.yaml -o hub.yaml.elaborate
hubctl deploy hub.yaml.elaborate -e NAME=stage
hubctl version
hubctl help
Installation
Pre-build binary
To download the latest release, run:
cURL
curl -LJ "https://github.com/epam/hubctl/releases/latest/download/hubctl_$(uname -s)_$(uname -m).tar.gz" |\
tar xz -C /tmp && sudo mv /tmp/hubctl /usr/local/bin
Wget
wget "https://github.com/epam/hubctl/releases/latest/download/hubctl_$(uname -s)_$(uname -m).tar.gz" -O - |\
tar xz -C /tmp && sudo mv /tmp/hubctl /usr/local/bin
Other pre-build binaries
There are macOS amd64, macOS arm64, Linux amd64, Linux arm64 and Windows x64 binaries.
brew tap epam/tap
brew install epam/tap/hubctl
Extensions
Optionally, install extensions:
hubctl extensions install
Hub CTL Extensions requires: bash, curl, jq and yq v4.
Optionally install Node.js and NPM for hubctl pull
extension, AWS CLI, Azure CLI, GCP SDK kubectl, eksctl for hubctl ext eks
extension.
macOS users
Depending on your's machine Security & Privacy settings and macOS version (10.15+), you may get an error cannot be opened because the developer cannot be verified. Please read on for a simple workaround:
xattr -d com.apple.quarantine hub.darwin_amd64
Alternatively, to set a global preference to Allow apps downloaded from: Anywhere, execute:
sudo spctl --master-disable
Development
Setup
Before make any changes you should configure git hooks for this repository
git config core.hooksPath .githooks
Build
Use make
to build Hub CTL:
make
Or directly with go
:
go build -o bin/$(go env GOOS)/hubctl github.com/epam/hubctl/cmd/hub
Clean up
make clean
Usage metrics
When you use a pre-built binary from the releases page, it will send usage metrics to HubCTL API and Datadog.
We value your privacy and only send anonymized usage metrics for the following commands:
- elaborate
- deploy
- undeploy
- backup create
- api *
A usage metric sample contains:
- Hub CTL command invoked without arguments, ie. 'deploy' or 'backup create', or 'api instance get'
- synthetic machine id - an UUID generated in first interactive session (stdout is a TTY)
- usage counter - 1 per invocation
Edit $HOME/.hub-cache.yaml
to change settings:
metrics:
disabled: false
host: 68af657e-6a51-4d4b-890c-4b548852724d
Set disabled: true
to skip usage metrics reporting.
Set host: ""
to send the counter but not the UUID.
You could always review an up-to-date help via hubctl util metrics -h
.
What's next?
More information in the wiki.