扩展版的混沌工具包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第三方库


热门话题
java OpenGL着色器可在桌面上编译,但不能在Android上编译   java调度器。forward()生成HTTP 500   java从另一个类访问类   java EasyModBus Modbus客户端。ReadHoldingRegisters()返回意外的0   java 安卓bitmap低质量问题   带有signaturePropFile的java Axis2/rampart加密问题   Java,解析xml属性的原始未转换值。Jaxson或jaxb   爪哇太阳报。网inetaddr。ttl属性导致AccessControlException   java简单计算器无法通过println   线程安全java servlet   java从文本文件中获取特定信息   java打包具有字符串数组的哈希映射   java SQL合并以更新值或将值插入到同一个表中   java springrabitmq和线程本地何时是调用clean方法的好时机   windows java在我的64位计算机的任务管理器中显示为32位   java不确定使用什么值来初始化我的神经网络   java Maven插件下载文件