Skip to content

Commit

Permalink
Automated developer guide update
Browse files Browse the repository at this point in the history
  • Loading branch information
schutzbot committed Aug 20, 2024
1 parent 80a7bba commit 08db381
Show file tree
Hide file tree
Showing 171 changed files with 1,488 additions and 153 deletions.
122 changes: 120 additions & 2 deletions docs/bootc/index.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,14 @@
---
custom_edit_url: https://github.com/osbuild/bootc-image-builder/blob/main/README.md
---
# bootc-image-builder

<!--
[//]: # ( DO NOT MODIFY THIS FILE! )
[//]: # ( This content is generated by `scripts/pull_readmes.py` )
[//]: # ( Rather change the source of this: https://github.com/osbuild/bootc-image-builder/blob/main/README.md )
-->

A container to create disk images from [bootc](https://github.com/containers/bootc) container inputs,
especially oriented towards [Fedora/CentOS bootc](https://docs.fedoraproject.org/en-US/bootc/) or
derivatives.
Expand Down Expand Up @@ -343,6 +352,55 @@ Example:

```

### Filesystems (`filesystem`, array)

The filesystem section of the customizations can be used to set the minimum size of the base partitions (`/` and `/boot`) as well as to create extra partitions with mountpoints under `/var`.

```toml
[[customizations.filesystem]]
mountpoint = "/"
minsize = "10 GiB"

[[customizations.filesystem]]
mountpoint = "/var/data"
minsize = "20 GiB"
```

```json
{
"customizations": {
"filesystem": [
{
"mountpoint": "/",
"minsize": "10 GiB"
},
{
"mountpoint": "/var/data",
"minsize": "20 GiB"
}
]
}
}
```

#### Interaction with `rootfs`

#### Filesystem types

The `--rootfs` option also sets the filesystem types for all additional mountpoints, where appropriate. See the see [Detailed description of optional flags](#detailed-description-of-optional-flags).


#### Allowed mountpoints and sizes

The following restrictions and rules apply, unless the rootfs is `btrfs`:
- `/` can be specified to set the desired (minimum) size of the root filesystem. The final size of the filesystem, mounted at `/sysroot` on a booted system, is the value specified in this configuration or 2x the size of the base container, whichever is largest.
- `/boot`can be specified to set the desired size of the boot partition.
- Subdirectories of `/var` are supported, but symlinks in `/var` are not. For example, `/var/home` and `/var/run` are symlinks and cannot be filesystems on their own.
- `/var` itself cannot be a mountpoint.

The `rootfs` option (or source container config, see [Detailed description of optional flags](#detailed-description-of-optional-flags) section) defines the filesystem type for the root filesystem. Currently, creation of btrfs subvolumes at build time is not supported. Therefore, if the `rootfs` is `btrfs`, no custom mountpoints are supported under `/var`. Only `/` and `/boot` can be configured.


### Anaconda ISO (installer) options (`installer`, mapping)

Users can include kickstart file content that will be added to an ISO build to configure the installation process.
Expand Down Expand Up @@ -375,6 +433,66 @@ The equivalent in json would be:
Note that bootc-image-builder will automatically add the command that installs the container image (`ostreecontainer ...`), so this line or any line that conflicts with it should not be included. See the relevant [Kickstart documentation](https://pykickstart.readthedocs.io/en/latest/kickstart-docs.html#ostreecontainer) for more information.
No other kickstart commands are added by bootc-image-builder in this case, so it is the responsibility of the user to provide all other commands (for example, for partitioning, network, language, etc).

#### Anaconda ISO (installer) Modules

The Anaconda installer can be configured by enabling or disabling its dbus modules.

```toml
[customizations.installer.modules]
enable = [
"org.fedoraproject.Anaconda.Modules.Localization"
]
disable = [
"org.fedoraproject.Anaconda.Modules.Users"
]
```

```json
{
"customizations": {
"installer": {
"modules": {
"enable": [
"org.fedoraproject.Anaconda.Modules.Localization"
],
"disable": [
"org.fedoraproject.Anaconda.Modules.Users"
]
}
}
}
}
```

The following module names are known and supported:
- `org.fedoraproject.Anaconda.Modules.Localization`
- `org.fedoraproject.Anaconda.Modules.Network`
- `org.fedoraproject.Anaconda.Modules.Payloads`
- `org.fedoraproject.Anaconda.Modules.Runtime`
- `org.fedoraproject.Anaconda.Modules.Security`
- `org.fedoraproject.Anaconda.Modules.Services`
- `org.fedoraproject.Anaconda.Modules.Storage`
- `org.fedoraproject.Anaconda.Modules.Subscription`
- `org.fedoraproject.Anaconda.Modules.Timezone`
- `org.fedoraproject.Anaconda.Modules.Users`

*Note: The values are not validated. Any name listed under `enable` will be added to the Anaconda configuration. This way, new or unknown modules can be enabled. However, it also means that mistyped or incorrect values may cause Anaconda to fail to start.*

By default, the following modules are enabled for all Anaconda ISOs:
- `org.fedoraproject.Anaconda.Modules.Network`
- `org.fedoraproject.Anaconda.Modules.Payloads`
- `org.fedoraproject.Anaconda.Modules.Security`
- `org.fedoraproject.Anaconda.Modules.Services`
- `org.fedoraproject.Anaconda.Modules.Storage`
- `org.fedoraproject.Anaconda.Modules.Users`


##### Enable vs Disable priority

The `disable` list is processed after the `enable` list and therefore takes priority. In other words, adding the same module in both `enable` and `disable` will result in the module being **disabled**.
Furthermore, adding a module that is enabled by default to `disable` will result in the module being **disabled**.


## Building

To build the container locally you can run
Expand Down Expand Up @@ -413,8 +531,7 @@ The contents of the file `$(pwd)/wheel-passwordless-sudo` should be

Please report bugs to the [Bug Tracker](https://github.com/osbuild/bootc-image-builder/issues) and include instructions to reproduce and the output of:
```
$ sudo podman run --rm -it --entrypoint=/usr/bin/bootc-image-builder \
quay.io/centos-bootc/bootc-image-builder:latest version
$ sudo podman run --rm -it quay.io/centos-bootc/bootc-image-builder:latest version
```

## 📊 Project
Expand All @@ -440,3 +557,4 @@ workflow, code style and more.

- **Apache-2.0**
- See LICENSE file for details.

10 changes: 10 additions & 0 deletions docs/developer-guide/02-projects/cockpit-composer/index.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,14 @@
---
custom_edit_url: https://github.com/osbuild/cockpit-composer/blob/main/README.md
---
# Cockpit Composer

<!--
[//]: # ( DO NOT MODIFY THIS FILE! )
[//]: # ( This content is generated by `scripts/pull_readmes.py` )
[//]: # ( Rather change the source of this: https://github.com/osbuild/cockpit-composer/blob/main/README.md )
-->

[![codecov](https://codecov.io/gh/osbuild/cockpit-composer/branch/main/graph/badge.svg)](https://codecov.io/gh/osbuild/cockpit-composer)

**The web interface for on-premises Image Builder!**
Expand Down Expand Up @@ -164,3 +173,4 @@ This source code is licensed under the MIT license found in the [`LICENSE.txt`](

---
Made with ♥ by the [OSBuild team](https://github.com/orgs/osbuild/people), [Welder team](https://github.com/orgs/weldr/people), [Cockpit team](https://github.com/orgs/cockpit-project/people), and contributors

10 changes: 10 additions & 0 deletions docs/developer-guide/02-projects/cockpit-composer/testing.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,14 @@
---
custom_edit_url: https://github.com/osbuild/cockpit-composer/blob/main/test/README.md
---
# Cockpit-Composer Integration Test

<!--
[//]: # ( DO NOT MODIFY THIS FILE! )
[//]: # ( This content is generated by `scripts/pull_readmes.py` )
[//]: # ( Rather change the source of this: https://github.com/osbuild/cockpit-composer/blob/main/test/README.md )
-->

The integration test for Cockpit Composer! It is performed on the
application level and tests whether the business requirements are met
regardless of app internal architecture, dependencies, data integrity and such.
Expand Down Expand Up @@ -107,3 +116,4 @@ the number of json files will be equal or less to the number of test cases.

Python code in this project should follow
[Flake8](https://www.flake8rules.com/).

10 changes: 10 additions & 0 deletions docs/developer-guide/02-projects/composer-cli/HACKING.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,14 @@
---
custom_edit_url: https://github.com/osbuild/weldr-client/blob/main/HACKING.md
---
# Hacking on composer-cli

<!--
[//]: # ( DO NOT MODIFY THIS FILE! )
[//]: # ( This content is generated by `scripts/pull_readmes.py` )
[//]: # ( Rather change the source of this: https://github.com/osbuild/weldr-client/blob/main/HACKING.md )
-->

This new implementation of composer-cli is broken up into 2 major pieces. The
`./weldr/` package contains the library functions for communicating with the
API server. These functions are publicly accessible and should be documented so
Expand Down Expand Up @@ -146,3 +155,4 @@ Integration tests are run by a test binary. You can build the binary by running
output more verbose details about the tests being run.



10 changes: 10 additions & 0 deletions docs/developer-guide/02-projects/composer-cli/index.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,14 @@
---
custom_edit_url: https://github.com/osbuild/weldr-client/blob/main/README.md
---
# composer-cli

<!--
[//]: # ( DO NOT MODIFY THIS FILE! )
[//]: # ( This content is generated by `scripts/pull_readmes.py` )
[//]: # ( Rather change the source of this: https://github.com/osbuild/weldr-client/blob/main/README.md )
-->

`composer-cli` is a command line utility used with
[osbuild-composer](https://www.osbuild.org) to manage blueprints, build and
upload images, and manage source repositories.
Expand Down Expand Up @@ -505,3 +514,4 @@ When adding additional sources you must make sure that the packages in the sourc
conflict with any other package sources, otherwise depsolving will fail.

[examples]: https://github.com/osbuild/weldr-client/tree/main/examples

10 changes: 10 additions & 0 deletions docs/developer-guide/02-projects/image-builder-frontend/index.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,14 @@
---
custom_edit_url: https://github.com/osbuild/image-builder-frontend/blob/main/README.md
---
# Image Builder Frontend

<!--
[//]: # ( DO NOT MODIFY THIS FILE! )
[//]: # ( This content is generated by `scripts/pull_readmes.py` )
[//]: # ( Rather change the source of this: https://github.com/osbuild/image-builder-frontend/blob/main/README.md )
-->

## Principles

1. We want to use the latest and greatest web technologies.
Expand Down Expand Up @@ -305,3 +314,4 @@ Follow these steps to find and paste the certification file into the 'Keychain A
8. Close the localhost screen.
9. Run `npm run stage-beta:msw` and open the Firefox browser to verify that it is working as expected.
10 changes: 10 additions & 0 deletions docs/developer-guide/02-projects/image-builder/HACKING.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,14 @@
---
custom_edit_url: https://github.com/osbuild/image-builder/blob/main/HACKING.md
---
# Image Builder contributing guide

<!--
[//]: # ( DO NOT MODIFY THIS FILE! )
[//]: # ( This content is generated by `scripts/pull_readmes.py` )
[//]: # ( Rather change the source of this: https://github.com/osbuild/image-builder/blob/main/HACKING.md )
-->

Please refer to the [developer guide](https://www.osbuild.org/docs/developer-guide/index) to learn about our workflow, code style and more.

## Running the project locally
Expand Down Expand Up @@ -32,3 +41,4 @@ file to generate a package list.

If the repository requires a client tls key/cert you can supply them with
`--key` and `--cert`.

4 changes: 4 additions & 0 deletions docs/developer-guide/02-projects/image-builder/index.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
---
custom_edit_url: https://github.com/osbuild/image-builder/blob/main/README.md
---
Image Builder
=============

Expand Down Expand Up @@ -62,3 +65,4 @@ To run the project use `make run` target

- **Apache-2.0**
- See LICENSE file for details.

4 changes: 4 additions & 0 deletions docs/developer-guide/02-projects/images/cmds.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
---
custom_edit_url: https://github.com/osbuild/images/blob/main/docs/developer/cmds.md
---
### Useful cmds

The following utilities, defined in the `cmd/` directory, are useful for
Expand Down Expand Up @@ -160,3 +163,4 @@ perform the same actions as the `teardown` subcommand.
The `cmd/list-images` utility simply lists all available combinations of
distribution, architecture, and image type. It also supports filtering one or
more of those three variables.

Original file line number Diff line number Diff line change
@@ -1,5 +1,14 @@
---
custom_edit_url: https://github.com/osbuild/images/blob/main/docs/developer/code-manifest-generation.md
---
# Manifest generation

<!--
[//]: # ( DO NOT MODIFY THIS FILE! )
[//]: # ( This content is generated by `scripts/pull_readmes.py` )
[//]: # ( Rather change the source of this: https://github.com/osbuild/images/blob/main/docs/developer/code-manifest-generation.md )
-->

This document explains how manifests are generated in code. It is useful for
understanding how (and where) changes should be made in the pipeline generation
code to have the desired effect.
Expand Down Expand Up @@ -184,3 +193,4 @@ function.
[godoc-manifest-manifest-serialize]: https://pkg.go.dev/github.com/osbuild/images@main/pkg/manifest#Manifest.Serialize
[godoc-json-marshal]: https://pkg.go.dev/encoding/json#Marshal
[godoc-image-imagekind]: https://pkg.go.dev/github.com/osbuild/images@main/pkg/image#ImageKind

10 changes: 10 additions & 0 deletions docs/developer-guide/02-projects/images/developer.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,14 @@
---
custom_edit_url: https://github.com/osbuild/images/blob/main/docs/developer/README.md
---
# Hacking on osbuild/images

<!--
[//]: # ( DO NOT MODIFY THIS FILE! )
[//]: # ( This content is generated by `scripts/pull_readmes.py` )
[//]: # ( Rather change the source of this: https://github.com/osbuild/images/blob/main/docs/developer/README.md )
-->

## Local development environment

To build most binaries defined in `cmd` and run tests you will need to install `gpgme-devel`.
Expand All @@ -19,3 +28,4 @@ The full list of dependencies is:

- [Useful cmds](./cmds.md) for development and testing.
- [Manifest generation code](./code-manifest-generation.md)

4 changes: 4 additions & 0 deletions docs/developer-guide/02-projects/images/index.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
---
custom_edit_url: https://github.com/osbuild/images/blob/main/README.md
---
Images
======

Expand Down Expand Up @@ -38,3 +41,4 @@ will launch theses tests automatically.

- **Apache-2.0**
- See LICENSE file for details.

10 changes: 10 additions & 0 deletions docs/developer-guide/02-projects/images/testing.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,14 @@
---
custom_edit_url: https://github.com/osbuild/images/blob/main/test/README.md
---
# osbuild/images testing information

<!--
[//]: # ( DO NOT MODIFY THIS FILE! )
[//]: # ( This content is generated by `scripts/pull_readmes.py` )
[//]: # ( Rather change the source of this: https://github.com/osbuild/images/blob/main/test/README.md )
-->

[./test/configs/](https://github.com/osbuild/images/tree/main/test/configs/) contains configuration files for building images for testing. The files are used by the following tools:

- [./cmd/build](https://github.com/osbuild/images/tree/main/cmd/build) takes a config file as argument to build an image. For example:
Expand Down Expand Up @@ -150,3 +159,4 @@ Each build job runs in parallel. For each image that is successfully built, a fi
- `<build name>`: a concatenation of all the elements that define a unique build configuration. It is created as `<distro>-<arch>-<image type>-<config name>` with dashes `-` in each component replaced by underscores `_` (e.g. `fedora_38-x86_64-qcow2-all_customizations`).
- `<manifest ID>`: the ID of the last stage of the manifest. The manifest ID is unaffected by content sources (RPM or commit URLs for example) but not by content hashes.
- `<osbuild commit ID>`: the commit ID specified in the `Schutzfile` under `<distro>.dependencies.osbuild.commit`. If not specified, it defaults to `RELEASE` and means that osbuild version was installed from the distribution repositories and the `<osbuild version>` is the released version for the given distribution.

10 changes: 10 additions & 0 deletions docs/developer-guide/02-projects/osbuild-composer/CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,14 @@
---
custom_edit_url: https://github.com/osbuild/osbuild-composer/blob/main/CONTRIBUTING.md
---
# Contributing to osbuild-composer

<!--
[//]: # ( DO NOT MODIFY THIS FILE! )
[//]: # ( This content is generated by `scripts/pull_readmes.py` )
[//]: # ( Rather change the source of this: https://github.com/osbuild/osbuild-composer/blob/main/CONTRIBUTING.md )
-->

First of all, thank you for taking the time to contribute to osbuild-composer.
In this document you will find information that can help you with your
contribution.
Expand Down Expand Up @@ -85,3 +94,4 @@ The commits in the PR should have these properties:
[1] If you are running macOS, you can still compile osbuild-composer. If it
doesn't work out of the box, use `-tags macos` together with any `go`
command, for example: `go test -tags macos ./...`

Loading

0 comments on commit 08db381

Please sign in to comment.