travisghansen / kubernetes-client-php
PHP语言的Kubernetes API客户端,支持REST操作和监视
v0.4.4
2024-03-28 12:39 UTC
Requires
- php: >=7.2.0
- ext-json: *
- softcreatr/jsonpath: ^0.8.3
- symfony/yaml: ^6.3
Suggests
- ext-pcntl: support forking of watches
- ext-yaml: support parsing yaml with native extensions
README
无废话的Kubernetes API PHP客户端。它支持标准REST
调用以及监视
以获取连续的数据流。因为它不使用模型,所以可以与CRD
和其他可能不是内置的功能/端点一起使用。
示例
监视
监视可以(将)无限期地保持连接,在服务器端超时后会自动重新连接。客户端将跟踪最近处理的resourceVersion
,以自动从您上次停止的地方开始。
监视回调闭包应具有以下签名
$callback = function($event, $watch)..
接收监视允许访问客户端(以及监视的任何其他详细信息)并提供根据事件逻辑停止监视(中断循环)的能力。
GET /apis/batch/v1beta1/watch/namespaces/{namespace}/cronjobs/{name}
(特定资源)GET /apis/batch/v1beta1/watch/namespaces/{namespace}/cronjobs
(命名空间中的资源类型)GET /apis/batch/v1beta1/watch/cronjobs
(集群范围内的资源类型)- https://kubernetes.ac.cn/docs/reference/generated/kubernetes-api/v1.10/#watch
其他注意事项
- 如果使用标签选择器触发的事件,当标签被添加/删除时,将触发ADDED / DELETED类型的操作(即:ADDED/DELETED不一定等同于在k8s中被添加/删除)
开发
关于resourceVersion
的说明(根据文档)
当与监视调用一起指定时,显示自特定版本的资源之后发生的变化。默认为从历史记录开始的变化。当用于列表时:- 如果未设置,则根据quorum-read标志从远程存储返回结果;- 如果为0,则仅返回我们当前缓存的,没有保证;- 如果设置为非零,则结果至少与给定的rv一样新。
请注意,这只是版本后的变化。
TODO
- 引入线程进行回调吗?
- 在swagger文档上进行代码生成以提供请求/响应的OO接口吗?
链接
- https://github.com/swagger-api/swagger-codegen/blob/master/README.md
- https://github.com/kubernetes/community/blob/master/contributors/devel/api-conventions.md#api-conventions
- https://kubernetes.ac.cn/docs/reference/using-api/client-libraries/#community-maintained-client-libraries
- https://kubernetes.ac.cn/docs/tasks/administer-cluster/access-cluster-api/
- https://kubernetes.ac.cn/docs/reference/using-api/api-concepts/
- https://kubernetes.ac.cn/docs/concepts/overview/kubernetes-api/
- https://stackoverflow.com/questions/1342583/manipulate-a-string-that-is-30-million-characters-long/1342760#1342760
- https://github.com/kubernetes/client-go/blob/master/README.md
- https://github.com/kubernetes-client/python-base/blob/master/watch/watch.py
- kubernetes-client/python#124