From eb5d63859271984650896a1aa6e90e93dd76de28 Mon Sep 17 00:00:00 2001 From: sagoresarker Date: Tue, 22 Oct 2024 23:21:40 +0600 Subject: [PATCH] Improve documentation: Correct typos, enhance clarity and formatting --- README.md | 182 ++++++++++++++++++++++++++++-------------------------- 1 file changed, 93 insertions(+), 89 deletions(-) diff --git a/README.md b/README.md index a28fdfa..5fe96dc 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,11 @@ # What is KubeFire? 🔥 -KubeFire is to create and manage Kubernetes clusters running on FireCracker microVMs via **weaveworks/ignite**. +KubeFire is a tool to create and manage Kubernetes clusters running on Firecracker microVMs via **weaveworks/ignite**. -- Uses independent rootfs and kernel from OCI images instead of traditional VM images like qcow2, vhd, etc -- Uses containerd to manage Firecracker processes -- Have different cluster bootstappers to provision Kubernetes clusters like Kubeadm, K3s, RKE2, and K0s -- Supports deploying clusters on different architectures like x86_64/AMD64 and ARM64/AARCH64 (ex: K3s, RKE2, K0s) +- Uses independent root filesystem (rootfs) and kernel from OCI images instead of traditional VM images like qcow2, vhd, etc. +- Uses containerd to manage Firecracker processes. +- Supports different cluster bootstrappers to provision Kubernetes clusters like Kubeadm, K3s, RKE2, and K0s. +- Supports deploying clusters on different architectures like x86_64/AMD64 and ARM64/AARCH64 (e.g., K3s, RKE2, K0s). ![kubefire in action](./doc/demo.svg) @@ -13,21 +13,21 @@ KubeFire is to create and manage Kubernetes clusters running on FireCracker micr ## Installing KubeFire -For official releases, please install the latest release via the below command or use [`huber`](https://github.com/innobead/huber) +For official releases, please install the latest version via the command below or use [`huber`](https://github.com/innobead/huber): -```console +```bash curl -sfSL https://raw.githubusercontent.com/innobead/kubefire/master/hack/install-release-kubefire.sh | bash ``` -or +or -```console +```bash huber install kubefire ``` For development purpose, please make sure go 1.14 installed, then build and install `kubefire` in the `GOBIN` path. -```console +```bash make install ``` @@ -35,14 +35,14 @@ make install Running below commands is to quickly have a cluster deployed by kubeadm running in minutes. -```console +```bash kubefire install kubefire cluster create demo ``` ## Installing or Updating Prerequisites -To be able to run kubefire commands w/o issues like node/cluster management, there are some prerequisites to have. +To be able to run kubefire commands w/o issues like node/cluster management, there are some prerequisites to have. Please run `kubefire install` command with root permission (or sudo without password) to install or update these prerequisites via the below steps. - Check virtualization supported @@ -52,9 +52,9 @@ Please run `kubefire install` command with root permission (or sudo without pass - CniVersion >= v1.1.1 - IgniteVersion >= v0.10.0 -> Notes: +> Notes: > - To uninstall the prerequisites, run `kubefire uninstall`. -> - To check the installation status, run `kubefire info`. +> - To check the installation status, run `kubefire info`. [![asciicast](https://asciinema.org/a/tQKqYjojnsgZOjZqrGbF9Zqh0.svg)](https://asciinema.org/a/tQKqYjojnsgZOjZqrGbF9Zqh0) @@ -62,11 +62,11 @@ Please run `kubefire install` command with root permission (or sudo without pass ### Bootstrapping with command options, or a declarative config file -`cluster create` provides detailed options to configure the cluster, but it also provides `--config` to accept a cluster configuration file to bootstrap the cluster as below commands. +`cluster create` provides detailed options to configure the cluster, but it also provides `--config` to accept a cluster configuration file to bootstrap the cluster as below commands. #### With command options -```console -❯ kubefire cluster create -h +```bash +$ kubefire cluster create -h Creates cluster Usage: @@ -101,11 +101,12 @@ Global Flags: #### With declarative config file -```console +```bash # Geneate a cluster template configuration, then update the config as per your needs -❯ kubefire cluster config-template > cluster.yaml - -❯ cat cluster.yaml +$ kubefire cluster config-template > cluster.yaml +``` +```bash +$ cat cluster.yaml name: "" bootstrapper: kubeadm pubkey: "" @@ -126,41 +127,43 @@ worker: memory: 2GB cpus: 2 disk_size: 10GB - +``` # Create a cluster with the config file -❯ kubeifre cluster create demo --config=cluster.yaml + +```bash +kubefire cluster create demo --config=cluster.yaml ``` ### Bootstrapping with selectable Kubernetes versions -```console +```bash # Create a cluster with the latest versions w/o any specified version -❯ kubefire cluster create demo +$ kubefire cluster create demo # Create a cluster with the latest patch version of v1.18 -❯ kubefire cluster create demo --version=v1.18 +$ kubefire cluster create demo --version=v1.18 # Create a cluster with a valid specific version v1.18.8 -❯ kubefire cluster create demo --version=v1.18.8 +$ kubefire cluster create demo --version=v1.18.8 # Create a cluster with the latest patch version of supported minor releases -❯ kubefire cluster create demo --version=v1.17 -❯ kubefire cluster create demo --version=v1.16 +$ kubefire cluster create demo --version=v1.17 +$ kubefire cluster create demo --version=v1.16 -# If the version is outside the supported versions (last 3 minor versions given the latest is v1.18), the cluster creation will be not supported -❯ kubefire cluster create demo --version=v1.15 +# If the version is outside the supported versions (last 3 minor versions given the latest is v1.18), the cluster creation will be not supported +$ kubefire cluster create demo --version=v1.15 ``` ### Bootstrapping with Kubeadm > Supports [the latest supported version](https://dl.k8s.io/release/stable.txt) and last 3 minor versions. -```console -❯ kubefire cluster create demo --bootstrapper=kubeadm +```bash +kubefire cluster create demo --bootstrapper=kubeadm ``` #### Add extra Kubeadm deployment options -To add extra deployment options of the control plane components, use `--extra-options` of `cluster create` command to provide `init_options`, `api_server_options`, `controller_manager_options` or `scheduler_options` key-value pairs as the below example. +To add extra deployment options of the control plane components, use `--extra-options` of `cluster create` command to provide `init_options`, `api_server_options`, `controller_manager_options` or `scheduler_options` key-value pairs as the below example. > Note: the key-value pairs in `--extra-options` are separated by comma. @@ -169,8 +172,8 @@ To add extra deployment options of the control plane components, use `--extra-op - Add extra options of `Controller Manager` into `controller_manager_options='