[[2021-06-19_Sat]] #argo #litmus #sockshop
Chaosの実行時間を60秒に設定していても、argo submit --watch を眺めていると、10秒ぐらいで終わっている。
Argoのマニフェストの以下の部分で、 kubectl apply が実行結果を待たないことが原因であるとあたりをつけた。
```shell-session
container:
image: lachlanevenson/k8s-kubectl
command: [sh, -c]
args: ['kubectl apply -f /tmp/chaosengine.yaml -n {{workflow.parameters.appNamespace}}']
```
[[kubectl applyの実行を待つ方法]] は、ワークアラウンドで対応することになる。
しかし、 kubectl wait にわたすpod名をどう取得するか。
`kubectl wait -f filename` オプションがあったので、これで、chaosengine.yaml を指定すればよさそう。
`kubectl wait --for condition="Completed"` や `kubectl wait --for condition=complete` では条件にヒットしないことがわかった。
chaosengine.yamlで作成するのは ChaosEngineリソースであって、ChaosEngineリソースが作成するinjectionのためのpodのリソースを直接作成するわけではないからだと仮説をたてた。
injection用のpodは、名前にランダム文字列を含むため、特定が難しい。単にsleepするだけにした。
[add more chaos type litmus by yuuki · Pull Request #6 · ai4sre/microservices-demo · GitHub](https://github.com/ai4sre/microservices-demo/pull/6/commits/e1ae4e5476d87c2650a20c988a5b6ae8cbb62493)