Wondering if anyone knows of a validator that can validate cloud-init config similar to this. We tried it and it gives a bunch of errors that are not applicable e.g., it does not recognize package_update
which is a standard keyword that can be found here in the official documentation for example. So we are looking for a validator that works and recognizes the keywords in the official documentation.
I hit this one recently too and found a nice way to do it.
In Ubuntu you can use the follwoing to validate the file parses correctly.
cloud-init schema --config-file bob.txt
This will give you the following notice if the files are valid or invalid
:~$ sudo cloud-init schema --config-file bob.txt
Valid cloud-config file bob.txt
$ nano bob.txt #edited the yaml to make it invalid
:~$ sudo cloud-init schema --config-file bob.txt
Cloud config schema errors: format-l2.c1: File bob.txt is not valid yaml. while parsing a block mapping
in "<byte string>", line 2, column 1:
package_upgrade: true
^
expected <block end>, but found '-'
in "<byte string>", line 6, column 1:
- 'curl -fsSL https://get.docker ...
^
While your working with cloud init files cloud-init status --wait
and many of the other commands on the cli
are super useful.