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

GSoC '25: Extend usage of Konveyor AI to detect and update deprecated Kubernetes API usage in golang applications #644

Open
jwmatthews opened this issue Feb 10, 2025 · 1 comment
Labels
enhancement New feature or request

Comments

@jwmatthews
Copy link
Member

jwmatthews commented Feb 10, 2025

Overview

As part of a CNCF submission for Google Summer of Code `25 we are proposing a project to extend the usage of Konveyor AI applied to detecting and updating deprecated Kubernetes API usage in a golang application. For those who are new to working with Konveyor AI or "kai", kai is a code assistant focused on application modernization that uses data from Konveyor, such as static code analysis and changelogs to generate code suggestions.

Description

You will be responsible for new development, integration, and testing work associated with creating a fully functional demonstration of applying Konveyor AI to the problem of detecting and updating deprecated Kubernetes API usage in a golang application.

As such you will need to develop at a minimum:

  • Golang based sample application that intentionally uses deprecated Kubernetes APIs. In addition, it would be great to identify a few older Kubernetes Operators as additional examples to run Kai against to prove out the concept.
  • Python utility to leverage generative AI techniques to read published deprecated API guides and via help from a LLM generate applicable static code analysis rules Konveyor can run. For an example of existing analysis rules you can see the community's ~2400+ rules in the konveyor/rulesets repository
  • Scripts and documentation to orchestrate the usage of Konveyor AI to highlight the intended workflow
  • Share your findings and experience via a blog post published to https://www.konveyor.io/blog/
  • Attend and present a demonstration of your work in a Konveyor meetup (virtual meeting)
  • Record a video demonstration with voice and share at project culmination

Additionally, we expect you to engage with the Konveyor AI team and help with:

  • Work with team to discover issues as we expand Kai to work with languages beyond Java
  • Surface bugs/issues related to golang support in Kai, you may help to find bugs and share and the team can help to fix blocking issues, or if you are adventurous we can help to guide you in fixing bugs in our analysis tool analyzer-lsp
  • Testing of your use-case via the Kai IDE extension and help to surface any blocking issues

Milestones

  1. Demonstrate ability to convert published deprecated API documentation to Konveyor's static code analysis rules for golang projects
  2. Demonstrate the above created rules run and behave as expected with golang projects as scanned by Kantra
  3. Create a golang sample application that highlights a few deprecated APIs which you will use as the sample application
  4. Create a simple python notebook with langchain to prove the concept of leveraging data from your application and the static code analysis to suggest a code fix
  5. Work with Konveyor AI Team to update kai_analyzer_rpc to allow processing golang applications
  6. Create an integrated test scenario of using Kai with your sample application and custom rules, discover blocking issues and work with team to file issues and help to resolve
  7. [Optional] Add a new validator (agent) to Kai to allow addressing go compiler issues. This is an optional step that would give you exposure to adding a new Agentic workflow into Kai teaching it how to resolve go compiler issues.
  8. Record a full end to end demonstration of Kai detecting deprecated Kubernetes API usage and addressing
  9. Join a Konveyor Meetup virtual meeting and share your demonstration
  10. Submit a blog post sharing your learnings to https://www.konveyor.io/blog

Skills Required

  • Development proficiency with Golang and Python
  • Comfortable bringing up Kubernetes clusters for development testing and deploying applications
  • Comfortable using Kubernetes APIs via golang
  • Desire to learn more about applying Generative AI techniques for coding problems
@jwmatthews jwmatthews changed the title GSoC '25: Explore usage of Konveyor AI to detect and update deprecated Kubernetes API usage in golang applications GSoC '25: Extend usage of Konveyor AI to detect and update deprecated Kubernetes API usage in golang applications Feb 10, 2025
@jwmatthews
Copy link
Member Author

Related to: cncf/mentoring#1382

@jwmatthews jwmatthews added the enhancement New feature or request label Feb 12, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant