KEP-3619: API: add NodeFeatures.SupplementalGroupsPolicy in NodeStatus
KEP-3619: don't capitalize comment in K8S API KEP-3619: fix typos and grammatical ones in K8s API KEP-3619: rephrase NodeFeatures, NodeHandlerFeatures in K8s API
This commit is contained in:
		
							
								
								
									
										16
									
								
								api/openapi-spec/swagger.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										16
									
								
								api/openapi-spec/swagger.json
									
									
									
										generated
									
									
									
								
							| @@ -8225,6 +8225,16 @@ | ||||
|       }, | ||||
|       "type": "object" | ||||
|     }, | ||||
|     "io.k8s.api.core.v1.NodeFeatures": { | ||||
|       "description": "NodeFeatures describes the set of features implemented by the CRI implementation. The features contained in the NodeFeatures should depend only on the cri implementation independent of runtime handlers.", | ||||
|       "properties": { | ||||
|         "supplementalGroupsPolicy": { | ||||
|           "description": "SupplementalGroupsPolicy is set to true if the runtime supports SupplementalGroupsPolicy and ContainerUser.", | ||||
|           "type": "boolean" | ||||
|         } | ||||
|       }, | ||||
|       "type": "object" | ||||
|     }, | ||||
|     "io.k8s.api.core.v1.NodeList": { | ||||
|       "description": "NodeList is the whole list of all Nodes which have been registered with master.", | ||||
|       "properties": { | ||||
| @@ -8275,7 +8285,7 @@ | ||||
|       "type": "object" | ||||
|     }, | ||||
|     "io.k8s.api.core.v1.NodeRuntimeHandlerFeatures": { | ||||
|       "description": "NodeRuntimeHandlerFeatures is a set of runtime features.", | ||||
|       "description": "NodeRuntimeHandlerFeatures is a set of features implemented by the runtime handler.", | ||||
|       "properties": { | ||||
|         "recursiveReadOnlyMounts": { | ||||
|           "description": "RecursiveReadOnlyMounts is set to true if the runtime handler supports RecursiveReadOnlyMounts.", | ||||
| @@ -8449,6 +8459,10 @@ | ||||
|           "$ref": "#/definitions/io.k8s.api.core.v1.NodeDaemonEndpoints", | ||||
|           "description": "Endpoints of daemons running on the Node." | ||||
|         }, | ||||
|         "features": { | ||||
|           "$ref": "#/definitions/io.k8s.api.core.v1.NodeFeatures", | ||||
|           "description": "Features describes the set of features implemented by the CRI implementation." | ||||
|         }, | ||||
|         "images": { | ||||
|           "description": "List of container images on this node", | ||||
|           "items": { | ||||
|   | ||||
| @@ -3741,6 +3741,16 @@ | ||||
|         }, | ||||
|         "type": "object" | ||||
|       }, | ||||
|       "io.k8s.api.core.v1.NodeFeatures": { | ||||
|         "description": "NodeFeatures describes the set of features implemented by the CRI implementation. The features contained in the NodeFeatures should depend only on the cri implementation independent of runtime handlers.", | ||||
|         "properties": { | ||||
|           "supplementalGroupsPolicy": { | ||||
|             "description": "SupplementalGroupsPolicy is set to true if the runtime supports SupplementalGroupsPolicy and ContainerUser.", | ||||
|             "type": "boolean" | ||||
|           } | ||||
|         }, | ||||
|         "type": "object" | ||||
|       }, | ||||
|       "io.k8s.api.core.v1.NodeList": { | ||||
|         "description": "NodeList is the whole list of all Nodes which have been registered with master.", | ||||
|         "properties": { | ||||
| @@ -3806,7 +3816,7 @@ | ||||
|         "type": "object" | ||||
|       }, | ||||
|       "io.k8s.api.core.v1.NodeRuntimeHandlerFeatures": { | ||||
|         "description": "NodeRuntimeHandlerFeatures is a set of runtime features.", | ||||
|         "description": "NodeRuntimeHandlerFeatures is a set of features implemented by the runtime handler.", | ||||
|         "properties": { | ||||
|           "recursiveReadOnlyMounts": { | ||||
|             "description": "RecursiveReadOnlyMounts is set to true if the runtime handler supports RecursiveReadOnlyMounts.", | ||||
| @@ -4027,6 +4037,14 @@ | ||||
|             "default": {}, | ||||
|             "description": "Endpoints of daemons running on the Node." | ||||
|           }, | ||||
|           "features": { | ||||
|             "allOf": [ | ||||
|               { | ||||
|                 "$ref": "#/components/schemas/io.k8s.api.core.v1.NodeFeatures" | ||||
|               } | ||||
|             ], | ||||
|             "description": "Features describes the set of features implemented by the CRI implementation." | ||||
|           }, | ||||
|           "images": { | ||||
|             "description": "List of container images on this node", | ||||
|             "items": { | ||||
|   | ||||
| @@ -4892,7 +4892,7 @@ type NodeDaemonEndpoints struct { | ||||
| 	KubeletEndpoint DaemonEndpoint | ||||
| } | ||||
|  | ||||
| // NodeRuntimeHandlerFeatures is a set of runtime features. | ||||
| // NodeRuntimeHandlerFeatures is a set of features implemented by the runtime handler. | ||||
| type NodeRuntimeHandlerFeatures struct { | ||||
| 	// RecursiveReadOnlyMounts is set to true if the runtime handler supports RecursiveReadOnlyMounts. | ||||
| 	// +featureGate=RecursiveReadOnlyMounts | ||||
| @@ -4915,6 +4915,15 @@ type NodeRuntimeHandler struct { | ||||
| 	Features *NodeRuntimeHandlerFeatures | ||||
| } | ||||
|  | ||||
| // NodeFeatures describes the set of features implemented by the CRI implementation. | ||||
| // The features contained in the NodeFeatures should depend only on the cri implementation | ||||
| // independent of runtime handlers. | ||||
| type NodeFeatures struct { | ||||
| 	// SupplementalGroupsPolicy is set to true if the runtime supports SupplementalGroupsPolicy and ContainerUser. | ||||
| 	// +optional | ||||
| 	SupplementalGroupsPolicy *bool | ||||
| } | ||||
|  | ||||
| // NodeSystemInfo is a set of ids/uuids to uniquely identify the node. | ||||
| type NodeSystemInfo struct { | ||||
| 	// MachineID reported by the node. For unique machine identification | ||||
| @@ -5030,6 +5039,10 @@ type NodeStatus struct { | ||||
| 	// +featureGate=UserNamespacesSupport | ||||
| 	// +optional | ||||
| 	RuntimeHandlers []NodeRuntimeHandler | ||||
| 	// Features describes the set of features implemented by the CRI implementation. | ||||
| 	// +featureGate=SupplementalGroupsPolicy | ||||
| 	// +optional | ||||
| 	Features *NodeFeatures | ||||
| } | ||||
|  | ||||
| // UniqueVolumeName defines the name of attached volume | ||||
|   | ||||
							
								
								
									
										32
									
								
								pkg/apis/core/v1/zz_generated.conversion.go
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										32
									
								
								pkg/apis/core/v1/zz_generated.conversion.go
									
									
									
										generated
									
									
									
								
							| @@ -1062,6 +1062,16 @@ func RegisterConversions(s *runtime.Scheme) error { | ||||
| 	}); err != nil { | ||||
| 		return err | ||||
| 	} | ||||
| 	if err := s.AddGeneratedConversionFunc((*v1.NodeFeatures)(nil), (*core.NodeFeatures)(nil), func(a, b interface{}, scope conversion.Scope) error { | ||||
| 		return Convert_v1_NodeFeatures_To_core_NodeFeatures(a.(*v1.NodeFeatures), b.(*core.NodeFeatures), scope) | ||||
| 	}); err != nil { | ||||
| 		return err | ||||
| 	} | ||||
| 	if err := s.AddGeneratedConversionFunc((*core.NodeFeatures)(nil), (*v1.NodeFeatures)(nil), func(a, b interface{}, scope conversion.Scope) error { | ||||
| 		return Convert_core_NodeFeatures_To_v1_NodeFeatures(a.(*core.NodeFeatures), b.(*v1.NodeFeatures), scope) | ||||
| 	}); err != nil { | ||||
| 		return err | ||||
| 	} | ||||
| 	if err := s.AddGeneratedConversionFunc((*v1.NodeList)(nil), (*core.NodeList)(nil), func(a, b interface{}, scope conversion.Scope) error { | ||||
| 		return Convert_v1_NodeList_To_core_NodeList(a.(*v1.NodeList), b.(*core.NodeList), scope) | ||||
| 	}); err != nil { | ||||
| @@ -5067,6 +5077,26 @@ func Convert_core_NodeDaemonEndpoints_To_v1_NodeDaemonEndpoints(in *core.NodeDae | ||||
| 	return autoConvert_core_NodeDaemonEndpoints_To_v1_NodeDaemonEndpoints(in, out, s) | ||||
| } | ||||
|  | ||||
| func autoConvert_v1_NodeFeatures_To_core_NodeFeatures(in *v1.NodeFeatures, out *core.NodeFeatures, s conversion.Scope) error { | ||||
| 	out.SupplementalGroupsPolicy = (*bool)(unsafe.Pointer(in.SupplementalGroupsPolicy)) | ||||
| 	return nil | ||||
| } | ||||
|  | ||||
| // Convert_v1_NodeFeatures_To_core_NodeFeatures is an autogenerated conversion function. | ||||
| func Convert_v1_NodeFeatures_To_core_NodeFeatures(in *v1.NodeFeatures, out *core.NodeFeatures, s conversion.Scope) error { | ||||
| 	return autoConvert_v1_NodeFeatures_To_core_NodeFeatures(in, out, s) | ||||
| } | ||||
|  | ||||
| func autoConvert_core_NodeFeatures_To_v1_NodeFeatures(in *core.NodeFeatures, out *v1.NodeFeatures, s conversion.Scope) error { | ||||
| 	out.SupplementalGroupsPolicy = (*bool)(unsafe.Pointer(in.SupplementalGroupsPolicy)) | ||||
| 	return nil | ||||
| } | ||||
|  | ||||
| // Convert_core_NodeFeatures_To_v1_NodeFeatures is an autogenerated conversion function. | ||||
| func Convert_core_NodeFeatures_To_v1_NodeFeatures(in *core.NodeFeatures, out *v1.NodeFeatures, s conversion.Scope) error { | ||||
| 	return autoConvert_core_NodeFeatures_To_v1_NodeFeatures(in, out, s) | ||||
| } | ||||
|  | ||||
| func autoConvert_v1_NodeList_To_core_NodeList(in *v1.NodeList, out *core.NodeList, s conversion.Scope) error { | ||||
| 	out.ListMeta = in.ListMeta | ||||
| 	if in.Items != nil { | ||||
| @@ -5295,6 +5325,7 @@ func autoConvert_v1_NodeStatus_To_core_NodeStatus(in *v1.NodeStatus, out *core.N | ||||
| 	out.VolumesAttached = *(*[]core.AttachedVolume)(unsafe.Pointer(&in.VolumesAttached)) | ||||
| 	out.Config = (*core.NodeConfigStatus)(unsafe.Pointer(in.Config)) | ||||
| 	out.RuntimeHandlers = *(*[]core.NodeRuntimeHandler)(unsafe.Pointer(&in.RuntimeHandlers)) | ||||
| 	out.Features = (*core.NodeFeatures)(unsafe.Pointer(in.Features)) | ||||
| 	return nil | ||||
| } | ||||
|  | ||||
| @@ -5320,6 +5351,7 @@ func autoConvert_core_NodeStatus_To_v1_NodeStatus(in *core.NodeStatus, out *v1.N | ||||
| 	out.VolumesAttached = *(*[]v1.AttachedVolume)(unsafe.Pointer(&in.VolumesAttached)) | ||||
| 	out.Config = (*v1.NodeConfigStatus)(unsafe.Pointer(in.Config)) | ||||
| 	out.RuntimeHandlers = *(*[]v1.NodeRuntimeHandler)(unsafe.Pointer(&in.RuntimeHandlers)) | ||||
| 	out.Features = (*v1.NodeFeatures)(unsafe.Pointer(in.Features)) | ||||
| 	return nil | ||||
| } | ||||
|  | ||||
|   | ||||
							
								
								
									
										26
									
								
								pkg/apis/core/zz_generated.deepcopy.go
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										26
									
								
								pkg/apis/core/zz_generated.deepcopy.go
									
									
									
										generated
									
									
									
								
							| @@ -2718,6 +2718,27 @@ func (in *NodeDaemonEndpoints) DeepCopy() *NodeDaemonEndpoints { | ||||
| 	return out | ||||
| } | ||||
|  | ||||
| // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. | ||||
| func (in *NodeFeatures) DeepCopyInto(out *NodeFeatures) { | ||||
| 	*out = *in | ||||
| 	if in.SupplementalGroupsPolicy != nil { | ||||
| 		in, out := &in.SupplementalGroupsPolicy, &out.SupplementalGroupsPolicy | ||||
| 		*out = new(bool) | ||||
| 		**out = **in | ||||
| 	} | ||||
| 	return | ||||
| } | ||||
|  | ||||
| // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeFeatures. | ||||
| func (in *NodeFeatures) DeepCopy() *NodeFeatures { | ||||
| 	if in == nil { | ||||
| 		return nil | ||||
| 	} | ||||
| 	out := new(NodeFeatures) | ||||
| 	in.DeepCopyInto(out) | ||||
| 	return out | ||||
| } | ||||
|  | ||||
| // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. | ||||
| func (in *NodeList) DeepCopyInto(out *NodeList) { | ||||
| 	*out = *in | ||||
| @@ -2990,6 +3011,11 @@ func (in *NodeStatus) DeepCopyInto(out *NodeStatus) { | ||||
| 			(*in)[i].DeepCopyInto(&(*out)[i]) | ||||
| 		} | ||||
| 	} | ||||
| 	if in.Features != nil { | ||||
| 		in, out := &in.Features, &out.Features | ||||
| 		*out = new(NodeFeatures) | ||||
| 		(*in).DeepCopyInto(*out) | ||||
| 	} | ||||
| 	return | ||||
| } | ||||
|  | ||||
|   | ||||
							
								
								
									
										31
									
								
								pkg/generated/openapi/zz_generated.openapi.go
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										31
									
								
								pkg/generated/openapi/zz_generated.openapi.go
									
									
									
										generated
									
									
									
								
							| @@ -479,6 +479,7 @@ func GetOpenAPIDefinitions(ref common.ReferenceCallback) map[string]common.OpenA | ||||
| 		"k8s.io/api/core/v1.NodeConfigSource":                                                                   schema_k8sio_api_core_v1_NodeConfigSource(ref), | ||||
| 		"k8s.io/api/core/v1.NodeConfigStatus":                                                                   schema_k8sio_api_core_v1_NodeConfigStatus(ref), | ||||
| 		"k8s.io/api/core/v1.NodeDaemonEndpoints":                                                                schema_k8sio_api_core_v1_NodeDaemonEndpoints(ref), | ||||
| 		"k8s.io/api/core/v1.NodeFeatures":                                                                       schema_k8sio_api_core_v1_NodeFeatures(ref), | ||||
| 		"k8s.io/api/core/v1.NodeList":                                                                           schema_k8sio_api_core_v1_NodeList(ref), | ||||
| 		"k8s.io/api/core/v1.NodeProxyOptions":                                                                   schema_k8sio_api_core_v1_NodeProxyOptions(ref), | ||||
| 		"k8s.io/api/core/v1.NodeRuntimeHandler":                                                                 schema_k8sio_api_core_v1_NodeRuntimeHandler(ref), | ||||
| @@ -24412,6 +24413,26 @@ func schema_k8sio_api_core_v1_NodeDaemonEndpoints(ref common.ReferenceCallback) | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| func schema_k8sio_api_core_v1_NodeFeatures(ref common.ReferenceCallback) common.OpenAPIDefinition { | ||||
| 	return common.OpenAPIDefinition{ | ||||
| 		Schema: spec.Schema{ | ||||
| 			SchemaProps: spec.SchemaProps{ | ||||
| 				Description: "NodeFeatures describes the set of features implemented by the CRI implementation. The features contained in the NodeFeatures should depend only on the cri implementation independent of runtime handlers.", | ||||
| 				Type:        []string{"object"}, | ||||
| 				Properties: map[string]spec.Schema{ | ||||
| 					"supplementalGroupsPolicy": { | ||||
| 						SchemaProps: spec.SchemaProps{ | ||||
| 							Description: "SupplementalGroupsPolicy is set to true if the runtime supports SupplementalGroupsPolicy and ContainerUser.", | ||||
| 							Type:        []string{"boolean"}, | ||||
| 							Format:      "", | ||||
| 						}, | ||||
| 					}, | ||||
| 				}, | ||||
| 			}, | ||||
| 		}, | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| func schema_k8sio_api_core_v1_NodeList(ref common.ReferenceCallback) common.OpenAPIDefinition { | ||||
| 	return common.OpenAPIDefinition{ | ||||
| 		Schema: spec.Schema{ | ||||
| @@ -24530,7 +24551,7 @@ func schema_k8sio_api_core_v1_NodeRuntimeHandlerFeatures(ref common.ReferenceCal | ||||
| 	return common.OpenAPIDefinition{ | ||||
| 		Schema: spec.Schema{ | ||||
| 			SchemaProps: spec.SchemaProps{ | ||||
| 				Description: "NodeRuntimeHandlerFeatures is a set of runtime features.", | ||||
| 				Description: "NodeRuntimeHandlerFeatures is a set of features implemented by the runtime handler.", | ||||
| 				Type:        []string{"object"}, | ||||
| 				Properties: map[string]spec.Schema{ | ||||
| 					"recursiveReadOnlyMounts": { | ||||
| @@ -24979,11 +25000,17 @@ func schema_k8sio_api_core_v1_NodeStatus(ref common.ReferenceCallback) common.Op | ||||
| 							}, | ||||
| 						}, | ||||
| 					}, | ||||
| 					"features": { | ||||
| 						SchemaProps: spec.SchemaProps{ | ||||
| 							Description: "Features describes the set of features implemented by the CRI implementation.", | ||||
| 							Ref:         ref("k8s.io/api/core/v1.NodeFeatures"), | ||||
| 						}, | ||||
| 					}, | ||||
| 				}, | ||||
| 			}, | ||||
| 		}, | ||||
| 		Dependencies: []string{ | ||||
| 			"k8s.io/api/core/v1.AttachedVolume", "k8s.io/api/core/v1.ContainerImage", "k8s.io/api/core/v1.NodeAddress", "k8s.io/api/core/v1.NodeCondition", "k8s.io/api/core/v1.NodeConfigStatus", "k8s.io/api/core/v1.NodeDaemonEndpoints", "k8s.io/api/core/v1.NodeRuntimeHandler", "k8s.io/api/core/v1.NodeSystemInfo", "k8s.io/apimachinery/pkg/api/resource.Quantity"}, | ||||
| 			"k8s.io/api/core/v1.AttachedVolume", "k8s.io/api/core/v1.ContainerImage", "k8s.io/api/core/v1.NodeAddress", "k8s.io/api/core/v1.NodeCondition", "k8s.io/api/core/v1.NodeConfigStatus", "k8s.io/api/core/v1.NodeDaemonEndpoints", "k8s.io/api/core/v1.NodeFeatures", "k8s.io/api/core/v1.NodeRuntimeHandler", "k8s.io/api/core/v1.NodeSystemInfo", "k8s.io/apimachinery/pkg/api/resource.Quantity"}, | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
|   | ||||
							
								
								
									
										2440
									
								
								staging/src/k8s.io/api/core/v1/generated.pb.go
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										2440
									
								
								staging/src/k8s.io/api/core/v1/generated.pb.go
									
									
									
										generated
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @@ -2598,6 +2598,15 @@ message NodeDaemonEndpoints { | ||||
|   optional DaemonEndpoint kubeletEndpoint = 1; | ||||
| } | ||||
|  | ||||
| // NodeFeatures describes the set of features implemented by the CRI implementation. | ||||
| // The features contained in the NodeFeatures should depend only on the cri implementation | ||||
| // independent of runtime handlers. | ||||
| message NodeFeatures { | ||||
|   // SupplementalGroupsPolicy is set to true if the runtime supports SupplementalGroupsPolicy and ContainerUser. | ||||
|   // +optional | ||||
|   optional bool supplementalGroupsPolicy = 1; | ||||
| } | ||||
|  | ||||
| // NodeList is the whole list of all Nodes which have been registered with master. | ||||
| message NodeList { | ||||
|   // Standard list metadata. | ||||
| @@ -2628,7 +2637,7 @@ message NodeRuntimeHandler { | ||||
|   optional NodeRuntimeHandlerFeatures features = 2; | ||||
| } | ||||
|  | ||||
| // NodeRuntimeHandlerFeatures is a set of runtime features. | ||||
| // NodeRuntimeHandlerFeatures is a set of features implemented by the runtime handler. | ||||
| message NodeRuntimeHandlerFeatures { | ||||
|   // RecursiveReadOnlyMounts is set to true if the runtime handler supports RecursiveReadOnlyMounts. | ||||
|   // +featureGate=RecursiveReadOnlyMounts | ||||
| @@ -2803,6 +2812,11 @@ message NodeStatus { | ||||
|   // +optional | ||||
|   // +listType=atomic | ||||
|   repeated NodeRuntimeHandler runtimeHandlers = 12; | ||||
|  | ||||
|   // Features describes the set of features implemented by the CRI implementation. | ||||
|   // +featureGate=SupplementalGroupsPolicy | ||||
|   // +optional | ||||
|   optional NodeFeatures features = 13; | ||||
| } | ||||
|  | ||||
| // NodeSystemInfo is a set of ids/uuids to uniquely identify the node. | ||||
|   | ||||
| @@ -5871,7 +5871,7 @@ type NodeDaemonEndpoints struct { | ||||
| 	KubeletEndpoint DaemonEndpoint `json:"kubeletEndpoint,omitempty" protobuf:"bytes,1,opt,name=kubeletEndpoint"` | ||||
| } | ||||
|  | ||||
| // NodeRuntimeHandlerFeatures is a set of runtime features. | ||||
| // NodeRuntimeHandlerFeatures is a set of features implemented by the runtime handler. | ||||
| type NodeRuntimeHandlerFeatures struct { | ||||
| 	// RecursiveReadOnlyMounts is set to true if the runtime handler supports RecursiveReadOnlyMounts. | ||||
| 	// +featureGate=RecursiveReadOnlyMounts | ||||
| @@ -5894,6 +5894,15 @@ type NodeRuntimeHandler struct { | ||||
| 	Features *NodeRuntimeHandlerFeatures `json:"features,omitempty" protobuf:"bytes,2,opt,name=features"` | ||||
| } | ||||
|  | ||||
| // NodeFeatures describes the set of features implemented by the CRI implementation. | ||||
| // The features contained in the NodeFeatures should depend only on the cri implementation | ||||
| // independent of runtime handlers. | ||||
| type NodeFeatures struct { | ||||
| 	// SupplementalGroupsPolicy is set to true if the runtime supports SupplementalGroupsPolicy and ContainerUser. | ||||
| 	// +optional | ||||
| 	SupplementalGroupsPolicy *bool `json:"supplementalGroupsPolicy,omitempty" protobuf:"varint,1,opt,name=supplementalGroupsPolicy"` | ||||
| } | ||||
|  | ||||
| // NodeSystemInfo is a set of ids/uuids to uniquely identify the node. | ||||
| type NodeSystemInfo struct { | ||||
| 	// MachineID reported by the node. For unique machine identification | ||||
| @@ -6036,6 +6045,10 @@ type NodeStatus struct { | ||||
| 	// +optional | ||||
| 	// +listType=atomic | ||||
| 	RuntimeHandlers []NodeRuntimeHandler `json:"runtimeHandlers,omitempty" protobuf:"bytes,12,rep,name=runtimeHandlers"` | ||||
| 	// Features describes the set of features implemented by the CRI implementation. | ||||
| 	// +featureGate=SupplementalGroupsPolicy | ||||
| 	// +optional | ||||
| 	Features *NodeFeatures `json:"features,omitempty" protobuf:"bytes,13,rep,name=features"` | ||||
| } | ||||
|  | ||||
| type UniqueVolumeName string | ||||
|   | ||||
| @@ -1206,6 +1206,15 @@ func (NodeDaemonEndpoints) SwaggerDoc() map[string]string { | ||||
| 	return map_NodeDaemonEndpoints | ||||
| } | ||||
|  | ||||
| var map_NodeFeatures = map[string]string{ | ||||
| 	"":                         "NodeFeatures describes the set of features implemented by the CRI implementation. The features contained in the NodeFeatures should depend only on the cri implementation independent of runtime handlers.", | ||||
| 	"supplementalGroupsPolicy": "SupplementalGroupsPolicy is set to true if the runtime supports SupplementalGroupsPolicy and ContainerUser.", | ||||
| } | ||||
|  | ||||
| func (NodeFeatures) SwaggerDoc() map[string]string { | ||||
| 	return map_NodeFeatures | ||||
| } | ||||
|  | ||||
| var map_NodeList = map[string]string{ | ||||
| 	"":         "NodeList is the whole list of all Nodes which have been registered with master.", | ||||
| 	"metadata": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", | ||||
| @@ -1236,7 +1245,7 @@ func (NodeRuntimeHandler) SwaggerDoc() map[string]string { | ||||
| } | ||||
|  | ||||
| var map_NodeRuntimeHandlerFeatures = map[string]string{ | ||||
| 	"":                        "NodeRuntimeHandlerFeatures is a set of runtime features.", | ||||
| 	"":                        "NodeRuntimeHandlerFeatures is a set of features implemented by the runtime handler.", | ||||
| 	"recursiveReadOnlyMounts": "RecursiveReadOnlyMounts is set to true if the runtime handler supports RecursiveReadOnlyMounts.", | ||||
| 	"userNamespaces":          "UserNamespaces is set to true if the runtime handler supports UserNamespaces, including for volumes.", | ||||
| } | ||||
| @@ -1304,6 +1313,7 @@ var map_NodeStatus = map[string]string{ | ||||
| 	"volumesAttached": "List of volumes that are attached to the node.", | ||||
| 	"config":          "Status of the config assigned to the node via the dynamic Kubelet config feature.", | ||||
| 	"runtimeHandlers": "The available runtime handlers.", | ||||
| 	"features":        "Features describes the set of features implemented by the CRI implementation.", | ||||
| } | ||||
|  | ||||
| func (NodeStatus) SwaggerDoc() map[string]string { | ||||
|   | ||||
| @@ -2716,6 +2716,27 @@ func (in *NodeDaemonEndpoints) DeepCopy() *NodeDaemonEndpoints { | ||||
| 	return out | ||||
| } | ||||
|  | ||||
| // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. | ||||
| func (in *NodeFeatures) DeepCopyInto(out *NodeFeatures) { | ||||
| 	*out = *in | ||||
| 	if in.SupplementalGroupsPolicy != nil { | ||||
| 		in, out := &in.SupplementalGroupsPolicy, &out.SupplementalGroupsPolicy | ||||
| 		*out = new(bool) | ||||
| 		**out = **in | ||||
| 	} | ||||
| 	return | ||||
| } | ||||
|  | ||||
| // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeFeatures. | ||||
| func (in *NodeFeatures) DeepCopy() *NodeFeatures { | ||||
| 	if in == nil { | ||||
| 		return nil | ||||
| 	} | ||||
| 	out := new(NodeFeatures) | ||||
| 	in.DeepCopyInto(out) | ||||
| 	return out | ||||
| } | ||||
|  | ||||
| // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. | ||||
| func (in *NodeList) DeepCopyInto(out *NodeList) { | ||||
| 	*out = *in | ||||
| @@ -2988,6 +3009,11 @@ func (in *NodeStatus) DeepCopyInto(out *NodeStatus) { | ||||
| 			(*in)[i].DeepCopyInto(&(*out)[i]) | ||||
| 		} | ||||
| 	} | ||||
| 	if in.Features != nil { | ||||
| 		in, out := &in.Features, &out.Features | ||||
| 		*out = new(NodeFeatures) | ||||
| 		(*in).DeepCopyInto(*out) | ||||
| 	} | ||||
| 	return | ||||
| } | ||||
|  | ||||
|   | ||||
| @@ -165,6 +165,9 @@ | ||||
|           "userNamespaces": true | ||||
|         } | ||||
|       } | ||||
|     ] | ||||
|     ], | ||||
|     "features": { | ||||
|       "supplementalGroupsPolicy": true | ||||
|     } | ||||
|   } | ||||
| } | ||||
							
								
								
									
										
											BIN
										
									
								
								staging/src/k8s.io/api/testdata/HEAD/core.v1.Node.pb
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								staging/src/k8s.io/api/testdata/HEAD/core.v1.Node.pb
									
									
									
									
										vendored
									
									
								
							
										
											Binary file not shown.
										
									
								
							| @@ -92,6 +92,8 @@ status: | ||||
|   daemonEndpoints: | ||||
|     kubeletEndpoint: | ||||
|       Port: 1 | ||||
|   features: | ||||
|     supplementalGroupsPolicy: true | ||||
|   images: | ||||
|   - names: | ||||
|     - namesValue | ||||
|   | ||||
| @@ -0,0 +1,39 @@ | ||||
| /* | ||||
| Copyright The Kubernetes Authors. | ||||
|  | ||||
| Licensed under the Apache License, Version 2.0 (the "License"); | ||||
| you may not use this file except in compliance with the License. | ||||
| You may obtain a copy of the License at | ||||
|  | ||||
|     http://www.apache.org/licenses/LICENSE-2.0 | ||||
|  | ||||
| Unless required by applicable law or agreed to in writing, software | ||||
| distributed under the License is distributed on an "AS IS" BASIS, | ||||
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||
| See the License for the specific language governing permissions and | ||||
| limitations under the License. | ||||
| */ | ||||
|  | ||||
| // Code generated by applyconfiguration-gen. DO NOT EDIT. | ||||
|  | ||||
| package v1 | ||||
|  | ||||
| // NodeFeaturesApplyConfiguration represents a declarative configuration of the NodeFeatures type for use | ||||
| // with apply. | ||||
| type NodeFeaturesApplyConfiguration struct { | ||||
| 	SupplementalGroupsPolicy *bool `json:"supplementalGroupsPolicy,omitempty"` | ||||
| } | ||||
|  | ||||
| // NodeFeaturesApplyConfiguration constructs a declarative configuration of the NodeFeatures type for use with | ||||
| // apply. | ||||
| func NodeFeatures() *NodeFeaturesApplyConfiguration { | ||||
| 	return &NodeFeaturesApplyConfiguration{} | ||||
| } | ||||
|  | ||||
| // WithSupplementalGroupsPolicy sets the SupplementalGroupsPolicy field in the declarative configuration to the given value | ||||
| // and returns the receiver, so that objects can be built by chaining "With" function invocations. | ||||
| // If called multiple times, the SupplementalGroupsPolicy field is set to the value of the last call. | ||||
| func (b *NodeFeaturesApplyConfiguration) WithSupplementalGroupsPolicy(value bool) *NodeFeaturesApplyConfiguration { | ||||
| 	b.SupplementalGroupsPolicy = &value | ||||
| 	return b | ||||
| } | ||||
| @@ -37,6 +37,7 @@ type NodeStatusApplyConfiguration struct { | ||||
| 	VolumesAttached []AttachedVolumeApplyConfiguration     `json:"volumesAttached,omitempty"` | ||||
| 	Config          *NodeConfigStatusApplyConfiguration    `json:"config,omitempty"` | ||||
| 	RuntimeHandlers []NodeRuntimeHandlerApplyConfiguration `json:"runtimeHandlers,omitempty"` | ||||
| 	Features        *NodeFeaturesApplyConfiguration        `json:"features,omitempty"` | ||||
| } | ||||
|  | ||||
| // NodeStatusApplyConfiguration constructs a declarative configuration of the NodeStatus type for use with | ||||
| @@ -167,3 +168,11 @@ func (b *NodeStatusApplyConfiguration) WithRuntimeHandlers(values ...*NodeRuntim | ||||
| 	} | ||||
| 	return b | ||||
| } | ||||
|  | ||||
| // WithFeatures sets the Features field in the declarative configuration to the given value | ||||
| // and returns the receiver, so that objects can be built by chaining "With" function invocations. | ||||
| // If called multiple times, the Features field is set to the value of the last call. | ||||
| func (b *NodeStatusApplyConfiguration) WithFeatures(value *NodeFeaturesApplyConfiguration) *NodeStatusApplyConfiguration { | ||||
| 	b.Features = value | ||||
| 	return b | ||||
| } | ||||
|   | ||||
| @@ -6103,6 +6103,12 @@ var schemaYAML = typed.YAMLObject(`types: | ||||
|       type: | ||||
|         namedType: io.k8s.api.core.v1.DaemonEndpoint | ||||
|       default: {} | ||||
| - name: io.k8s.api.core.v1.NodeFeatures | ||||
|   map: | ||||
|     fields: | ||||
|     - name: supplementalGroupsPolicy | ||||
|       type: | ||||
|         scalar: boolean | ||||
| - name: io.k8s.api.core.v1.NodeRuntimeHandler | ||||
|   map: | ||||
|     fields: | ||||
| @@ -6231,6 +6237,9 @@ var schemaYAML = typed.YAMLObject(`types: | ||||
|       type: | ||||
|         namedType: io.k8s.api.core.v1.NodeDaemonEndpoints | ||||
|       default: {} | ||||
|     - name: features | ||||
|       type: | ||||
|         namedType: io.k8s.api.core.v1.NodeFeatures | ||||
|     - name: images | ||||
|       type: | ||||
|         list: | ||||
|   | ||||
| @@ -806,6 +806,8 @@ func ForKind(kind schema.GroupVersionKind) interface{} { | ||||
| 		return &applyconfigurationscorev1.NodeConfigStatusApplyConfiguration{} | ||||
| 	case corev1.SchemeGroupVersion.WithKind("NodeDaemonEndpoints"): | ||||
| 		return &applyconfigurationscorev1.NodeDaemonEndpointsApplyConfiguration{} | ||||
| 	case corev1.SchemeGroupVersion.WithKind("NodeFeatures"): | ||||
| 		return &applyconfigurationscorev1.NodeFeaturesApplyConfiguration{} | ||||
| 	case corev1.SchemeGroupVersion.WithKind("NodeRuntimeHandler"): | ||||
| 		return &applyconfigurationscorev1.NodeRuntimeHandlerApplyConfiguration{} | ||||
| 	case corev1.SchemeGroupVersion.WithKind("NodeRuntimeHandlerFeatures"): | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Shingo Omura
					Shingo Omura