扩展版的混沌工具包kubernetes支持

chaostoolkit-k8s-wix的Python项目详细描述


Build Status

这是混沌工具包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

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
Javalog4j2。xml和log4j2test。eclipse中的xml   java映像未显示在surfaceview中   在Java中,能否在for之后立即放置if?   java调用构造函数的不同方式是什么?   java为什么不将其视为多重继承,而所有类都首先从对象类扩展,然后再扩展其他类   带有ms access的java不显示数据库结果   java Eclipse命令行URL参数切断https   java Android JNI回调似乎调用了一个随机方法   java Apache Camel处理XMLFile中声明的编码   java Bonita BPM不要等待Bonita的函数结束   布尔Java:构建逻辑表达式,然后验证它们   java在不使用QueryString的情况下将变量从一个网站页面传递到另一个网站页面   java ORA01861:文本与格式字符串不匹配   java字节[]字符串到C中的字符串#   java试图通过socket发送sqlite数据库文件   java如何使用命令行更改属性文件中的浏览器值以运行selenium测试用例