#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でパラメータ指定]]で、簡易的な実験を行うモードを選択できる。