{"id":18394461,"url":"https://github.com/mark-rushakoff/yaml-jsonnet-bootstrap","last_synced_at":"2026-04-25T21:34:11.373Z","repository":{"id":64887048,"uuid":"233780292","full_name":"mark-rushakoff/yaml-jsonnet-bootstrap","owner":"mark-rushakoff","description":"Convert a YAML document stream into a valid Jsonnet program","archived":false,"fork":false,"pushed_at":"2020-01-14T07:18:28.000Z","size":3,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-12T14:30:02.386Z","etag":null,"topics":["jsonnet","yaml"],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"unlicense","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mark-rushakoff.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-01-14T07:16:06.000Z","updated_at":"2021-07-22T21:09:09.000Z","dependencies_parsed_at":"2022-12-17T13:48:16.594Z","dependency_job_id":null,"html_url":"https://github.com/mark-rushakoff/yaml-jsonnet-bootstrap","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/mark-rushakoff/yaml-jsonnet-bootstrap","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mark-rushakoff%2Fyaml-jsonnet-bootstrap","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mark-rushakoff%2Fyaml-jsonnet-bootstrap/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mark-rushakoff%2Fyaml-jsonnet-bootstrap/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mark-rushakoff%2Fyaml-jsonnet-bootstrap/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mark-rushakoff","download_url":"https://codeload.github.com/mark-rushakoff/yaml-jsonnet-bootstrap/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mark-rushakoff%2Fyaml-jsonnet-bootstrap/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32278249,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-25T18:29:39.964Z","status":"ssl_error","status_checked_at":"2026-04-25T18:29:32.149Z","response_time":59,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["jsonnet","yaml"],"created_at":"2024-11-06T02:05:52.186Z","updated_at":"2026-04-25T21:34:11.357Z","avatar_url":"https://github.com/mark-rushakoff.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# yaml-jsonnet-bootstrap\n\nThis utility parses a YAML document stream and generates Jsonnet boilerplate to generate the same YAML.\n\nyaml-jsonnet-bootstrap reads a YAML document stream from stdin and writes a valid Jsonnet program to stdout.\n\nI wrote this because I couldn't find an online converter from a YAML stream to a JSON array.\n\n## Usage\n\nGiven a YAML document like this:\n\n```yaml\n---\napiVersion: v1\nkind: ServiceAccount\nmetadata:\n  name: myacct\n---\napiVersion: rbac.authorization.k8s.io/v1\nkind: Role\nmetadata:\n  name: myrole\nrules:\n- apiGroups:\n  - \"\"\n  resources:\n  - pods\n  verbs:\n  - get\n  - list\n  - watch\n---\napiVersion: rbac.authorization.k8s.io/v1\nkind: RoleBinding\nmetadata:\n  name: mybinding\nroleRef:\n  apiGroup: rbac.authorization.k8s.io\n  kind: Role\n  name: myrole\nsubjects:\n- kind: ServiceAccount\n  name: myacct\n...\n```\n\nthen if you run `yaml-jsonnet-bootstrap \u003c /path/to/example.yml \u003e /path/to/example.jsonnet`,\nyou will generate an unformatted Jsonnet file:\n\n```jsonnet\nlocal var0 = {\n  \"apiVersion\": \"v1\",\n  \"kind\": \"ServiceAccount\",\n  \"metadata\": {\n    \"name\": \"myacct\"\n  }\n};\n\nlocal var1 = {\n  \"apiVersion\": \"rbac.authorization.k8s.io/v1\",\n  \"kind\": \"Role\",\n  \"metadata\": {\n    \"name\": \"myrole\"\n  },\n  \"rules\": [\n    {\n      \"apiGroups\": [\n        \"\"\n      ],\n      \"resources\": [\n        \"pods\"\n      ],\n      \"verbs\": [\n        \"get\",\n        \"list\",\n        \"watch\"\n      ]\n    }\n  ]\n};\n\nlocal var2 = {\n  \"apiVersion\": \"rbac.authorization.k8s.io/v1\",\n  \"kind\": \"RoleBinding\",\n  \"metadata\": {\n    \"name\": \"mybinding\"\n  },\n  \"roleRef\": {\n    \"apiGroup\": \"rbac.authorization.k8s.io\",\n    \"kind\": \"Role\",\n    \"name\": \"myrole\"\n  },\n  \"subjects\": [\n    {\n      \"kind\": \"ServiceAccount\",\n      \"name\": \"myacct\"\n    }\n  ]\n};\n\n{\nObjects(conf):: [\nvar0,\nvar1,\nvar2,\n],\n}\n```\n\nThen, you can run jsonnetfmt on the file to get something nicely formatted like:\n\n```jsonnet\nlocal var0 = {\n  apiVersion: 'v1',\n  kind: 'ServiceAccount',\n  metadata: {\n    name: 'myacct',\n  },\n};\n\nlocal var1 = {\n  apiVersion: 'rbac.authorization.k8s.io/v1',\n  kind: 'Role',\n  metadata: {\n    name: 'myrole',\n  },\n  rules: [\n    {\n      apiGroups: [\n        '',\n      ],\n      resources: [\n        'pods',\n      ],\n      verbs: [\n        'get',\n        'list',\n        'watch',\n      ],\n    },\n  ],\n};\n\nlocal var2 = {\n  apiVersion: 'rbac.authorization.k8s.io/v1',\n  kind: 'RoleBinding',\n  metadata: {\n    name: 'mybinding',\n  },\n  roleRef: {\n    apiGroup: 'rbac.authorization.k8s.io',\n    kind: 'Role',\n    name: 'myrole',\n  },\n  subjects: [\n    {\n      kind: 'ServiceAccount',\n      name: 'myacct',\n    },\n  ],\n};\n\n{\n  Objects(conf):: [\n    var0,\n    var1,\n    var2,\n  ],\n}\n```\n\nSo the normal pipeline is typically `yaml-jsonnet-bootstrap \u003c file.yml | jsonnetfmt - \u003e out.jsonnet`.\nFrom there, you can start editing out.jsonnet to give meaningful variable names and parameterize as needed.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmark-rushakoff%2Fyaml-jsonnet-bootstrap","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmark-rushakoff%2Fyaml-jsonnet-bootstrap","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmark-rushakoff%2Fyaml-jsonnet-bootstrap/lists"}