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.
Asked
Active
Viewed 1.5k times
14

morpheus
- 18,676
- 24
- 96
- 159
2 Answers
25
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.

Community
- 1
- 1

lawrencegripper
- 597
- 5
- 12
-
This errors on `v22.2-0ubuntu1~20.04.3`: `/usr/bin/cloud-init devel: error: argument subcommand: invalid choice: 'schema' (choose from 'hotplug-hook', 'net-convert', 'render', 'make-mime')` – weberc2 Oct 12 '22 at 19:57
-
1Is there any convenient way to install it locally on MacOS? Don't see it on brew. – Vladislav Rastrusny Dec 21 '22 at 09:39