Code Monkey home page Code Monkey logo

helmqa's Introduction

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's People

Contributors

mohammed-ali-1 avatar spiogit avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

helmqa's Issues

Ability to scan private git repositories (e.g. bitbucket onpremise)

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).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.