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.