turbinelabs/tbnctl
This project is no longer maintained by Turbine Labs, which has
shut down.
The tbnctl project provides a command-line interface to the Turbine Labs public API.
Requirements
- Go 1.10.3 or later (previous versions may work, but we don't build or test against them)
Dependencies
The tbnctl project depends on these packages:
The tests depend on our test package,
and on gomock. Some code is generated using
codegen.
It should always be safe to use HEAD of all master branches of Turbine Labs
open source projects together, or to vendor them with the same git tag.
Install
We plan to make tbnctl
available via brew
/apt-get
/yum
/etc in the future.
For now you can build and install it from source:
go get -u github.com/turbinelabs/tbnctl
go install github.com/turbinelabs/tbnctl
Clone/Test
mkdir -p $GOPATH/src/turbinelabs
git clone https://github.com/turbinelabs/tbnctl.git > $GOPATH/src/turbinelabs/tbnctl
go test github.com/turbinelabs/tbnctl/...
Generated code
Some code is generated using go generate
and
codegen. If you need to modify the generated
code, modify adaptor.template
, then:
go get -u github.com/turbinelabs/tools/codegen
go install github.com/turbinelabs/tools/codegen
go generate github.com/turbinelabs/tbnctl
Versioning
Please see Versioning of Turbine Labs Open Source Projects.
Pull Requests
Patches accepted! Please see Contributing to Turbine Labs Open Source Projects.
Code of Conduct
All Turbine Labs open-sourced projects are released with a
Contributor Code of Conduct. By participating in our
projects you agree to abide by its terms, which will be carefully enforced.
Basic Usage
Here we summarize what you can do with tbnctl
. For more detailed help,
run tbnctl -h
.
CRUD Operations
tbnctl
supports the following operations on Clusters, Domains, Proxies,
Routes, SharedRules, and Zones:
- list
- get
- create
- edit
- delete
Both create
and edit
will use the editor corresponding to the value of
EDITOR
in your environment.
You can get detailed usage for each sub-command by typing tbnctl help <cmd>
.
Initial Environment Setup
The init-zone
sub-command can be used to initialize a Zone with appropriate
Clusters, Domains, Proxies, Routes, and SharedRules. See tbnctl help init-zone
for more detail.
A Look into... THE FUTURE
We will continue to improve and extend tbnctl
over time. Some examples of
things we might someday add include:
- parity with the web app for our the release workflow
- access to the Stats API
- better defaults when creating more complex objects (e.g. Routes, SharedRules)