aboutsummaryrefslogtreecommitdiffstats
path: root/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'README.md')
-rw-r--r--README.md76
1 files changed, 76 insertions, 0 deletions
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..bb506c0
--- /dev/null
+++ b/README.md
@@ -0,0 +1,76 @@
+# helm-client-validator
+
+Docker container with Spring-Boot application for validating helm charts.
+
+#### Development
+To build image use:
+```
+make build-docker
+```
+or
+```
+make build-docker-local
+```
+
+To modify helm versions:
+
+1. Modify `Dockerfile`, add desired version in line:
+```shell script
+ENV HELM_SUPPORTED_VERSIONS=3.5.2,3.4.1,3.3.4,2.17.0,2.14.3
+```
+2. In local development, edit file: `Makefile` and add desired version in lines:
+```shell script
+build-docker-local:
+ export HELM_SUPPORTED_VERSIONS=3.5.2,3.4.1,3.3.4,2.17.0
+```
+If you want to clean downloaded files run: `make clean-local-files`
+
+In order to run docker container locally use:
+```
+make run-docker
+```
+Example charts are located in the following directory:
+```
+./charts
+```
+
+## Available endpoints
+* Chart validation:
+
+ `http://localhost:[PORT]/validate`
+
+#### Request
+This should be a POST with `multipart/form-data` encoding with the following fields:
+
+ "versionDesired": [String] - helm version, which will be used for validation. If param not provided then version will be taken from apiVersion
+ "file": [FILE] - helm chart to be validated packed in .txz format
+ "isLinted": ["true"/"false"] - if false, there will be an attempt to render the chart without linting it first
+ "isStrictLinted": ["true"/"false"] - linting should be strict or not
+
+It is possible to provide helm version in three ways:
+1. Select exact version from supported versions e.g. "3.4.1"
+2. Select major helm version e.g. "v2" for Helm 2 or "v3" for Helm 3. In this case app will use the latest supported version.
+3. In case when field version is not present in request then app gets helm version from "apiVersion" field located in the main chart (Chart.yaml).
+Mapping rules:
+
+apiVersion: v1 -> the latest available helm 2
+
+apiVersion: v2 -> the latest available helm 3
+
+#### Response
+Json with the following fields:
+
+ "valid": ["true"/"false"] - passed linting without errors
+ "deployable": ["true"/"false"] - passed template rendering without errors
+ "lintErrors": [ARRAY OF STRINGS] - linting errors
+ "lintWarnings": [ARRAY OF STRINGS] - linting warnings
+ "renderErrors": [ARRAY OF STRINGS] - rendering errors
+
+* Supported versions [GET]
+
+ `http://localhost:[PORT]/versions`
+
+#### Response
+Following Json:
+
+ [ARRAY OF STRINGS] - supported helm versions