#argo #litmus #sockshop
- [[Argo WorkflowでLitmusの実験計画の例]] は Litmus + Argoの基本形。
- [[Argo Workflow ループ]] は、Argoのループの書き方。
- [[Argo Workflow Nested Loop]] は、 Argoのネストしたループの書き方。
- [[Argo Workflowで複数podの実験]] で並列度調整。
- [[Argo Workflowでsleep]]
- [[Argo Workflowのtemplate名の変数展開]] に失敗
- [[Argo + LitmusのマニフェストをCUEに移行]] 異種実験の簡易記述
これらの要素を組み合わせて、以下の要件を満たす実験マニフェストができた。
1. chaosの注入を固定回数繰り返す
2. sock shopの各podに固定回数のchaosを注入する
3. 逐次実行する
4. 異種chaos([[Litmus Injection pod-network-loss]] [[Litmus Injection pod-cpu-hogを実行してみる]] など)を組み合わせて注入できる
[Introduce Litmus by yuuki · Pull Request #5 · ai4sre/microservices-demo · GitHub](https://github.com/ai4sre/microservices-demo/pull/5/commits/b802bb7e974486d622622a0f419b24f5f7263af1)
argo submitで実験ワークフローを実行する。
```shell-session
$ argo submit --watch experiments/argowf.yaml
Name: argowf-chaos-9hwfl
Namespace: sock-shop
ServiceAccount: argo-chaos
Status: Running
Conditions:
PodRunning False
Created: Sat Jun 19 14:00:03 +0900 (32 seconds ago)
Started: Sat Jun 19 14:00:03 +0900 (32 seconds ago)
Duration: 32 seconds
Progress: 2/3
ResourcesDuration: 7s*(1 cpu),7s*(100Mi memory)
Parameters:
repeatNum: 1
appNamespace: sock-shop
adminModeNamespace: litmus
chaosServiceAccount: sock-shop-chaos-engine
appLabels: ["user","user-db","shipping","carts","carts-db","orders","orders-db","catalogue","catalogue-db","payment","front-end"]
chaosIntervalSec: 1800
STEP TEMPLATE PODNAME DURATION MESSAGE
● argowf-chaos-9hwfl argowf-chaos
└─┬─✔ run-chaos-pod-cpu-hog(0:user) expand-chaos-pod-cpu-hog
│ └───✔ expand-chaos-pod-cpu-hog-step(0:0) run-chaos-pod-cpu-hog-with-sleep
│ └─┬─✔ run-chaos-pod-cpu-hog-with-sleep-step run-chaos-pod-cpu-hog argowf-chaos-9hwfl-2605856896 7s
│ └─✔ sleep sleep-n-sec argowf-chaos-9hwfl-132274275 6s
└─● run-chaos-pod-cpu-hog(1:user-db) expand-chaos-pod-cpu-hog
└───● expand-chaos-pod-cpu-hog-step(0:0) run-chaos-pod-cpu-hog-with-sleep
└───◷ run-chaos-pod-cpu-hog-with-sleep-step run-chaos-pod-cpu-hog argowf-chaos-9hwfl-996385830 12s PodInitializing
```
[[argo submitでパラメータ指定]]で、簡易的な実験を行うモードを選択できる。