kubernetes/pkg/apis/certificates
Taahir Ahmed 6a75e7c40c ClusterTrustBundles: Define types
This commit is the main API piece of KEP-3257 (ClusterTrustBundles).

This commit:

* Adds the certificates.k8s.io/v1alpha1 API group
* Adds the ClusterTrustBundle type.
* Registers the new type in kube-apiserver.
* Implements the type-specfic validation specified for
  ClusterTrustBundles:
  - spec.pemTrustAnchors must always be non-empty.
  - spec.signerName must be either empty or a valid signer name.
  - Changing spec.signerName is disallowed.
* Implements the "attest" admission check to restrict actions on
  ClusterTrustBundles that include a signer name.

Because it wasn't specified in the KEP, I chose to make attempts to
update the signer name be validation errors, rather than silently
ignored.

I have tested this out by launching these changes in kind and
manipulating ClusterTrustBundle objects in the resulting cluster using
kubectl.
2023-03-15 20:10:18 -07:00
..
fuzzer csr: add expirationSeconds field to control cert lifetime 2021-07-01 23:38:15 -04:00
install ClusterTrustBundles: Define types 2023-03-15 20:10:18 -07:00
v1 generated: Run hack/update-gofmt.sh 2021-08-24 15:47:49 -04:00
v1alpha1 ClusterTrustBundles: Define types 2023-03-15 20:10:18 -07:00
v1beta1 kubelet: add key encipherment usage only if it is rsa key 2022-12-27 16:04:25 +08:00
validation ClusterTrustBundles: Define types 2023-03-15 20:10:18 -07:00
doc.go *: Remove comment tags in GoDoc 2018-09-13 20:27:32 -07:00
helpers.go kubelet: add key encipherment usage only if it is rsa key 2022-12-27 16:04:25 +08:00
OWNERS Check in OWNERS modified by update-yamlfmt.sh 2021-12-09 21:31:26 -05:00
register.go ClusterTrustBundles: Define types 2023-03-15 20:10:18 -07:00
types.go ClusterTrustBundles: Define types 2023-03-15 20:10:18 -07:00
zz_generated.deepcopy.go generated: Run hack/update-gofmt.sh 2021-08-24 15:47:49 -04:00