Skip to main content

Convert from YAML to Jsonnet format, retaining comments

Project description

YAML2Jsonnet: Switch configuration languages

Converts YAML into Jsonnet (specifically targetting YAML for Kubernetes)

Suppose that you have some YAML that you use for Kubernetes (either hand-written or output by Helm. Now you'd like to use Jsonnet instead, for its fancier templating capabilities. This is a pain, because while YAML->JSON converters are easy to find, they produce ugly-looking (but valid!) Jsonnet.

YAML2Jsonnet makes the conversion a little easier: it transforms the YAML into slightly prettier Jsonnet, preserving comments along the way.

Example

A trivial YAML document:

---
# simple example
- hello: world
  one: 1

Convert it to Jsonnet:

$ yaml2jsonnet trivial.yaml | jsonnetfmt - -o trivial.jsonnet

(Note that we run the output of yaml2jsonnet through the jsonnet formatter jsonnetfmt. This is strongly recommended, since the raw output of yaml2jsonnet is quite ugly.)

The result:

[
  // simple example
  {
    hello: 'world',
    one: 1,
  },
]

Installing

Yaml2Jsonnet expects Python 3.6 or above.

pip install yaml2jsonnet

Or, as this is meant as a stand-alone tool, you may prefer

pipx install yaml2jsonnet

Development

  • Install Poetry
  • Install Pre-commit
  • Run poetry install to install dependencies
  • Run poetry run python -m yaml2jsonnet /path/to/yaml to convert a file
  • Probably, run jsonnetfmt on the output, since the only whitespace I provide is newlines

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

yaml2jsonnet-1.0.1.tar.gz (18.1 kB view hashes)

Uploaded Source

Built Distribution

yaml2jsonnet-1.0.1-py3-none-any.whl (19.0 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page