We recommend using the Red Hat OpenShift Service Mesh. This can be installed using the Red Hat OpenShift Service Mesh Operator. For details, see: https://docs.openshift.com/container-platform/4.4/service_mesh/v1x/installing-ossm.html.
Installing the Service Mesh involves installing the Elasticsearch, Jaeger, Kiali and Red Hat OpenShift Service Mesh Operators, creating and managing a ServiceMeshControlPlane
resource to deploy the control plane, and creating a ServiceMeshMemberRoll
resource to specify the namespaces associated with the Red Hat OpenShift Service Mesh. It is not necessary to create a ServiceMeshMember
.
By default, iter8 uses the Prometheus service installed as part of the Red Hat OpenShift Service Mesh for the metrics used to assess the quality of different versions of a service. The Red Hat OpenShift Service Mesh configures the Prometheus service to require authentication. To configure iter8 to authenticate with Prometheus, some additional steps are needed.
Download and untar the helm chart for the iter8-analytics service. The following options can be used to generate the needed YAML:
REPO=iter8/iter8-analytics
PROMETHEUS_SERVICE='https://prometheus.istio-system:9090'
PROMETHEUS_USERNAME='internal'
PROMETHEUS_PASSWORD=$(kubectl -n istio-system get secret htpasswd -o jsonpath='{.data.rawPassword}' | base64 --decode)
helm template install/kubernetes/helm/iter8-analytics \
--name iter8-analytics \
--set image.repository=${REPO} \
--set image.tag=v1.0.1 \
--set metricsBackend.authentication.type=basic \
--set metricsBackend.authentication.username=${PROMETHEUS_USERNAME} \
--set metricsBackend.authentication.password=${PROMETHEUS_PASSWORD} \
--set metricsBackend.authentication.insecure_skip_verify=true \
--set metricsBackend.url=${PROMETHEUS_SERVICE} \
| kubectl -n iter8 apply -f -
The default YAML file can be used to install the iter8 controller. The Service Mesh currently uses Istio telemetry version v1
:
oc --namespace iter8 apply -f https://raw.githubusercontent.com/iter8-tools/iter8-istio/v1.0.1/install/iter8-controller.yaml
The Red Hat OpenShift Service Mesh is restricted to the set of namespaces defined in the ServiceMeshMemberRoll
resource. In particular, if you will be trying the tutorials, add the namespace bookinfo-iter8
to the ServiceMeshMemberRoll
.
Istio relies a sidecar injected into each pod to provide its capabilities. Istio provides several ways this sidecar can be injected. Red Hat recommends the use of the annotation sidecar.istio.io/inject: "true"
in the deployment yaml. Examples can be found in the deployment YAML used for the tutorials.
If you want to uninstall all of iter8 components from your OpenShift cluster, first delete all instances of Experiment
from all namespaces. Then, you can delete iter8 by running the following command:
oc delete -f https://raw.githubusercontent.com/iter8-tools/iter8-istio/v1.0.1/install/iter8-controller.yaml