{"id":20589657,"url":"https://github.com/coreos/fedora-coreos-config","last_synced_at":"2025-04-14T22:07:58.716Z","repository":{"id":37502555,"uuid":"145484028","full_name":"coreos/fedora-coreos-config","owner":"coreos","description":"Base configuration for Fedora CoreOS","archived":false,"fork":false,"pushed_at":"2025-04-14T19:11:05.000Z","size":7273,"stargazers_count":162,"open_issues_count":34,"forks_count":159,"subscribers_count":20,"default_branch":"testing-devel","last_synced_at":"2025-04-14T22:07:47.217Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","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":"COPYING","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,"zenodo":null}},"created_at":"2018-08-21T00:18:47.000Z","updated_at":"2025-04-11T21:50:31.000Z","dependencies_parsed_at":"2024-11-21T19:25:53.263Z","dependency_job_id":"1f98005f-f8a1-4f9d-8f23-4f825763cf4b","html_url":"https://github.com/coreos/fedora-coreos-config","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%2Ffedora-coreos-config","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/coreos%2Ffedora-coreos-config/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/coreos%2Ffedora-coreos-config/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/coreos%2Ffedora-coreos-config/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/coreos","download_url":"https://codeload.github.com/coreos/fedora-coreos-config/tar.gz/refs/heads/testing-devel","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248968914,"owners_count":21191162,"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:14.742Z","updated_at":"2025-04-14T22:07:58.683Z","avatar_url":"https://github.com/coreos.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Fedora CoreOS Config\n\n[![next-devel status](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/coreos/fedora-coreos-pipeline/main/next-devel/badge.json)](https://github.com/coreos/fedora-coreos-pipeline/blob/main/next-devel/README.md)\n\nBase manifest configuration for\n[Fedora CoreOS](https://coreos.fedoraproject.org/).\n\nUse https://github.com/coreos/coreos-assembler to build it.\n\nDiscussions in\nhttps://discussion.fedoraproject.org/c/server/coreos. Bug\ntracking and feature requests at\nhttps://github.com/coreos/fedora-coreos-tracker.\n\n## About this repo\n\nThere is one branch for each stream. The default branch is\n[`testing-devel`](https://github.com/coreos/fedora-coreos-config/commits/testing-devel),\non which all development happens. See\n[the design](https://github.com/coreos/fedora-coreos-tracker/blob/main/Design.md#release-streams)\nand [tooling](https://github.com/coreos/fedora-coreos-tracker/blob/main/stream-tooling.md)\ndocs for more information about streams.\n\nAll file changes in `testing-devel` are propagated to other\nbranches (to `next-devel`, `branched`, and `rawhide` through\n[config-bot](https://github.com/coreos/fedora-coreos-releng-automation/tree/main/config-bot),\nand to `testing` and eventually `stable` through usual\npromotion), with the following exceptions:\n- `manifest.yaml`: contains the stream's name, yum repos\n  used during composes, and the `releasever`.\n- lockfiles (`manifest-lock.*` files): on `testing-devel`\n  and `next-devel`, lockfiles are pushed by\n  [the `bump-lockfile` job](https://github.com/coreos/fedora-coreos-pipeline/blob/main/jobs/bump-lockfile.Jenkinsfile).\n  Production streams receive them as part of usual\n  promotion. Overrides (`manifest-lock.overrides.*`) are\n  managed independently with the help of some GitHub Actions\n  (see sections below).\n\n## Layout\n\nWe intend for Fedora CoreOS to be used directly for a wide variety\nof use cases.  However, we also want to support \"custom\" derivatives\nsuch as Fedora Silverblue, etc.  Hence the configuration in this\nrepository is split up into reusable \"layers\" and components on\nthe rpm-ostree side.\n\nTo derive from this repository, the recommendation is to add it\nas a git submodule.  Then create your own `manifest.yaml` which does\n`include: fedora-coreos-config/ignition-and-ostree.yaml` for example.\nYou will also want to create an `overlay.d` and symlink in components\nin this repository's `overlay.d`.\n\n## Overriding packages\n\nBy default, all packages for FCOS come from the stable\nFedora repos. However, it is sometimes necessary to either\nhold back some packages, or pull in fixes ahead of Bodhi. To\nadd such overrides, one needs to add the packages to\n`manifest-lock.overrides.yaml` (there are also arch-specific\nvariants of these files for the rare occasions the override\nshould only apply to a specific arch). There is a\n[tool](ci/overrides.py) to help with this, and for simple\ncases, an [automated workflow](https://github.com/coreos/fedora-coreos-config/actions/workflows/add-override.yml)\nthat runs the tool and submits a PR.\n\nNote that comments are not preserved in these files. The\nlockfile supports arbitrary keys under the `metadata` key to\ncarry information. Some keys are semantically meaningful to\nhumans or other tools.\n\n### Fast-tracking\n\nExample:\n\n```yaml\npackages:\n  selinux-policy:\n    evra: 34.10-1.fc34.noarch\n    metadata:\n      type: fast-track\n      bodhi: https://bodhi.fedoraproject.org/updates/FEDORA-2021-f014ca8326\n      reason: https://github.com/coreos/fedora-coreos-tracker/issues/850\n  selinux-policy-targeted:\n    evra: 34.10-1.fc34.noarch\n    metadata:\n      type: fast-track\n      # you don't have to repeat the other keys for related packages\n```\n\nWhenever possible, it is important that the package be\nsubmitted as an update to Bodhi so that we don't have to\ncarry the override for a long time.\n\nFast-tracked packages will automatically be removed by the\n`remove-graduated-overrides` GitHub Action in this repo once\nthey reach the stable Fedora repos (or newer versions). They\nare detected by the `type: fast-track` key.\n\n### Pinning\n\nExample:\n\n```\npackages:\n  dracut:\n      evr: 053-5.fc34\n      metadata:\n        type: pin\n        reason: https://github.com/coreos/fedora-coreos-tracker/issues/842\n  dracut-network:\n      evr: 053-5.fc34\n      metadata:\n        type: pin\n        reason: https://github.com/coreos/fedora-coreos-tracker/issues/842\n```\n\nAll pinned packages *must* have a `reason` key containing\nmore information about why the pin is necessary.\n\nOnce an override PR is merged,\n[`coreos-koji-tagger`](https://github.com/coreos/fedora-coreos-releng-automation/tree/main/coreos-koji-tagger)\nwill automatically tag overridden packages into the pool.\n\n## Adding packages to the OS\n\nSince `testing-devel` is directly promoted to `testing`, it\nmust always be in a known state. The way we enforce this is\nby requiring all packages to have a corresponding entry in\nthe lockfile.\n\nTherefore, to add new packages to the OS, one must also add\nthe corresponding entries in the lockfiles:\n- for packages which should follow Bodhi updates, place them\n  in `manifest-lock.$basearch.json`\n- for packages which should remain pinned, place them\n  in `manifest-lock.overrides.$basearch.yaml`\n\nThere will be better tooling to come to enable this, though\none easy way to do this is for now:\n- add packages to the correct YAML manifest\n- run `cosa fetch --update-lockfile` (this will only update the lockfile for\n  the current architecture, most likely `x86_64`)\n- copy the new lines to the lockfiles for other architectures (i.e. `aarch64`)\n- commit only the new package entries (skip the timestamped changes to avoid\n  merge conflicts with the lockfile updates made by the bot)\n\n## Moving to a new major version (N) of Fedora\n\n[Create a rebase checklist](https://github.com/coreos/fedora-coreos-tracker/issues/new?labels=kind/enhancement\u0026template=rebase.md\u0026title=Rebase+onto+Fedora+N) in fedora-coreos-tracker.\n\n## CoreOS CI\n\nPull requests submitted to this repo are tested by\n[CoreOS CI](https://github.com/coreos/coreos-ci). You can see the pipeline\nexecuted in `.cci.jenkinsfile`. For more information, including interacting with\nCI, see the [CoreOS CI documentation](https://github.com/coreos/coreos-ci/blob/main/README-upstream-ci.md).\n\n## Tests layout\nTests should follow the following format:\n\n```bash\n#!/bin/bash\n## kola:\n##   exclusive: false\n##   platforms: aws gcp\n##   # See all options in https://coreos.github.io/coreos-assembler/kola/external-tests/#kolajson\n#\n# Short summary of what the test does, why we need it, etc.\n#\n# Recommended: Link to corresponding issue or PR\n#\n# Explain the reasons behind all the kola options:\n# - distros: fcos\n#   - This test only runs on FCOS due to ...\n# - platforms: qemu\n#   - This test should ...\n# - etc.\n\nset -euxo pipefail\n\n. $KOLA_EXT_DATA/commonlib.sh\n\nfoo_bar() \u003c-- Other function definitions\n\nif ...    \u003c-- Actual test code\n          \u003c-- Errors must be raised with `fatal()`\n          \u003c-- Does not need to end with a call to `ok()`\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcoreos%2Ffedora-coreos-config","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcoreos%2Ffedora-coreos-config","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcoreos%2Ffedora-coreos-config/lists"}