-
Notifications
You must be signed in to change notification settings - Fork 4
/
README
92 lines (68 loc) · 4.68 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
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