Quick, rough draft of docs

This commit is contained in:
Cian Hughes
2023-11-06 16:27:35 +00:00
parent a01b89e47d
commit a42bc728f6
7 changed files with 147 additions and 0 deletions

50
docs/commands.md Normal file
View File

@@ -0,0 +1,50 @@
# node_deployer
A tool for creating ignition images for automated deployment to a swarm
## Options
| **Option** | **Description** |
|----|----|
| --install-completion | Install completion for the current shell. |
| --show-completion | Show completion for the current shell, to copy it or customize the installation. |
## Commands
| **Command** | **Description** |
|----|----|
| create-ignition-disk | Creates an ignition image and writes it to the specified disk |
| create-img | Creates an ignition image for a node that will automatically join a swarm |
| json-to-img | Converts a fuel-ignition json file to an ignition disk image file |
### create-ignition-disk
Creates an ignition image and writes it to the specified disk
| Argument | Description | Default |
|----|----|----|
| --disk -d | Path to the disk to write to | None |
| --hostname -h | Hostname for the new node | node |
| --password -p | Password for the root user on the new node | None |
| --switch-ip -ip | IP address of the switch to connect to | None |
| --switch-port -sp | Port on the switch to connect | 4789 |
| --swarm-token -t | Swarm token for connecting to the swarm | None |
### create-img
Creates an ignition image for a node that will automatically join a swarm
| Argument | Description | Default |
|----|----|----|
| --hostname -h | Hostname for the new node | node |
| --password -p | Password for the root user on the new node | None |
| --switch-ip -ip | IP address of the switch to connect to | None |
| --switch-port -sp | Port on the switch to connect to | 4789 |
| --swarm-token -t | Swarm token for connecting to the swarm | None |
| --img-path -o | Path to which the ignition image should be written | ignition.img |
### json-to-img
Converts a fuel-ignition json file to an ignition disk image file
| Argument | Description | Default |
|----|----|----|
| --json-path -i | The fuel-ignition json for configuring the disk image | fuelignition.json |
| --img-path -o | The file to output the disk image to | ignition.img |

59
docs/configuration.md Normal file
View File

@@ -0,0 +1,59 @@
# Configurations
The following is a list of preprogrammed configurations for the node deployer.
## default
This is the default configuration on which all other configurations are based.
| Variable | Value | Type |
| --- | --- | --- |
| SRC_DIR | "src" | Path |
| BUILD_DIR | "build" | Path |
| DOCKERFILE_DIR | "docker" | Path |
| SELENIUM_INIT_MESSAGE | "INFO [Standalone.execute] - Started Selenium Standalone" | str |
| FUELIGNITION_INIT_MESSAGE | "ready in *ms." | str |
| FUELIGNITION_URL | "http://localhost:3000/fuel-ignition/edit" | str |
| FUELIGNITION_BUILD_DIR | "fuel-ignition" | Path |
| CWD_MOUNTDIR | "/host_cwd" | Path |
| CLIENT_STDOUT | True | bool |
| CLEANUP_IMAGES | True | bool |
| CLI | False | bool |
| DEBUG | False | bool |
| TESTING | False | bool |
## local
This configuration keeps all computations local to the machine on which the tool is run.
| Variable | Value | Type |
| --- | --- | --- |
| FUELIGNITION_URL | "http://localhost:3000/fuel-ignition/edit" | str |
## remote
<p>This configuration allows the use of hosted websites for hte fuel-ignition configurator.</p>
<p>Currently, this configuration is broken/deprecated. It is being kept as it may be be reimplemented in the future as part of a dockerless configuration.</p>
| Variable | Value | Type |
| --- | --- | --- |
| FUELIGNITION_URL | "https://opensuse.github.io/fuel-ignition/edit" | str |
## cli
This configuration enables a typer based command line interface.
| Variable | Value | Type |
| --- | --- | --- |
| CLI | True | bool |
## debug
This configuration enables debug mode.
| Variable | Value | Type |
| --- | --- | --- |
| DEBUG | True | bool |
| CLI | False | bool |
| CLEANUP_IMAGES | False | bool |
## test
This configuration enables testing mode. This mode is used for testing the tool itself.
| Variable | Value | Type |
| --- | --- | --- |
| TESTING | True | bool |
| CLEANUP_IMAGES | False | bool |

1
docs/deployment.md Normal file
View File

@@ -0,0 +1 @@
This tool creates an [ignition drive](https://coreos.github.io/ignition/) that can be used with a [OpenSUSE MicroOS self-install drive](https://get.opensuse.org/microos/) to automatically deploy new nodes to the swarm.

8
docs/index.md Normal file
View File

@@ -0,0 +1,8 @@
# I-Form Server Node Deployer
---
## Introduction
Welcome to the documentation for the I-Form Server Node Deployer tool. This tool is designed to simplify the process of deploying new nodes to the I-Form server swarm. It is intended to make the process of deploying new nodes as simple as possible, and to reduce the amount of time required to deploy new nodes. This should provide a reliable and consistent deployment process, creating an adaptable and scalable foundation for building research servers.
## Description
This program is designed to automatically create install media for deploying a swarm of minimal, immutable, and stateless nodes, to which containers can be deployed. If correctly configured, the resulting nodes will automatically connect to the specied swarm manager and immediately begin running deployed containers. The deployed nodes can be managed via the MicroOS dashboard, or via SSH. If the swarm is managed by a similarly deployed node, the entire swarm can also be managed via the MicroOS dashboard. Otherwise, access to the swarm manager is required to manage the swarm.
## Notice
The tool is currently in early alpha, and is subject to significant change.

7
docs/installation.md Normal file
View File

@@ -0,0 +1,7 @@
To install currently, download the `node_deployer` repo from the github repository, then install the package with poetry:
```bash
poetry install --no-dev
```
The tool can then be invoked with `poetry run node_deployer`. To install the tool system-wide, run `poetry build` and then install the package with `pip install dist/node_deployer*.whl`. The tool can then be invoked with `python -m node_deployer`.
This installation process will be subject to significant change in the future. Currently, the tool is in early alpha.

5
docs/usage.md Normal file
View File

@@ -0,0 +1,5 @@
To create an install disk invoke the `create-ignition-disk` command. The tool will then prompt the user to input the required parameters. Alternatively, the parameters can be passed as command line arguments. The following example creates an install disk on `/dev/sdb` managed by the computer at `192.168.1.1`
```bash
node_deployer create-ignition-disk -d /dev/sdb -ip 192.168.1.1
```
The user will then be prompted to input a password and swarm token.

17
mkdocs.yaml Normal file
View File

@@ -0,0 +1,17 @@
site_name: I-Form Server Node Deployer
theme: readthedocs
docs_dir: docs
site_dir: site
nav:
- Home: index.md
- Getting Started:
- Installation: installation.md
- Usage: usage.md
- Reference:
- Commands: commands.md
- Configuration: configuration.md
- Deployment: deployment.md
# - Troubleshooting: troubleshooting.md
# - Changelog: changelog.md
# - License: license.md