zoukankan      html  css  js  c++  java
  • opa gatekeeper笔记:AdmissionReview input.request请求对象结构

    官方:https://v1-17.docs.kubernetes.io/zh/docs/reference/access-authn-authz/extensible-admission-controllers/#request
    https://www.openpolicyagent.org/docs/latest/kubernetes-primer/#input-document
    工具:https://www.bejson.com/json/json2yaml/

    用途:

    可用于编写constrainttemplate的rego代码时,调用kubectl默认的input

    AdmissionReview input.request请求对象示例

    apiVersion: admission.k8s.io/v1
    kind: AdmissionReview
    request:
      uid: 705ab4f5-6393-11e8-b7cc-42010a800002
      kind:
        group: autoscaling
        version: v1
        kind: Scale
      resource:
        group: apps
        version: v1
        resource: deployments
      subResource: scale
      requestKind:
        group: autoscaling
        version: v1
        kind: Scale
      requestResource:
        group: apps
        version: v1
        resource: deployments
      requestSubResource: scale
      name: my-deployment
      namespace: my-namespace
      operation: UPDATE
      userInfo:
        username: admin
        uid: 014fbff9a07c
        groups:
          - 'system:authenticated'
          - my-admin-group
        extra:
          some-key:
            - some-value1
            - some-value2
      object:
        apiVersion: autoscaling/v1
        kind: Scale
      oldObject:
        apiVersion: autoscaling/v1
        kind: Scale
      options:
        apiVersion: meta.k8s.io/v1
        kind: UpdateOptions
      dryRun: false
    

    Json原版与注释

    {
      "apiVersion": "admission.k8s.io/v1",
      "kind": "AdmissionReview",
      "request": {
        # 唯一标识此准入回调的随机 uid
        "uid": "705ab4f5-6393-11e8-b7cc-42010a800002",
    
        # 传入完全正确的 group/version/kind 对象
        "kind": {"group":"autoscaling","version":"v1","kind":"Scale"},
        # 修改 resource 的完全正确的的 group/version/kind
        "resource": {"group":"apps","version":"v1","resource":"deployments"},
        # subResource(如果请求是针对 subResource 的)
        "subResource": "scale",
    
        # 在对 API 服务器的原始请求中,传入对象的标准 group/version/kind
        # 仅当 webhook 指定 `matchPolicy: Equivalent` 且将对 API 服务器的原始请求转换为 webhook 注册的版本时,这才与 `kind` 不同。
        "requestKind": {"group":"autoscaling","version":"v1","kind":"Scale"},
        # 在对 API 服务器的原始请求中正在修改的资源的标准 group/version/kind
        # 仅当 webhook 指定了 `matchPolicy:Equivalent` 并且将对 API 服务器的原始请求转换为 webhook 注册的版本时,这才与 `resource` 不同。
        "requestResource": {"group":"apps","version":"v1","resource":"deployments"},
        # subResource(如果请求是针对 subResource 的)
        # 仅当 webhook 指定了 `matchPolicy:Equivalent` 并且将对 API 服务器的原始请求转换为该 webhook 注册的版本时,这才与 `subResource` 不同。
        "requestSubResource": "scale",
    
        # 被修改资源的名称
        "name": "my-deployment",
        # 如果资源是属于命名空间(或者是命名空间对象),则这是被修改的资源的命名空间
        "namespace": "my-namespace",
    
        # 操作可以是 CREATE、UPDATE、DELETE 或 CONNECT
        "operation": "UPDATE",
    
        "userInfo": {
          # 向 API 服务器发出请求的经过身份验证的用户的用户名
          "username": "admin",
          # 向 API 服务器发出请求的经过身份验证的用户的 UID
          "uid": "014fbff9a07c",
          # 向 API 服务器发出请求的经过身份验证的用户的组成员身份
          "groups": ["system:authenticated","my-admin-group"],
          # 向 API 服务器发出请求的用户相关的任意附加信息
          # 该字段由 API 服务器身份验证层填充,并且如果 webhook 执行了任何 SubjectAccessReview 检查,则应将其包括在内。
          "extra": {
            "some-key":["some-value1", "some-value2"]
          }
        },
    
        # object 是被接纳的新对象。
        # 对于 DELETE 操作,它为 null。
        "object": {"apiVersion":"autoscaling/v1","kind":"Scale",...},
        # oldObject 是现有对象。
        # 对于 CREATE 和 CONNECT 操作,它为 null。
        "oldObject": {"apiVersion":"autoscaling/v1","kind":"Scale",...},
        # options 包含要接受的操作的选项,例如 meta.k8s.io/v CreateOptions、UpdateOptions 或 DeleteOptions。
        # 对于 CONNECT 操作,它为 null。
        "options": {"apiVersion":"meta.k8s.io/v1","kind":"UpdateOptions",...},
    
        # dryRun 表示 API 请求正在以 `dryrun` 模式运行,并且将不会保留。
        # 带有副作用的 Webhook 应该避免在 dryRun 为 true 时激活这些副作用。
        # 有关更多详细信息,请参见 http://k8s.io/docs/reference/using-api/api-concepts/#make-a-dry-run-request
        "dryRun": false
      }
    }
    
    ================# 水平有限 欢迎留言 批评指正 #=================
  • 相关阅读:
    ES6判断对象是否为空
    mui、拍照、个推推送消息【问题链接】
    查找SAP某个Tcode下已经实施的增强
    MySQL 事务
    Go 学习线路图
    Nginx 限流配置
    Redis 内存优化
    2021年 github被墙最新hosts-每日更新
    Nginx 反向代理与负载均衡详解
    完美实现跨域 iframe 高度自适应
  • 原文地址:https://www.cnblogs.com/max27149/p/15425627.html
Copyright © 2011-2022 走看看