Skip to content

Commit 23ed1a3

Browse files
CopilotCrow-Control
andcommitted
Add docs-schema-mapping.yaml for documentation-schema relationships (#44956)
Created a comprehensive mapping file that documents the relationships between markdown documentation files and their corresponding JSON schema files in the common chart library. ## Changes - **Added `charts/library/common/docs-schema-mapping.yaml`**: YAML mapping showing which docs files relate to which schema files - Direct 1:1 mappings (e.g., `docs/addons.md` → `schemas/addons/addons.json`) - One-to-many relationships where documentation applies to multiple schemas (e.g., `docs/container/env.md` → both `schemas/workload/podSpec/containers/env.json` and `schemas/workload/podSpec/initContainers/env.json`) - Lists of schemas without documentation and docs without schemas for completeness ## Structure The mapping is organized hierarchically by category: - Top-level configurations (addons, certificate, configmap, hpa, etc.) - CNPG resources - Container configurations - Ingress and middleware configurations - Persistence types - Service types - Workload types This provides a single reference for maintaining consistency between documentation and validation schemas. <!-- START COPILOT CODING AGENT TIPS --> --- 💬 We'd love your input! Share your thoughts on Copilot coding agent in our [2 minute survey](https://gh.io/copilot-coding-agent-survey). --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: PrivatePuffin <7613738+PrivatePuffin@users.noreply.github.com>
1 parent a7ba3ee commit 23ed1a3

File tree

1 file changed

+358
-0
lines changed

1 file changed

+358
-0
lines changed
Lines changed: 358 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,358 @@
1+
# Mapping of documentation files to their related schema files
2+
# Format:
3+
# docs/<path>.md -> schemas/<path>.json (or related schema paths)
4+
5+
# Top-level documentation and schemas
6+
docs/addons.md:
7+
- schemas/addons/addons.json
8+
- schemas/addons/codeserver/container/env.json
9+
- schemas/addons/gluetun/container/env.json
10+
- schemas/addons/tailscale/container/env.json
11+
- schemas/addons/tailscale/tailscale.json
12+
13+
docs/certificate.md:
14+
- schemas/certificate.json
15+
16+
docs/configmap.md:
17+
- schemas/configmap.json
18+
19+
docs/containerOptions.md:
20+
- schemas/containerOptions.json
21+
22+
docs/credentials.md:
23+
- schemas/credentials.json
24+
25+
docs/fallbackDefaults.md:
26+
- schemas/global/fallbackDefaults.json
27+
28+
docs/global.md:
29+
- schemas/global/global.json
30+
- schemas/global/fallbackDefaults.json
31+
32+
docs/hpa.md:
33+
- schemas/hpa.json
34+
35+
docs/imagePullSecret.md:
36+
- schemas/imagePullSecret.json
37+
- schemas/images.json
38+
39+
docs/metrics.md:
40+
- schemas/metrics.json
41+
42+
docs/networkpolicy.md:
43+
- schemas/networkpolicy.json
44+
45+
docs/notes.md:
46+
- schemas/notes.json
47+
48+
docs/podDisruptionBudget.md:
49+
- schemas/podDisruptionBudget.json
50+
51+
docs/podOptions.md:
52+
- schemas/podOptions/podOptions.json
53+
- schemas/podOptions/dnsConfig.json
54+
- schemas/podOptions/hostAliases.json
55+
- schemas/podOptions/nodeSelector.json
56+
- schemas/podOptions/tolerations.json
57+
- schemas/podOptions/topologySpreadConstraints.json
58+
59+
docs/priorityClass.md:
60+
- schemas/priorityClass.json
61+
62+
docs/rbac.md:
63+
- schemas/rbac.json
64+
65+
docs/resources.md:
66+
- schemas/workload/podSpec/containers/resources.json
67+
- schemas/workload/podSpec/initContainers/resources.json
68+
69+
docs/route.md:
70+
- schemas/route.json
71+
72+
docs/secret.md:
73+
- schemas/secret.json
74+
75+
docs/securityContext.md:
76+
- schemas/workload/podSpec/containers/securityContext.json
77+
- schemas/workload/podSpec/initContainers/securityContext.json
78+
79+
docs/serviceAccount.md:
80+
- schemas/serviceAccount.json
81+
82+
docs/storageClass.md:
83+
- schemas/storageClass.json
84+
85+
docs/volumeSnapshot.md:
86+
- schemas/volumeSnapshots.json
87+
88+
docs/volumeSnapshotClass.md:
89+
- schemas/volumeSnapshotClass.json
90+
91+
docs/vpa.md:
92+
- schemas/vpa.json
93+
94+
docs/webhook.md:
95+
- schemas/webhook.json
96+
97+
# CNPG (CloudNativePG) documentation and schemas
98+
docs/cnpg/cnpg.md:
99+
- schemas/cnpg/cnpg.json
100+
101+
docs/cnpg/cluster.md:
102+
- schemas/cnpg/cluster.json
103+
- schemas/cnpg/cluster/cluster.json
104+
- schemas/cnpg/cluster/certificates.json
105+
- schemas/cnpg/cluster/initdb.json
106+
- schemas/cnpg/cluster/postgresql.json
107+
- schemas/cnpg/cluster/primaryUpdateMethod.json
108+
- schemas/cnpg/cluster/primaryUpdateStrategy.json
109+
110+
# Container documentation and schemas
111+
docs/container/index.md:
112+
- schemas/containerOptions.json
113+
114+
docs/container/args.md:
115+
- schemas/workload/podSpec/containers/args.json
116+
- schemas/workload/podSpec/initContainers/args.json
117+
118+
docs/container/command.md:
119+
- schemas/workload/podSpec/containers/command.json
120+
- schemas/workload/podSpec/initContainers/command.json
121+
122+
docs/container/env.md:
123+
- schemas/workload/podSpec/containers/env.json
124+
- schemas/workload/podSpec/initContainers/env.json
125+
126+
docs/container/envFrom.md:
127+
- schemas/workload/podSpec/containers/envFrom.json
128+
- schemas/workload/podSpec/initContainers/envFrom.json
129+
130+
docs/container/fixedEnv.md:
131+
- schemas/workload/podSpec/containers/fixedEnv.json
132+
133+
docs/container/lifecycle.md:
134+
- schemas/workload/podSpec/containers/lifecycle.json
135+
136+
docs/container/probes.md:
137+
- schemas/workload/podSpec/containers/probes.json
138+
- schemas/workload/podSpec/initContainers/probes.json
139+
140+
docs/container/resources.md:
141+
- schemas/workload/podSpec/containers/resources.json
142+
- schemas/workload/podSpec/initContainers/resources.json
143+
144+
docs/container/securityContext.md:
145+
- schemas/workload/podSpec/containers/securityContext.json
146+
- schemas/workload/podSpec/initContainers/securityContext.json
147+
148+
docs/container/termination.md:
149+
- schemas/workload/container/termination.json
150+
151+
# Ingress documentation and schemas
152+
docs/ingress/index.md:
153+
- schemas/ingress/ingress.json
154+
155+
docs/ingress/certManager.md:
156+
- schemas/ingress/certManager.json
157+
158+
docs/ingress/homepage.md:
159+
- schemas/ingress/integrations/homepage.json
160+
161+
docs/ingress/traefik.md:
162+
- schemas/ingress/traefik.json
163+
164+
# Middleware documentation and schemas
165+
docs/middlewares/index.md:
166+
- schemas/ingressMiddlewares/ingressMiddlewares.json
167+
- schemas/ingressMiddlewares/middlewares/traefik/index.json
168+
169+
docs/middlewares/traefik/index.md:
170+
- schemas/ingressMiddlewares/middlewares/traefik/index.json
171+
172+
docs/middlewares/traefik/add-prefix.md:
173+
- schemas/ingressMiddlewares/middlewares/traefik/add-prefix.json
174+
175+
docs/middlewares/traefik/basic-auth.md:
176+
- schemas/ingressMiddlewares/middlewares/traefik/basic-auth.json
177+
178+
docs/middlewares/traefik/buffering.md:
179+
- schemas/ingressMiddlewares/middlewares/traefik/buffering.json
180+
181+
docs/middlewares/traefik/chain.md:
182+
- schemas/ingressMiddlewares/middlewares/traefik/chain.json
183+
184+
docs/middlewares/traefik/compress.md:
185+
- schemas/ingressMiddlewares/middlewares/traefik/compress.json
186+
187+
docs/middlewares/traefik/content-type.md:
188+
- schemas/ingressMiddlewares/middlewares/traefik/content-type.json
189+
190+
docs/middlewares/traefik/forward-auth.md:
191+
- schemas/ingressMiddlewares/middlewares/traefik/forward-auth.json
192+
193+
docs/middlewares/traefik/headers.md:
194+
- schemas/ingressMiddlewares/middlewares/traefik/headers.json
195+
196+
docs/middlewares/traefik/ip-allow-list.md:
197+
- schemas/ingressMiddlewares/middlewares/traefik/ip-allow-list.json
198+
199+
docs/middlewares/traefik/plugin-bouncer.md:
200+
- schemas/ingressMiddlewares/middlewares/traefik/plugin-bouncer.json
201+
202+
docs/middlewares/traefik/plugin-geoblock.md:
203+
- schemas/ingressMiddlewares/middlewares/traefik/plugin-geoblock.json
204+
205+
docs/middlewares/traefik/plugin-mod-security.md:
206+
- schemas/ingressMiddlewares/middlewares/traefik/plugin-mod-security.json
207+
208+
docs/middlewares/traefik/plugin-real-ip.md:
209+
- schemas/ingressMiddlewares/middlewares/traefik/plugin-real-ip.json
210+
211+
docs/middlewares/traefik/plugin-rewrite-response-headers.md:
212+
- schemas/ingressMiddlewares/middlewares/traefik/plugin-rewrite-response-headers.json
213+
214+
docs/middlewares/traefik/plugin-theme-park.md:
215+
- schemas/ingressMiddlewares/middlewares/traefik/plugin-theme-park.json
216+
217+
docs/middlewares/traefik/rate-limit.md:
218+
- schemas/ingressMiddlewares/middlewares/traefik/rate-limit.json
219+
220+
docs/middlewares/traefik/redirect-regex.md:
221+
- schemas/ingressMiddlewares/middlewares/traefik/redirect-regex.json
222+
223+
docs/middlewares/traefik/redirect-scheme.md:
224+
- schemas/ingressMiddlewares/middlewares/traefik/redirect-scheme.json
225+
226+
docs/middlewares/traefik/replace-path-regex.md:
227+
- schemas/ingressMiddlewares/middlewares/traefik/replace-path-regex.json
228+
229+
docs/middlewares/traefik/replace-path.md:
230+
- schemas/ingressMiddlewares/middlewares/traefik/replace-path.json
231+
232+
docs/middlewares/traefik/retry.md:
233+
- schemas/ingressMiddlewares/middlewares/traefik/retry.json
234+
235+
docs/middlewares/traefik/strip-prefix-regex.md:
236+
- schemas/ingressMiddlewares/middlewares/traefik/strip-prefix-regex.json
237+
238+
docs/middlewares/traefik/strip-prefix.md:
239+
- schemas/ingressMiddlewares/middlewares/traefik/strip-prefix.json
240+
241+
# Persistence documentation and schemas
242+
docs/persistence/index.md:
243+
- schemas/persistence/persistence.json
244+
245+
docs/persistence/configmap.md:
246+
- schemas/persistence/configmap.json
247+
248+
docs/persistence/device.md:
249+
- schemas/persistence/device.json
250+
251+
docs/persistence/emptyDir.md:
252+
- schemas/persistence/emptyDir.json
253+
254+
docs/persistence/hostPath.md:
255+
- schemas/persistence/hostPath.json
256+
257+
docs/persistence/iscsi.md:
258+
- schemas/persistence/iscsi.json
259+
260+
docs/persistence/nfs.md:
261+
- schemas/persistence/nfs.json
262+
263+
docs/persistence/secret.md:
264+
- schemas/persistence/secret.json
265+
266+
docs/persistence/pvc-vct/index.md:
267+
- schemas/persistence/pvc-vct/index.json
268+
269+
docs/persistence/pvc-vct/static-custom.md:
270+
- schemas/persistence/pvc-vct/static-custom.json
271+
272+
docs/persistence/pvc-vct/static-nfs.md:
273+
- schemas/persistence/pvc-vct/static-nfs.json
274+
275+
docs/persistence/pvc-vct/static-smb.md:
276+
- schemas/persistence/pvc-vct/static-smb.json
277+
278+
# Service documentation and schemas
279+
docs/service/index.md:
280+
- schemas/service/service.json
281+
282+
docs/service/ClusterIP.md:
283+
- schemas/service/ClusterIP.json
284+
285+
docs/service/ExternalIP.md:
286+
- schemas/service/ExternalIP.json
287+
288+
docs/service/ExternalName.md:
289+
- schemas/service/ExternalName.json
290+
291+
docs/service/LoadBalancer.md:
292+
- schemas/service/LoadBalancer.json
293+
294+
docs/service/NodePort.md:
295+
- schemas/service/NodePort.json
296+
297+
docs/service/ports.md:
298+
- schemas/service/ports.json
299+
300+
docs/service/integrations/traefik.md:
301+
- schemas/service/integrations/traefik.json
302+
303+
# Workload documentation and schemas
304+
docs/workload/index.md:
305+
- schemas/workload/workload.json
306+
307+
docs/workload/cronjob.md:
308+
- schemas/workload/cronjob.json
309+
310+
docs/workload/daemonset.md:
311+
- schemas/workload/daemonset.json
312+
313+
docs/workload/deployment.md:
314+
- schemas/workload/deployment.json
315+
316+
docs/workload/job.md:
317+
- schemas/workload/job.json
318+
319+
docs/workload/statefulset.md:
320+
- schemas/workload/statefulset.json
321+
322+
# Schema-only files (no corresponding docs)
323+
# These schemas exist but don't have dedicated documentation files
324+
schemas_without_docs:
325+
- schemas/TZ.json
326+
- schemas/chartContext.json
327+
- schemas/clickhouse.json
328+
- schemas/dependencies.json
329+
- schemas/diagnosticMode.json
330+
- schemas/extraTpl.json
331+
- schemas/image.json
332+
- schemas/mariadb.json
333+
- schemas/mongodb.json
334+
- schemas/namespace.json
335+
- schemas/operator.json
336+
- schemas/redis.json
337+
- schemas/solr.json
338+
- schemas/special/labels.json
339+
- schemas/special/namespaces.json
340+
- schemas/workload/podSpec/automountServiceAccountToken.json
341+
- schemas/workload/podSpec/defaultSpread.json
342+
- schemas/workload/podSpec/dnsPolicy.json
343+
- schemas/workload/podSpec/enableServiceLinks.json
344+
- schemas/workload/podSpec/hostIPC.json
345+
- schemas/workload/podSpec/hostNetwork.json
346+
- schemas/workload/podSpec/hostPID.json
347+
- schemas/workload/podSpec/hostUsers.json
348+
- schemas/workload/podSpec/priorityClassName.json
349+
- schemas/workload/podSpec/restartPolicy.json
350+
- schemas/workload/podSpec/runtimeClassName.json
351+
- schemas/workload/podSpec/schedulerName.json
352+
- schemas/workload/podSpec/shareProcessNamespace.json
353+
- schemas/workload/terminationGracePeriodSeconds.json
354+
355+
# Docs-only files (no corresponding schemas)
356+
# These docs exist but don't have dedicated schema files
357+
docs_without_schemas:
358+
- docs/index.md # Main index/readme

0 commit comments

Comments
 (0)