Pykorm:一个死的简单的库伯内特斯虫

pykorm的Python项目详细描述


pykorm-Python-Kubernetes对象关系映射(ORM)

pykorm是一个简单的库,它将模型链接到其对应的kubernetes。在

因此,代码中的每个模型和实例都直接链接到kubernetes 因此,集群和修改是双向的。在

示例

命名空间自定义资源

设置

首先,您需要在集群上有自定义资源定义。
本自述文件将使用以下命名空间资源。你可以在你的 使用kubectl聚集。在

apiVersion:apiextensions.k8s.io/v1kind:CustomResourceDefinitionmetadata:name:peaches.pykorm.infomaniak.comspec:group:pykorm.infomaniak.comnames:kind:PeachlistKind:PeachListplural:peachessingular:peachscope:Namespacedversions:-name:v1served:truestorage:trueschema:openAPIV3Schema:type:objectproperties:spec:type:objectproperties:variety:type:stringrequired:-varietyadditionalPrinterColumns:-name:Varietytype:stringdescription:The variety of the peachjsonPath:.spec.variety

类定义

为了将python类链接到kubernetes CustomResourceDefinition, 您需要从pykorm的NamespacedModel或{}继承类 并用kubernetes CRD信息进行注释,如下所示:

^{pr2}$

请注意,从pykorm.NamespacedModel继承的类已经具有 namenamespace字段设置。在

创建CR

为了从python创建kubernetes自定义资源,只需 必须实例化类并用Pykorm.save()保存:

importpykormpk=pykorm.Pykorm()cake_peach=Peach(namespace='default',name='cake-peach',variety='Frost')pk.save(cake_peach)# pk.apply(cake_peach) # you can apply resource

如您所见,kubernetes的模型立即得到了保证:

$ kubectl get peach -n default
NAME         VARIETY
cake-peach   Frost

列出资源

Pykorm还可以列出kubernetes的资源

>>>all_peaches=Peach.query.all()>>>forpeachinall_peaches:>>>print(peach)<Peachnamespace=default,name=cake-peach,variety=Frost># Filter by namespace>>>Peach.query.filter_by(namespace='default').filter_by(variety='Frost').all()

您甚至可以根据某些条件筛选资源:

>>>Peach.query.filter_by(name='cake-peach').all()[<Peachnamespace=default,name=cake-peach,variety=Frost>]>>>Peach.query.filter_by(namespace='kube-system').all()[]

删除资源

也可以使用pykorm删除资源:

pk.delete(peach)
$ kubectl get peach
No resources found in default namespace.

更多示例

如需更多示例,请立即查看examples/目录

pykorm稳定吗?在

pykorm还很年轻很天真。它也少了很多 特征(关系等)。 它最初的创建是因为每个代码都编写了大量的样板代码 kubernetes自定义对象必须与python接口的时间 代码。在

关于pykorm的工作正在进行中。毫不犹豫地为 如果你有精力的话,就去做吧!在

等价物

PythonKubernetes
ClassCustomResourceDefinition
InstanceCustomResource

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

推荐PyPI第三方库


热门话题
Android:如何写入特定行,Java   Java中从欧元货币字符串中删除空格的数字   Java非均匀多维数组   解密AES时出现java空指针异常   java ConcurrentModificationException尝试移除列表上的所有内容时(非迭代)   Java数学库计算日志   java ISO8601,使用Jackson以毫秒表示json   避免副作用的java最佳实践   java获取JMeterException:调用bsh方法时出错:未定义参数:saa。使用beanshell取样器时   使用javascript将会话从一个jsp页面传输到另一个jsp页面   java在列表中组合相邻元素   java多行JTextPane   java Hibernate映射文件连接两个表而不定义关系?   如何使用Ajax、Java和Spring框架将文件从网页上传到Google云存储   多线程多线程Java中producerconsumer代码的多线程没有提供正确的输出?