Skip to content

Commit

Permalink
chore(docs): update documentation
Browse files Browse the repository at this point in the history
  • Loading branch information
Darkness4 committed Nov 16, 2023
1 parent 8f2f626 commit 47d39f0
Show file tree
Hide file tree
Showing 22 changed files with 125 additions and 359 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ If you'd like to try ClusterFactory, you should start by reading our [Quick Star
## Join the Community

- [Community Discord](https://discord.gg/zt4GF5HYHX) - Request for support and help from the ClusterFactory community.
- [Github Issues](https://github.com/deepsquare-io/ClusterFactory/issues) - Submit your issues and feature requests via Github.
- [GitHub Issues](https://github.com/deepsquare-io/ClusterFactory/issues) - Submit your issues and feature requests via GitHub.

We welcome your help in building ClusterFactory! If you are interested, we invite you to check
out the [Contributing Guide](./CONTRIBUTING.md).
Expand Down
2 changes: 1 addition & 1 deletion RELEASE.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

## Creating a release

Creating a release happens via Github Actions by creating an [annotated](https://git-scm.com/book/en/v2/Git-Basics-Tagging#_creating_tags) git tag. Tag creation triggers the release workflow which will do most of the heavy-lifting:
Creating a release happens via GitHub Actions by creating an [annotated](https://git-scm.com/book/en/v2/Git-Basics-Tagging#_creating_tags) git tag. Tag creation triggers the release workflow which will do most of the heavy-lifting:

- Create the actual release in [releases](https://github.com/deepsquare-io/ClusterFactory/releases/)

Expand Down
2 changes: 1 addition & 1 deletion web/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,4 +26,4 @@ This command generates static content into the `build` directory and can be serv

### Deployment

We are using Github Actions to deploy the documentation to Github Pages. A commit to the `main` branch will deploy the documentation.
We are using GitHub Actions to deploy the documentation to GitHub Pages. A commit to the `main` branch will deploy the documentation.
14 changes: 3 additions & 11 deletions web/docs/getting-started/02-setting-up-repository.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ To enable GitOps and be able to follow the updates of the ClusterFactory reposit

### Method 1: Create a public fork

1. Use the "Fork" button on Github and create the fork on your favorite account.
1. Use the "Fork" button on GitHub and create the fork on your favorite account.

<div style={{textAlign: 'center'}}>

Expand Down Expand Up @@ -54,7 +54,7 @@ To enable GitOps and be able to follow the updates of the ClusterFactory reposit
git clone git@github.com:<your account>/ClusterFactory.git
```

## 2. Setup the upstream remote for git
## 2. Set up the upstream remote for git

Git is capable of managing multiple remote repositories. By default, `origin` is linked to the `<your account>/ClusterFactory` repository. To be able to fetch updates from the upstream `deepsquare-io/ClusterFactory` repository, we need to add a remote repository that we call `upstream`.

Expand All @@ -77,20 +77,12 @@ Git is capable of managing multiple remote repositories. By default, `origin` is

## 3. (Optional) Checkout to a stable version and create a new branch

You can checkout to a stable version:
You can check out to a stable version:

```shell title="user@local:/ClusterFactory"
git checkout -b configs <CF version>
```

:::info

Please note that ClusterFactory is under development, it is strongly recommended to follow the latest version of ClusterFactory.

Unannounced breaking changes are to be expected.

:::

## 4. Rename the examples and commit

Copy `argo.example`, `core.example`, `cfctl.yaml.example`, and remove the `.example`:
Expand Down
6 changes: 3 additions & 3 deletions web/docs/getting-started/03-k0s-configuration.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,9 @@ A node designated as a **worker** will solely run the following components:

It is crucial to always have an odd number of controllers (1, 3, 5, ...) to prevent the cluster from getting stuck in a deadlock.

Edit the `cfctl.yaml` file. Start with the `hosts` field :
Edit the `cfctl.yaml` file. Start with the `hosts` field:

```yaml title=cfctl.yaml
```yaml title="cfctl.yaml"
apiVersion: cfctl.clusterfactory.io/v1beta1
kind: Cluster
metadata:
Expand Down Expand Up @@ -108,7 +108,7 @@ k0s:
enabled: false
```
Most of the values are already sane but you should check if the CIDR doesn't conflict with any IP range of your network. It is also recommended to tune manually the MTU and match it to your switch and router values.
Most of the values are already sane, but you should check if the CIDR doesn't conflict with any IP range of your network. It is also recommended to tune manually the MTU and match it to your switch and router values.
If you wish to use a HA setup, please follow [this guide](/docs/guides/maintenance/high-availability).
Expand Down
2 changes: 1 addition & 1 deletion web/docs/getting-started/04-core-apps-deployment.md
Original file line number Diff line number Diff line change
Expand Up @@ -322,7 +322,7 @@ If some files were added and removed, you must change the `daemonset.yaml`:

Specify new certificate issuers in the `core/cert-manager` directory.

It is highly recommended to add your own private certificate authority, follow the [official guide of cert-manager](https://cert-manager.io/docs/configuration/ca/).
It is highly recommended adding your own private certificate authority, follow the [official guide of cert-manager](https://cert-manager.io/docs/configuration/ca/).

You must create a Secret `ca-key-pair`. To generate a TLS certificate and its private key:

Expand Down
35 changes: 18 additions & 17 deletions web/docs/getting-started/06-grendel-deployment.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# 6. Grendel Deployment

The `argo/provisioning` directory deploys the Grendel application.
The `argo/provisioning` directory deploys the Grendel application. Grendel is a PXE, TFTP and DHCP server used for network booting. It's lightweight and written in Go.

## 1. Namespace and AppProject

Expand All @@ -10,15 +10,15 @@ Create the Kubernetes namespace and ArgoCD AppProject.
kubectl apply -f argo/provisioning
```

Kubernetes namespaces are used to isolate workloads and organize the Kubernetes cluster application.
Kubernetes' namespaces are used to isolate workloads and organize the Kubernetes cluster application.

ArgoCD AppProjects are used in the continuous deployment process to prevent unauthorized deployment of resources. The more restrictive this is, the better we can avoid a supply chain attack.
ArgoCD's AppProjects are used in the continuous deployment process to prevent unauthorized deployment of resources. The more restrictive this is, the better we can avoid a supply chain attack.

## 2. Preparing the dynamic provisioning of volumes

Grendel needs to store its OS images. We will use NFS for the storage in this guide but there are other solution like OpenEBS or local-path (see the local-path-storage ArgoCD application in the `argo/local-path-storage` directory).
Grendel needs to store its OS images. We will use NFS for the storage in this guide, but there are other solution like OpenEBS or local-path (see the local-path-storage ArgoCD application in the `argo/local-path-storage` directory).

We need to deploy a StorageClass so that Kubernetes can dynamically provision volumes.
We need to deploy a StorageClass, so that Kubernetes can dynamically provision volumes.

Look at the `argo/volumes/dynamic-nfs.yaml`:

Expand Down Expand Up @@ -204,7 +204,7 @@ config:
hosts:
- name: cn1
provision: true
boot_image: squareos-8.6
boot_image: squareos-9.2
interfaces:
- ip: 10.10.2.51/24
mac: aa:bb:cc:11:22:33
Expand All @@ -213,12 +213,12 @@ config:
bmc: true
images:
- name: squareos-8.6
kernel: '/var/lib/grendel/vmlinuz-4.18.0-372.19.1.el8_6.x86_64'
- name: squareos-9.2
kernel: '/var/lib/grendel/vmlinuz-5.14.0-284.30.1.el9_2.x86_64'
initrd:
- '/var/lib/grendel/initramfs-4.18.0-372.19.1.el8_6.x86_64.img'
liveimg: '/var/lib/grendel/squareos-8.6.squashfs'
cmdline: console=ttyS0 console=tty0 root=live:http://grendel.example.com/repo/squareos-8.6.squashfs BOOTIF=01-{{ $.nic.MAC | toString | replace ":" "-" }} grendel.hostname={{ $.host.Name }} grendel.address=http://grendel.example.com rd.live.overlay.readonly=1 rd.live.overlay.overlayfs=1 rd.neednet=1
- '/var/lib/grendel/initramfs-5.14.0-284.30.1.el9_2.x86_64.img'
liveimg: '/var/lib/grendel/squareos-9.2.squashfs'
cmdline: console=ttyS0 console=tty0 root=live:http://sos-ch-dk-2.exo.io/osimages/squareos-9.2/squareos-9.2.squashfs BOOTIF=01-{{ $.nic.MAC | toString | replace ":" "-" }} grendel.hostname={{ $.host.Name }} grendel.address=http://grendel.example.com rd.live.overlay.readonly=1 rd.live.overlay.overlayfs=1 rd.neednet=1
postscript: |
#!/bin/sh
Expand All @@ -230,8 +230,8 @@ The MAC address corresponds to the network interface connected to the network wi
Inside the image configuration, you can notice some kernel parameters:

- `console=ttyS0 console=tty0` means that the kernel messages will appear on both the first serial port and virtual terminal.
- `root=live:http://grendel.example.com/repo/squareos-8.6.squashfs` means that dracut will load the OS image as a live OS image. **Modify the URL based on the domain name you want to use.**
- `rd.live.overlay.readonly=1 rd.live.overlay.overlayfs=1 rd.neednet=1` are parameters relative to loading the live OS image. Here, we are mounting the OS image as a read-only base image for the OverlayFS. This is to create a stateless filesystem.
- `root=live:http://sos-ch-dk-2.exo.io/osimages/squareos-9.2/squareos-9.2.squashfs` means that Dracut will load the OS image as a live OS image. **Modify the URL based on the domain name you want to use.**
- `rd.live.overlay.readonly=1 rd.live.overlay.overlayfs=1 rd.neednet=1` are parameters relative to loading the live OS image. Here, we are mounting the OS image as a read-only base image for the OverlayFS. This is to create a stateless file system.
- `grendel.hostname={{ $.host.Name }} grendel.address=http://grendel.example.com` are parameters used to change the hostname of the OS and fetch the postscript. **Modify the URL based on the domain name you want to use.**

### Persistence
Expand Down Expand Up @@ -339,14 +339,14 @@ kubectl apply -f argo/provisioning/apps/grendel-app.yaml

This step is optional, you can download a pre-built SquareOS image:

- [initramfs](https://sos-ch-dk-2.exo.io/osimages/squareos-8.6/initramfs-4.18.0-372.19.1.el8_6.x86_64.img)
- [OS image](https://sos-ch-dk-2.exo.io/osimages/squareos-8.6/squareos-8.6.squashfs)
- [linux kernel](https://sos-ch-dk-2.exo.io/osimages/squareos-8.6/vmlinuz-4.18.0-372.19.1.el8_6.x86_64)
- [initramfs](https://sos-ch-dk-2.exo.io/osimages/squareos-9.2/initramfs-4.18.0-372.19.1.el8_6.x86_64.img)
- [OS image](https://sos-ch-dk-2.exo.io/osimages/squareos-9.2/squareos-9.2.squashfs)
- [linux kernel](https://sos-ch-dk-2.exo.io/osimages/squareos-9.2/vmlinuz-4.18.0-372.19.1.el8_6.x86_64)

If you want to build it yourself, we use Packer to build the OS image. To build the OS image:

- 1. Install Packer and QEMU.
- 2. Go to the `packer-recipes/rocky8.6`.
- 2. Go to the `packer-recipes/rocky9.2`.
- 3. Build the OS image using the `build.bare.sh` script.
- 4. Extract the kernel, initramfs and create the squashfs file using the `export.bare.sh` script.

Expand Down Expand Up @@ -389,3 +389,4 @@ You've finished the guide. However, there is still a lot of application we didn'
- [Deploy SLURM, the bare-metal batch scheduler](/docs/guides/slurm/deploy-slurm)
- [Configure the postscript to follow the GitOps practices](/docs/guides/provisioning/gitops-with-grendel)
- [About maintenance](/docs/guides/maintenance/high-availability)
- [Join the DeepSquare Grid](https://docs.deepsquare.run/deepsquare-grid/clusterfactory/overview)
18 changes: 0 additions & 18 deletions web/docs/guides/00-installing-the-utilities.md

This file was deleted.

Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading

0 comments on commit 47d39f0

Please sign in to comment.