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.
- Go 1.10.3 or later (previous versions may work, but we don't build or test against them)
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.
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
mkdir -p $GOPATH/src/turbinelabs
git clone https://github.com/turbinelabs/tbnctl.git > $GOPATH/src/turbinelabs/tbnctl
go test github.com/turbinelabs/tbnctl/...
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
Please see Versioning of Turbine Labs Open Source Projects.
Patches accepted! Please see Contributing to Turbine Labs Open Source Projects.
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.
Here we summarize what you can do with tbnctl
. For more detailed help,
run tbnctl -h
.
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>
.
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.
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)