apiVersion: apps/v1
import "k8s.io/api/apps/v1"
ControllerRevision 实现了状态数据的不可变快照。客户端负责序列化和反序列化包含其内部状态的对象。一旦成功创建 ControllerRevision,它就无法更新。API Server 将拒绝所有试图修改 Data 字段的请求。但是,ControllerRevision 可以被删除。请注意,由于它被 DaemonSet 和 StatefulSet 控制器用于更新和回滚,因此该对象目前处于 beta 阶段。然而,它在未来的版本中可能会有名称和表示形式的变更,客户端不应依赖其稳定性。它主要供控制器内部使用。
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 类型的字段,并在内部结构中具有 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 将序列化的数据解组(unmarshal)到您的外部 MyAPIObject 中。这导致原始 JSON 被存储,但未解包。下一步是复制(使用 pkg/conversion)到内部结构中。runtime 包的 DefaultScheme 安装了转换函数,它们将解包存储在 RawExtension 中的 JSON,将其转换为正确的对象类型,并将其存储在 Object 中。(TODO:如果对象是未知类型,将创建并存储一个 runtime.Unknown 对象。)*
ControllerRevisionList 是一个包含 ControllerRevision 对象列表的资源。
apiVersion: apps/v1
kind: ControllerRevisionList
metadata (ListMeta)
更多信息:https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
items ([]ControllerRevision), 必需
Items 是 ControllerRevision 的列表
get 读取指定的 ControllerRevisionGET /apis/apps/v1/namespaces/{namespace}/controllerrevisions/{name}
name (在路径中): string, 必需
ControllerRevision 的名称
namespace (在路径中): string, 必需
pretty (在查询中): string
200 (ControllerRevision): OK
401: 未授权
list 列出或监视 ControllerRevision 类型的对象GET /apis/apps/v1/namespaces/{namespace}/controllerrevisions
namespace (在路径中): string, 必需
allowWatchBookmarks (in query): boolean
continue (in query): string
fieldSelector (in query): string
labelSelector (in query): string
limit (in query): integer
pretty (在查询中): string
resourceVersion (in query): string
resourceVersionMatch (in query): string
sendInitialEvents (in query): boolean
timeoutSeconds (in query): integer
watch (in query): boolean
200 (ControllerRevisionList): OK
401: 未授权
list 列出或监视 ControllerRevision 类型的对象GET /apis/apps/v1/controllerrevisions
allowWatchBookmarks (in query): boolean
continue (in query): string
fieldSelector (in query): string
labelSelector (in query): string
limit (in query): integer
pretty (在查询中): string
resourceVersion (in query): string
resourceVersionMatch (in query): string
sendInitialEvents (in query): boolean
timeoutSeconds (in query): integer
watch (in query): boolean
200 (ControllerRevisionList): OK
401: 未授权
create 创建一个 ControllerRevisionPOST /apis/apps/v1/namespaces/{namespace}/controllerrevisions
namespace (在路径中): string, 必需
body: ControllerRevision, 必需
dryRun (在查询中): string
fieldManager (在查询中): string
fieldValidation (在查询中): string
pretty (在查询中): string
200 (ControllerRevision): OK
201 (ControllerRevision): Created
202 (ControllerRevision): Accepted
401: 未授权
update 替换指定的 ControllerRevisionPUT /apis/apps/v1/namespaces/{namespace}/controllerrevisions/{name}
name (在路径中): string, 必需
ControllerRevision 的名称
namespace (在路径中): string, 必需
body: ControllerRevision, 必需
dryRun (在查询中): string
fieldManager (在查询中): string
fieldValidation (在查询中): string
pretty (在查询中): string
200 (ControllerRevision): OK
201 (ControllerRevision): Created
401: 未授权
patch 部分更新指定的 ControllerRevisionPATCH /apis/apps/v1/namespaces/{namespace}/controllerrevisions/{name}
name (在路径中): string, 必需
ControllerRevision 的名称
namespace (在路径中): string, 必需
body: Patch, 必需
dryRun (在查询中): string
fieldManager (在查询中): string
fieldValidation (在查询中): string
force (in query): boolean
pretty (在查询中): string
200 (ControllerRevision): OK
201 (ControllerRevision): Created
401: 未授权
delete 删除一个 ControllerRevisionDELETE /apis/apps/v1/namespaces/{namespace}/controllerrevisions/{name}
name (在路径中): string, 必需
ControllerRevision 的名称
namespace (在路径中): string, 必需
body: DeleteOptions
dryRun (在查询中): string
gracePeriodSeconds (in query): integer
ignoreStoreReadErrorWithClusterBreakingPotential (in query): boolean
pretty (在查询中): string
propagationPolicy (in query): string
200 (Status): 确定
202 (Status): 已接受
401: 未授权
deletecollection 删除 ControllerRevision 的集合DELETE /apis/apps/v1/namespaces/{namespace}/controllerrevisions
namespace (在路径中): string, 必需
body: DeleteOptions
continue (in query): string
dryRun (在查询中): string
fieldSelector (in query): string
gracePeriodSeconds (in query): integer
ignoreStoreReadErrorWithClusterBreakingPotential (in query): boolean
labelSelector (in query): string
limit (in query): integer
pretty (在查询中): string
propagationPolicy (in query): string
resourceVersion (in query): string
resourceVersionMatch (in query): string
sendInitialEvents (in query): boolean
timeoutSeconds (in query): integer
200 (Status): 确定
401: 未授权
本页面是自动生成的。
如果您打算报告此页面的问题,请在您的问题描述中提及该页面是自动生成的。修复可能需要在 Kubernetes 项目的其他地方进行。