kube-apiserver Admission (v1)
资源类型
AdmissionReview    
AdmissionReview 描述准入评审请求/响应。
AdmissionRequest    
出现在:
AdmissionRequest 描述准入请求的 admission.Attributes。
| 字段 | 描述 | 
|---|
| uid[必需]
 k8s.io/apimachinery/pkg/types.UID | uid是用于标识单个请求/响应的标识符。它允许我们区分在其他情况下完全相同的请求实例(并行请求、在先前请求未修改时的请求等)。uid的目的是跟踪 KAS(Kubernetes Admission Server)和 WebHook 之间的轮询(请求/响应),而不是用户请求。
它适用于在 WebHook 和 API 服务器之间建立日志条目上的关联,从而服务于审计或调试目的。
 | 
| kind[必需]
 meta/v1.GroupVersionKind | kind是正被提交的对象的全限定类别名称(例如 v1.Pod 或 autoscaling.v1.Scale)。
 | 
| resource[必需]
 meta/v1.GroupVersionResource | resource是正被请求的资源的全限定名称(例如 v1.pods)。
 | 
| subResource
 string | subResource是正被请求的子资源——如果存在的话(例如 "status" 或 "scale")。
 | 
| requestKind
 meta/v1.GroupVersionKind | requestKind是原始 API 请求的完全限定类别名称(例如 v1.Pod 或 autoscaling.v1.Scale)。
如果此字段被指定且不同于 "kind" 中的值,则执行等效的匹配和转换。
 例如,如果 Deployment 可以通过 apps/v1 和 apps/v1beta1 进行修改,并且 Webhook 注册了
apiGroups:["apps"], apiVersions:["v1"], resources: ["deployments"]和matchPolicy: Equivalent的规则,那么指向 apps/v1beta1 Deployment 的 API 请求将被转换并发送到 Webhook,
其中kind: {group:"apps", version:"v1", kind:"Deployment"}(与 Webhook 注册的规则匹配)并且requestKind: {group:"apps", version:"v1beta1", kind:"Deployment"}(指示原始 API 请求的类别)。 参阅文档了解 Webhook 配置类型中 "matchPolicy" 字段的更多细节。 | 
| requestResource
 meta/v1.GroupVersionResource | requestResource是原始 API 请求的全限定资源名称(例如 v1.pods)。
如果此字段被指定且不同于 "resource" 中的值,则执行等效的匹配和转换。
 例如,如果 Deployment 可以通过 apps/v1 和 apps/v1beta1 修改,并且 Webhook 注册了
apiGroups:["apps"], apiVersions:["v1"], resources: ["deployments"]和matchPolicy: Equivalent的规则,那么指向 apps/v1beta1 Deployment 的 API 请求将被转换并发送到 Webhook,
其中resource: {group:"apps", version:"v1", resource:"deployments"}(与 Webhook 注册的资源匹配)以及requestResource: {group:"apps", version:"v1beta1", resource:"deployments"}(指示原始 API 请求的资源)。 参阅文档了解 Webhook 配置类型中 "matchPolicy" 字段的更多细节。 | 
| requestSubResource
 string | requestSubResource是可能存在的、原始 API 所请求的子资源(例如 "status" 或 "scale")。
如果此字段被指定且不同于 "subResource" 中的值,则执行等效的匹配和转换。
参阅文档了解 Webhook 配置类型中的 "matchPolicy" 字段。
 | 
| name
 string | name是出现在请求中的对象的名称。客户端在执行 CREATE 操作时,可以忽略此命令并依赖服务器生成此名称。
   如果是这种情况,此字段将包含一个空白字符串。
 | 
| namespace
 string | namespace是与请求(如果有的话)关联的命名空间。
 | 
| operation[必需]
 Operation | operation是正在执行的操作。这可能不同于请求的操作,
   例如 patch 可以造成 CREATE 或 UPDATE 操作。
 | 
| userInfo[必需]
 authentication/v1.UserInfo | userInfo是发出请求的用户的相关信息。
 | 
| object
 k8s.io/apimachinery/pkg/runtime.RawExtension | object是来自传入请求的对象。
 | 
| oldObject
 k8s.io/apimachinery/pkg/runtime.RawExtension | oldObject是现有的对象。只有 DELETE 和 UPDATE 请求中此字段会有值。
 | 
| dryRun
 bool | dryRun表示此请求的修改绝对不会被持久化。默认为 false。
 | 
| options
 k8s.io/apimachinery/pkg/runtime.RawExtension | options是正在执行的操作的操作选项结构。
例如meta.k8s.io/v1.DeleteOptions或meta.k8s.io/v1.CreateOptions。
所设置的值可能不同于调用方所提供的选项。例如 patch 请求执行的操作可能是 CREATE,那这种情况下即使调用方提供了meta.k8s.io/v1.PatchOptions,options也将是meta.k8s.io/v1.CreateOptions。
 | 
AdmissionResponse    
出现在:
AdmissionResponse 描述准入响应。
| 字段 | 描述 | 
|---|
| uid[必需]
 k8s.io/apimachinery/pkg/types.UID | uid是标识单独请求/响应的标识符。
它必须从相应的 AdmissionRequest 复制过来。
 | 
| allowed[必需]
 bool | allowed表示准入请求是否被允许。
 | 
| status
 meta/v1.Status | status包含为什么准入请求被拒绝的额外细节。
如果 "Allowed" 的值为 "true",则不会以任何方式使用此字段。
 | 
| patch
 []byte | patch操作的主体。目前 Kubernetes 仅支持实现了 RFC 6902 的 "JSONPatch"。
 | 
| patchType
 PatchType | patch的类型。目前 Kubernetes 仅允许 "JSONPatch"。
 | 
| auditAnnotations
 map[string]string | auditAnnotations是由远程准入控制器设置的非结构化键值映射(例如 error=image-blacklisted)。
MutatingAdmissionWebhook 和 ValidatingAdmissionWebhook 准入控制器将在键前缀中使用准入 Webhook 名称
(例如 imagepolicy.example.com/error=image-blacklisted)。auditAnnotations将由准入
Webhook 提供,向此请求的审计日志添加额外的上下文。
 | 
| warnings
 []string | warnings是警告消息的列表,返回给发出请求的 API 客户端。
这些警告消息描述客户端在进行 API 请求时应该纠正或注意的问题。
如果可能的话,将warnings限制在 120 个字符以内。
如果warnings中的消息超过 256 个字符,或warnings数量过多,可能会被截断。
 | 
Operation    
(string 的别名)
出现在:
Operation 是正在检查准入控制时资源操作的类型。
PatchType    
(string 的别名)
出现在:
PatchType 是用于表示所变更对象的补丁类型。