-
Notifications
You must be signed in to change notification settings - Fork 3
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add Mkdocs-based Documentation and Automated API Reference Documentat…
…ion Generation (#105) * Add initial documentation with with mkdocs * Auto generate API documentation and add more content in docs
- Loading branch information
Showing
22 changed files
with
1,097 additions
and
27 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
name: Publish docs via GitHub Pages | ||
on: | ||
push: | ||
branches: [ main ] | ||
|
||
jobs: | ||
build: | ||
name: Deploy docs | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Checkout main | ||
uses: actions/checkout@v4 | ||
- uses: actions/setup-python@v5 | ||
with: | ||
python-version: 'pypy3.9' | ||
- uses: actions/cache@v4 | ||
with: | ||
key: ${{ github.ref }} | ||
path: .cache | ||
- name: Deploy docs | ||
uses: afritzler/mkdocs-gh-pages-action@main | ||
env: | ||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
// SPDX-FileCopyrightText: 2024 SAP SE or an SAP affiliate company and IronCore contributors | ||
// SPDX-License-Identifier: Apache-2.0 | ||
|
||
// Package v1alpha1 contains API Schema definitions for the settings.gardener.cloud API group | ||
// +groupName=metal.ironcore.dev | ||
// +kubebuilder:object:generate=true | ||
package v1alpha1 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
FROM squidfunk/mkdocs-material:latest | ||
|
||
LABEL project=boot_operator | ||
|
||
WORKDIR /docs | ||
|
||
COPY docs/requirements.txt requirements.txt | ||
RUN pip install --no-cache-dir -r requirements.txt | ||
|
||
EXPOSE 8000 | ||
|
||
# Start development server by default | ||
ENTRYPOINT ["mkdocs"] | ||
CMD ["serve", "--dev-addr=0.0.0.0:8000"] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,39 @@ | ||
# Boot-Operator Documentation | ||
|
||
## Overview | ||
|
||
Boot Operator is a Kubernetes-based project designed to automate the deployment of tools required for booting bare metal servers. It integrates web servers and Kubernetes controllers to manage the entire process of provisioning, booting, and configuring the server. | ||
|
||
## Problem It Solves | ||
|
||
When a bare metal server boots with a network boot method (e.g., PXE or HTTP boot), it typically contacts a DHCP or proxy DHCP server to obtain the necessary information for booting. The DHCP server then provides the IP address of a TFTP server (for PXE) or a web server (for HTTP boot), along with additional boot parameters. | ||
|
||
Traditionally, managing these network boot servers requires manual configuration. Boot Operator automates this by incorporating the boot servers into Kubernetes deployments. By leveraging Kubernetes controllers, each machine's boot process is handled declaratively, making it simpler to manage and scale. | ||
|
||
## Key Components | ||
|
||
Boot Operator includes the following key components: | ||
|
||
- **IPXE Boot Server** | ||
- Handles `/ipxe` requests | ||
- Responds with an iPXE script, which the bare metal server uses to download the necessary OS components | ||
- This endpoint is typically called directly by the server during boot and is commonly used in PXE boot scenarios | ||
|
||
- **HTTP Boot Server** | ||
- Handles `/httpboot` requests | ||
- Returns a JSON response containing the location of the UKI (Unified Kernel Image) that the server should download | ||
- The DHCP server extension typically handles the response and sends the UKI image location to the server | ||
- Common in modern cloud-native bare metal setups, especially for containers and minimal OS images | ||
|
||
- **Image Proxy Server** | ||
- Handles `/image` requests | ||
- Extracts layers from public OCI (Open Container Initiative) images, with current support for GHCR (GitHub Container Registry) only | ||
- Downloads specific layers based on the requested URI and image specifications | ||
- Example: | ||
- `wget http://SERVER_ADDRESS:30007/image?imageName=ghcr.io/ironcore-dev/os-images/gardenlinux&version=1443.10&layerName=application/vnd.ironcore.image.squashfs.v1alpha1.squashfs` | ||
|
||
- **Ignition Server** | ||
- Handles `/ignition` requests | ||
- Responds with Ignition configuration content tailored to the client machine, identified by its UUID in the request URL. | ||
|
||
These servers leverage Kubernetes controllers and API objects to manage the boot process and serve requests from bare metal machines. The architecture and specifics of the controllers and API objects are described in the architecture section of the documentation. |
Oops, something went wrong.