Experiment namespace and group¶
Iter8 experiments like load-test-http and load-test-grpc can be run within Kubernetes. Such experiments are launched within a Kubernetes namespace, and associated with a unique group within that namespace.
For example, consider the following invocation:
iter8 k launch -c load-test-http -g hbin \
--set url=http://httpbin.default \
--set SLOs.http/latency-mean=50
In the above invocation, the iter8 k launch implicitly specifies the namespace as default, and explicitly specifies the group as hbin. If the group name is not specified explicitly, then it is set to default.
The following example illustrates the relationship between namespaces, groups, and experiments.
.
├── namespace1
│ ├── group-a
│ │ └── experiment
│ ├── group-b
│ │ └── experiment
│ └── group-c
│ └── experiment
├── namespace2
│ ├── group-a
│ │ └── experiment
│ ├── group-b
│ │ └── experiment
│ └── group-c
│ └── experiment
└── namespace3
└── group-x
└── experiment
Use-cases¶
- Run multiple experiments concurrently within a Kubernetes namespace. These experiments may be associated with the same app or with different apps.
- Replace a currently running experiment in Kubernetes with a new one. When you invoke
iter8 k launch, any previous experiment runs within the group are wiped out and replaced with a new run.
How groups work¶
Under the covers, Iter8 implements each experiment group as a Helm release and each new experiment run within the group as an update of that release.