上一篇文章里,我们主要介绍了 client go 这个基础组件相关的 request 和 result 对象,这两个对象主要用来发送资源操作的请求,以及处理相关的响应。众所周知, kubernetes 中的资源是分 group/version 的,本篇文章里我们主要来介绍对于不同组以及版本的资源操作对象。
资源操作对象层级
kubernetes 资源对象是区分组和版本的,对于不同组和不同版本下的资源有不同的操作对象定义,在源码结构里资源操作对象如下:
对于不同组下资源操作对象
对于组内不同版本下资源操作对象
资源操作对象的具体定义
资源操作对象的定义
由于kubernetes 资源对象有非常多的组和版本,这里我们就以常见的 apps 组下的 v1 版本中的 deployment 资源为例,介绍该资源的操作对象。其图解和相关源码如下:
//staging/src/k8s.io/client-go/kubernetes/typed/apps/v1/deployment.go
type DeploymentInterface interface {
Create(ctx context.Context, deployment *v1.Deployment, opts metav1.CreateOptions) (*v1.Deployment, error)
Update(ctx context.Context, deployment *v1.Deployment, opts metav1.UpdateOptions) (*v1.Deployment, error)
UpdateStatus(ctx context.Context, deployment *v1.Deployment, opts metav1.UpdateOptions) (*v1.Deployment, error)
Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error
DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error
Get(ctx context.