Skip to content

Commit 2399046

Browse files
author
Yann Rouillard
committed
feat: enable support for implementing additional checks in gitops validation
1 parent 8a34b07 commit 2399046

1 file changed

Lines changed: 9 additions & 1 deletion

File tree

kp_pre_commit_hooks/gitops-values-validation.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -211,7 +211,10 @@ def __init__(self, service_instance_config: ServiceInstanceConfig):
211211

212212
@cached_property
213213
def validator(self) -> Validator:
214-
return Draft7Validator(self.service_instance_config.helm_chart.json_schema, registry=SCHEMA_REGISTRY) # type: ignore
214+
validator_class = validators.validates("draft7")(
215+
validators.extend(Draft7Validator, validators={"additionalChecks": self.validate_additional_checks})
216+
)
217+
return validator_class(self.service_instance_config.helm_chart.json_schema, registry=SCHEMA_REGISTRY)
215218

216219
def validate_configuration(self) -> Sequence[Union[ValidationError, SchemaValidationError]]:
217220
try:
@@ -238,6 +241,11 @@ def iter_schema_validation_errors(self) -> Iterator[SchemaValidationError]:
238241
hint="This pre-commit hook will auto-fix this issue. Please commit the values files changes.",
239242
)
240243

244+
def validate_additional_checks(self, validator, additional_checks, value, schema):
245+
for check in additional_checks:
246+
if check_method := getattr(self, f"validate_{camel_to_snake(check)}", None):
247+
yield from check_method(value, schema)
248+
241249

242250
def format_error(error: Union[ValidationError, SchemaValidationError]):
243251
if isinstance(error, SchemaValidationError):

0 commit comments

Comments
 (0)