Skip to content

zenland/kiali-test-mesh

 
 

Repository files navigation

Kiali Test Mesh Operator

Kiali Test Mesh provides an operator which will install different types of examples mesh which allow you to see different features of kiali.

It needs Istio to be installed. It is recommended to be used the Maistra Operator to install it.

In order to deploy the Operator you can use following make target (on root folder of this repository)

make deploy-operator

After installing the operator you can install the custom resource for each type of mesh that might want to try.

Meshes available:

Bookinfo

bookinfo

Bookinfo is the "Hello World" example of Istio Resources.

After installing the [Kiali Test Mesh Operator]. Run the following command to deploy bookinfo mesh:

make deploy-bookinfo

available options:

  • BOOKINFO_NAMESPACE can be set to deploy namespace (default: bookinfo)

Note
Automatic Injection is supported way to inject with multi-tenancy.
  • MANUAL_INJECTION_SIDECAR can be set to true or false (default: false, which means it will use automatic injection of the sidecar of the sidecar and true will use manual injection of sidecar)

  • MANUAL_INJECTION_SIDECAR_ISTIO_VERSION can be set to use a specific version of istioctl (default: 1.1.8)

  • BOOKINFO_HUB can be set to deploy bookinfo from Istio or Maistra (default: docker.io/istio, alternatively you can use docker.io/maistra)

  • BOOKINFO_VERSION can be set to deploy a specific version of Bookinfo from Istio or Maistra (default: 1.15.0)

  • BOOKINFO_MYSQL can be set to deploy ratings-v2-mysql and MySQL DB (default: true)

  • BOOKINFO_MONGODB can be set to deploy ratings-v2-mongodb and MongoDB (default: true)

so possible scenario command:

make deploy-bookinfo BOOKINFO_NAMESPACE=bookinfo2 MANUAL_INJECTION_SIDECAR=true MANUAL_INJECTION_SIDECAR_ISTIO_VERSION=1.1.8 BOOKINFO_HUB=docker.io/istio BOOKINFO_VERSION=1.15.0 BOOKINFO_MYSQL=true BOOKINFO_MONGODB=true

Remove Bookinfo

You can run the following command to remove Bookinfo:

make remove-bookinfo-cr

The command above will remove the Bookinfo installation but not namespace itself. In order to remove the namespace itself you will need to run the folowing command (make sure you have the BOOKINFO_NAMESPACE set correctly):

make remove-bookinfo-namespace BOOKINFO_NAMESPACE=bookinfo
redhat istio tutorial

Red Hat Istio Tutorial

redhat istio tutorial

Red Hat Istio Tutorial is a Quarkus based mesh brought it by the Red Hat Developer program.

After installing the [Kiali Test Mesh Operator]. Run the following command to deploy it:

make deploy-redhat-istio-tutorial

available options:

  • REDHAT_TUTORIAL_NAMESPACE can be set to deploy namespace (default: redhat-istio-tutorial)

Note
Automatic Injection is supported way to inject with multi-tenancy.

so possible scenario command:

make deploy-redhat-istio-tutorial REDHAT_TUTORIAL_NAMESPACE=redhat-istio-tutorial2 MANUAL_INJECTION_SIDECAR=true MANUAL_INJECTION_SIDECAR_ISTIO_VERSION=1.1.8

Remove Red Hat Istio Tutorial

You can run the following command to remove Red Hat Istio Tutorial:

make remove-redhat-istio-tutorial-cr

The command above will remove the Red Hat Istio Tutorial installation but not namespace itself. In order to remove the namespace itself you will need to run the folowing command (make sure you have the REDHAT_TUTORIAL_NAMESPACE set correctly)

make remove-redhat-istio-tutorial-namespace REDHAT_TUTORIAL_NAMESPACE=redhat-istito-tutorial

It will remove the bookinfo installation cr. If you want to delete namespace use the following command

make remove-bookinfo-namespace

Kiali Complex Test Mesh

Kiali Complex Mesh is a mesh created by Kiali team for testing purposes.

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.

deploy-complex-mesh

Remove Kiali Complex Mesh

You can run the following command to remove Kiali Complex Mesh:

make remove-complex-mesh-cr

The command above will remove the Kiali Complex Mesh installation but not namespace itself. In order to remove the namespace itself you will need to run the folowing command:

make remove-complex-mesh-namespace

Multitenancy

If you have maistra set with multi-tenancy, you should have a Service Mesh Member Roll per control plane namespace.

You can deploy the meshes with multi-tenancy by setting ENABLE_MULTI_TENANT=true which is default to false.

When ENABLE_MULTI_TENANT is set to true, it tries to find a Service Mesh Member Roll named default and add that namespace of a mesh on into it.

You need to set CONTROL_PLANE_NAMESPACE (default: istio-system) to deploy on different control plane namespace.

Example:

make deploy-bookinfo ENABLE_MULTI_TENANT=true BOOKINFO_NAMESPACE=bookinfo3 CONTROL_PLANE_NAMESPACE=istio-system2

Scale Mesh

The scale mesh is type of a mesh that can be used for perfomance and scalability testing.

Variables to control the size, type and scale of the mesh

SCALE_MESH_NUMBER_SERVICES is number of services that are going to be created

SCALE_MESH_NUMBER_APPS is number of apps that going to be created (number of the boxes on the graph) - usually we match the number of the apps to number of services.

SCALE_MESH_NUMBER_VERSIONS is number of versions that are created per app

SCALE_MESH_NUMBER_NAMESPACES is number of namespaces are going to be created

SCALE_MESH_TYPE_OF_MESH is the type of mesh that going to be used.

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

Example of the command: SCALE_MESH_NUMBER_SERVICES=6 SCALE_MESH_NUMBER_APPS=6 SCALE_MESH_NUMBER_VERSIONS=2 SCALE_MESH_NUMBER_NAMESPACES=1 SCALE_MESH_TYPE_OF_MESH=kiali-test-circle make-deploy-scale-mesh

About

Test service meshes for Kiali

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Makefile 79.0%
  • Go 15.4%
  • Dockerfile 3.3%
  • Shell 2.3%