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

Merge nvidia-gpu-device-plugin and nvidia-device-plugin. #19545

Open
wants to merge 17 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 6 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions deploy/addons/gpu/nvidia-gpu-device-plugin.yaml.tmpl
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,9 @@ spec:
- image: {{.CustomRegistries.NvidiaDevicePlugin | default .ImageRepository | default .Registries.NvidiaDevicePlugin }}{{.Images.NvidiaDevicePlugin}}
command: ["/usr/bin/nvidia-gpu-device-plugin", "-logtostderr"]
name: nvidia-gpu-device-plugin
env:
- name: FAIL_ON_INIT_ERROR
value: "false"
resources:
requests:
cpu: 50m
Expand Down
4 changes: 4 additions & 0 deletions pkg/addons/addons.go
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,8 @@ func preStartMessages(name, value string) {
out.Styled(style.Warning, "The ambassador addon has stopped working as of v1.23.0, for more details visit: https:/datawire/ambassador-operator/issues/73")
case "olm":
out.Styled(style.Warning, "The OLM addon has stopped working, for more details visit: https:/operator-framework/operator-lifecycle-manager/issues/2534")
case "nvidia-device-plugin":
out.Styled(style.Warning, "The nvidia-device-plugin addon is deprecated and it's functionality is merged inside of nvidia-gpu-device-plugin addon. It will be removed in a future release. Please use the nvidia-gpu-device-plugin addon instead. For more details, visit: https:/kubernetes/minikube/issues/19114.")
}
}

Expand Down Expand Up @@ -163,6 +165,8 @@ func Deprecations(name string) (bool, string, string) {
return true, "metrics-server", "using metrics-server addon, heapster is deprecated"
case "efk":
return true, "", "The current images used in the efk addon contain Log4j vulnerabilities, the addon will be disabled until images are updated, see: https:/kubernetes/minikube/issues/15280"
case "nvidia-device-plugin":
return true, "nvidia-gpu-device-plugin", "The nvidia-device-plugin addon is deprecated and it's functionality is merged inside of nvidia-gpu-device-plugin addon. It will be removed in a future release. Please use the nvidia-gpu-device-plugin addon instead. For more details, visit: https:/kubernetes/minikube/issues/19114."
}
return false, "", ""
}
Expand Down
8 changes: 4 additions & 4 deletions pkg/addons/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -131,10 +131,9 @@ var Addons = []*Addon{
callbacks: []setFn{EnableOrDisableAddon},
},
{
name: "nvidia-gpu-device-plugin",
set: SetBool,
validations: []setFn{isKVMDriverForNVIDIA},
callbacks: []setFn{EnableOrDisableAddon},
name: "nvidia-gpu-device-plugin",
set: SetBool,
callbacks: []setFn{EnableOrDisableAddon},
},
{
name: "olm",
Expand Down Expand Up @@ -235,6 +234,7 @@ var Addons = []*Addon{
callbacks: []setFn{EnableOrDisableAddon},
},
{
// The nvidia-device-plugin addon is deprecated and it's functionality is merged inside of nvidia-gpu-device-plugin addon.
name: "nvidia-device-plugin",
set: SetBool,
callbacks: []setFn{EnableOrDisableAddon},
Expand Down
2 changes: 1 addition & 1 deletion pkg/minikube/cruntime/docker.go
Original file line number Diff line number Diff line change
Expand Up @@ -581,7 +581,7 @@ func (r *Docker) configureDocker(driver string) error {
StorageDriver: "overlay2",
}
if r.GPUs {
assets.Addons["nvidia-device-plugin"].EnableByDefault()
assets.Addons["nvidia-gpu-device-plugin"].EnableByDefault()
daemonConfig.DefaultRuntime = "nvidia"
runtimes := &dockerDaemonRuntimes{}
runtimes.Nvidia.Path = "/usr/bin/nvidia-container-runtime"
Expand Down
3 changes: 2 additions & 1 deletion site/content/en/docs/tutorials/nvidia.md
Original file line number Diff line number Diff line change
Expand Up @@ -59,8 +59,9 @@ to expose GPUs with `--driver=kvm`. Please don't mix these instructions.

- Install NVIDIA's device plugin:
```shell
minikube addons enable nvidia-device-plugin
minikube addons enable nvidia-gpu-device-plugin
```
NOTE: `nvidia-device-plugin` addon has been deprecated and it's functionality is merged inside of `nvidia-gpu-device-plugin` addon.
{{% /tab %}}
{{% tab kvm %}}
## Using the kvm driver
Expand Down
8 changes: 4 additions & 4 deletions test/integration/addons_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@ func TestAddons(t *testing.T) {
// so we override that here to let minikube auto-detect appropriate cgroup driver
os.Setenv(constants.MinikubeForceSystemdEnv, "")

args := append([]string{"start", "-p", profile, "--wait=true", "--memory=4000", "--alsologtostderr", "--addons=registry", "--addons=metrics-server", "--addons=volumesnapshots", "--addons=csi-hostpath-driver", "--addons=gcp-auth", "--addons=cloud-spanner", "--addons=inspektor-gadget", "--addons=storage-provisioner-rancher", "--addons=nvidia-device-plugin", "--addons=yakd", "--addons=volcano"}, StartArgs()...)
args := append([]string{"start", "-p", profile, "--wait=true", "--memory=4000", "--alsologtostderr", "--addons=registry", "--addons=metrics-server", "--addons=volumesnapshots", "--addons=csi-hostpath-driver", "--addons=gcp-auth", "--addons=cloud-spanner", "--addons=inspektor-gadget", "--addons=storage-provisioner-rancher", "--addons=nvidia-gpu-device-plugin", "--addons=yakd", "--addons=volcano"}, StartArgs()...)
if !NoneDriver() { // none driver does not support ingress
args = append(args, "--addons=ingress", "--addons=ingress-dns")
}
Expand Down Expand Up @@ -1054,15 +1054,15 @@ func validateDisablingAddonOnNonExistingCluster(ctx context.Context, t *testing.
}
}

// validateNvidiaDevicePlugin tests the nvidia-device-plugin addon by ensuring the pod comes up and the addon disables
// validateNvidiaDevicePlugin tests the nvidia-gpu-device-plugin addon by ensuring the pod comes up and the addon disables
func validateNvidiaDevicePlugin(ctx context.Context, t *testing.T, profile string) {
defer PostMortemLogs(t, profile)

if _, err := PodWait(ctx, t, profile, "kube-system", "name=nvidia-device-plugin-ds", Minutes(6)); err != nil {
t.Fatalf("failed waiting for nvidia-device-plugin-ds pod: %v", err)
}
if rr, err := Run(t, exec.CommandContext(ctx, Target(), "addons", "disable", "nvidia-device-plugin", "-p", profile)); err != nil {
t.Errorf("failed to disable nvidia-device-plugin: args %q : %v", rr.Command(), err)
if rr, err := Run(t, exec.CommandContext(ctx, Target(), "addons", "disable", "nvidia-gpu-device-plugin", "-p", profile)); err != nil {
t.Errorf("failed to disable nvidia-gpu-device-plugin: args %q : %v", rr.Command(), err)
}
}

Expand Down