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 details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

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

Uploaded Python 3

File details

Details for the file yaml2jsonnet-1.0.1.tar.gz.

File metadata

  • Download URL: yaml2jsonnet-1.0.1.tar.gz
  • Upload date:
  • Size: 18.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.0.10 CPython/3.8.5 Linux/5.4.0-1025-azure

File hashes

Hashes for yaml2jsonnet-1.0.1.tar.gz
Algorithm Hash digest
SHA256 3f77ec9f3a8bad6dd8513cb8fda7cc312998229bb80623ee75cb6140730726cc
MD5 2bdf6e96168ce9d0474933dc194e466f
BLAKE2b-256 2f0f728115dcf90e7398a99ceedc1fc51783a1d40385f1214aaaa60f6af01de0

See more details on using hashes here.

File details

Details for the file yaml2jsonnet-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: yaml2jsonnet-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 19.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.0.10 CPython/3.8.5 Linux/5.4.0-1025-azure

File hashes

Hashes for yaml2jsonnet-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 7af7ae431543a837600e8e21fbc8740ea3011ab1c8c543282e61142f9790255b
MD5 74254812f246f0f12e8e33ed437cfda1
BLAKE2b-256 ef8d475b5c707a5191f69c997b2e9425405b9dcfadb75bccc324d8bbbe4f5e91

See more details on using hashes here.

Supported by

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