/istio-workspace

Safely develop and test on any kubernetes cluster without affecting others.

Primary LanguageGoApache License 2.0Apache-2.0

Go Report Card CircleCI

Istio Workspace

Istio Workspace enables developers to:

  • run one or more services locally during development but make it appear like it would be developed in the actual cluster
    • this way you can use your favourite development tools
    • have instant feedback loop
    • don't make your machine overheating trying to run the whole cluster locally
  • safely preview incoming changes in pull requests without affecting regular users
  • have confidence in testing or troubleshooting your services directly in the cluster

Istio Workspace supports testing on multi-user environment in an unobtrusive way. It doesn’t really matter if it is QE cluster or actual production. We give you confidence that your changes won’t blow up the cluster, and your users won’t even notice a glitch.

You will need Kubernetes or Openshift cluster with Istio installed.

You can read more about our vision on Red Hat Developer’s blog or ...

See it in action!

https://youtu.be/XTNVadUzMCc

Watch demo: "How to develop on production: An introduction to Istio-Workspaces".

Documentation

More details can be found on our documentation page.

We use amazing Antora project to build it and you should too!

Install (in two easy steps)

Get latest ike binary through simple download script:

curl -sL http://git.io/get-ike | bash

Tip

You can also specify the version and directory before downloading curl -sL http://git.io/get-ike | bash -s -- --version=v0.0.1 --dir=/usr/bin

get - downloads ike binary matching your operating system

./get.sh [options]

Options:
-h, --help          shows brief help
-v, --version       defines version specific version of the binary to download (defaults to latest)
-d, --dir           target directory to which the binary is downloaded (defaults to random tmp dir in /tmp suffixed with ike-version)
-n, --name          saves binary under specific name (defaults to ike)

If you’re using Openshift you can install the istio-workspace operator via the Operator Hub in the web console.

If you’re on vanilla Kubernetes you can install it by installing the Operator Lifecycle Managment using the Operator SDK:

operator-sdk install
operator-sdk run bundle quay.io/maistra/istio-workspace-operator-bundle:latest

And you are all set!

Development Setup

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

We rely on following tools:

but from now on you are ready to hack - invoking make will check if those binaries are available and install if there are some missing.

Run make help to see what targets are available, but you will use make most often.

Note

Have a look how Go Version Manager can help you simplifying configuration and management of different versions of Go.

Coding style

We follow standard Go coding conventions which we ensure using goimports during the build.

In addition, we provide .editorconfig file which is supported by majority of the IDEs.

License

This project is licensed under the Apache License, Version 2.0.