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第三方库


热门话题
java在Eclipse中使用ctrlshiftt而不是ctrlshiftr有什么好处?   java自动装箱概念SCJP   java如何使用JAXR和Resteasy、Angular和Wildfly10处理COR   java如何在整数数组中动态添加元素?   JAVA从继承生成器模式返回父对象继承   java问题调试生产者消费者问题   java MQ:已达到通道的最大实例数   JavaPowerMockMockito:我试图stubb的方法最终被调用   java Hibernate将多个列映射到一个表   在java中,将字符串中的单词大写,但跳过字符串中的数字和多余空格或符号   使用Eclipse将Java项目导出到JAR时出现“重复条目”错误   java使用eclipselink在实体表上指定NullConstraint   <Java>我可以在TCPIP中使用多个服务器socket吗?   带有自定义视图的java AlertDialog:调整大小以包装视图的内容   如何从用C#编写的web服务生成用于java的SOAP API?