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

[Feature] Support for custom runtimeClassName on Milvus instances #14

Open
1 task done
gruberdev opened this issue Sep 17, 2023 · 1 comment
Open
1 task done
Labels
enhancement New feature or request good first issue Good for newcomers

Comments

@gruberdev
Copy link

gruberdev commented Sep 17, 2023

Is there an existing issue for this?

  • I have searched the existing issues

Is your feature request related to a problem? Please describe.

The Milvus operator currently lacks the ability to set a custom RuntimeClassName in the Kubernetes Deployment objects it manages. This parameter is crucial for specifying the container runtime configuration, especially when deploying on GPU nodes that can leverage them with Milvus v2.3 newly introduced GPU indexing acceleration.

Describe the solution you'd like.

To implement this feature, a new field can be added to the ComponentSpec struct to hold the RuntimeClassName.

// +kubebuilder:validation:Optional
RuntimeClassName string `json:"runtimeClassName,omitempty"`

Then, in the updatePodTemplate function within deployment_updater.go, the RuntimeClassName can be set like so:

template.Spec.RuntimeClassName = &yourRuntimeClassName

This change allows users to specify a custom runtime class through the Milvus custom resource, thereby enabling more fine-grained control over the runtime environment.

Describe an alternate solution.

Another approach could be to use a mutating admission webhook that intercepts the Deployment objects created by the Milvus operator. The webhook could then modify the RuntimeClassName field before the object is actually committed to the Kubernetes API server. Albeit suboptimal, it could still be a strategy to implement this feature, given it is not a common configuration.

Anything else? (Additional Context)

Setting a custom RuntimeClassName is particularly important for deployments that require specialized runtime environments, such as those interacting with Kubernetes nodes equipped with GPUs.

@haorenfsa
Copy link
Collaborator

Sry for the delay. It looks good, would you like to contribute a PR ?

@haorenfsa haorenfsa added the enhancement New feature or request label Sep 28, 2023
@haorenfsa haorenfsa added the good first issue Good for newcomers label Dec 5, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request good first issue Good for newcomers
Projects
None yet
Development

No branches or pull requests

2 participants