ControllerRevision

ControllerRevision 实现状态数据的不可变快照。

apiVersion: apps/v1

import "k8s.io/api/apps/v1"

ControllerRevision

ControllerRevision 实现状态数据的不可变快照。客户端负责序列化和反序列化包含其内部状态的对象。ControllerRevision 成功创建后,不能再更新。API 服务器将验证所有尝试修改 Data 字段的请求,并使其失败。但是,ControllerRevision 可以删除。请注意,由于 DaemonSet 和 StatefulSet 控制器在更新和回滚中使用此对象,因此该对象处于测试阶段。但是,它可能在将来的版本中进行名称和表示更改,客户端不应该依赖其稳定性。它主要供控制器内部使用。


  • apiVersion: apps/v1

  • kind: ControllerRevision

  • metadata (ObjectMeta)

    标准对象的元数据。更多信息:https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata

  • revision (int64), 必需

    Revision 指示 Data 表示的状态的版本。

  • data (RawExtension)

    Data 是状态的序列化表示形式。

    *RawExtension 用于在外部版本中保存扩展。

    要使用它,请在你的外部版本化结构中创建一个类型为 RawExtension 的字段,在你的内部结构中创建一个类型为 Object 的字段。你还需要注册你的各种插件类型。

    // 内部包

    type MyAPIObject struct { runtime.TypeMeta json:",inline" MyPlugin runtime.Object json:"myPlugin" }

    type PluginA struct { AOption string json:"aOption" }

    // 外部包

    type MyAPIObject struct { runtime.TypeMeta json:",inline" MyPlugin runtime.RawExtension json:"myPlugin" }

    type PluginA struct { AOption string json:"aOption" }

    // 在网络中,JSON 会类似于以下内容

    { "kind":"MyAPIObject", "apiVersion":"v1", "myPlugin": { "kind":"PluginA", "aOption":"foo", }, }

    那么发生了什么?Decode 首先使用 json 或 yaml 将序列化数据反序列化到你的外部 MyAPIObject 中。这会导致存储原始 JSON,但不会解包。下一步是使用 pkg/conversion 复制到内部结构。runtime 包的 DefaultScheme 安装了转换函数,这些函数将解包 RawExtension 中存储的 JSON,将其转换为正确类型的对象,并将其存储在 Object 中。(TODO:在对象类型未知的情况下,将创建一个 runtime.Unknown 对象并存储。)*

ControllerRevisionList

ControllerRevisionList 是包含 ControllerRevision 对象列表的资源。


操作


get 读取指定的 ControllerRevision

HTTP 请求

GET /apis/apps/v1/namespaces/{namespace}/controllerrevisions/{name}

参数

  • name (在路径中): string, 必需

    ControllerRevision 的名称

  • namespace (在路径中): string, 必需

    命名空间

  • pretty (在查询中): string

    pretty

响应

200 (ControllerRevision): OK

401: 未授权

list 列出或观察 ControllerRevision 类型的对象

HTTP 请求

GET /apis/apps/v1/namespaces/{namespace}/controllerrevisions

参数

响应

200 (ControllerRevisionList): OK

401: 未授权

list 列出或观察 ControllerRevision 类型的对象

HTTP 请求

GET /apis/apps/v1/controllerrevisions

参数

响应

200 (ControllerRevisionList): OK

401: 未授权

create 创建一个 ControllerRevision

HTTP 请求

POST /apis/apps/v1/namespaces/{namespace}/controllerrevisions

参数

响应

200 (ControllerRevision): OK

201 (ControllerRevision): 已创建

202 (ControllerRevision): 已接受

401: 未授权

update 替换指定的 ControllerRevision

HTTP 请求

PUT /apis/apps/v1/namespaces/{namespace}/controllerrevisions/{name}

参数

响应

200 (ControllerRevision): OK

201 (ControllerRevision): 已创建

401: 未授权

patch 部分更新指定的 ControllerRevision

HTTP 请求

PATCH /apis/apps/v1/namespaces/{namespace}/controllerrevisions/{name}

参数

  • name (在路径中): string, 必需

    ControllerRevision 的名称

  • namespace (在路径中): string, 必需

    命名空间

  • body: Patch, 必需

  • dryRun (在查询中): string

    dryRun

  • fieldManager (在查询中): string

    fieldManager

  • fieldValidation (在查询中): string

    fieldValidation

  • force (在查询中): boolean

    force

  • pretty (在查询中): string

    pretty

响应

200 (ControllerRevision): OK

201 (ControllerRevision): 已创建

401: 未授权

delete 删除一个 ControllerRevision

HTTP 请求

DELETE /apis/apps/v1/namespaces/{namespace}/controllerrevisions/{name}

参数

响应

200 (Status): OK

202 (Status): 已接受

401: 未授权

deletecollection 删除 ControllerRevision 集合

HTTP 请求

DELETE /apis/apps/v1/namespaces/{namespace}/controllerrevisions

参数

响应

200 (Status): OK

401: 未授权

此页面是自动生成的。

如果你打算报告此页面问题,请在你的问题描述中提及此页面是自动生成的。修复可能需要在 Kubernetes 项目的其他地方进行。

上次修改于 2023 年 4 月 3 日上午 8:22 PST:API Ref 多页面 v1.27 (7b39e9a9ec)