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
或{
请注意,从pykorm.NamespacedModel
继承的类已经具有
name
和namespace
字段设置。在
创建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
的工作正在进行中。毫不犹豫地为
如果你有精力的话,就去做吧!在
等价物
Python | Kubernetes |
---|---|
Class | CustomResourceDefinition |
Instance | CustomResource |
- 项目
标签: