Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

KEP-3063 and KEP-4381: DRA: "Structured Parameters" as base, "classic" DRA as extension #4585

Merged
merged 3 commits into from
May 2, 2024
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
2,571 changes: 414 additions & 2,157 deletions keps/sig-node/3063-dynamic-resource-allocation/README.md

Large diffs are not rendered by default.

Binary file modified keps/sig-node/3063-dynamic-resource-allocation/components.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
10 changes: 5 additions & 5 deletions keps/sig-node/3063-dynamic-resource-allocation/components.puml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ component Kubernetes {
component apiserver {
file Pod
file ResourceClaim
file PodScheduling
file PodSchedulingContext
}
component scheduler {
component "resource plugin" as k8sresourceplugin
Expand All @@ -29,19 +29,19 @@ controllermanager -[hidden]> kubelet
drivercontroller -[hidden]> driverplugin

Pod <. ResourceClaim: owned by\n(if created from template)
Pod <. PodScheduling: owned by
Pod <. PodSchedulingContext: owned by


Pod -u-> k8sresourceclaimcontroller: read claim template\nfrom Pod spec
ResourceClaim <-u- k8sresourceclaimcontroller: create claim,\nclean up users
ResourceClaim <-u- k8sresourceclaimcontroller: create claim,\nclean up users,\ntrigger deallocation\n
ResourceClaim <-u-> kubelet
k8sresourceplugin <-u-> PodScheduling
k8sresourceplugin <-u-> PodSchedulingContext

Pod <--> scheduler
ResourceClaim <--> k8sresourceplugin

ResourceClaim <-> drivercontroller
pluginmanager <-> driverplugin
resourcemanager <-> driverplugin
PodScheduling <-> drivercontroller
PodSchedulingContext <-> drivercontroller
@enduml
7 changes: 6 additions & 1 deletion keps/sig-node/3063-dynamic-resource-allocation/kep.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ stage: alpha
# The most recent milestone for which work toward delivery of this KEP has been
# done. This can be the current (upcoming) milestone, if it is being actively
# worked on.
latest-milestone: "v1.30"
latest-milestone: "v1.31"

# The milestone at which this feature was, or is targeted to be, at each stage.
milestone:
Expand All @@ -37,6 +37,11 @@ feature-gates:
- kube-controller-manager
- kube-scheduler
- kubelet
- name: DRAControlPlaneController
components:
- kube-apiserver
- kube-controller-manager
- kube-scheduler
disable-supported: true

metrics:
Expand Down
Binary file not shown.
35 changes: 35 additions & 0 deletions keps/sig-node/4381-dra-structured-parameters/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
# Copyright 2022 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.


IMAGES += components.png kubelet.png

all: $(IMAGES)
clean:
rm -f $(IMAGES)

# We use the http://plantuml.com/plantuml server to generate
# images. That way nothing needs to be installed besides Go.
DOC_PLANTUML_GO = $(shell go env GOPATH)/bin/plantuml-go

%.png: %.puml $(DOC_PLANTUML_GO)
$(DOC_PLANTUML_GO) -format png $<

%.svg: %.puml $(DOC_PLANTUML_GO)
$(DOC_PLANTUML_GO) -format svg $<

# Builds the binary in GOPATH/bin. Changing into / first avoids
# modifying the project's go.mod file.
$(DOC_PLANTUML_GO):
cd / && go get github.com/acarlson99/plantuml-go
1,832 changes: 1,657 additions & 175 deletions keps/sig-node/4381-dra-structured-parameters/README.md

Large diffs are not rendered by default.

Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
60 changes: 60 additions & 0 deletions keps/sig-node/4381-dra-structured-parameters/components.puml
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
@startuml
!theme reddress-lightblue
skinparam componentStyle rectangle
left to right direction

cloud "resource driver" as resourcedriver {
component "CRD controller" as drivercrdcontroller
component "kubelet plugin" as driverplugin
}

component Kubernetes {
component apiserver {
component namespaced {
file ResourceClaimTemplate
file Pod
file ResourceClaim
file DriverCRDParameters
file ResourceClaimParameters
}
component "cluster-scoped" as clusterscoped {
file ResourceClass
file ResourceSlice
}
}
component scheduler {
component "resource plugin" as k8sresourceplugin
}
component "controller-manager" as controllermanager {
component "resource claim controller" as k8sresourceclaimcontroller
}
component kubelet {
component "plugin manager" as pluginmanager
component "resource manager" as resourcemanager
}
}

' Kubernetes ---> resourcedriver

ResourceClaimTemplate <. Pod
Pod <. ResourceClaim: owned by\n(if created from template)
ResourceClaim .> ResourceClass
ResourceClaim .> DriverCRDParameters
ResourceClaimParameters .> DriverCRDParameters: generated from,\nowned by

Pod -u-> k8sresourceclaimcontroller
ResourceClaimTemplate -u-> k8sresourceclaimcontroller
ResourceClaim <-u- k8sresourceclaimcontroller: create claim,\nclean up consumers,\ntrigger deallocation
k8sresourceplugin <- ResourceClaimParameters

Pod <--> kubelet
Pod <--> scheduler
ResourceClaim <--> k8sresourceplugin

ResourceClaimParameters <- drivercrdcontroller: create, update
DriverCRDParameters ---> drivercrdcontroller: read
resourcemanager <-> driverplugin: calls gRPC methods,\nreceives stream of\nresource information
ResourceSlice-> k8sresourceplugin: consumes
resourcemanager --> ResourceSlice: publishes
pluginmanager <-> driverplugin: registers
@enduml
9 changes: 7 additions & 2 deletions keps/sig-node/4381-dra-structured-parameters/kep.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ stage: alpha
# The most recent milestone for which work toward delivery of this KEP has been
# done. This can be the current (upcoming) milestone, if it is being actively
# worked on.
latest-milestone: "v1.30"
latest-milestone: "v1.31"

# The milestone at which this feature was, or is targeted to be, at each stage.
milestone:
Expand All @@ -34,7 +34,12 @@ milestone:
# The following PRR answers are required at alpha release
# List the feature gate name and the components for which it must be enabled
feature-gates:
# DynamicResourceAllocation, same as for DRA without this KEP
- name: DynamicResourceAllocation
components:
- kube-apiserver
- kube-controller-manager
- kube-scheduler
- kubelet
disable-supported: true

# The following PRR answers are required at beta release
Expand Down
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.