Stein is a linter for config files with a customizable rule set. Supported config file types are JSON, YAML and HCL for now.
As the motivation of this tool, the factor which accounts for the most of them is the Policy as Code.
Thanks to Infrastructure as Code, the number of cases that the configurations of its infrastructure are described as code is increasing day by day. Then, it became necessary to set the lint or policy for the config files. As an example: the namespace of Kubernetes to be deployed, the number of replicas of Pods, the naming convention of a namespace, etc.
This tool makes it possible to describe those requests as code (called as the rules).
Try to use!
After installing stein, run
make run to quick start!
$ stein apply _examples/spinnaker/*/*/* _examples/spinnaker/x-echo-jp/development/deploy-to-dev-v2.yaml (Block 1) No violated rules _examples/spinnaker/x-echo-jp/development/deploy-to-dev-v2.yaml (Block 2) [ERROR] rule.namespace_name Namespace name "x-echo-jp-prod" is invalid ===================== 1 error(s), 0 warn(s)