knative / client

Knative developer experience, docs, reference Knative CLI implementation
Apache License 2.0
354 stars 261 forks source link

[48h Knative] KServe plugin #1866

Open rhuss opened 1 year ago

rhuss commented 1 year ago

We are still in the progress of setting up the hackathon, so we are still working on the concrete format. This issue is a prototype, feel free to comment on the format, too, below in the comments

πŸ‘‹ Hello awesome contributor!

This is a mini-project for the upcoming 48-hour Knative hackathon designed to boost contributions to the Knative Client project. For more details, check out Issue #1842.

🎯 Why and What

Welcome to Knative, a platform for serverless computing on Kubernetes. The Knative CLI, known as kn, simplifies the management of Knative resources. KServe is an AI model inference layer on top of Kubernetes and Knative. The objective of this mini-project is to start a kn plugin to simplify the management of KServe's InferenceService.

This project aims to fill a gap in the Knative and KServe ecosystem that allows a typed user experience for working with KServe from the CLI. The immediate goal for this hackathon is to create the basic structure of the plugin and implement at least one operational command, such as kn kserve iservice create. Please take a look at the comments below for more details.

πŸ›  Difficulty Level

Intermediate

πŸ‘₯ Recommended Team Size

1-3

πŸŽ‰ Expected Outcome

Success is defined as the ability to create a workingInferenceService on an existing KServe setup using the new kn plugin.

πŸŽ“ Your Key Takeaways

In addition to gaining hands-on experience with kn and learning how to scaffold a new CLI plugin for it, you'll also acquire the skills to set up a Knative development environment on your own machine. This project will provide exposure to various areas relevant to Knative.

🀝 Mentor

@rhuss

πŸŽ₯ 5-Minute Video Pitch

TBD

πŸ“ Additional Information

Some experience with Go programming is required, and a basic understanding of Knative and Kubernetes is beneficial.

🌐 Entrypoints

  1. Clone the sample kn plugin from GitHub.
  2. Use the kn-box repository to set up Knative and Istio on Minikube or Kind.
  3. Familiarize yourself with the KServe documentation to understand the essentials of InferenceService.

πŸ“‹ Organizer Checklist

rhuss commented 1 year ago

To initiate this task, fork the kn-plugin-sample. Your feedback on its usability and any issues you encounter will contribute to its improvement.

The task involves implementing a new iservice command that will manage KServe's InferenceService custom resources. The specific aim for this hackathon is to enable the creation of an InferenceService through a new command, incorporating all necessary options as command-line arguments.

Completion is achieved when the following command is operational:

kn kserve iservice create my-iservice \
 --storage-uri=gs://kfserving-examples/models/sklearn/1.0/model \
 --format=sklearn

For further guidance, the kn-plugin-service-log plugin can serve as a useful reference. It is recommended to separate the logic for creating the Golang struct for InferenceService to facilitate future updates.

For any support or queries, the Slack #knative-48h channel is available.

sharmaansh21 commented 10 months ago

/assign

spolti commented 10 months ago

@rhuss this link returns 404 https://github.com/knative-extensions/kn-service-log

rhuss commented 10 months ago

ah, sorry. The link has been fixed. In the meantime we've created a dedicated repository https://github.com/knative-48h/kn-plugin-kserve for the Hackathon. Let me know if you would like to be added to the story it's still open.