Merge pull request #41058 from liggitt/v1-tokenreview

Automatic merge from submit-queue (batch tested with PRs 41112, 41201, 41058, 40650, 40926)

Promote TokenReview to v1

Peer to https://github.com/kubernetes/kubernetes/pull/40709

We have multiple features that depend on this API:

- [webhook authentication](https://kubernetes.io/docs/admin/authentication/#webhook-token-authentication)
- [kubelet delegated authentication](https://kubernetes.io/docs/admin/kubelet-authentication-authorization/#kubelet-authentication)
- add-on API server delegated authentication

The API has been in use since 1.3 in beta status (v1beta1) with negligible changes:
- Added a status field for reporting errors evaluating the token

This PR promotes the existing v1beta1 API to v1 with no changes

Because the API does not persist data (it is a query/response-style API), there are no data migration concerns.

This positions us to promote the features that depend on this API to stable in 1.7

cc @kubernetes/sig-auth-api-reviews @kubernetes/sig-auth-misc

```release-note
The authentication.k8s.io API group was promoted to v1
```
This commit is contained in:
Kubernetes Submit Queue
2017-02-10 01:40:44 -08:00
committed by GitHub
52 changed files with 4757 additions and 15 deletions

View File

@@ -9056,6 +9056,97 @@ func GetOpenAPIDefinitions(ref openapi.ReferenceCallback) map[string]openapi.Ope
},
Dependencies: []string{},
},
"k8s.io/kubernetes/pkg/apis/authentication/v1.TokenReview": {
Schema: spec.Schema{
SchemaProps: spec.SchemaProps{
Description: "TokenReview attempts to authenticate a token to a known user. Note: TokenReview requests may be cached by the webhook token authenticator plugin in the kube-apiserver.",
Properties: map[string]spec.Schema{
"kind": {
SchemaProps: spec.SchemaProps{
Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds",
Type: []string{"string"},
Format: "",
},
},
"apiVersion": {
SchemaProps: spec.SchemaProps{
Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources",
Type: []string{"string"},
Format: "",
},
},
"metadata": {
SchemaProps: spec.SchemaProps{
Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"),
},
},
"spec": {
SchemaProps: spec.SchemaProps{
Description: "Spec holds information about the request being evaluated",
Ref: ref("k8s.io/kubernetes/pkg/apis/authentication/v1.TokenReviewSpec"),
},
},
"status": {
SchemaProps: spec.SchemaProps{
Description: "Status is filled in by the server and indicates whether the request can be authenticated.",
Ref: ref("k8s.io/kubernetes/pkg/apis/authentication/v1.TokenReviewStatus"),
},
},
},
Required: []string{"spec"},
},
},
Dependencies: []string{
"k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta", "k8s.io/kubernetes/pkg/apis/authentication/v1.TokenReviewSpec", "k8s.io/kubernetes/pkg/apis/authentication/v1.TokenReviewStatus"},
},
"k8s.io/kubernetes/pkg/apis/authentication/v1.TokenReviewSpec": {
Schema: spec.Schema{
SchemaProps: spec.SchemaProps{
Description: "TokenReviewSpec is a description of the token authentication request.",
Properties: map[string]spec.Schema{
"token": {
SchemaProps: spec.SchemaProps{
Description: "Token is the opaque bearer token.",
Type: []string{"string"},
Format: "",
},
},
},
},
},
Dependencies: []string{},
},
"k8s.io/kubernetes/pkg/apis/authentication/v1.TokenReviewStatus": {
Schema: spec.Schema{
SchemaProps: spec.SchemaProps{
Description: "TokenReviewStatus is the result of the token authentication request.",
Properties: map[string]spec.Schema{
"authenticated": {
SchemaProps: spec.SchemaProps{
Description: "Authenticated indicates that the token was associated with a known user.",
Type: []string{"boolean"},
Format: "",
},
},
"user": {
SchemaProps: spec.SchemaProps{
Description: "User is the UserInfo associated with the provided token.",
Ref: ref("k8s.io/kubernetes/pkg/apis/authentication/v1.UserInfo"),
},
},
"error": {
SchemaProps: spec.SchemaProps{
Description: "Error indicates that the token couldn't be checked",
Type: []string{"string"},
Format: "",
},
},
},
},
},
Dependencies: []string{
"k8s.io/kubernetes/pkg/apis/authentication/v1.UserInfo"},
},
"k8s.io/kubernetes/pkg/api/v1.Toleration": {
Schema: spec.Schema{
SchemaProps: spec.SchemaProps{
@@ -9125,6 +9216,65 @@ func GetOpenAPIDefinitions(ref openapi.ReferenceCallback) map[string]openapi.Ope
},
Dependencies: []string{},
},
"k8s.io/kubernetes/pkg/apis/authentication/v1.UserInfo": {
Schema: spec.Schema{
SchemaProps: spec.SchemaProps{
Description: "UserInfo holds the information about the user needed to implement the user.Info interface.",
Properties: map[string]spec.Schema{
"username": {
SchemaProps: spec.SchemaProps{
Description: "The name that uniquely identifies this user among all active users.",
Type: []string{"string"},
Format: "",
},
},
"uid": {
SchemaProps: spec.SchemaProps{
Description: "A unique value that identifies this user across time. If this user is deleted and another user by the same name is added, they will have different UIDs.",
Type: []string{"string"},
Format: "",
},
},
"groups": {
SchemaProps: spec.SchemaProps{
Description: "The names of groups this user is a part of.",
Type: []string{"array"},
Items: &spec.SchemaOrArray{
Schema: &spec.Schema{
SchemaProps: spec.SchemaProps{
Type: []string{"string"},
Format: "",
},
},
},
},
},
"extra": {
SchemaProps: spec.SchemaProps{
Description: "Any additional information provided by the authenticator.",
Type: []string{"object"},
AdditionalProperties: &spec.SchemaOrBool{
Schema: &spec.Schema{
SchemaProps: spec.SchemaProps{
Type: []string{"array"},
Items: &spec.SchemaOrArray{
Schema: &spec.Schema{
SchemaProps: spec.SchemaProps{
Type: []string{"string"},
Format: "",
},
},
},
},
},
},
},
},
},
},
},
Dependencies: []string{},
},
"k8s.io/kubernetes/pkg/api/v1.Volume": {
Schema: spec.Schema{
SchemaProps: spec.SchemaProps{