ClusterTrustBundle v1alpha1
apiVersion: certificates.k8s.io/v1alpha1
import "k8s.io/api/certificates/v1alpha1"
ClusterTrustBundle
ClusterTrustBundle 是一个集群范围的容器,用于存放 X.509 信任锚(根证书)。
ClusterTrustBundle 对象被视为可被集群中的任何已通过身份验证的用户读取,
因为此对象可以由使用 clusterTrustBundle
投射的 Pod 挂载。
所有服务账号默认都有对 ClusterTrustBundle 的读取权限。
对于仅对集群具有命名空间级访问权限的用户,可以通过伪装他们可以访问的服务账号来读取 ClusterTrustBundle。
ClusterTrustBundle 可以选择与特定的签名程序相关联,此时它包含该签名程序的一组有效信任锚。 签名程序可以有多个关联的 ClusterTrustBundle; 对于该签名程序而言每个 ClusterTrustBundle 都是独立的一组信任锚。 准入控制用于确保只有对签名程序有访问权限的用户才能创建或修改相应的捆绑包。
-
apiVersion: certificates.k8s.io/v1alpha1
-
kind: ClusterTrustBundle
-
metadata (ObjectMeta)
metadata 包含对象的元数据。
-
spec (ClusterTrustBundleSpec),必需
spec 包含签名程序(如果有)和信任锚。
ClusterTrustBundleSpec
ClusterTrustBundleSpec 包含签名程序和信任锚。
-
trustBundle (string),必需
trustBundle 包含此捆绑包的各个 X.509 信任锚,这个 PEM 捆绑包是采用 PEM 包装的 DER 格式的若干 X.509 证书。
数据必须仅由可解析为有效 X.509 证书的 PEM 证书块组成。 每个证书必须包含设置了 CA 标志的基本约束扩展。 API 服务器将拒绝包含重复证书或使用 PEM 块头的对象。
ClusterTrustBundles 的使用者(包括 kubelet)可以根据自己的逻辑对此文件中的证书块进行重新排序和去重, 也可以删除 PEM 块头和块间数据。
-
signerName (string)
signerName 表示关联的签名程序(如果有)。
要创建或更新设置了 signerName 属性的 ClusterTrustBundle,你必须具备以下集群范围的权限:
group=certificates.k8s.io resource=signers resourceName=\<签名程序名称> verb=attest
如果 signerName 不为空,则 ClusterTrustBundle 对象的名称必须以签名程序名称作为前缀(将斜杠转换为冒号)。 例如,对于签名程序名称
example.com/foo
,有效的 ClusterTrustBundle 对象名称包括example.com:foo:abc
和example.com:foo:v1
。如果 signerName 为空,则 ClusterTrustBundle 对象的名称不能具有此类前缀。
针对 ClusterTrustBundles 的列举/监视请求可以使用
spec.signerName=NAME
字段选择算符针对此字段进行过滤。
ClusterTrustBundleList
ClusterTrustBundleList 是 ClusterTrustBundle 对象的集合。
-
apiVersion: certificates.k8s.io/v1alpha1
-
kind: ClusterTrustBundleList
-
metadata (ListMeta)
metadata 包含列表的元数据。
-
items ([]ClusterTrustBundle),必需
items 是 ClusterTrustBundle 对象的集合。
操作
get
读取指定的 ClusterTrustBundle
HTTP 请求
GET /apis/certificates.k8s.io/v1alpha1/clustertrustbundles/{name}
参数
-
name(路径参数):string,必需
ClusterTrustBundle 的名称。
-
pretty(查询参数):string
响应
200 (ClusterTrustBundle): OK
401: Unauthorized
list
列举或监视类别为 ClusterTrustBundle 的对象
HTTP 请求
GET /apis/certificates.k8s.io/v1alpha1/clustertrustbundles
参数
-
allowWatchBookmarks(查询参数):boolean
-
continue(查询参数):string
-
fieldSelector(查询参数):string
-
labelSelector(查询参数):string
-
limit(查询参数):integer
-
pretty(查询参数):string
-
resourceVersion(查询参数):string
-
resourceVersionMatch(查询参数):string
-
sendInitialEvents(查询参数):boolean
-
timeoutSeconds(查询参数):integer
-
watch(查询参数):boolean
响应
200 (ClusterTrustBundleList): OK
401: Unauthorized
create
创建 ClusterTrustBundle
HTTP 请求
POST /apis/certificates.k8s.io/v1alpha1/clustertrustbundles
参数
-
body: ClusterTrustBundle,必需
-
dryRun(查询参数):string
-
fieldManager(查询参数):string
-
fieldValidation(查询参数):string
-
pretty(查询参数):string
响应
200 (ClusterTrustBundle): OK
201 (ClusterTrustBundle): Created
202 (ClusterTrustBundle): Accepted
401: Unauthorized
update
替换指定的 ClusterTrustBundle
HTTP 请求
PUT /apis/certificates.k8s.io/v1alpha1/clustertrustbundles/{name}
参数
-
name(路径参数):string,必需
ClusterTrustBundle 的名称。
-
body: ClusterTrustBundle,必需
-
dryRun(查询参数):string
-
fieldManager(查询参数):string
-
fieldValidation(查询参数):string
-
pretty(查询参数):string
响应
200 (ClusterTrustBundle): OK
201 (ClusterTrustBundle): Created
401: Unauthorized
patch
部分更新指定的 ClusterTrustBundle
HTTP 请求
PATCH /apis/certificates.k8s.io/v1alpha1/clustertrustbundles/{name}
参数
-
name(路径参数):string,必需
ClusterTrustBundle 的名称。
-
body: Patch,必需
-
dryRun(查询参数):string
-
fieldManager(查询参数):string
-
fieldValidation(查询参数):string
-
force(查询参数):boolean
-
pretty(查询参数):string
响应
200 (ClusterTrustBundle): OK
201 (ClusterTrustBundle): Created
401: Unauthorized
delete
删除 ClusterTrustBundle
HTTP 请求
DELETE /apis/certificates.k8s.io/v1alpha1/clustertrustbundles/{name}
参数
-
name(路径参数):string,必需
ClusterTrustBundle 的名称。
-
body: DeleteOptions
-
dryRun(查询参数):string
-
gracePeriodSeconds(查询参数):integer
-
pretty(查询参数):string
-
propagationPolicy(查询参数):string
响应
200 (Status): OK
202 (Status): Accepted
401: Unauthorized
deletecollection
删除 ClusterTrustBundle 的集合
HTTP 请求
DELETE /apis/certificates.k8s.io/v1alpha1/clustertrustbundles
参数
-
body: DeleteOptions
-
continue(查询参数):string
-
dryRun(查询参数):string
-
fieldSelector(查询参数):string
-
gracePeriodSeconds(查询参数):integer
-
labelSelector(查询参数):string
-
limit(查询参数):integer
-
pretty(查询参数):string
-
propagationPolicy(查询参数):string
-
resourceVersion(查询参数):string
-
resourceVersionMatch(查询参数):string
-
sendInitialEvents(查询参数):boolean
-
timeoutSeconds(查询参数):integer
响应
200 (Status): OK
401: Unauthorized