CodeCompass icon indicating copy to clipboard operation
CodeCompass copied to clipboard

Support for YAML and Helm chart static analysis

Open intjftw opened this issue 3 years ago • 4 comments

This is a new language plugin to extend CC with. Ericsson products have been transforming their projects from monolithic to service oriented software architecture so they are now built up of microservices. Since projects are very large and sprawling, there is a wide demand in Ericsson for a static analysis tool that will help understanding the network of microservices within a project.

This plugin consists of

  • a model of various db tables
  • a parser that integrates yaml-cpp: it is capable of analyzing YAML files, and finding microservices in Helm charts. It comes with a relation collector to find connection points between previously found microservices.
  • a web service: there are some basic table-form visualizations of YAML data, and more elaborate visualizations of microservices.

I'll keep expanding this plugin with the huge amount of feature requests that I received from Ericsson, but I think that the plugin can be officially added to CC at this point with the current feature set.

The basis of this work was done by @rizwankadhar as his BSc thesis. Thanks Rizwan for your work!

intjftw avatar Sep 16 '22 16:09 intjftw

(Just a side note: if we are embedding business logic into this module that is specific to specific YAML schemae (I see Helm mentioned in the original post) then maybe calling the plugin "YAML Parser" is a bit too generic.)

whisperity avatar Nov 30 '22 13:11 whisperity

(Just a side note: if we are embedding business logic into this module that is specific to specific YAML schemae (I see Helm mentioned in the original post) then maybe calling the plugin "YAML Parser" is a bit too generic.)

The plugin became more and more specific to Helm and Kubernetes from the initial point of plain YAML parsing. I plan to rename it to "Microservice plugin" or something like that.

intjftw avatar Nov 30 '22 14:11 intjftw

I added the most important modifications to the PR. It is now in a state where parsing is correct and thorough enough to provide useful functionality. I removed the WIP flag, as the PR is ready for review.

intjftw avatar Feb 16 '23 11:02 intjftw

Resolved merge conflicts in 71047a8a5ef555785672fffb280b460a308fe8d1.

mcserep avatar Aug 10 '23 12:08 mcserep