iter8 has two components, _iter8analytics and _iter8controller. To install them, follow the instructions below. For additional considerations when installing iter8 on Red Hat OpenShift, check out these instructions.
To install iter8 with the default settings, you can run the following install script:
curl -L -s https://raw.githubusercontent.com/iter8-tools/iter8-controller/v0.2.1/install/install.sh \
| /bin/bash -
In case you need to customize the installation of iter8, use the Helm charts listed below:
iter8-analytics: https://github.com/iter8-tools/iter8-analytics/releases/download/v0.2.1/iter8-analytics-helm-chart.tar
iter8-controller: https://github.com/iter8-tools/iter8-controller/releases/download/v0.2.1/iter8-controller-helm-chart.tar
Note on Prometheus: In order to make assessments, iter8-analytics needs to query metrics collected by Istio and stored on Prometheus. The default values for the helm chart parameters (used in the quick installation) point iter8-analytics to the Prometheus server at http://prometheus.istio-system:9090
(the default internal Kubernetes URL of Prometheus installed as an Istio addon) without specifying any need for authentication. If your Istio installation is shipping metrics to a different Prometheus service, or if you need to configure authentication to access Prometheus, you need to set appropriate iter8-analytics Helm chart parameters. Look in the section metricsBackend
of the Helm chart’s values.yaml
file for details.
Note on Istio Telemetry: When deploying iter8-controller using helm, make sure to set the parameter istioTelemetry
to conform with your environment. Possible values are v1
or v2
. Use v1
if the Istio mixer is not disabled. You can determine whether or not the mixer is disabled using this command:
kubectl -n $ISTIO_NAMESPACE get cm istio -o json | jq .data.mesh | grep -o 'disableMixerHttpReports: [A-Za-z]\+' | cut -d ' ' -f2
After installing iter8-analytics and iter8-controller, you should see the following pods and services in the newly created iter8
namespace:
$ kubectl get pods -n iter8
NAME READY STATUS RESTARTS AGE
iter8-controller-5f54bb4b88-drr8s 1/1 Running 0 4s
iter8-analytics-5c5758ccf9-p575b 1/1 Running 0 61s
$ kubectl get svc -n iter8
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
iter8-controller ClusterIP 172.21.62.217 <none> 443/TCP 20s
iter8-analytics ClusterIP 172.21.106.44 <none> 80/TCP 76s
To enable users to see Prometheus metrics that pertain to their canary releases or A/B tests, iter8 provides a Grafana dashboard template. To take advantage of Grafana, you will need to import this template. To do so, first make sure you can access Grafana. In a typical Istio installation, you can port-forward Grafana from Kubernetes to your localhost’s port 3000 with the command below:
kubectl -n istio-system port-forward $(kubectl -n istio-system get pod -l app=grafana -o jsonpath='{.items[0].metadata.name}') 3000:3000
After running that command, you can access Grafana’s UI at http://localhost:3000
.Iter8 dashboard can be imported by:
curl -L -s https://raw.githubusercontent.com/iter8-tools/iter8-controller/v0.2.1/hack/grafana_install_dashboard.sh \
| /bin/bash -
If you want to uninstall all iter8 components from your Kubernetes cluster, first delete all instances of Experiment
from all namespaces. Then, you can delete iter8 by running the following command:
kubectl delete -f https://raw.githubusercontent.com/iter8-tools/iter8-controller/v0.2.1/install/iter8-controller.yaml
Note that this command will delete the Experiment
CRD and wipe out the iter8
namespace, but it will not remove the iter8 Grafana dashboard if created.