istio-workspace

module
v0.5.3 Latest Latest
Warning

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

Go to latest
Published: Nov 16, 2022 License: Apache-2.0

README

Join Zulip chat 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!

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.

Directories

Path Synopsis
api
maistra/v1alpha1
Package v1alpha1 contains API Schema definitions for the istio v1alpha1 API group +k8s:deepcopy-gen=package,register +groupName=workspace.maistra.io
Package v1alpha1 contains API Schema definitions for the istio v1alpha1 API group +k8s:deepcopy-gen=package,register +groupName=workspace.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
reference
Package reference is based on https://github.com/operator-framework/operator-lib/blob/8c3d48f55639528bcee4432b570bc6671900b75d/handler/enqueue_annotation.go Main changes are about allowing to store multiple values of a given annotation as comma-separated list.
Package reference is based on https://github.com/operator-framework/operator-lib/blob/8c3d48f55639528bcee4432b570bc6671900b75d/handler/enqueue_annotation.go Main changes are about allowing to store multiple values of a given annotation as comma-separated list.
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