Test service meshes for Kiali
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
ansible
test-service
traffic-generator
.gitignore
.travis.yml
CODE_OF_CONDUCT.md
LICENSE
Makefile
README.adoc

README.adoc

Deploying to OpenShift

Note
The following instructions assume that you have access to an OpenShift cluster, that the oc command is available on your path and that your current user has cluster permissions. It also assumes that you have the istioctl command available on your path as well as Ansible (ansible-playbook). The example service meshes will install many pods which may not fit in a single default OpenShift node. These pods are lightweight and for testing purposes. You may want to increase the max-pods value for your node.

Dependencies needed to Deploy on Openshift

# Create a place to put ansible
mkdir $HOME/source && cd $HOME/source

# Get latest Ansible, put it in your environment
git clone git://github.com/ansible/ansible.git
source ansible/hacking/env-setup

# Make sure pip is upgraded to the latest
sudo pip install --upgrade pip

# Install the openshift python client library
pip install --user openshift

Example Service Meshes

This project contains a Makefile that can deploy several different types of test meshes. There is one make target per test mesh type. See here for details on the test mesh types.

You can customize each test mesh to contain different numbers of test services and different number of versions per test service, as well as have test mesh services communicate across multiple namespaces.

To define the number of services your test mesh will contain, set the environment variable NUM_SERVICES (the default is "1").

To define the number of versions per service, set the environment variable NUM_VERSIONS (the default is "1").

To deploy a test mesh across multiple namespaces, set the environment variable NUM_NAMESPACES to the number of namespaces you want (the default is "1").

Deploy Scale Mesh

The following are the types of scale meshes you can deploy.

  • kiali-test-depth

  • kiali-test-breadth

  • kiali-test-circle

  • kiali-test-circle-callback

  • kiali-test-hourglass

  • kiali-test-depth-sink

  • kiali-test-breadth-sink

There is a Makefile target per test mesh type - the target name is the name of the test mesh prefixed with openshift-deploy-. For example the following will depoy a kiali-test-depth test mesh with a single service:

make openshift-deploy-kiali-test-depth

This will deploy the kiali-test-circle test mesh with 2 services with each service having 2 versions:

NUM_SERVICES=2 NUM_VERSIONS=2 make openshift-deploy-kiali-test-circle

Deploy a Test Mesh Across Multiple Test Namespaces

To deploy a test mesh across multiple namespaces, pass in the NUM_NAMESPACES environment variable. Make sure NUM_SERVICES is the same or greater than NUM_NAMESPACES:

NUM_NAMESPACES=2 NUM_SERVICES=2 make openshift-deploy-kiali-test-hourglass

Complex Test Mesh

The complex test mesh is a different type of mesh than the others. This mesh does not take any parameters and is not configurable.

This mesh includes mixing different configuration options. It spans multiple namespaces, uses deployments and replicasets, and apps and workloads. It is meant as a testing mesh to see how Kiali handles more complex scenarios.

To deploy the complex test mesh:

make openshift-deploy-kiali-complex-mesh