docs(schema): add descriptions and constraints to values schema (#63) - #115
Open
monrax wants to merge 5 commits into
Open
docs(schema): add descriptions and constraints to values schema (#63)#115monrax wants to merge 5 commits into
monrax wants to merge 5 commits into
Conversation
Document all non-config.* properties in values.schema.json: global, service, inputs, plugins, image, updateStrategy, resources, persistence, probes, PDB, scheduling, serviceAccount, ingress, and mongodb nodes. Raises description coverage from 18 to 223 properties. Config-leaf descriptions (server.conf / datanode.conf) and validation constraints follow in subsequent commits. Co-Authored-By: Claude Opus 4.8 (1M context) <[EMAIL_ADDRESS_REDACTED]>
Constrain values where the allowed set is well-defined: - enums: Service type, imagePullPolicy, updateStrategy type, input protocol, ingress pathType, leaderElectionMode, inputBufferWaitStrategy, S3 client protocol, and boolean-string config fields (true/false) - port ranges (1-65535) for Service and input ports - minimums for replicas, PDB minAvailable, and probe timings - Kubernetes quantity pattern for resource requests/limits and PVC sizes Verified: default values.yaml still passes helm lint; out-of-range values (bad Service type, memory quantity, isCloud, S3 protocol) are now rejected by schema validation. Co-Authored-By: Claude Opus 4.8 (1M context) <[EMAIL_ADDRESS_REDACTED]>
Add descriptions to every graylog.config.* and datanode.config.* leaf (TLS, MongoDB, message journal, network, performance, email, plugins, geolocation, init, and Data Node/OpenSearch/S3 settings). Each maps the Helm value to its underlying server.conf / datanode.conf key. Key names verified against the chart's rendered GRAYLOG_* env vars and the official Graylog server configuration settings reference; wording for geolocation/plugins aligned with the README values reference table. Every property leaf in values.schema.json now carries a description (322 total, up from 18 before this series). Closes #63. Co-Authored-By: Claude Opus 4.8 (1M context) <[EMAIL_ADDRESS_REDACTED]>
Add rows for graylog.podSecurityContext, graylog.initContainerSecurityContext, graylog.containerSecurityContext, datanode.podSecurityContext, and datanode.containerSecurityContext to the Values Reference tables. These free-form overrides were added in the security-hardening work (#100) but were never listed, leaving the only drift between values.yaml, the schema, and the README. Each row documents the default hardened posture. Co-Authored-By: Claude Opus 4.8 (1M context) <[EMAIL_ADDRESS_REDACTED]>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Documents
charts/graylog/values.schema.json, which previously carried descriptions on only 18 of ~340 properties. Every property leaf now has a description, high-confidence validation constraints were added, and the chart README's Values Reference was reconciled with the schema. Closes #63.Details
config.*properties — global, service, inputs, plugins, image, updateStrategy, resources, persistence, probes, PDB, scheduling, serviceAccount, ingress, and mongodb.patternfor resource requests/limits and PVC sizes.config.*): documented everygraylog.config.*anddatanode.config.*leaf, mapping each Helm value to its underlyingserver.conf/datanode.confkey. Key names verified against the chart's renderedGRAYLOG_*env vars and the official Graylog server configuration settings reference.securityContextoverrides (added in Tightening Pod/Container Security for All Workloads #100) to the Values Reference tables — the only remaining drift betweenvalues.yaml, the schema, and the README.Note on constraints:
inputs[].portintentionally allows privileged ports (minimum: 1) since inputs commonly bind ports like syslog514; the graylog container is grantedNET_BIND_SERVICEfor this.Linked issues
This fixes #63
PR Checklist
Please check the items that apply to your change.
Testing Checklist
Static Validation
helm lint ./charts/grayloghelm template graylog ./charts/graylog(rendered clean;--validaterequires a live cluster and is covered by CIct install)Installation
helm install graylog ./charts/graylogkubectl rollout status statefulset/grayloghelm test graylogFunctional (if applicable)
Upgrade (if applicable)
Specific to this PR
values.schema.jsonand the chart README; produces no change to rendered manifests.helm lint,helm template, andhelm unittest(56/56) pass locally.isCloud, S3 protocol) while the defaultvalues.yamlstill passes validation.values.yaml/ schema / README are free of drift.Notes for reviewers
🤖 Generated with Claude Code