[[2021-06-16_Wed]] #argo #litmus #sockshop
LitmusのWorkflowを作成するために、Argoを導入する。
Argoのインストールは、[Chaos Workflows with Argo and LitmusChaos · Litmus Docs](https://docs.litmuschaos.io/docs/chaos-workflows/) に従う。
```shell-session
$ kubectl create ns argo
```
Argoリソースの作成。
[Introduce Litmus by yuuki · Pull Request #5 · ai4sre/microservices-demo · GitHub](https://github.com/ai4sre/microservices-demo/pull/5/commits/b8001028354918bc74530da79d168fb53dc4ac16)
```shell-session
$ kubectl apply -n argo -f manifests-argo
customresourcedefinition.apiextensions.k8s.io/clusterworkflowtemplates.argoproj.io configured
customresourcedefinition.apiextensions.k8s.io/cronworkflows.argoproj.io configured
customresourcedefinition.apiextensions.k8s.io/workfloweventbindings.argoproj.io created
customresourcedefinition.apiextensions.k8s.io/workflows.argoproj.io configured
customresourcedefinition.apiextensions.k8s.io/workflowtemplates.argoproj.io configured
serviceaccount/argo created
serviceaccount/argo-server created
role.rbac.authorization.k8s.io/argo-role created
clusterrole.rbac.authorization.k8s.io/argo-aggregate-to-admin configured
clusterrole.rbac.authorization.k8s.io/argo-aggregate-to-edit configured
clusterrole.rbac.authorization.k8s.io/argo-aggregate-to-view configured
clusterrole.rbac.authorization.k8s.io/argo-cluster-role configured
clusterrole.rbac.authorization.k8s.io/argo-server-cluster-role configured
rolebinding.rbac.authorization.k8s.io/argo-binding created
clusterrolebinding.rbac.authorization.k8s.io/argo-binding configured
clusterrolebinding.rbac.authorization.k8s.io/argo-server-binding configured
configmap/workflow-controller-configmap created
service/argo-server created
service/workflow-controller-metrics created
deployment.apps/argo-server created
deployment.apps/workflow-controller created
```
Argo CLIツールのインストール。 [Release v3.0.7 · argoproj/argo-workflows · GitHub](https://github.com/argoproj/argo-workflows/releases/tag/v3.0.7)
```shell-session
$ curl -sLO https://github.com/argoproj/argo/releases/download/v3.0.7/argo-darwin-amd64.gz
$ gunzip argo-darwin-amd64.gz
$ chmod +x argo-darwin-amd64
$ mv ./argo-darwin-amd64 ~/bin/argo
$ argo version
argo: v3.0.7
BuildDate: 2021-05-25T18:57:09Z
GitCommit: e79e7ccda747fa4487bf889142c744457c26e9f7
GitTreeState: clean
GitTag: v3.0.7
GoVersion: go1.16.3
Compiler: gc
Platform: darwin/amd64
```
## Install Litmus operator and admin
各manifestsファイルを配置。 [Introduce Litmus by yuuki · Pull Request #5 · ai4sre/microservices-demo · GitHub](https://github.com/ai4sre/microservices-demo/pull/5/commits/39e1a5ba399979c564afd564036f9156619bccb9)
```shell-session
$ kubectl apply -n litmus -f manifests-litmus/litmus-operator.yaml
Warning: resource namespaces/litmus is missing the kubectl.kubernetes.io/last-applied-configuration annotation which is required by kubectl apply. kubectl apply should only be used on resources created declaratively by either kubectl create --save-config or kubectl apply. The missing annotation will be patched automatically.
namespace/litmus configured
Warning: resource serviceaccounts/litmus is missing the kubectl.kubernetes.io/last-applied-configuration annotation which is required by kubectl apply. kubectl apply should only be used on resources created declaratively by either kubectl create --save-config or kubectl apply. The missing annotation will be patched automatically.
serviceaccount/litmus configured
Warning: resource clusterroles/litmus is missing the kubectl.kubernetes.io/last-applied-configuration annotation which is required by kubectl apply. kubectl apply should only be used on resources created declaratively by either kubectl create --save-config or kubectl apply. The missing annotation will be patched automatically.
clusterrole.rbac.authorization.k8s.io/litmus configured
Warning: resource clusterrolebindings/litmus is missing the kubectl.kubernetes.io/last-applied-configuration annotation which is required by kubectl apply. kubectl apply should only be used on resources created declaratively by either kubectl create --save-config or kubectl apply. The missing annotation will be patched automatically.
clusterrolebinding.rbac.authorization.k8s.io/litmus configured
deployment.apps/chaos-operator-ce created
customresourcedefinition.apiextensions.k8s.io/chaosengines.litmuschaos.io configured
customresourcedefinition.apiextensions.k8s.io/chaosexperiments.litmuschaos.io configured
customresourcedefinition.apiextensions.k8s.io/chaosresults.litmuschaos.io unchanged
```
```shell-session
$ kubectl apply -n litmus -f manifests-litmus/litmus-admin-rbac.yaml
serviceaccount/litmus-admin created
clusterrole.rbac.authorization.k8s.io/litmus-admin configured
clusterrolebinding.rbac.authorization.k8s.io/litmus-admin unchanged
```
```shell-session
$ kubectl apply -n litmus -f manifests-litmus/argo-access.yaml
serviceaccount/argo-chaos created
clusterrole.rbac.authorization.k8s.io/chaos-cluster-role unchanged
Warning: rbac.authorization.k8s.io/v1beta1 ClusterRoleBinding is deprecated in v1.17+, unavailable in v1.22+; use rbac.authorization.k8s.io/v1 ClusterRoleBinding
clusterrolebinding.rbac.authorization.k8s.io/chaos-cluster-role-binding configured
```