Skip to content

Commit 4fcef7a

Browse files
committed
Add schemas for chart values files
1 parent 6220608 commit 4fcef7a

File tree

8 files changed

+466
-17
lines changed

8 files changed

+466
-17
lines changed

.github/workflows/release.yml

Lines changed: 10 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,3 @@
1-
name: Release Charts
2-
3-
on:
4-
push:
5-
branches:
6-
- main
7-
81
jobs:
92
release:
103
permissions:
@@ -21,12 +14,16 @@ jobs:
2114
git config user.name "$GITHUB_ACTOR"
2215
git config user.email "[email protected]"
2316
24-
- name: Install Helm
25-
uses: azure/setup-helm@v4
26-
27-
- name: Run chart-releaser
28-
uses: helm/[email protected]
29-
env:
17+
- env:
3018
CR_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
19+
name: Run chart-releaser
20+
uses: helm/[email protected]
3121
with:
3222
skip_existing: true
23+
24+
name: Release Charts
25+
26+
on:
27+
push:
28+
branches:
29+
- main

.idea/watcherTasks.xml

Lines changed: 25 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

bin/generate-schemas

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
#!/usr/bin/env bash
2+
set -eo pipefail
3+
4+
BASE_DIR="$(dirname $(dirname "$(readlink -f "$0")"))"
5+
CHARTS_DIR="${BASE_DIR}/charts"
6+
7+
for CHART in $(ls "${CHARTS_DIR}"); do
8+
echo "Generating schema for ${CHART}..."
9+
helm schema \
10+
-input "${CHARTS_DIR}/${CHART}/values.yaml" \
11+
-noAdditionalProperties true \
12+
-output "${CHARTS_DIR}/${CHART}/values.schema.json" \
13+
-schemaRoot.description "Schema for ${CHART} helm chart values" \
14+
-schemaRoot.title "${CHART} helm values schema"
15+
done

charts/ghost/values.schema.json

Lines changed: 134 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,134 @@
1+
{
2+
"$schema": "https://json-schema.org/draft/2020-12/schema",
3+
"additionalProperties": false,
4+
"description": "Schema for ghost helm chart values",
5+
"properties": {
6+
"extraEnvVars": {
7+
"additionalProperties": false,
8+
"properties": {},
9+
"type": "object"
10+
},
11+
"image": {
12+
"additionalProperties": false,
13+
"properties": {
14+
"pullPolicy": {
15+
"type": "string"
16+
},
17+
"repository": {
18+
"type": "string"
19+
},
20+
"tag": {
21+
"type": "string"
22+
}
23+
},
24+
"type": "object"
25+
},
26+
"ingress": {
27+
"additionalProperties": false,
28+
"properties": {
29+
"annotations": {
30+
"additionalProperties": false,
31+
"properties": {},
32+
"type": "object"
33+
},
34+
"enabled": {
35+
"type": "boolean"
36+
},
37+
"hosts": {
38+
"type": "array"
39+
}
40+
},
41+
"type": "object"
42+
},
43+
"mail": {
44+
"additionalProperties": false,
45+
"properties": {
46+
"from": {
47+
"type": "string"
48+
},
49+
"host": {
50+
"type": "string"
51+
},
52+
"password": {
53+
"type": "string"
54+
},
55+
"port": {
56+
"type": "string"
57+
},
58+
"secure": {
59+
"type": "boolean"
60+
},
61+
"user": {
62+
"type": "string"
63+
}
64+
},
65+
"type": "object"
66+
},
67+
"mysql": {
68+
"additionalProperties": false,
69+
"properties": {
70+
"database": {
71+
"type": "string"
72+
},
73+
"image": {
74+
"additionalProperties": false,
75+
"properties": {
76+
"pullPolicy": {
77+
"type": "string"
78+
},
79+
"repository": {
80+
"type": "string"
81+
},
82+
"tag": {
83+
"type": "integer"
84+
}
85+
},
86+
"type": "object"
87+
},
88+
"password": {
89+
"type": "string"
90+
},
91+
"persistence": {
92+
"additionalProperties": false,
93+
"properties": {
94+
"size": {
95+
"type": "string"
96+
}
97+
},
98+
"type": "object"
99+
},
100+
"resources": {
101+
"additionalProperties": false,
102+
"properties": {},
103+
"type": "object"
104+
},
105+
"rootPassword": {
106+
"type": "string"
107+
},
108+
"user": {
109+
"type": "string"
110+
}
111+
},
112+
"type": "object"
113+
},
114+
"persistence": {
115+
"additionalProperties": false,
116+
"properties": {
117+
"size": {
118+
"type": "string"
119+
}
120+
},
121+
"type": "object"
122+
},
123+
"resources": {
124+
"additionalProperties": false,
125+
"properties": {},
126+
"type": "object"
127+
},
128+
"url": {
129+
"type": "string"
130+
}
131+
},
132+
"title": "ghost helm values schema",
133+
"type": "object"
134+
}

