From 91bf895316357975e315f73babec5736b3c6cc32 Mon Sep 17 00:00:00 2001 From: Akash Shrivastava Date: Fri, 15 Jul 2022 19:36:59 +0530 Subject: [PATCH] Chore[New Exp]: Charts for HTTP Chaos Status Code (#556) * Added http status code chaos experiment charts Signed-off-by: avaakash --- charts/generic/experiments.yaml | 3 - .../generic/generic.chartserviceversion.yaml | 1 + charts/generic/generic.package.yaml | 3 + charts/generic/icons/pod-http-status-code.png | Bin 0 -> 12130 bytes .../generic/pod-http-status-code/engine.yaml | 54 +++++++ .../pod-http-status-code/experiment.yaml | 141 ++++++++++++++++++ ...-http-status-code.chartserviceversion.yaml | 40 +++++ .../pod-http-status-code/rbac-psp.yaml | 85 +++++++++++ charts/generic/pod-http-status-code/rbac.yaml | 79 ++++++++++ .../generic/generic.chartserviceversion.yaml | 2 + experiments/generic/generic.package.yaml | 3 + .../generic/icons/pod-http-status-code.png | Bin 0 -> 12130 bytes .../generic/pod-http-status-code/engine.yaml | 54 +++++++ .../pod-http-status-code/experiment.yaml | 141 ++++++++++++++++++ ...-http-status-code.chartserviceversion.yaml | 40 +++++ .../pod-http-status-code/rbac-psp.yaml | 85 +++++++++++ .../generic/pod-http-status-code/rbac.yaml | 79 ++++++++++ 17 files changed, 807 insertions(+), 3 deletions(-) create mode 100644 charts/generic/icons/pod-http-status-code.png create mode 100644 charts/generic/pod-http-status-code/engine.yaml create mode 100644 charts/generic/pod-http-status-code/experiment.yaml create mode 100644 charts/generic/pod-http-status-code/pod-http-status-code.chartserviceversion.yaml create mode 100644 charts/generic/pod-http-status-code/rbac-psp.yaml create mode 100644 charts/generic/pod-http-status-code/rbac.yaml create mode 100644 experiments/generic/icons/pod-http-status-code.png create mode 100644 experiments/generic/pod-http-status-code/engine.yaml create mode 100644 experiments/generic/pod-http-status-code/experiment.yaml create mode 100644 experiments/generic/pod-http-status-code/pod-http-status-code.chartserviceversion.yaml create mode 100644 experiments/generic/pod-http-status-code/rbac-psp.yaml create mode 100644 experiments/generic/pod-http-status-code/rbac.yaml diff --git a/charts/generic/experiments.yaml b/charts/generic/experiments.yaml index ea50d5c..76f552e 100644 --- a/charts/generic/experiments.yaml +++ b/charts/generic/experiments.yaml @@ -1335,7 +1335,6 @@ spec: app.kubernetes.io/runtime-api-usage: "true" app.kubernetes.io/version: latest ---- --- apiVersion: litmuschaos.io/v1alpha1 description: @@ -2037,7 +2036,6 @@ spec: app.kubernetes.io/service-kill: "true" app.kubernetes.io/version: latest - --- apiVersion: litmuschaos.io/v1alpha1 description: @@ -3044,7 +3042,6 @@ spec: - name: id-rsa mountPath: /mnt/ ---- --- apiVersion: litmuschaos.io/v1alpha1 description: diff --git a/charts/generic/generic.chartserviceversion.yaml b/charts/generic/generic.chartserviceversion.yaml index ce3f0ae..9042fb0 100644 --- a/charts/generic/generic.chartserviceversion.yaml +++ b/charts/generic/generic.chartserviceversion.yaml @@ -38,6 +38,7 @@ spec: - pod-memory-hog-exec - pod-network-partition - pod-http-latency + - pod-http-status-code - pod-http-modify-header - pod-http-modify-body - pod-http-reset-peer diff --git a/charts/generic/generic.package.yaml b/charts/generic/generic.package.yaml index a83f61c..3dd250d 100644 --- a/charts/generic/generic.package.yaml +++ b/charts/generic/generic.package.yaml @@ -75,6 +75,9 @@ experiments: - name: pod-http-latency CSV: pod-http-latency.chartserviceversion.yaml desc: "pod-http-latency" + - name: pod-http-status-code + CSV: pod-http-status-code.chartserviceversion.yaml + desc: "pod-http-status-code" - name: pod-http-modify-header CSV: pod-http-modify-header.chartserviceversion.yaml desc: "pod-http-modify-header" diff --git a/charts/generic/icons/pod-http-status-code.png b/charts/generic/icons/pod-http-status-code.png new file mode 100644 index 0000000000000000000000000000000000000000..5d13f6b2fde28f9f5851dda3b8508814821df434 GIT binary patch literal 12130 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 + it injects http status code chaos inside the pod which modifies the status code of the response from the provided application server to desired status code provided by user and reverts after specified duration + keywords: + - "pods" + - "kubernetes" + - "generic" + - "exec" + - "http" + - "status code" + - "response code" + platforms: + - "Minikube" + maturity: alpha + maintainers: + - name: Akash Shrivastava + email: akash.shrivastava@harness.io + minKubeVersion: 1.12.0 + provider: + name: Harness + labels: + app.kubernetes.io/component: chartserviceversion + app.kubernetes.io/version: latest + links: + - name: Source Code + url: https://github.com/litmuschaos/litmus-go/tree/master/experiments/generic/pod-http-status-code + - name: Documentation + url: https://litmuschaos.github.io/litmus/experiments/categories/pods/pod-http-status-code/ + icon: + - base64data: "" + mediatype: "" + chaosexpcrdlink: https://raw.githubusercontent.com/litmuschaos/chaos-charts/master/charts/generic/pod-http-status-code/experiment.yaml \ No newline at end of file diff --git a/charts/generic/pod-http-status-code/rbac-psp.yaml b/charts/generic/pod-http-status-code/rbac-psp.yaml new file mode 100644 index 0000000..8318ccd --- /dev/null +++ b/charts/generic/pod-http-status-code/rbac-psp.yaml @@ -0,0 +1,85 @@ +--- +apiVersion: v1 +kind: ServiceAccount +metadata: + name: pod-http-status-code-sa + namespace: default + labels: + name: pod-http-status-code-sa + app.kubernetes.io/part-of: litmus +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + name: pod-http-status-code-sa + namespace: default + labels: + name: pod-http-status-code-sa + app.kubernetes.io/part-of: litmus +rules: + # Create and monitor the experiment & helper pods + - apiGroups: [""] + resources: ["pods"] + verbs: ["create","delete","get","list","patch","update", "deletecollection"] + # Performs CRUD operations on the events inside chaosengine and chaosresult + - apiGroups: [""] + resources: ["events"] + verbs: ["create","get","list","patch","update"] + # Fetch configmaps details and mount it to the experiment pod (if specified) + - apiGroups: [""] + resources: ["configmaps"] + verbs: ["get","list",] + # Track and get the runner, experiment, and helper pods log + - apiGroups: [""] + resources: ["pods/log"] + verbs: ["get","list","watch"] + # for creating and managing to execute comands inside target container + - apiGroups: [""] + resources: ["pods/exec"] + verbs: ["get","list","create"] + # deriving the parent/owner details of the pod(if parent is anyof {deployment, statefulset, daemonsets}) + - apiGroups: ["apps"] + resources: ["deployments","statefulsets","replicasets", "daemonsets"] + verbs: ["list","get"] + # deriving the parent/owner details of the pod(if parent is deploymentConfig) + - apiGroups: ["apps.openshift.io"] + resources: ["deploymentconfigs"] + verbs: ["list","get"] + # deriving the parent/owner details of the pod(if parent is deploymentConfig) + - apiGroups: [""] + resources: ["replicationcontrollers"] + verbs: ["get","list"] + # deriving the parent/owner details of the pod(if parent is argo-rollouts) + - apiGroups: ["argoproj.io"] + resources: ["rollouts"] + verbs: ["list","get"] + # for configuring and monitor the experiment job by the chaos-runner pod + - apiGroups: ["batch"] + resources: ["jobs"] + verbs: ["create","list","get","delete","deletecollection"] + # for creation, status polling and deletion of litmus chaos resources used within a chaos workflow + - apiGroups: ["litmuschaos.io"] + resources: ["chaosengines","chaosexperiments","chaosresults"] + verbs: ["create","list","get","patch","update","delete"] + # use litmus psp + - apiGroups: ["policy"] + resources: ["podsecuritypolicies"] + verbs: ["use"] + resourceNames: ["litmus"] +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: RoleBinding +metadata: + name: pod-http-status-code-sa + namespace: default + labels: + name: pod-http-status-code-sa + app.kubernetes.io/part-of: litmus +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: Role + name: pod-http-status-code-sa +subjects: +- kind: ServiceAccount + name: pod-http-status-code-sa + namespace: default diff --git a/charts/generic/pod-http-status-code/rbac.yaml b/charts/generic/pod-http-status-code/rbac.yaml new file mode 100644 index 0000000..5f117f5 --- /dev/null +++ b/charts/generic/pod-http-status-code/rbac.yaml @@ -0,0 +1,79 @@ +apiVersion: v1 +kind: ServiceAccount +metadata: + name: pod-http-status-code-sa + namespace: default + labels: + name: pod-http-status-code-sa + app.kubernetes.io/part-of: litmus +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + name: pod-http-status-code-sa + namespace: default + labels: + name: pod-http-status-code-sa + app.kubernetes.io/part-of: litmus +rules: + # Create and monitor the experiment & helper pods + - apiGroups: [""] + resources: ["pods"] + verbs: ["create","delete","get","list","patch","update", "deletecollection"] + # Performs CRUD operations on the events inside chaosengine and chaosresult + - apiGroups: [""] + resources: ["events"] + verbs: ["create","get","list","patch","update"] + # Fetch configmaps details and mount it to the experiment pod (if specified) + - apiGroups: [""] + resources: ["configmaps"] + verbs: ["get","list",] + # Track and get the runner, experiment, and helper pods log + - apiGroups: [""] + resources: ["pods/log"] + verbs: ["get","list","watch"] + # for creating and managing to execute comands inside target container + - apiGroups: [""] + resources: ["pods/exec"] + verbs: ["get","list","create"] + # deriving the parent/owner details of the pod(if parent is anyof {deployment, statefulset, daemonsets}) + - apiGroups: ["apps"] + resources: ["deployments","statefulsets","replicasets", "daemonsets"] + verbs: ["list","get"] + # deriving the parent/owner details of the pod(if parent is deploymentConfig) + - apiGroups: ["apps.openshift.io"] + resources: ["deploymentconfigs"] + verbs: ["list","get"] + # deriving the parent/owner details of the pod(if parent is deploymentConfig) + - apiGroups: [""] + resources: ["replicationcontrollers"] + verbs: ["get","list"] + # deriving the parent/owner details of the pod(if parent is argo-rollouts) + - apiGroups: ["argoproj.io"] + resources: ["rollouts"] + verbs: ["list","get"] + # for configuring and monitor the experiment job by the chaos-runner pod + - apiGroups: ["batch"] + resources: ["jobs"] + verbs: ["create","list","get","delete","deletecollection"] + # for creation, status polling and deletion of litmus chaos resources used within a chaos workflow + - apiGroups: ["litmuschaos.io"] + resources: ["chaosengines","chaosexperiments","chaosresults"] + verbs: ["create","list","get","patch","update","delete"] +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: RoleBinding +metadata: + name: pod-http-status-code-sa + namespace: default + labels: + name: pod-http-status-code-sa + app.kubernetes.io/part-of: litmus +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: Role + name: pod-http-status-code-sa +subjects: +- kind: ServiceAccount + name: pod-http-status-code-sa + namespace: default diff --git a/experiments/generic/generic.chartserviceversion.yaml b/experiments/generic/generic.chartserviceversion.yaml index 8d540b1..a8b31b6 100644 --- a/experiments/generic/generic.chartserviceversion.yaml +++ b/experiments/generic/generic.chartserviceversion.yaml @@ -69,6 +69,8 @@ spec: description: "" - name: pod-http-modify-header description: "" + - name: pod-http-status-code + description: "" keywords: - Kubernetes - K8S diff --git a/experiments/generic/generic.package.yaml b/experiments/generic/generic.package.yaml index 65b0ab8..e816034 100644 --- a/experiments/generic/generic.package.yaml +++ b/experiments/generic/generic.package.yaml @@ -84,3 +84,6 @@ experiments: - name: pod-http-modify-header CSV: pod-http-modify-header.chartserviceversion.yaml desc: "pod-http-modify-header" + - name: pod-http-status-code + CSV: pod-http-status-code.chartserviceversion.yaml + desc: "pod-http-status-code" diff --git a/experiments/generic/icons/pod-http-status-code.png b/experiments/generic/icons/pod-http-status-code.png new file mode 100644 index 0000000000000000000000000000000000000000..5d13f6b2fde28f9f5851dda3b8508814821df434 GIT binary patch literal 12130 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 + it injects http status code chaos inside the pod which modifies the status code of the response from the provided application server to desired status code provided by user and reverts after specified duration + keywords: + - "pods" + - "kubernetes" + - "generic" + - "exec" + - "http" + - "status code" + - "response code" + platforms: + - "Minikube" + maturity: alpha + maintainers: + - name: Akash Shrivastava + email: akash.shrivastava@harness.io + minKubeVersion: 1.12.0 + provider: + name: Harness + labels: + app.kubernetes.io/component: chartserviceversion + app.kubernetes.io/version: latest + links: + - name: Source Code + url: https://github.com/litmuschaos/litmus-go/tree/master/experiments/generic/pod-http-status-code + - name: Documentation + url: https://litmuschaos.github.io/litmus/experiments/categories/pods/pod-http-status-code/ + icon: + - base64data: "" + mediatype: "" + chaosexpcrdlink: https://raw.githubusercontent.com/litmuschaos/chaos-charts/master/charts/generic/pod-http-status-code/experiment.yaml \ No newline at end of file diff --git a/experiments/generic/pod-http-status-code/rbac-psp.yaml b/experiments/generic/pod-http-status-code/rbac-psp.yaml new file mode 100644 index 0000000..8318ccd --- /dev/null +++ b/experiments/generic/pod-http-status-code/rbac-psp.yaml @@ -0,0 +1,85 @@ +--- +apiVersion: v1 +kind: ServiceAccount +metadata: + name: pod-http-status-code-sa + namespace: default + labels: + name: pod-http-status-code-sa + app.kubernetes.io/part-of: litmus +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + name: pod-http-status-code-sa + namespace: default + labels: + name: pod-http-status-code-sa + app.kubernetes.io/part-of: litmus +rules: + # Create and monitor the experiment & helper pods + - apiGroups: [""] + resources: ["pods"] + verbs: ["create","delete","get","list","patch","update", "deletecollection"] + # Performs CRUD operations on the events inside chaosengine and chaosresult + - apiGroups: [""] + resources: ["events"] + verbs: ["create","get","list","patch","update"] + # Fetch configmaps details and mount it to the experiment pod (if specified) + - apiGroups: [""] + resources: ["configmaps"] + verbs: ["get","list",] + # Track and get the runner, experiment, and helper pods log + - apiGroups: [""] + resources: ["pods/log"] + verbs: ["get","list","watch"] + # for creating and managing to execute comands inside target container + - apiGroups: [""] + resources: ["pods/exec"] + verbs: ["get","list","create"] + # deriving the parent/owner details of the pod(if parent is anyof {deployment, statefulset, daemonsets}) + - apiGroups: ["apps"] + resources: ["deployments","statefulsets","replicasets", "daemonsets"] + verbs: ["list","get"] + # deriving the parent/owner details of the pod(if parent is deploymentConfig) + - apiGroups: ["apps.openshift.io"] + resources: ["deploymentconfigs"] + verbs: ["list","get"] + # deriving the parent/owner details of the pod(if parent is deploymentConfig) + - apiGroups: [""] + resources: ["replicationcontrollers"] + verbs: ["get","list"] + # deriving the parent/owner details of the pod(if parent is argo-rollouts) + - apiGroups: ["argoproj.io"] + resources: ["rollouts"] + verbs: ["list","get"] + # for configuring and monitor the experiment job by the chaos-runner pod + - apiGroups: ["batch"] + resources: ["jobs"] + verbs: ["create","list","get","delete","deletecollection"] + # for creation, status polling and deletion of litmus chaos resources used within a chaos workflow + - apiGroups: ["litmuschaos.io"] + resources: ["chaosengines","chaosexperiments","chaosresults"] + verbs: ["create","list","get","patch","update","delete"] + # use litmus psp + - apiGroups: ["policy"] + resources: ["podsecuritypolicies"] + verbs: ["use"] + resourceNames: ["litmus"] +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: RoleBinding +metadata: + name: pod-http-status-code-sa + namespace: default + labels: + name: pod-http-status-code-sa + app.kubernetes.io/part-of: litmus +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: Role + name: pod-http-status-code-sa +subjects: +- kind: ServiceAccount + name: pod-http-status-code-sa + namespace: default diff --git a/experiments/generic/pod-http-status-code/rbac.yaml b/experiments/generic/pod-http-status-code/rbac.yaml new file mode 100644 index 0000000..5f117f5 --- /dev/null +++ b/experiments/generic/pod-http-status-code/rbac.yaml @@ -0,0 +1,79 @@ +apiVersion: v1 +kind: ServiceAccount +metadata: + name: pod-http-status-code-sa + namespace: default + labels: + name: pod-http-status-code-sa + app.kubernetes.io/part-of: litmus +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + name: pod-http-status-code-sa + namespace: default + labels: + name: pod-http-status-code-sa + app.kubernetes.io/part-of: litmus +rules: + # Create and monitor the experiment & helper pods + - apiGroups: [""] + resources: ["pods"] + verbs: ["create","delete","get","list","patch","update", "deletecollection"] + # Performs CRUD operations on the events inside chaosengine and chaosresult + - apiGroups: [""] + resources: ["events"] + verbs: ["create","get","list","patch","update"] + # Fetch configmaps details and mount it to the experiment pod (if specified) + - apiGroups: [""] + resources: ["configmaps"] + verbs: ["get","list",] + # Track and get the runner, experiment, and helper pods log + - apiGroups: [""] + resources: ["pods/log"] + verbs: ["get","list","watch"] + # for creating and managing to execute comands inside target container + - apiGroups: [""] + resources: ["pods/exec"] + verbs: ["get","list","create"] + # deriving the parent/owner details of the pod(if parent is anyof {deployment, statefulset, daemonsets}) + - apiGroups: ["apps"] + resources: ["deployments","statefulsets","replicasets", "daemonsets"] + verbs: ["list","get"] + # deriving the parent/owner details of the pod(if parent is deploymentConfig) + - apiGroups: ["apps.openshift.io"] + resources: ["deploymentconfigs"] + verbs: ["list","get"] + # deriving the parent/owner details of the pod(if parent is deploymentConfig) + - apiGroups: [""] + resources: ["replicationcontrollers"] + verbs: ["get","list"] + # deriving the parent/owner details of the pod(if parent is argo-rollouts) + - apiGroups: ["argoproj.io"] + resources: ["rollouts"] + verbs: ["list","get"] + # for configuring and monitor the experiment job by the chaos-runner pod + - apiGroups: ["batch"] + resources: ["jobs"] + verbs: ["create","list","get","delete","deletecollection"] + # for creation, status polling and deletion of litmus chaos resources used within a chaos workflow + - apiGroups: ["litmuschaos.io"] + resources: ["chaosengines","chaosexperiments","chaosresults"] + verbs: ["create","list","get","patch","update","delete"] +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: RoleBinding +metadata: + name: pod-http-status-code-sa + namespace: default + labels: + name: pod-http-status-code-sa + app.kubernetes.io/part-of: litmus +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: Role + name: pod-http-status-code-sa +subjects: +- kind: ServiceAccount + name: pod-http-status-code-sa + namespace: default