forked from helm/helm
-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* Add the Schema type and a function to read it * Added a function to read a schema from a file * Check that values.yaml matches schema This commit uses the gojsonschema package to validate a values.yaml file against a corresponding values.schema.yaml file. * Add functionality to generate a schema from a values.yaml * Add Schema to Chart and loader * Clean up implementation in chartutil * Add tests for helm install with schema * Add schema validation to helm lint * Clean up "matchSchema" * Modify error output * Add documentation * Fix a linter issue * Fix a test that broke during a rebase * Clean up documentation * Specify JSONSchema spec Since JSONSchema is still in a draft state as of this commit, we need to specify a particular version of the JSONSchema spec * Switch to using builtin functionality for file extensions * Switch to using a third-party library for JSON conversion * Use the constants from the gojsonschema package * Updates to unit tests * Minor change to avoid string cast * Remove JSON Schema generation * Change Schema type from map[string]interface{} to []byte * Convert all Schema YAML to JSON * Fix some tests that were broken by a rebase * Fix up YAML/JSON conversions * This checks subcharts for schema validation The final coalesced values for a given chart will be validated against that chart's schema, as well as any dependent subchart's schema * Add unit tests for ValidateAgainstSchema * Remove nonessential test files * Remove a misleading unit test The TestReadSchema unit test was simply testing the ReadValues function, which is already being validated in the TestReadValues unit test * Update documentation to reflect changes to subchart schemas
- Loading branch information
1 parent
3dd1765
commit ffff0e8
Showing
37 changed files
with
742 additions
and
3 deletions.
There are no files selected for viewing
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
This file contains 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
This file contains 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
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
Error: values don't meet the specifications of the schema(s) in the following chart(s): | ||
empty: | ||
- age: Must be greater than or equal to 0/1 | ||
|
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
Error: values don't meet the specifications of the schema(s) in the following chart(s): | ||
empty: | ||
- (root): employmentInfo is required | ||
- age: Must be greater than or equal to 0/1 | ||
|
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
NAME: schema | ||
LAST DEPLOYED: 1977-09-02 22:04:05 +0000 UTC | ||
NAMESPACE: default | ||
STATUS: deployed | ||
|
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
Error: values don't meet the specifications of the schema(s) in the following chart(s): | ||
subchart-with-schema: | ||
- age: Must be greater than or equal to 0/1 | ||
|
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
NAME: schema | ||
LAST DEPLOYED: 1977-09-02 22:04:05 +0000 UTC | ||
NAMESPACE: default | ||
STATUS: deployed | ||
|
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
Error: values don't meet the specifications of the schema(s) in the following chart(s): | ||
chart-without-schema: | ||
- (root): lastname is required | ||
subchart-with-schema: | ||
- (root): age is required | ||
|
6 changes: 6 additions & 0 deletions
6
cmd/helm/testdata/testcharts/chart-with-schema-and-subchart/Chart.yaml
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
apiVersion: v1 | ||
name: chart-without-schema | ||
description: A Helm chart for Kubernetes | ||
type: application | ||
version: 0.1.0 | ||
appVersion: 0.1.0 |
6 changes: 6 additions & 0 deletions
6
...testdata/testcharts/chart-with-schema-and-subchart/charts/subchart-with-schema/Chart.yaml
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
apiVersion: v1 | ||
name: subchart-with-schema | ||
description: A Helm chart for Kubernetes | ||
type: application | ||
version: 0.1.0 | ||
appVersion: 0.1.0 |
1 change: 1 addition & 0 deletions
1
...estcharts/chart-with-schema-and-subchart/charts/subchart-with-schema/templates/empty.yaml
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
# This file is intentionally blank |
15 changes: 15 additions & 0 deletions
15
.../testcharts/chart-with-schema-and-subchart/charts/subchart-with-schema/values.schema.json
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
{ | ||
"$schema": "http://json-schema.org/draft-07/schema#", | ||
"title": "Values", | ||
"type": "object", | ||
"properties": { | ||
"age": { | ||
"description": "Age", | ||
"minimum": 0, | ||
"type": "integer" | ||
} | ||
}, | ||
"required": [ | ||
"age" | ||
] | ||
} |
Empty file.
1 change: 1 addition & 0 deletions
1
cmd/helm/testdata/testcharts/chart-with-schema-and-subchart/templates/empty.yaml
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
# This file is intentionally blank |
18 changes: 18 additions & 0 deletions
18
cmd/helm/testdata/testcharts/chart-with-schema-and-subchart/values.schema.json
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
{ | ||
"$schema": "http://json-schema.org/draft-07/schema#", | ||
"title": "Values", | ||
"type": "object", | ||
"properties": { | ||
"firstname": { | ||
"description": "First name", | ||
"type": "string" | ||
}, | ||
"lastname": { | ||
"type": "string" | ||
} | ||
}, | ||
"required": [ | ||
"firstname", | ||
"lastname" | ||
] | ||
} |
1 change: 1 addition & 0 deletions
1
cmd/helm/testdata/testcharts/chart-with-schema-and-subchart/values.yaml
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
firstname: "John" |
7 changes: 7 additions & 0 deletions
7
cmd/helm/testdata/testcharts/chart-with-schema-negative/Chart.yaml
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
apiVersion: v1 | ||
description: Empty testing chart | ||
home: https://k8s.io/helm | ||
name: empty | ||
sources: | ||
- https://github.com/kubernetes/helm | ||
version: 0.1.0 |
1 change: 1 addition & 0 deletions
1
cmd/helm/testdata/testcharts/chart-with-schema-negative/templates/empty.yaml
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
# This file is intentionally blank |
67 changes: 67 additions & 0 deletions
67
cmd/helm/testdata/testcharts/chart-with-schema-negative/values.schema.json
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,67 @@ | ||
{ | ||
"$schema": "http://json-schema.org/draft-07/schema#", | ||
"properties": { | ||
"addresses": { | ||
"description": "List of addresses", | ||
"items": { | ||
"properties": { | ||
"city": { | ||
"type": "string" | ||
}, | ||
"number": { | ||
"type": "number" | ||
}, | ||
"street": { | ||
"type": "string" | ||
} | ||
}, | ||
"type": "object" | ||
}, | ||
"type": "array" | ||
}, | ||
"age": { | ||
"description": "Age", | ||
"minimum": 0, | ||
"type": "integer" | ||
}, | ||
"employmentInfo": { | ||
"properties": { | ||
"salary": { | ||
"minimum": 0, | ||
"type": "number" | ||
}, | ||
"title": { | ||
"type": "string" | ||
} | ||
}, | ||
"required": [ | ||
"salary" | ||
], | ||
"type": "object" | ||
}, | ||
"firstname": { | ||
"description": "First name", | ||
"type": "string" | ||
}, | ||
"lastname": { | ||
"type": "string" | ||
}, | ||
"likesCoffee": { | ||
"type": "boolean" | ||
}, | ||
"phoneNumbers": { | ||
"items": { | ||
"type": "string" | ||
}, | ||
"type": "array" | ||
} | ||
}, | ||
"required": [ | ||
"firstname", | ||
"lastname", | ||
"addresses", | ||
"employmentInfo" | ||
], | ||
"title": "Values", | ||
"type": "object" | ||
} |
14 changes: 14 additions & 0 deletions
14
cmd/helm/testdata/testcharts/chart-with-schema-negative/values.yaml
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
firstname: John | ||
lastname: Doe | ||
age: -5 | ||
likesCoffee: true | ||
addresses: | ||
- city: Springfield | ||
street: Main | ||
number: 12345 | ||
- city: New York | ||
street: Broadway | ||
number: 67890 | ||
phoneNumbers: | ||
- "(888) 888-8888" | ||
- "(555) 555-5555" |
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
apiVersion: v1 | ||
description: Empty testing chart | ||
home: https://k8s.io/helm | ||
name: empty | ||
sources: | ||
- https://github.com/kubernetes/helm | ||
version: 0.1.0 |
2 changes: 2 additions & 0 deletions
2
cmd/helm/testdata/testcharts/chart-with-schema/extra-values.yaml
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
age: -5 | ||
employmentInfo: null |
1 change: 1 addition & 0 deletions
1
cmd/helm/testdata/testcharts/chart-with-schema/templates/empty.yaml
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
# This file is intentionally blank |
67 changes: 67 additions & 0 deletions
67
cmd/helm/testdata/testcharts/chart-with-schema/values.schema.json
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,67 @@ | ||
{ | ||
"$schema": "http://json-schema.org/draft-07/schema#", | ||
"properties": { | ||
"addresses": { | ||
"description": "List of addresses", | ||
"items": { | ||
"properties": { | ||
"city": { | ||
"type": "string" | ||
}, | ||
"number": { | ||
"type": "number" | ||
}, | ||
"street": { | ||
"type": "string" | ||
} | ||
}, | ||
"type": "object" | ||
}, | ||
"type": "array" | ||
}, | ||
"age": { | ||
"description": "Age", | ||
"minimum": 0, | ||
"type": "integer" | ||
}, | ||
"employmentInfo": { | ||
"properties": { | ||
"salary": { | ||
"minimum": 0, | ||
"type": "number" | ||
}, | ||
"title": { | ||
"type": "string" | ||
} | ||
}, | ||
"required": [ | ||
"salary" | ||
], | ||
"type": "object" | ||
}, | ||
"firstname": { | ||
"description": "First name", | ||
"type": "string" | ||
}, | ||
"lastname": { | ||
"type": "string" | ||
}, | ||
"likesCoffee": { | ||
"type": "boolean" | ||
}, | ||
"phoneNumbers": { | ||
"items": { | ||
"type": "string" | ||
}, | ||
"type": "array" | ||
} | ||
}, | ||
"required": [ | ||
"firstname", | ||
"lastname", | ||
"addresses", | ||
"employmentInfo" | ||
], | ||
"title": "Values", | ||
"type": "object" | ||
} |
17 changes: 17 additions & 0 deletions
17
cmd/helm/testdata/testcharts/chart-with-schema/values.yaml
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
firstname: John | ||
lastname: Doe | ||
age: 25 | ||
likesCoffee: true | ||
employmentInfo: | ||
title: Software Developer | ||
salary: 100000 | ||
addresses: | ||
- city: Springfield | ||
street: Main | ||
number: 12345 | ||
- city: New York | ||
street: Broadway | ||
number: 67890 | ||
phoneNumbers: | ||
- "(888) 888-8888" | ||
- "(555) 555-5555" |
Oops, something went wrong.