istio-workspace

module
v0.0.6 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 16, 2021 License: Apache-2.0

README

image:https://goreportcard.com/badge/github.com/maistra/istio-workspace["Go Report Card", link="https://goreportcard.com/report/github.com/maistra/istio-workspace"]
image:https://circleci.com/gh/maistra/istio-workspace.svg?style=svg["CircleCI", link="https://circleci.com/gh/maistra/istio-workspace"]

== Istio Workspace

Do you have confidence that your Test and Stage environments reflect reality? Are they easy to keep up-to-date with production? Can you reproduce production failure in these environments or locally? What about that error you keep seeing on production that’s never occurring on Test or Stage?

This project works with https://istio.io/[Istio] and https://k8s.io[Kubernetes] or https://openshift.com[Openshift] to give you confidence that your changes won't blow up production cluster and your users won’t even notice a glitch.

You can read more about our vision on https://developers.redhat.com/blog/2020/07/14/developing-and-testing-on-production-with-kubernetes-and-istio-workspace/[Red Hat Developer's blog] or ...

=== See it in action!

[.text-center]
image:https://img.youtube.com/vi/XTNVadUzMCc/hqdefault.jpg[link="https://youtu.be/XTNVadUzMCc",window="_blank"]

=== Documentation

More details can be found on our https://istio-workspace-docs.netlify.com/[documentation page]. 

We use amazing https://antora.org/[Antora] project to build it and you should too!

=== Install (in two easy steps)

Get latest `ike` binary through simple download script:

[source,bash]
----
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`

[source,bash]
----
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 https://sdk.operatorframework.io/docs/installation/[Operator SDK]:

[source,bash]
----
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 https://golang.org/doc/install[Golang prerequisites] in place, clone the repository first:

[source,bash]
----
$ git clone https://github.com/maistra/istio-workspace $GOPATH/src/github.com/maistra/istio-workspace
----

We rely on following tools:

* https://golang.github.io/dep/[`dep`] for dependency management
* https://github.com/golangci/golangci-lint[`golang-ci`] linter
* https://github.com/onsi/ginkgo[`ginkgo`] for testing
* https://godoc.org/golang.org/x/tools/cmd/goimports[`goimports`] for formatting
* https://github.com/operator-framework/operator-sdk[`operator-sdk`] for code generation

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 https://github.com/moovweb/gvm[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 https://editorconfig.org/#download[majority of the IDEs].

=== License

This project is licensed under the link:http://www.apache.org/licenses/[Apache License, Version 2.0].

Directories

Path Synopsis
api
maistra/v1alpha1
Package v1alpha1 contains API Schema definitions for the istio v1alpha1 API group +k8s:deepcopy-gen=package,register +groupName=maistra.io Package v1alpha1 contains API Schema definitions for the istio v1alpha1 API group +k8s:deepcopy-gen=package,register +groupName=maistra.io
Package v1alpha1 contains API Schema definitions for the istio v1alpha1 API group +k8s:deepcopy-gen=package,register +groupName=maistra.io Package v1alpha1 contains API Schema definitions for the istio v1alpha1 API group +k8s:deepcopy-gen=package,register +groupName=maistra.io
cmd
ike
e2e
pkg
assets
Package assets generated by go-bindata.// sources: template/strategies/_basic-remove.tpl template/strategies/_basic-version.tpl template/strategies/prepared-image.tpl template/strategies/prepared-image.var template/strategies/telepresence.tpl template/strategies/telepresence.var
Package assets generated by go-bindata.// sources: template/strategies/_basic-remove.tpl template/strategies/_basic-version.tpl template/strategies/prepared-image.tpl template/strategies/prepared-image.var template/strategies/telepresence.tpl template/strategies/telepresence.var
client/clientset/versioned
This package has the automatically generated clientset.
This package has the automatically generated clientset.
client/clientset/versioned/fake
This package has the automatically generated fake clientset.
This package has the automatically generated fake clientset.
client/clientset/versioned/scheme
This package contains the scheme of the automatically generated clientset.
This package contains the scheme of the automatically generated clientset.
client/clientset/versioned/typed/maistra/v1alpha1
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
client/clientset/versioned/typed/maistra/v1alpha1/fake
Package fake has the automatically generated clients.
Package fake has the automatically generated clients.
cmd
k8s
log
cmd/test-service
Code generated for package main by go-bindata DO NOT EDIT.
Code generated for package main by go-bindata DO NOT EDIT.
echo
Test double that echoes passed arguments and flags.
Test double that echoes passed arguments and flags.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL