面向Microsoft服务结构的Chaos工具包扩展
chaostoolkit-service-fabric的Python项目详细描述
服务结构的Chaos工具包扩展
这个项目是actions和probes的集合,作为 扩展到Chaos Toolkit。它的目标是 Microsoft Service Fabric平台。
安装
这个包需要python 3.5+
要从实验中使用,此包必须安装在python中 chaostoolkit已经存在的环境。
$ pip install -U chaostoolkit-service-fabric
用法
要使用此包中的探测和操作,请将以下内容添加到 实验文件:
{"type":"action","name":"start-service-factory-chaos","provider":{"type":"python","module":"chaosservicefabric.factory.actions","func":"start_chaos","secrets":["azure"],"arguments":{"parameters":{"TimeToRunInSeconds":45}}}},{"type":"action","name":"stop-service-factory-chaos","provider":{"type":"python","module":"chaosservicefabric.factory.actions","func":"stop_chaos","secrets":["azure"]}}
就这样!
请查看代码以查看现有的探针和操作。
配置
证书
此扩展使用引擎盖下的requests库。请求库 希望您有一个pfx证书,转换为pem格式,允许您 使用Service Factory终结点进行身份验证。
一般来说,有两种方法可以做到这一点:
您有created一个配置文件,可以在其中运行 从(使用
~/.sfctl/config
文件进行实验)您显式地将正确的环境变量传递给实验 定义如下:
配置部分:
{"endpoint":"https://XYZ.westus.cloudapp.azure.com:19080","verify_tls":false,"use_ca":false}
机密部分:
{"azure":{"security":"pem","pem_path":"./cluster-client-cert.pem"}}
PEM也可以作为环境变量传递:
{"azure":{"security":"pem","pem_content":{"type":"env","key":"AZURE_PEM"}}}
环境变量名可以是任何内容。
总而言之
下面是一个完整的示例:
{"version":"1.0.0","title":"...","description":"...","configuration":{"endpoint":"https://XYZ.westus.cloudapp.azure.com:19080","verify_tls":false,"use_ca":false},"secrets":{"azure":{"security":"pem","pem_path":"./cluster-client-cert.pem"}},"steady-state-hypothesis":{"title":"Services is healthy","probes":[{"type":"probe","name":"application-must-respond","tolerance":200,"provider":{"type":"http","verify_tls":false,"url":"https://some-url-in-cluster/"}}]},"method":[{"type":"action","name":"start-service-factory-chaos","provider":{"type":"python","module":"chaosservicefabric.factory.actions","func":"start_chaos","secrets":["azure"],"arguments":{"parameters":{"TimeToRunInSeconds":45}}},"pauses":{"after":30}},{"type":"probe","ref":"application-must-respond"},{"type":"action","name":"stop-service-factory-chaos","provider":{"type":"python","module":"chaosservicefabric.factory.actions","func":"stop_chaos","secrets":["azure"]},"pauses":{"after":5}},{"type":"probe","name":"get-service-factory-chaos-report","provider":{"type":"python","module":"chaosservicefabric.factory.probes","func":"chaos_report","secrets":["azure"],"arguments":{"start_time_utc":"1 minute ago","end_time_utc":"now"}}}]}
贡献
如果您希望为这个包贡献更多的功能,那么 欢迎这么做。请,派生此项目,按照 通常的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