Skip to content

Instantly share code, notes, and snippets.

@vfarcic
Created January 22, 2020 20:53
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save vfarcic/fed8b1bf3c79aff2f752cfd2c2c73d70 to your computer and use it in GitHub Desktop.
Save vfarcic/fed8b1bf3c79aff2f752cfd2c2c73d70 to your computer and use it in GitHub Desktop.
---
apiVersion: v1
kind: ConfigMap
metadata:
name: chaostoolkit-experiments
data:
health-http.yaml: |
version: 1.0.0
title: What happens if we terminate an instance of the application?
description: If an instance of the application is terminated, the applications as a whole should still be operational.
tags:
- k8s
- pod
steady-state-hypothesis:
title: The app is healthy
probes:
- name: app-responds-to-requests
type: probe
tolerance: 200
provider:
type: http
timeout: 3
verify_tls: false
url: http://go-demo-8.go-demo-8/demo/person
headers:
Host: go-demo-8.acme.com
method:
- type: action
name: terminate-app-pod
provider:
type: python
module: chaosk8s.pod.actions
func: terminate_pods
arguments:
label_selector: app=go-demo-8
rand: true
ns: go-demo-8
pauses:
after: 2
health-instances.yaml: |
version: 1.0.0
title: What happens if we terminate an instance of the application?
description: If an instance of the application is terminated, a new instance should be created
tags:
- k8s
- pod
- deployment
steady-state-hypothesis:
title: The app is healthy
probes:
- name: all-apps-are-healthy
type: probe
tolerance: true
provider:
type: python
func: all_microservices_healthy
module: chaosk8s.probes
arguments:
ns: go-demo-8
method:
- type: action
name: terminate-app-pod
provider:
type: python
module: chaosk8s.pod.actions
func: terminate_pods
arguments:
label_selector: app=go-demo-8
rand: true
ns: go-demo-8
pauses:
after: 10
network-delay.yaml: |
version: 1.0.0
title: What happens if we delay
description: If responses are delayed, the dependant application should timeout and retry requests
tags:
- k8s
- istio
- http
steady-state-hypothesis:
title: The app is healthy
probes:
- type: probe
name: app-responds-to-requests
tolerance: 200
provider:
type: http
timeout: 10
verify_tls: false
url: http://go-demo-8.go-demo-8?addr=http://go-demo-8
headers:
Host: repeater.acme.com
- type: probe
tolerance: 200
ref: app-responds-to-requests
- type: probe
tolerance: 200
ref: app-responds-to-requests
- type: probe
tolerance: 200
ref: app-responds-to-requests
- type: probe
tolerance: 200
ref: app-responds-to-requests
method:
- type: action
name: delay
provider:
type: python
module: chaosistio.fault.actions
func: add_delay_fault
arguments:
virtual_service_name: go-demo-8
fixed_delay: 15s
routes:
- destination:
host: go-demo-8
subset: primary
percent: 50
version: networking.istio.io/v1alpha3
ns: go-demo-8
pauses:
after: 1
rollbacks:
- type: action
name: remove-delay
provider:
type: python
func: remove_delay_fault
module: chaosistio.fault.actions
arguments:
virtual_service_name: go-demo-8
routes:
- destination:
host: go-demo-8
subset: primary
version: networking.istio.io/v1alpha3
ns: go-demo-8
network-abort.yaml: |
version: 1.0.0
title: What happens if we abort responses
description: If responses are aborted and delayed, the dependant application should retry and/or timeout requests
tags:
- k8s
- istio
- http
steady-state-hypothesis:
title: The app is healthy
probes:
- type: probe
name: app-responds-to-requests
tolerance: 200
provider:
type: http
timeout: 5
verify_tls: false
url: http://go-demo-8.go-demo-8?addr=http://go-demo-8
headers:
Host: repeater.acme.com
- type: probe
tolerance: 200
ref: app-responds-to-requests
- type: probe
tolerance: 200
ref: app-responds-to-requests
- type: probe
tolerance: 200
ref: app-responds-to-requests
- type: probe
tolerance: 200
ref: app-responds-to-requests
method:
- type: action
name: abort-failure
provider:
type: python
module: chaosistio.fault.actions
func: add_abort_fault
arguments:
virtual_service_name: go-demo-8
http_status: 500
routes:
- destination:
host: go-demo-8
subset: primary
percent: 50
version: networking.istio.io/v1alpha3
ns: go-demo-8
pauses:
after: 1
rollbacks:
- type: action
name: remove-abort-failure
provider:
type: python
func: remove_abort_fault
module: chaosistio.fault.actions
arguments:
virtual_service_name: go-demo-8
routes:
- destination:
host: go-demo-8
subset: primary
version: networking.istio.io/v1alpha3
ns: go-demo-8
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment