This repository is a future home for Konveyor's static code analysis Rulesets. It is intended to contain future rules to aid static code analysis as well as issues shared by subject matter experts to aid creation of richer Rulesets.
- Intended for Rules compatible with konveyor/analyzer-lsp
The Konveyor project is working to consolidate learnings from modernization engagements into codified rules to help future users. We are actively asking anyone willing to share to open an issue and describe a problem they encountered bringing a legacy application to Kubernetes.
- We are interested to learn from you, anything you find interesting to share is worthy of opening an issue to help the community.
- Examples to show a few highlights of areas to consider:
- .Net framework to .Net
- Legacy Java to Kubernetes
- Traditional Application Server (Java EE/Jakarta EE) to Quarkus or Spring Boot
- Netflix OSS to Kubernetes
- Distributed Cache setups in VM to running on Kubernetes
- Service discovery (Consul/Eureka/Zookeeper) to Kubernetes
- Session Management
- Configuration Management patterns in K8s
- HA (native clustering) to Kubernetes
- Coupling with APIs from other container platforms to Kubernetes
- And anything else you feel is important (NodeJS, Python, Go, etc...)
- Let's say you recently updated a legacy Java application that was using a distributed cache and you brought it to Kubernetes but noticed that the new environment caused the discovery mechanism to break, so after bringing it to Kubernetes you needed to update to a different library for discovery of other endpoints for the cache.
- The above would be the exact kind of information we are asking you to open an issue about. Include as much or as little information as you have time. If you can supply more information of library names, versions, error messages, or even samples of source code that would be excellent...yet even if time does not permit and the issue is simpler and just a few sentences describing the problem that would be of great use to the community. We will investigate deeper and look to incorporate into future Rulesets.
For those interested, we have a user group focused on improving the migration experience which is helping to share information on problems and solutions from their modernization engagements.
- Please consider joining the email group: [email protected]
- Or chat with us in kubernetes.slack.com: (Get a slack invite via: https://slack.k8s.io/)
- #konveyor: General questions and discussions
- #konveyor-dev: Konveyor development related discussions
- Konveyor began as a project delivering Java code analysis via Windup with a large collection of Java related Rulesets
- The Konveyor community is working to expand analysis support to multiple languages with the first deliverable targeting a Summer 2023 Release with analysis leveraging a new approach based on reusing Language Servers that implement the Language Server Protocol
- Konveyor's new Analysis engine is located at: konveyor/analyzer-lsp
- As of ~Summer 2023 it is planned to support:
- Java via eclipse/eclipse.jdt.ls with a custom LSP extension: konveyor/java-analyzer-bundle
- Go via golang/tools/gopls
- Post Summer 2023
- .Net: A C# analyzer is next priority with language support via OmniSharp/csharp-language-server-protocol
- As of ~Summer 2023 it is planned to support:
- Spring 2023:
- Until the Summer 2023 Release is available, Konveyor will continue to rely on Windup for Java analysis
- Rules written with the Windup syntax will remain compatible with the new konveyor/analyzer-lsp via conversion tool being developed at fabianvf/windup-rulesets-yaml/blob/master/main.go
- Until the Summer 2023 Release is available, Konveyor will continue to rely on Windup for Java analysis
Refer to Konveyor's Code of Conduct here.