Start adding documentation for empanadas
This commit is contained in:
parent
d025c15920
commit
035a7b91ef
@ -3,4 +3,5 @@ nav:
|
|||||||
- ... | index.md
|
- ... | index.md
|
||||||
- Composing Releases: compose.md
|
- Composing Releases: compose.md
|
||||||
- Empanadas: empanadas.md
|
- Empanadas: empanadas.md
|
||||||
|
- References: references
|
||||||
...
|
...
|
||||||
|
@ -22,22 +22,69 @@ debugging of repositories and its metadata.
|
|||||||
with the goal to try to emulate the Fedora Project's pungi to an extent. While it
|
with the goal to try to emulate the Fedora Project's pungi to an extent. While it
|
||||||
is not perfect, it achieves the very basic goals of creating repositories, images
|
is not perfect, it achieves the very basic goals of creating repositories, images
|
||||||
and ISO's for consumption by the end user. It also has interactions with peridot,
|
and ISO's for consumption by the end user. It also has interactions with peridot,
|
||||||
the build system used by Rocky Linux to build the distribution.
|
the build system used by the RESF to build the Rocky Linux distribution.
|
||||||
|
|
||||||
For performing syncs, it relies on the use of podman to perform syncing in a
|
For performing syncs, it relies on the use of podman to perform syncing in a
|
||||||
parallel fashion. This was done because it is not possible to run multiple dnf
|
parallel fashion. This was done because it is not possible to run multiple dnf
|
||||||
transactions at once on a single system and looping one repository at a time is
|
transactions at once on a single system and looping one repository at a time is
|
||||||
not sustainable.
|
not sustainable (nor fast).
|
||||||
|
|
||||||
## Requirements
|
## Requirements
|
||||||
|
|
||||||
* Poetry must be available on the system
|
* Poetry must be installed on the system
|
||||||
* Podman must be installed on the system
|
* Podman must be installed on the system
|
||||||
* fpart must be installed on the system (available in EPEL)
|
* `fpart` must be installed on the system (available in EPEL on EL systems)
|
||||||
* Enough storage should be available if repositories are being synced
|
* Enough storage should be available if repositories are being synced
|
||||||
|
* `mock` must be installed if building live images
|
||||||
|
* System must be an Enterprise Linux system or Fedora with the `%rhel` macro set
|
||||||
|
|
||||||
|
## Features
|
||||||
|
|
||||||
|
As of this writing, `empanadas` has the following abilities:
|
||||||
|
|
||||||
|
* Repository syncing via dnf from a peridot instance or applicable repos
|
||||||
|
* Per profile dnf repoclosure checking for all applicable repos
|
||||||
|
* Per profile dnf repoclosure checking for peridot instance repositories
|
||||||
|
* Basic ISO Building via `lorax`
|
||||||
|
* Extra ISO Building via `xorriso` for DVD and minimal images
|
||||||
|
* Live ISO Building using `livemedia-creator` and `mock`
|
||||||
|
* Anaconda treeinfo builder
|
||||||
|
* Cloud Image builder
|
||||||
|
|
||||||
|
## Installing Empanadas
|
||||||
|
|
||||||
|
The below is how to install empanadas from the development branch on a Fedora
|
||||||
|
system.
|
||||||
|
|
||||||
|
```
|
||||||
|
% dnf install git podman fpart poetry mock -y
|
||||||
|
% git clone https://git.resf.org/sig_core/toolkit.git -b devel
|
||||||
|
% cd toolkit/iso/empanadas
|
||||||
|
% poetry install
|
||||||
|
```
|
||||||
|
|
||||||
|
## Configuring Empanadas
|
||||||
|
|
||||||
|
Depending on how you are using empanadas will depend on how your configurations
|
||||||
|
will be setup.
|
||||||
|
|
||||||
|
* `empanadas/common.py`
|
||||||
|
* `empanadas/config/*.yaml`
|
||||||
|
* `empanadas/sig/*.yaml`
|
||||||
|
|
||||||
|
These configuration files are delicate and can control a wide variety of the
|
||||||
|
moving parts of empanadas. As these configurations are fairly massive, we
|
||||||
|
recommend checking the [reference guides](./references/) for deeper details into
|
||||||
|
configuring for base distribution or "SIG" content.
|
||||||
|
|
||||||
## Using Empanadas
|
## Using Empanadas
|
||||||
|
|
||||||
###
|
The most common way to use empanadas is to sync repositories from a peridot
|
||||||
|
instance. This is performed upon each release or on each set of updates as they
|
||||||
|
come from upstream. Below lists how to use `empanadas`, as well as the common
|
||||||
|
options.
|
||||||
|
|
||||||
|
Note that for each of these commands, it is fully expected you are running
|
||||||
|
`poetry run` in the root of empanadas.
|
||||||
|
|
||||||
{% include "resources_bottom.md" %}
|
{% include "resources_bottom.md" %}
|
||||||
|
@ -24,7 +24,7 @@ The tools in use for the distribution are in the table below.
|
|||||||
|
|
||||||
For Rocky Linux to be build, we use `Peridot` as the build system and
|
For Rocky Linux to be build, we use `Peridot` as the build system and
|
||||||
`empanadas` to "compose" the distribution. As we do not use Koji for Rocky
|
`empanadas` to "compose" the distribution. As we do not use Koji for Rocky
|
||||||
Linux beyond version 9, pungi no longer can be used. Peridot instead takes
|
Linux beyond version 9, pungi can no longer be used. Peridot instead takes
|
||||||
pungi configuration data and comps and transforms them into a format it
|
pungi configuration data and comps and transforms them into a format it
|
||||||
can understand. Empanadas then comes in to do the "compose" and sync
|
can understand. Empanadas then comes in to do the "compose" and sync
|
||||||
all the repositories down.
|
all the repositories down.
|
||||||
|
7
docs/documentation/peridot.md
Normal file
7
docs/documentation/peridot.md
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
---
|
||||||
|
title: Peridot Build System
|
||||||
|
---
|
||||||
|
|
||||||
|
This page goes over the Peridot Build System and how SIG/Core utilizes it.
|
||||||
|
|
||||||
|
More to come.
|
6
docs/documentation/references/.pages
Normal file
6
docs/documentation/references/.pages
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
---
|
||||||
|
nav:
|
||||||
|
- ... | index.md
|
||||||
|
- ... | empanadas_common.md
|
||||||
|
- ... | empanadas_config.md
|
||||||
|
- ... | empanadas_sig_config.md
|
215
docs/documentation/references/empanadas_common.md
Normal file
215
docs/documentation/references/empanadas_common.md
Normal file
@ -0,0 +1,215 @@
|
|||||||
|
---
|
||||||
|
title: Empanadas common.py Configuration
|
||||||
|
---
|
||||||
|
|
||||||
|
## Config Items
|
||||||
|
|
||||||
|
### config.rlmacro
|
||||||
|
|
||||||
|
type: String
|
||||||
|
|
||||||
|
required: True
|
||||||
|
|
||||||
|
description: Empanadas expects to run on an EL system. This is part of the
|
||||||
|
general check up. It should not be hardcoded and use the rpm python module.
|
||||||
|
|
||||||
|
### config.dist
|
||||||
|
|
||||||
|
type: String
|
||||||
|
|
||||||
|
required: False
|
||||||
|
|
||||||
|
description: Was the original tag placed in mock configs. This combines `el`
|
||||||
|
with the rpm python module expansion. This is no longer required. The
|
||||||
|
option is still available for future use.
|
||||||
|
|
||||||
|
### config.arch
|
||||||
|
|
||||||
|
type: String
|
||||||
|
|
||||||
|
required: True
|
||||||
|
|
||||||
|
description: The architecture of the current running system. This is checked
|
||||||
|
against the supported architectures in general release configurations. This
|
||||||
|
should not be hardcoded.
|
||||||
|
|
||||||
|
### config.date_stamp
|
||||||
|
|
||||||
|
type: String
|
||||||
|
|
||||||
|
required: True
|
||||||
|
|
||||||
|
description: Date time stamp in the form of YYYYMMDD.HHMMSS. This should not be
|
||||||
|
hardcoded.
|
||||||
|
|
||||||
|
### config.compose_root
|
||||||
|
|
||||||
|
type: String
|
||||||
|
|
||||||
|
required: True
|
||||||
|
|
||||||
|
description: Root path of composes on the system running empanadas.
|
||||||
|
|
||||||
|
### config.staging_root
|
||||||
|
|
||||||
|
type: String
|
||||||
|
|
||||||
|
required: False
|
||||||
|
|
||||||
|
description: For future use. Root path of staging repository location where
|
||||||
|
content will be synced to.
|
||||||
|
|
||||||
|
### config.production_root
|
||||||
|
|
||||||
|
type: String
|
||||||
|
|
||||||
|
required: False
|
||||||
|
|
||||||
|
description: For future use. Root path of production repository location where
|
||||||
|
content will be synced to from staging.
|
||||||
|
|
||||||
|
### config.category_stub
|
||||||
|
|
||||||
|
type: String
|
||||||
|
|
||||||
|
required: True
|
||||||
|
|
||||||
|
description: For future use. Stub path that is appended to `staging_root` and
|
||||||
|
`production_root`.
|
||||||
|
|
||||||
|
example: `mirror/pub/rocky`
|
||||||
|
|
||||||
|
### config.sig_category_stub
|
||||||
|
|
||||||
|
type: String
|
||||||
|
|
||||||
|
required: True
|
||||||
|
|
||||||
|
description: For future use. Stub path that is appended to `staging_root` and
|
||||||
|
`production_root` for SIG content.
|
||||||
|
|
||||||
|
example: `mirror/pub/sig`
|
||||||
|
|
||||||
|
### config.repo_base_url
|
||||||
|
|
||||||
|
type: String
|
||||||
|
|
||||||
|
required: True
|
||||||
|
|
||||||
|
description: URL to the base url's where the repositories live. This is
|
||||||
|
typically to a peridot instance. This is supplemented by the configuration
|
||||||
|
`project_id` parameter.
|
||||||
|
|
||||||
|
Note that this does not have to be a peridot instance. The combination of this
|
||||||
|
value and `project_id` can be sufficient enough for empanadas to perform its
|
||||||
|
work.
|
||||||
|
|
||||||
|
### config.mock_work_root
|
||||||
|
|
||||||
|
type: String
|
||||||
|
|
||||||
|
required: True
|
||||||
|
|
||||||
|
description: Hardcoded path to where ISO work is performed within a mock chroot.
|
||||||
|
This is the default path created by mock and it is recommended not to change
|
||||||
|
this.
|
||||||
|
|
||||||
|
example: `/builddir`
|
||||||
|
|
||||||
|
### config.container
|
||||||
|
|
||||||
|
type: String
|
||||||
|
|
||||||
|
required: True
|
||||||
|
|
||||||
|
description: This is the container used to perform all operations in podman.
|
||||||
|
|
||||||
|
example: `centos:stream9`
|
||||||
|
|
||||||
|
### config.distname
|
||||||
|
|
||||||
|
type: String
|
||||||
|
|
||||||
|
required: True
|
||||||
|
|
||||||
|
description: Name of the distribution you are building or building for.
|
||||||
|
|
||||||
|
example: `Rocky Linux`
|
||||||
|
|
||||||
|
### config.shortname
|
||||||
|
|
||||||
|
type: String
|
||||||
|
|
||||||
|
required: True
|
||||||
|
|
||||||
|
description: Short name of the distribution you are building or building for.
|
||||||
|
|
||||||
|
example: `Rocky`
|
||||||
|
|
||||||
|
### config.translators
|
||||||
|
|
||||||
|
type: Dictionary
|
||||||
|
|
||||||
|
required: True
|
||||||
|
|
||||||
|
description: Translates Linux architectures to golang architectures. Reserved
|
||||||
|
for future use.
|
||||||
|
|
||||||
|
### config.aws_region
|
||||||
|
|
||||||
|
type: String
|
||||||
|
|
||||||
|
required: False
|
||||||
|
|
||||||
|
description: Region you are working in with AWS or onprem cloud that supports
|
||||||
|
this variable.
|
||||||
|
|
||||||
|
example: `us-east-2`
|
||||||
|
|
||||||
|
### config.bucket
|
||||||
|
|
||||||
|
type: String
|
||||||
|
|
||||||
|
required: False
|
||||||
|
|
||||||
|
description: Name of the S3-compatible bucket that is used to pull images from.
|
||||||
|
Requires `aws_region`.
|
||||||
|
|
||||||
|
### config.bucket_url
|
||||||
|
|
||||||
|
type: String
|
||||||
|
|
||||||
|
required: False
|
||||||
|
|
||||||
|
description: URL of the S3-compatible bucket that is used to pull images from.
|
||||||
|
|
||||||
|
## Reference Example
|
||||||
|
|
||||||
|
```
|
||||||
|
config = {
|
||||||
|
"rlmacro": rpm.expandMacro('%rhel'),
|
||||||
|
"dist": 'el' + rpm.expandMacro('%rhel'),
|
||||||
|
"arch": platform.machine(),
|
||||||
|
"date_stamp": time.strftime("%Y%m%d.%H%M%S", time.localtime()),
|
||||||
|
"compose_root": "/mnt/compose",
|
||||||
|
"staging_root": "/mnt/repos-staging",
|
||||||
|
"production_root": "/mnt/repos-production",
|
||||||
|
"category_stub": "mirror/pub/rocky",
|
||||||
|
"sig_category_stub": "mirror/pub/sig",
|
||||||
|
"repo_base_url": "https://yumrepofs.build.resf.org/v1/projects",
|
||||||
|
"mock_work_root": "/builddir",
|
||||||
|
"container": "centos:stream9",
|
||||||
|
"distname": "Rocky Linux",
|
||||||
|
"shortname": "Rocky",
|
||||||
|
"translators": {
|
||||||
|
"x86_64": "amd64",
|
||||||
|
"aarch64": "arm64",
|
||||||
|
"ppc64le": "ppc64le",
|
||||||
|
"s390x": "s390x",
|
||||||
|
"i686": "386"
|
||||||
|
},
|
||||||
|
"aws_region": "us-east-2",
|
||||||
|
"bucket": "resf-empanadas",
|
||||||
|
"bucket_url": "https://resf-empanadas.s3.us-east-2.amazonaws.com"
|
||||||
|
}
|
||||||
|
```
|
5
docs/documentation/references/index.md
Normal file
5
docs/documentation/references/index.md
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
---
|
||||||
|
title: References
|
||||||
|
---
|
||||||
|
|
||||||
|
Use this section to locate reference configuration items for the toolkit.
|
3
docs/what_we_do.md
Normal file
3
docs/what_we_do.md
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
---
|
||||||
|
title: What We Do
|
||||||
|
---
|
Loading…
Reference in New Issue
Block a user