mirror of
				https://github.com/optim-enterprises-bv/kubernetes.git
				synced 2025-10-31 10:18:13 +00:00 
			
		
		
		
	Fixed listType annotations for API Priority and Fairness
We were occasionally seeing ``` [SHOULD NOT HAPPEN] failed to create typed new object: .spec.rules: element 0: associative list without keys has an element that's a map type ``` So I changed all the listType annotations to `atomic` except when the element type is a scalar, which is the only case supported right now.
This commit is contained in:
		
							
								
								
									
										12
									
								
								api/openapi-spec/swagger.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										12
									
								
								api/openapi-spec/swagger.json
									
									
									
										generated
									
									
									
								
							| @@ -11041,7 +11041,7 @@ | |||||||
|             "$ref": "#/definitions/io.k8s.api.flowcontrol.v1alpha1.FlowSchema" |             "$ref": "#/definitions/io.k8s.api.flowcontrol.v1alpha1.FlowSchema" | ||||||
|           }, |           }, | ||||||
|           "type": "array", |           "type": "array", | ||||||
|           "x-kubernetes-list-type": "set" |           "x-kubernetes-list-type": "atomic" | ||||||
|         }, |         }, | ||||||
|         "kind": { |         "kind": { | ||||||
|           "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: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", |           "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: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", | ||||||
| @@ -11086,7 +11086,7 @@ | |||||||
|             "$ref": "#/definitions/io.k8s.api.flowcontrol.v1alpha1.PolicyRulesWithSubjects" |             "$ref": "#/definitions/io.k8s.api.flowcontrol.v1alpha1.PolicyRulesWithSubjects" | ||||||
|           }, |           }, | ||||||
|           "type": "array", |           "type": "array", | ||||||
|           "x-kubernetes-list-type": "set" |           "x-kubernetes-list-type": "atomic" | ||||||
|         } |         } | ||||||
|       }, |       }, | ||||||
|       "required": [ |       "required": [ | ||||||
| @@ -11199,7 +11199,7 @@ | |||||||
|             "$ref": "#/definitions/io.k8s.api.flowcontrol.v1alpha1.NonResourcePolicyRule" |             "$ref": "#/definitions/io.k8s.api.flowcontrol.v1alpha1.NonResourcePolicyRule" | ||||||
|           }, |           }, | ||||||
|           "type": "array", |           "type": "array", | ||||||
|           "x-kubernetes-list-type": "set" |           "x-kubernetes-list-type": "atomic" | ||||||
|         }, |         }, | ||||||
|         "resourceRules": { |         "resourceRules": { | ||||||
|           "description": "`resourceRules` is a slice of ResourcePolicyRules that identify matching requests according to their verb and the target resource. At least one of `resourceRules` and `nonResourceRules` has to be non-empty.", |           "description": "`resourceRules` is a slice of ResourcePolicyRules that identify matching requests according to their verb and the target resource. At least one of `resourceRules` and `nonResourceRules` has to be non-empty.", | ||||||
| @@ -11207,7 +11207,7 @@ | |||||||
|             "$ref": "#/definitions/io.k8s.api.flowcontrol.v1alpha1.ResourcePolicyRule" |             "$ref": "#/definitions/io.k8s.api.flowcontrol.v1alpha1.ResourcePolicyRule" | ||||||
|           }, |           }, | ||||||
|           "type": "array", |           "type": "array", | ||||||
|           "x-kubernetes-list-type": "set" |           "x-kubernetes-list-type": "atomic" | ||||||
|         }, |         }, | ||||||
|         "subjects": { |         "subjects": { | ||||||
|           "description": "subjects is the list of normal user, serviceaccount, or group that this rule cares about. There must be at least one member in this slice. A slice that includes both the system:authenticated and system:unauthenticated user groups matches every request. Required.", |           "description": "subjects is the list of normal user, serviceaccount, or group that this rule cares about. There must be at least one member in this slice. A slice that includes both the system:authenticated and system:unauthenticated user groups matches every request. Required.", | ||||||
| @@ -11215,7 +11215,7 @@ | |||||||
|             "$ref": "#/definitions/io.k8s.api.flowcontrol.v1alpha1.Subject" |             "$ref": "#/definitions/io.k8s.api.flowcontrol.v1alpha1.Subject" | ||||||
|           }, |           }, | ||||||
|           "type": "array", |           "type": "array", | ||||||
|           "x-kubernetes-list-type": "set" |           "x-kubernetes-list-type": "atomic" | ||||||
|         } |         } | ||||||
|       }, |       }, | ||||||
|       "required": [ |       "required": [ | ||||||
| @@ -11295,7 +11295,7 @@ | |||||||
|             "$ref": "#/definitions/io.k8s.api.flowcontrol.v1alpha1.PriorityLevelConfiguration" |             "$ref": "#/definitions/io.k8s.api.flowcontrol.v1alpha1.PriorityLevelConfiguration" | ||||||
|           }, |           }, | ||||||
|           "type": "array", |           "type": "array", | ||||||
|           "x-kubernetes-list-type": "set" |           "x-kubernetes-list-type": "atomic" | ||||||
|         }, |         }, | ||||||
|         "kind": { |         "kind": { | ||||||
|           "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: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", |           "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: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", | ||||||
|   | |||||||
| @@ -84,7 +84,7 @@ message FlowSchemaList { | |||||||
|   optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1; |   optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1; | ||||||
|  |  | ||||||
|   // `items` is a list of FlowSchemas. |   // `items` is a list of FlowSchemas. | ||||||
|   // +listType=set |   // +listType=atomic | ||||||
|   repeated FlowSchema items = 2; |   repeated FlowSchema items = 2; | ||||||
| } | } | ||||||
|  |  | ||||||
| @@ -110,7 +110,7 @@ message FlowSchemaSpec { | |||||||
|   // `rules` describes which requests will match this flow schema. This FlowSchema matches a request if and only if |   // `rules` describes which requests will match this flow schema. This FlowSchema matches a request if and only if | ||||||
|   // at least one member of rules matches the request. |   // at least one member of rules matches the request. | ||||||
|   // if it is an empty slice, there will be no requests matching the FlowSchema. |   // if it is an empty slice, there will be no requests matching the FlowSchema. | ||||||
|   // +listType=set |   // +listType=atomic | ||||||
|   // +optional |   // +optional | ||||||
|   repeated PolicyRulesWithSubjects rules = 4; |   repeated PolicyRulesWithSubjects rules = 4; | ||||||
| } | } | ||||||
| @@ -210,20 +210,20 @@ message PolicyRulesWithSubjects { | |||||||
|   // subjects is the list of normal user, serviceaccount, or group that this rule cares about. |   // subjects is the list of normal user, serviceaccount, or group that this rule cares about. | ||||||
|   // There must be at least one member in this slice. |   // There must be at least one member in this slice. | ||||||
|   // A slice that includes both the system:authenticated and system:unauthenticated user groups matches every request. |   // A slice that includes both the system:authenticated and system:unauthenticated user groups matches every request. | ||||||
|   // +listType=set |   // +listType=atomic | ||||||
|   // Required. |   // Required. | ||||||
|   repeated Subject subjects = 1; |   repeated Subject subjects = 1; | ||||||
|  |  | ||||||
|   // `resourceRules` is a slice of ResourcePolicyRules that identify matching requests according to their verb and the |   // `resourceRules` is a slice of ResourcePolicyRules that identify matching requests according to their verb and the | ||||||
|   // target resource. |   // target resource. | ||||||
|   // At least one of `resourceRules` and `nonResourceRules` has to be non-empty. |   // At least one of `resourceRules` and `nonResourceRules` has to be non-empty. | ||||||
|   // +listType=set |   // +listType=atomic | ||||||
|   // +optional |   // +optional | ||||||
|   repeated ResourcePolicyRule resourceRules = 2; |   repeated ResourcePolicyRule resourceRules = 2; | ||||||
|  |  | ||||||
|   // `nonResourceRules` is a list of NonResourcePolicyRules that identify matching requests according to their verb |   // `nonResourceRules` is a list of NonResourcePolicyRules that identify matching requests according to their verb | ||||||
|   // and the target non-resource URL. |   // and the target non-resource URL. | ||||||
|   // +listType=set |   // +listType=atomic | ||||||
|   // +optional |   // +optional | ||||||
|   repeated NonResourcePolicyRule nonResourceRules = 3; |   repeated NonResourcePolicyRule nonResourceRules = 3; | ||||||
| } | } | ||||||
| @@ -275,7 +275,7 @@ message PriorityLevelConfigurationList { | |||||||
|   optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1; |   optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1; | ||||||
|  |  | ||||||
|   // `items` is a list of request-priorities. |   // `items` is a list of request-priorities. | ||||||
|   // +listType=set |   // +listType=atomic | ||||||
|   repeated PriorityLevelConfiguration items = 2; |   repeated PriorityLevelConfiguration items = 2; | ||||||
| } | } | ||||||
|  |  | ||||||
|   | |||||||
| @@ -84,7 +84,7 @@ type FlowSchemaList struct { | |||||||
| 	metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` | 	metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` | ||||||
|  |  | ||||||
| 	// `items` is a list of FlowSchemas. | 	// `items` is a list of FlowSchemas. | ||||||
| 	// +listType=set | 	// +listType=atomic | ||||||
| 	Items []FlowSchema `json:"items" protobuf:"bytes,2,rep,name=items"` | 	Items []FlowSchema `json:"items" protobuf:"bytes,2,rep,name=items"` | ||||||
| } | } | ||||||
|  |  | ||||||
| @@ -107,7 +107,7 @@ type FlowSchemaSpec struct { | |||||||
| 	// `rules` describes which requests will match this flow schema. This FlowSchema matches a request if and only if | 	// `rules` describes which requests will match this flow schema. This FlowSchema matches a request if and only if | ||||||
| 	// at least one member of rules matches the request. | 	// at least one member of rules matches the request. | ||||||
| 	// if it is an empty slice, there will be no requests matching the FlowSchema. | 	// if it is an empty slice, there will be no requests matching the FlowSchema. | ||||||
| 	// +listType=set | 	// +listType=atomic | ||||||
| 	// +optional | 	// +optional | ||||||
| 	Rules []PolicyRulesWithSubjects `json:"rules,omitempty" protobuf:"bytes,4,rep,name=rules"` | 	Rules []PolicyRulesWithSubjects `json:"rules,omitempty" protobuf:"bytes,4,rep,name=rules"` | ||||||
| } | } | ||||||
| @@ -152,18 +152,18 @@ type PolicyRulesWithSubjects struct { | |||||||
| 	// subjects is the list of normal user, serviceaccount, or group that this rule cares about. | 	// subjects is the list of normal user, serviceaccount, or group that this rule cares about. | ||||||
| 	// There must be at least one member in this slice. | 	// There must be at least one member in this slice. | ||||||
| 	// A slice that includes both the system:authenticated and system:unauthenticated user groups matches every request. | 	// A slice that includes both the system:authenticated and system:unauthenticated user groups matches every request. | ||||||
| 	// +listType=set | 	// +listType=atomic | ||||||
| 	// Required. | 	// Required. | ||||||
| 	Subjects []Subject `json:"subjects" protobuf:"bytes,1,rep,name=subjects"` | 	Subjects []Subject `json:"subjects" protobuf:"bytes,1,rep,name=subjects"` | ||||||
| 	// `resourceRules` is a slice of ResourcePolicyRules that identify matching requests according to their verb and the | 	// `resourceRules` is a slice of ResourcePolicyRules that identify matching requests according to their verb and the | ||||||
| 	// target resource. | 	// target resource. | ||||||
| 	// At least one of `resourceRules` and `nonResourceRules` has to be non-empty. | 	// At least one of `resourceRules` and `nonResourceRules` has to be non-empty. | ||||||
| 	// +listType=set | 	// +listType=atomic | ||||||
| 	// +optional | 	// +optional | ||||||
| 	ResourceRules []ResourcePolicyRule `json:"resourceRules,omitempty" protobuf:"bytes,2,opt,name=resourceRules"` | 	ResourceRules []ResourcePolicyRule `json:"resourceRules,omitempty" protobuf:"bytes,2,opt,name=resourceRules"` | ||||||
| 	// `nonResourceRules` is a list of NonResourcePolicyRules that identify matching requests according to their verb | 	// `nonResourceRules` is a list of NonResourcePolicyRules that identify matching requests according to their verb | ||||||
| 	// and the target non-resource URL. | 	// and the target non-resource URL. | ||||||
| 	// +listType=set | 	// +listType=atomic | ||||||
| 	// +optional | 	// +optional | ||||||
| 	NonResourceRules []NonResourcePolicyRule `json:"nonResourceRules,omitempty" protobuf:"bytes,3,opt,name=nonResourceRules"` | 	NonResourceRules []NonResourcePolicyRule `json:"nonResourceRules,omitempty" protobuf:"bytes,3,opt,name=nonResourceRules"` | ||||||
| } | } | ||||||
| @@ -350,7 +350,7 @@ type PriorityLevelConfigurationList struct { | |||||||
| 	// +optional | 	// +optional | ||||||
| 	metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` | 	metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` | ||||||
| 	// `items` is a list of request-priorities. | 	// `items` is a list of request-priorities. | ||||||
| 	// +listType=set | 	// +listType=atomic | ||||||
| 	Items []PriorityLevelConfiguration `json:"items" protobuf:"bytes,2,rep,name=items"` | 	Items []PriorityLevelConfiguration `json:"items" protobuf:"bytes,2,rep,name=items"` | ||||||
| } | } | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user