扩展版的混沌工具包kubernetes支持
chaostoolkit-k8s-wix的Python项目详细描述
这是混沌工具包kubernetes支持的扩展版本
创建H1>为实验提供更大的灵活性此项目包含活动,如探测和操作,您可以从 你的实验通过了Chaos Toolkit。
安装
要从实验中使用,此包必须安装在python中 chaostoolkit已经存在的环境。
$ pip install chaostoolkit-k8s-wix
用法
要使用此包中的探测和操作,请将以下内容添加到 实验文件:
{"name":"all-our-microservices-should-be-healthy","provider":{"type":"python","module":chaosk8s_wix,"func":"microservice_available_and_healthy","arguments":{"name":"myapp","ns":"myns"}}},{"type":"action","name":"terminate-db-pod","provider":{"type":"python","module":chaosk8s_wix,"func":"terminate_pods","arguments":{"label_selector":"app=my-app","name_pattern":"my-app-[0-9]$","rand":true,"ns":"default"}},"pauses":{"after":5}}
就这样!注意这个动作是如何让你随机杀死一个吊舱的。
请查看代码以查看现有的探针和操作。
发现
您可以使用Chaos工具包来发现此扩展的功能:
$ chaos discover chaostoolkit-k8s-wix --no-install
配置
这个混沌工具包的扩展可以使用kubernetes配置
在~/.kube/
下的主目录中的通常位置找到,或者
从kubernetes集群中的pod运行,它将使用本地服务帐户。
在这种情况下,请确保设置CHAOSTOOLKIT_IN_POD
环境变量
到"true"
。
您还可以通过以下秘密传递凭据:
{"secrets":{"kubernetes":{"KUBERNETES_HOST":"http://somehost","KUBERNETES_API_KEY":{"type":"env","key":"SOME_ENV_VAR"}}}}
然后在您的探测器或操作中:
{"name":"all-our-microservices-should-be-healthy","provider":{"type":"python","module":chaosk8s_wix,"func":"microservice_available_and_healthy","secrets":["kubernetes"],"arguments":{"name":"myapp","ns":"myns"}}}
您可以指定要使用的kubernetes上下文,如下所示:
{"secrets":{"kubernetes":{"KUBERNETES_CONTEXT":"minikube"}}}
或通过环境:
$ export KUBERNETES_CONTEXT=minikube
本着同样的精神,您可以指定在哪里找到kubernetes配置 使用:
$ export KUBECONFIG=some/path/config
贡献
如果您希望为这个包贡献更多的功能,那么 欢迎这么做。请分叉此项目,根据 通常的PEP 8代码样式,添加适当的测试并提交 回顾。
混沌工具包项目要求所有贡献者必须签署 Developer Certificate of Origin每次提交时,它们都希望合并 进入存储库的主分支。请确保你能遵守 提交PR前DCO的规则。
发展
如果您希望在此项目上进行开发,请确保安装开发 依赖关系。但是首先,create a virtual environment然后安装 这些依赖。
$ pip install -r requirements-dev.txt -r requirements.txt
然后,将您的环境指向此目录:
$ python setup.py develop
现在,您可以编辑这些文件,您的
环境,即使在本地运行chaos
命令时也是如此。
测试
要运行项目的测试,请执行以下操作:
$ pytest