What is a schema? Several definitions are available. In the context of MetroÆ and the schema validation of user inputs that will be available in the upcoming Croxley (MetroÆ v3) release, I like this definition best:
- Describes your existing data format(s).
- Provides clear human- and machine- readable documentation.
- Validates data which is useful for:
- Automated testing.
- Ensuring quality of client submitted data.
(Definition courtesy of https://json-schema.org/)
You may never actually *see* one of the MetroÆ schemas, but rest assured they are at work under the covers, ensuring the quality of the data submitted by clients, a.k.a. MetroÆ users.
Prior to Croxley, users would submit the bulk of their inputs via a single YAML file, build_vars.yml. This has been a convenient, one-stop place to provide all inputs. In Croxley, MetroÆ is doing the following:
- Introducing the concept of a MetroÆ Nuage Deployment. A MetroÆ Deployment consists of all the user data required to handle the installation, upgrade, and day-zero configuration of a single Nuage Networks instance, be it VCS, VNS or VSS.
- Dividing the single, monolithic build_vars.yml into several component-specific input files, e.g. vsds.yml, vscs.yml, etc. A collection of these files will be the definition of a MetroÆ Deployment. MetroÆ will support multiple Deployments, each with its own collection of files. No longer will you need to have multiple build_vars.yml files for multiple Nuage Network instances. No longer will you need to delete or comment out unnecessary contents in the build_vars.yml file. Include just the components you need in your Deployment.
- Using schemas to validate that the contents of the MetroÆ Deployment files are properly formatted. This will allow MetroÆ to detect user data problems earlier in the process rather than detecting errors at runtime.
- Provide tools for generating sample data files that conform to the schemas. You run the tool to generate the sample data file, modify it to suit, then run MetroÆ to install, upgrade, or configure.
- Provide an optional GUI to simplify the workflow and provide on-the-go user data validation.
Each schema will define the following to be used for validation:
- The sum total of all parameters available for the component
- The data type, acceptable values and ranges, and whether an item is required/optional, and more
Schema validation will make it even easier to use MetroÆ for your automation needs.