{"id":20589667,"url":"https://github.com/coreos/ign-converter","last_synced_at":"2025-07-06T12:36:54.016Z","repository":{"id":39787878,"uuid":"227239322","full_name":"coreos/ign-converter","owner":"coreos","description":"Mechanical translator to/from Ignition config spec 3.x","archived":false,"fork":false,"pushed_at":"2024-11-25T18:56:25.000Z","size":499,"stargazers_count":9,"open_issues_count":6,"forks_count":17,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-30T03:09:02.602Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/coreos.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-12-11T00:07:47.000Z","updated_at":"2024-11-25T18:56:33.000Z","dependencies_parsed_at":"2024-06-18T16:53:02.639Z","dependency_job_id":"b2d6ed3f-8b1c-4e44-af00-fd82a5057405","html_url":"https://github.com/coreos/ign-converter","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/coreos%2Fign-converter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/coreos%2Fign-converter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/coreos%2Fign-converter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/coreos%2Fign-converter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/coreos","download_url":"https://codeload.github.com/coreos/ign-converter/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247430963,"owners_count":20937875,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":[],"created_at":"2024-11-16T07:30:31.115Z","updated_at":"2025-04-06T04:15:10.494Z","avatar_url":"https://github.com/coreos.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"Ignition Spec v1-v2.x.0 \u003c-\u003e v3.0.0 Config Converter\n===================================================\n\n## What is this?\n\nThis is a tool and library for converting old (spec v1-v2.x.0) Ignition configs\nto the new v3.x.0 format, and from v3.x.0 back to v2.x.0. See\n[Upgrading Configs](https://coreos.github.io/ignition/migrating-configs/)\nfor details on the changes.\n\n## Extra information when translating from v2 -\u003e v3\n\nIgnition Spec 3 will mount filesystems at the mountpoint specified by path\nwhen running. Filesystems no longer have the name field and files, links,\nand directories no longer specify the filesystem by name. This means to\ntranslate filesystems (with the exception of root), you must also provide\na mapping of filesystem name to absolute path, e.g.\n\n`map[string]string{\"var\": \"/var\"}`\n\nIf you do not, and have a filesystem with the name \"var\", the translation\nwill fail.\n\nConversely, when you translate from spec 3 down to spec 2, we generate names\non the fly based on the path. If no path is specified, it is simply named by\nan incrementing integer. This information is not currently being stored,\nwhich means to translate from 3 -\u003e 2 -\u003e 3, you will have to manually provide\nthe filesystem mapping that we generate.\n\n## TODO\n\n - Save the generated filesystem mapping, so we can translate seamlessly from\n 3 -\u003e 2 -\u003e 3\n - Revisit translated spec versions\n\n## Why is this not part of Ignition?\n\nThe old spec versions have bugs that allow specifying configs that don't make\nsense. For example, it is valid for a v2.1+ config to specify that a path\nshould be both a directory and a file. The behavior there is defined by\nIgnition's implementation instead of the spec and, in certain edge cases, by the\ncontents of the filesystem Ignition is operating on.\n\nThis means Ignition can't be guaranteed to automatically translate an old\nconfig to an equivalent new config; it can fail at conversion. Since Ignition\ninternally translates old configs to the latest config, this would mean old\nIgnition configs could stop working on newer versions of whatever OS included\nIgnition. Additionally, due to the change in how filesystems are handled (new\nconfigs require specifying the path relative to the sysroot that Ignition\nshould mount the filesystem at), some configs require extra information to\nconvert from the old versions to the new versions.\n\nThis tool exists to allow _mechanical_ translation of old configs to new\nconfigs. If you are also switching operating systems, other changes may be\nnecessary.\n\n## How can I ensure my old config is translatable?\n\nMost of the problems in old configs stem from specifying illogical things. Make\nsure you don't have any duplicate entries. Do not rely on the order in which\nfiles, directories, or links are created. Most configs should be translatable\nwithout problems.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcoreos%2Fign-converter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcoreos%2Fign-converter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcoreos%2Fign-converter/lists"}