[[CUE]]で繰り返しは、forとリストを使う。forとリストの使い方は次の通り。
[List Comprehensions | CUE](https://cuelang.org/docs/tutorials/tour/expressions/listcomp/)
[cue/spec.md at master · cuelang/cue · GitHub](https://github.com/cuelang/cue/blob/master/doc/ref/spec.md#comprehensions)
```cue
a: [1, 2, 3, 4]
b: [ for x in a if x > 1 { x+1 } ] // [3, 4, 5]
c: {
for x in a
if x < 4
let y = 1 {
"\(x)": x + y
}
}
d: { "1": 2, "2": 3, "3": 4 }
```
同じようにして、[[LitmusChaos]]のexperimentsを複数回指定する。
```cue
experiments: [ for i in [1, 2, 3, 4, 5] {
name: "pod-cpu-hog"
spec: components: env: [{
name: "TARGET_CONTAINER"
value: "carts-db"
}, {
name: "CPU_CORES"
value: "2"
}, {
name: "TOTAL_CHAOS_DURATION"
value: "60"
}]
},]
```
cue exportすると以下のようになる。
```yaml
experiments:
- name: pod-cpu-hog
spec:
components:
env:
- name: TARGET_CONTAINER
value: carts-db
- name: CPU_CORES
value: "2"
- name: TOTAL_CHAOS_DURATION
value: "60"
- name: pod-cpu-hog
spec:
components:
env:
- name: TARGET_CONTAINER
value: carts-db
- name: CPU_CORES
value: "2"
- name: TOTAL_CHAOS_DURATION
value: "60"
- name: pod-cpu-hog
spec:
components:
env:
- name: TARGET_CONTAINER
value: carts-db
- name: CPU_CORES
value: "2"
- name: TOTAL_CHAOS_DURATION
value: "60"
- name: pod-cpu-hog
spec:
components:
env:
- name: TARGET_CONTAINER
value: carts-db
- name: CPU_CORES
value: "2"
- name: TOTAL_CHAOS_DURATION
value: "60"
- name: pod-cpu-hog
spec:
components:
env:
- name: TARGET_CONTAINER
value: carts-db
- name: CPU_CORES
value: "2"
- name: TOTAL_CHAOS_DURATION
value: "60"
```
`[1, 2, 3, 4, 5]` の部分だけ切り出して共通化したいが、トップレベルに `repeats: [1,2,3,4,5]` を書いても、k8sの仕様ではRepeatsなんていうプロパティはないと怒られる。`
[Introduce Litmus by yuuki · Pull Request #5 · ai4sre/microservices-demo · GitHub](https://github.com/ai4sre/microservices-demo/pull/5/commits/4bce194f4d8a5c2c99324fb104ae5d9a667cade5)