kots-lint is a service used for linting Replicated KOTS yaml files.
- Detecting YAML syntax errors
- Validating with Kubeval
- Utilizing OPA to lint for best practices and some special errors and warnings
$ tar cvf - path/to/folder | curl -XPOST --data-binary @- https://lint.replicated.com/v1/lintTo lint our example
$ tar cvf - example/files-to-lint | curl -XPOST --data-binary @- https://lint.replicated.com/v1/lintDevelopment for the applications in this project is done through Okteto.
Rego supports the use of print() function. To enable printing to stderr, add EnablePrintStatements and PrintHook to initialization code. For example:
buildersQuery, err := rego.New(
rego.Query("data.kots.spec.builders.lint"),
rego.Module("builders-opa.rego", string(buildersRegoContent)),
// The lines below allow using print() in the rego code to print to stderr
rego.EnablePrintStatements(true),
rego.PrintHook(topdown.NewPrintHook(os.Stderr)),
).PrepareForEval(ctx)
- Install the Okteto CLI (
brew install okteto) - Setup Okteto CLI (
okteto context create https://replicated.okteto.dev) - Setup Okteto context in kubectl (
okteto context update-kubeconfig) - Deploy your current branch. (from the Vandoor root directory:
okteto pipeline deploy)
The project can also be run with Skaffold for local development and testing.
$ skaffold devOnce skaffold runs successfully, the service can be reached at http://localhost:30082/v1/lint
Tests can be run manually with
$ make testThe make schemas command can be used to automatically update all Replicated schemas:
$ make schemasThis will update schemas for:
- KOTS (github.com/replicatedhq/kotskinds)
- Troubleshoot (github.com/replicatedhq/troubleshoot)
- Embedded Cluster (github.com/replicatedhq/embedded-cluster)
make schemas-kubernetesThis will update the schemas for the Kubernetes VERSION specified in the Makefile.