Quality assurance for Helm charts and chart repositories
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.dockerignore
.gitignore
ChangeLog.refactoring
Dockerfile
INSTALL
README
TODO
applyvariability.py
authorset.py
authorsets-email-plot.py - refactoring as proposed and implemented by Mohammed Al-Ameen Aug 7, 2018
bucket.py
changerates-allscripts.sh
changerates-plot.py
changerates.py
chartloader.py
combinevardupestats.py
dupestats.py
gitloader-clonestats.py
gitloader.py
helmchartsduplicatefinder.py
helmqa.sh
helmqaweb.py
helmqaweb.sh
learnvariability.py
lintersummary.sh
main.py
requirements.txt
rewriter-all.sh
rewriter.py
test_authorset.py
test_bucket.py
test_dupestats.py
variabilitydupestats-plot.py
variabilitystats.py

README

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:
docker run -ti -p 5000:5000 helmqa
--------------------------------------------------------------------------------------------------------------------
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