First and foremost thank you very much for your interest in our project and willing to make it better by contributing.
Before we dive into technicalities on how to build and run it let’s emphasize that there are other means of contributing which we value as much.
-
Issues and feature requests.
-
Documentation improvements.
-
Blogging.
-
Spreading the word on conferences and user groups.
It’s important to us that the tool we are building gives our users smooth and enjoyable experience.
Filing issues is extremely valuable contribution and to make it easier for you, we prepared a template which will guide you through this process.
We would love to see a pull request from, even if it’s a typo.
There are not many strict rules or guidelines to follow, as we strive to automate as much as possible, however, if your work is non-trivial please make sure there’s associated issue with it. This will help us to prepare release notes.
If you don’t know where to start - have a look at good first issues.
Assuming that you have all the Golang prerequisites in place, clone the repository first:
$ git clone https://github.com/maistra/istio-workspace $GOPATH/src/github.com/maistra/istio-workspace
Tip
|
Have a look how Go Version Manager can help you simplify configuration and management of different versions of Go. |
We rely on following tools:
-
dep
for dependency management, -
golang-ci
linter, -
ginkgo
for testing, -
goimports
for formatting, -
operator-sdk
for code generation.
Build process takes care of installing those binaries on your behalf. You can also run make tools
to install them.
From now on you are ready to hack. Open your favorite IDE and start right away! To build and test the code simply run make
.
Tip
|
Run make help to see what other targets are available.
|
The default make
target executes unit tests. When developing you can also use ginkgo watch
, so they are run whenever the change in the code occur. This makes feedback loop faster.
We also have end-to-end tests (make test-e2e
) for which you need to have Kubernetes cluster with Istio installed.
In our CI we rely on Maistra which bundles OpenShift and Istio. Visit their installation guide to see how else you can enable Istio in your cluster.
Tip
|
Check our Development Guide for more details! |