charts/listmonk/values.schema.json

Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
{
2+
"$schema": "https://json-schema.org/draft/2020-12/schema",
3+
"additionalProperties": false,
4+
"description": "Schema for listmonk helm chart values",
5+
"properties": {
6+
"ingress": {
7+
"additionalProperties": false,
8+
"properties": {
9+
"annotations": {
10+
"additionalProperties": false,
11+
"properties": {},
12+
"type": "object"
13+
},
14+
"className": {
15+
"type": "string"
16+
},
17+
"enabled": {
18+
"type": "boolean"
19+
},
20+
"host": {
21+
"type": "string"
22+
},
23+
"tls": {
24+
"type": "array"
25+
}
26+
},
27+
"type": "object"
28+
},
29+
"listmonk": {
30+
"additionalProperties": false,
31+
"properties": {
32+
"image": {
33+
"additionalProperties": false,
34+
"properties": {
35+
"repository": {
36+
"type": "string"
37+
},
38+
"tag": {
39+
"type": "string"
40+
}
41+
},
42+
"type": "object"
43+
},
44+
"replicas": {
45+
"type": "integer"
46+
}
47+
},
48+
"type": "object"
49+
},
50+
"postgres": {
51+
"additionalProperties": false,
52+
"properties": {
53+
"database": {
54+
"type": "string"
55+
},
56+
"enabled": {
57+
"type": "boolean"
58+
},
59+
"hostname": {
60+
"type": "string"
61+
},
62+
"image": {
63+
"additionalProperties": false,
64+
"properties": {
65+
"repository": {
66+
"type": "string"
67+
},
68+
"tag": {
69+
"type": "string"
70+
}
71+
},
72+
"type": "object"
73+
},
74+
"password": {
75+
"type": "string"
76+
},
77+
"resources": {
78+
"additionalProperties": false,
79+
"properties": {},
80+
"type": "object"
81+
},
82+
"user": {
83+
"type": "string"
84+
}
85+
},
86+
"type": "object"
87+
}
88+
},
89+
"title": "listmonk helm values schema",
90+
"type": "object"
91+
}

charts/listmonk/values.yaml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
ingress:
22
# -- annotations for the ingress
33
annotations: {}
4-
# -- enable the ingress
5-
enabled: false
64
# -- ingress class name
75
className: ""
6+
# -- enable the ingress
7+
enabled: false
88
# -- host for the ingress
99
host: listmonk.local
1010
# -- tls configuration for the ingress
@@ -18,12 +18,12 @@ listmonk:
1818
# -- the number of listmonk deployment replicas
1919
replicas: 1
2020
postgres:
21+
# -- the postgres database name
22+
database: listmonk
2123
# -- enable postgres
2224
enabled: true
2325
# -- when not enabled, the external postgres service hostname is required
2426
hostname: ""
25-
# -- the postgres database name
26-
database: listmonk
2727
image:
2828
# -- the postgres image repository
2929
repository: postgres

0 commit comments

Comments
 (0)