Skip to content

Commit ab3cec0

Browse files
authored
Merge pull request kubernetes#130447 from pohly/dra-device-taints
device taints and tolerations (KEP 5055)
2 parents 1039822 + 9f16159 commit ab3cec0

File tree

149 files changed

+18668
-806
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

149 files changed

+18668
-806
lines changed

api/discovery/aggregated_v2.json

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1915,6 +1915,26 @@
19151915
"watch"
19161916
]
19171917
},
1918+
{
1919+
"resource": "devicetaintrules",
1920+
"responseKind": {
1921+
"group": "",
1922+
"kind": "DeviceTaintRule",
1923+
"version": ""
1924+
},
1925+
"scope": "Cluster",
1926+
"singularResource": "devicetaintrule",
1927+
"verbs": [
1928+
"create",
1929+
"delete",
1930+
"deletecollection",
1931+
"get",
1932+
"list",
1933+
"patch",
1934+
"update",
1935+
"watch"
1936+
]
1937+
},
19181938
{
19191939
"resource": "resourceclaims",
19201940
"responseKind": {

api/discovery/apis__resource.k8s.io__v1alpha3.json

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,23 @@
2020
"watch"
2121
]
2222
},
23+
{
24+
"kind": "DeviceTaintRule",
25+
"name": "devicetaintrules",
26+
"namespaced": false,
27+
"singularName": "devicetaintrule",
28+
"storageVersionHash": "DJ3UJ0fj8MI=",
29+
"verbs": [
30+
"create",
31+
"delete",
32+
"deletecollection",
33+
"get",
34+
"list",
35+
"patch",
36+
"update",
37+
"watch"
38+
]
39+
},
2340
{
2441
"kind": "ResourceClaim",
2542
"name": "resourceclaims",

api/openapi-spec/swagger.json

Lines changed: 962 additions & 24 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

api/openapi-spec/v3/apis__resource.k8s.io__v1alpha3_openapi.json

Lines changed: 1729 additions & 238 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

api/openapi-spec/v3/apis__resource.k8s.io__v1beta1_openapi.json

Lines changed: 112 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

cmd/kube-controller-manager/app/controllermanager.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -588,6 +588,7 @@ func NewControllerDescriptors() map[string]*ControllerDescriptor {
588588
// feature gated
589589
register(newStorageVersionGarbageCollectorControllerDescriptor())
590590
register(newResourceClaimControllerDescriptor())
591+
register(newDeviceTaintEvictionControllerDescriptor())
591592
register(newLegacyServiceAccountTokenCleanerControllerDescriptor())
592593
register(newValidatingAdmissionPolicyStatusControllerDescriptor())
593594
register(newTaintEvictionControllerDescriptor())

cmd/kube-controller-manager/app/controllermanager_test.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,7 @@ func TestControllerNamesDeclaration(t *testing.T) {
9393
names.EphemeralVolumeController,
9494
names.StorageVersionGarbageCollectorController,
9595
names.ResourceClaimController,
96+
names.DeviceTaintEvictionController,
9697
names.LegacyServiceAccountTokenCleanerController,
9798
names.ValidatingAdmissionPolicyStatusController,
9899
names.ServiceCIDRController,

cmd/kube-controller-manager/app/core.go

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ import (
4141
"k8s.io/klog/v2"
4242
"k8s.io/kubernetes/cmd/kube-controller-manager/names"
4343
pkgcontroller "k8s.io/kubernetes/pkg/controller"
44+
"k8s.io/kubernetes/pkg/controller/devicetainteviction"
4445
endpointcontroller "k8s.io/kubernetes/pkg/controller/endpoint"
4546
"k8s.io/kubernetes/pkg/controller/garbagecollector"
4647
namespacecontroller "k8s.io/kubernetes/pkg/controller/namespace"
@@ -231,6 +232,32 @@ func startTaintEvictionController(ctx context.Context, controllerContext Control
231232
return nil, true, nil
232233
}
233234

235+
func newDeviceTaintEvictionControllerDescriptor() *ControllerDescriptor {
236+
return &ControllerDescriptor{
237+
name: names.DeviceTaintEvictionController,
238+
initFunc: startDeviceTaintEvictionController,
239+
requiredFeatureGates: []featuregate.Feature{
240+
// TODO update app.TestFeatureGatedControllersShouldNotDefineAliases when removing these feature gates.
241+
features.DynamicResourceAllocation,
242+
features.DRADeviceTaints,
243+
},
244+
}
245+
}
246+
247+
func startDeviceTaintEvictionController(ctx context.Context, controllerContext ControllerContext, controllerName string) (controller.Interface, bool, error) {
248+
deviceTaintEvictionController := devicetainteviction.New(
249+
controllerContext.ClientBuilder.ClientOrDie(names.DeviceTaintEvictionController),
250+
controllerContext.InformerFactory.Core().V1().Pods(),
251+
controllerContext.InformerFactory.Resource().V1beta1().ResourceClaims(),
252+
controllerContext.InformerFactory.Resource().V1beta1().ResourceSlices(),
253+
controllerContext.InformerFactory.Resource().V1alpha3().DeviceTaintRules(),
254+
controllerContext.InformerFactory.Resource().V1beta1().DeviceClasses(),
255+
controllerName,
256+
)
257+
go deviceTaintEvictionController.Run(ctx)
258+
return nil, true, nil
259+
}
260+
234261
func newCloudNodeLifecycleControllerDescriptor() *ControllerDescriptor {
235262
return &ControllerDescriptor{
236263
name: cpnames.CloudNodeLifecycleController,

cmd/kube-controller-manager/names/controller_names.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@ const (
6969
NodeIpamController = "node-ipam-controller"
7070
NodeLifecycleController = "node-lifecycle-controller"
7171
TaintEvictionController = "taint-eviction-controller"
72+
DeviceTaintEvictionController = "device-taint-eviction-controller"
7273
PersistentVolumeBinderController = "persistentvolume-binder-controller"
7374
PersistentVolumeAttachDetachController = "persistentvolume-attach-detach-controller"
7475
PersistentVolumeExpanderController = "persistentvolume-expander-controller"

pkg/api/testing/defaulting_test.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -135,14 +135,20 @@ func TestDefaulting(t *testing.T) {
135135
{Group: "rbac.authorization.k8s.io", Version: "v1", Kind: "ClusterRoleBindingList"}: {},
136136
{Group: "rbac.authorization.k8s.io", Version: "v1", Kind: "RoleBinding"}: {},
137137
{Group: "rbac.authorization.k8s.io", Version: "v1", Kind: "RoleBindingList"}: {},
138+
{Group: "resource.k8s.io", Version: "v1alpha3", Kind: "DeviceTaintRule"}: {},
139+
{Group: "resource.k8s.io", Version: "v1alpha3", Kind: "DeviceTaintRuleList"}: {},
138140
{Group: "resource.k8s.io", Version: "v1alpha3", Kind: "ResourceClaim"}: {},
139141
{Group: "resource.k8s.io", Version: "v1alpha3", Kind: "ResourceClaimList"}: {},
140142
{Group: "resource.k8s.io", Version: "v1alpha3", Kind: "ResourceClaimTemplate"}: {},
141143
{Group: "resource.k8s.io", Version: "v1alpha3", Kind: "ResourceClaimTemplateList"}: {},
144+
{Group: "resource.k8s.io", Version: "v1alpha3", Kind: "ResourceSlice"}: {},
145+
{Group: "resource.k8s.io", Version: "v1alpha3", Kind: "ResourceSliceList"}: {},
142146
{Group: "resource.k8s.io", Version: "v1beta1", Kind: "ResourceClaim"}: {},
143147
{Group: "resource.k8s.io", Version: "v1beta1", Kind: "ResourceClaimList"}: {},
144148
{Group: "resource.k8s.io", Version: "v1beta1", Kind: "ResourceClaimTemplate"}: {},
145149
{Group: "resource.k8s.io", Version: "v1beta1", Kind: "ResourceClaimTemplateList"}: {},
150+
{Group: "resource.k8s.io", Version: "v1beta1", Kind: "ResourceSlice"}: {},
151+
{Group: "resource.k8s.io", Version: "v1beta1", Kind: "ResourceSliceList"}: {},
146152
{Group: "admissionregistration.k8s.io", Version: "v1alpha1", Kind: "ValidatingAdmissionPolicy"}: {},
147153
{Group: "admissionregistration.k8s.io", Version: "v1alpha1", Kind: "ValidatingAdmissionPolicyList"}: {},
148154
{Group: "admissionregistration.k8s.io", Version: "v1alpha1", Kind: "ValidatingAdmissionPolicyBinding"}: {},

0 commit comments

Comments
 (0)