https://github.com/epam/hubctl
Hub CTL is stack composition and lifecycle tool
https://github.com/epam/hubctl
cli golang
Last synced: 11 months ago
JSON representation
Hub CTL is stack composition and lifecycle tool
- Host: GitHub
- URL: https://github.com/epam/hubctl
- Owner: epam
- License: mpl-2.0
- Created: 2018-10-24T16:27:34.000Z (over 7 years ago)
- Default Branch: develop
- Last Pushed: 2025-06-30T17:44:22.000Z (12 months ago)
- Last Synced: 2025-07-11T22:36:55.183Z (12 months ago)
- Topics: cli, golang
- Language: Go
- Homepage: https://hubctl.io
- Size: 1.23 MB
- Stars: 11
- Watchers: 14
- Forks: 3
- Open Issues: 15
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
# hubctl
[hubctl](https://hubctl.io) is a missing package manager for the cloud.
## Example of usage
```shell
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
```shell
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
```shell
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](https://github.com/epam/hubctl/releases/latest/download/hubctl_Darwin_arm64.tar.gz), [macOS arm64](https://github.com/epam/hubctl/releases/latest/download/hubctl_Darwin_x86_64.tar.gz), [Linux amd64](https://github.com/epam/hubctl/releases/latest/download/hubctl_Linux_arm64.tar.gz), [Linux arm64](https://github.com/epam/hubctl/releases/latest/download/hubctl_Linux_x86_64.tar.gz) and [Windows x64](https://github.com/epam/hubctl/releases/latest/download/hubctl_Windows_x86_64.zip) binaries.
### [Homebrew](https://brew.sh/) Formula
```shell
brew tap epam/tap
brew install epam/tap/hubctl
```
### Extensions
Optionally, install extensions:
```shell
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](https://github.com/hashicorp/terraform/issues/23033#issuecomment-542302933) for a simple workaround:
```shell
xattr -d com.apple.quarantine hub.darwin_amd64
```
Alternatively, to set a global preference to _Allow apps downloaded from: Anywhere_, execute:
```shell
sudo spctl --master-disable
```
## Development
### Setup
Before make any changes you should configure git hooks for this repository
```shell
git config core.hooksPath .githooks
```
### Build
Use `make` to build Hub CTL:
```shell
make
```
Or directly with `go`:
```shell
go build -o bin/$(go env GOOS)/hubctl github.com/epam/hubctl/cmd/hub
```
### Clean up
```shell
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:
```yaml
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](https://github.com/epam/hubctl/wiki).
[AWS CLI]: https://aws.amazon.com/cli/
[Azure CLI]: https://docs.microsoft.com/en-us/cli/azure/
[GCP SDK]: https://cloud.google.com/sdk/docs/install
[kubectl]: https://kubernetes.io/docs/reference/kubectl/overview/
[eksctl]: https://eksctl.io
[jq]: https://stedolan.github.io/jq/
[yq v4]: https://github.com/mikefarah/yq
[Node.js]: https://nodejs.org
[bash]: https://www.gnu.org/software/bash
[curl]: https://curl.se