serviceprototypinglab / helmqa Goto Github PK
View Code? Open in Web Editor NEWQuality assurance for Helm charts and chart repositories
Quality assurance for Helm charts and chart repositories
HelmQA - Quality and consistency checks of Helm charts (originally: "similaritymetrics" to compare Helm charts semantically) -------------------------------------------------------------------------------------------------------------------- Installation: Clone the repository: git clone https://github.com/serviceprototypinglab/helmqa && cd helmqa Run the following to create and activate a virtual environment and install all the dependencies: virtualenv .env && source .env/bin/activate && pip install -r requirements.txt And to start the server: chmod +x helmqa.sh && ./helmqa.sh From Docker container: Build: docker build -t helmqa . Run in client (CI/CD) mode with web service interface (see API description below): docker run -ti -p 5000:5000 helmqa Run in debug and research modes: Add -s (shell), -r (research) Run in local Helm chart check mode: add -v $PWD:/charts -------------------------------------------------------------------------------------------------------------------- This directory is a collection of Helm chart analysis scripts and reference data produced by the scripts on KubeApps Hub in May 2018. The following list describes which files are used how. The marker '#' stands for files generated by scripts which are not meant to be in the repository. README this file INSTALL rudimentary installation instructions TODO requests for improvements Dockerfile container image build script main.py example showing how to download and extract charts bucket.py downloads all stable charts -> _charts, _templates authorset.py produces maintainer-chart relationship data authorsets_*.json # structured maintainer and chart data extracted from charts authorsets.{dot,png,pdf} # visual representation of relationship graphs authorsets-heatmap.png # correlation graph authorsets-email.csv # hand-crafted data containing issue per email distribution authorsets-email-plot.py plot graph about email issue distribution changerates.py analyses longtermtracking and extracts change rate data (including 4 sub commands: tracking, extraction of key metrics, accumulation, unique charts identification) changerates.csv # change rate timeline across all charts changerates-charts.txt # change rate/activity per chart changerates-allscripts.sh convenience script to post-process changerages.csv changerates-plot.py produce changerate rates + accumulated changerate figures changerates-plot.png # figure changerates-total.csv # accumulated data containing number of charts timeline changerates-total-plot.png # figure dupestats.py statistics about duplicate values dupestats_charts.json # structured chart/template data extracted from charts rewriter.py rewrite helm charts and produce diffs with suggestions lintersummary.sh statistics about helm linting learnvariability.py learn about variable values -> chartsubs.yaml applyvariability.py apply knowledge base to update descriptors/rendered templates chartsubs.yaml # knowledge base variabilitystats.py statistics about knowledge base variabilitydupestats.csv # hand-crafted data containing output from variable/duplicate stats variabilitydupestats-plot.py plot graph about variability and duplicate value distribution helmqaweb.py serve web reports helmqaweb.sh convenience start script which serves off generated data _* # sample and reference data (if present) .log # log files (if present) -------------------------------------------------------------------------------------------------------------------- API Reference: By git repository: Description: You can call by git repository URL. API responds with status, code, and list of issues with the chart(s) in the repository. API call: - helmqa.com/livecheck?repo={git repository url} Parameters: repo: URL to git repository where Helm charts are stored An example of an API call: helmqa.com/livecheck?repo=https://github.com/mohammed-ali-1/zhaw-charts.git
HelmQA webserver is not able to access a private bitbucket repo (at the moment), and i do not want HelmQA webserver to know my passwords or keys.
So there is the need to push a archive (zip, tgz) to HelmQA webserver or to get rid of the webserver and to execute helmQA as a cli within the CI/CD server (and to point it to a local (work-)dir or archive file).
Cross-chart statistic is for most developers not very important (the second goal, if at all) - i guess.
The primary goal of your tool should be to report concrete acionable tasks - so a cli without the "cross chart / cross repo"-stuff is welcomed. In a alpine-based docker image as a dockerized command line tool. Will end up in a very small docker image size - i guess less then 30 MB (compared to your 659MB docker image).
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.