Skip to content

Commit

Permalink
Siboney1 proofread and edits (kairos-io#217)
Browse files Browse the repository at this point in the history
* To update with latest edits

* resolve conflict

* Add feedback from review

Co-authored-by: Siboney <38500301+Siboney1@users.noreply.github.com>
  • Loading branch information
mudler and Siboney1 authored Oct 14, 2022
1 parent 2216311 commit c17f6d5
Show file tree
Hide file tree
Showing 36 changed files with 197 additions and 190 deletions.
22 changes: 11 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,40 +29,40 @@ At-a-glance:
- :octocat: Open Source
- :lock: Linux immutable, meta-distribution
- :key: Secure
- :whale: Container based
- :whale: Container-based
- :penguin: Distribution agnostic

Kairos can be used to:

- Easily spin-up a Kubernetes cluster, with the Linux distribution of your choice :penguin:
- Manage the cluster lifecycle with Kubernetes—from building, to provisioning, and upgrading :rocket:
- Create a multiple—node, single cluster that spans up across regions :earth_africa:
- Manage the cluster lifecycle with Kubernetes—from building to provisioning, and upgrading :rocket:
- Create a multiple—node, a single cluster that spans up across regions :earth_africa:

For comprehensive docs, tutorials, and examples see our [documentation](https://kairos.io).

## Project status

- (Sep 29 2022) announcing Kairos 1.0 GA availability. Kairos is now backed by Spectro Cloud, which contributes to the project. Kairos will remain fully community-driven and has its own governance. See the [announcement](https://github.com/kairos-io/kairos/discussions/159)
- (Sep 15 2022) the c3OS project has a new name: Kairos! For full details, see https://github.com/c3os-io/c3os/issues/88 and https://github.com/c3os-io/c3os/discussions/84.
- (Sep 29, 2022) announcing Kairos 1.0 GA availability. Kairos is now backed by Spectro Cloud, which contributes to the project. Kairos will remain fully community-driven and has its own governance. See the [announcement](https://github.com/kairos-io/kairos/discussions/159)
- (Sep 15, 2022) the c3OS project has a new name: Kairos! For full details, see https://github.com/c3os-io/c3os/issues/88 and https://github.com/c3os-io/c3os/discussions/84.

## What is it ?
## What is it?

Kairos is a Cloud Native, meta-Linux distribution that can be built, managed, and ran with Kubernetes.

Why/when should I use it?

- Build your Cloud on-premise, no vendor-lock in—completely Open Source
- Brings the same convenience as a public cloud on—premises
- Build your Cloud on-premise, no vendor lock-in—completely Open Source.
- Brings the same convenience as a public cloud on-premise.
- Node provisioning, by bringing your image or using the Kairos releases.
- For appliances that don't have to be Kubernetes application, specific-its design fits multiple use case scenarios
- For appliances that don't have to be Kubernetes application specific-its design fits multiple use case scenarios.

## Features

- At the current state, Kairos can create a multiple-node Kubernetes cluster with [k3s](https://k3s.io)—all k3s features are supported.
- At the current state, Kairos can create a multiple-node Kubernetes cluster with [k3s](https://k3s.io)—all K3s features are supported.
- Upgrades can be done manually via CLI or with Kubernetes. Distribution of upgrades are done via container registries.
- An immutable distribution that you can configure to your needs while maintaining its immutability.
- Node configuration via a single, cloud-init config file.
- Handle airgap upgrades with in—cluster, container registries.
- Handle airgap upgrades within cluster and container registries.
- Extend the image in runtime or build time via Kubernetes Native API.
- Plans to support CAPI, with full device lifecycle management.
- Plans to support up to RKE2, kubeadm, and much more!
Expand Down
6 changes: 3 additions & 3 deletions SECURITY.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@

## Reporting a Vulnerability

Kairos supports responsible disclosure and endeavors to resolve security issues in a reasonable timeframe.
Kairos supports responsible disclosure and endeavors to resolve security issues in a reasonable timeframe.

However as is a community driven project we don't run any bug bounty, but we will make sure credits goes to whom belongs and address the issues as fast as possible, if you can provide also patch and open up a PR that's more than welcome.
However, as is a community driven project we don't run any bug bounty, but we will make sure credits goes to whom belongs and address the issues as fast as possible, if you can provide also patch and open up a PR that's more than welcome.

To report a security vulnerability, please email security@kairos.io.
To report a security vulnerability, please email security@kairos.io.
4 changes: 4 additions & 0 deletions docs/scripts/serve
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
#!/bin/bash
set -e

npx serve dist
18 changes: 9 additions & 9 deletions docs/src/layouts/landing/Sections.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -22,17 +22,17 @@ const MAIN_SECTIONS = [
{
title: "Let's get meta:",
description:
"We call Kairos a meta Linux Distribution. Why meta? Because it sits as a container layer turning any Linux distro into an immutable system distributed via container registries. With Kairos, the OS is the container image, which is used for new installations and upgrades.",
"We call Kairos a meta-Linux Distribution. Why meta? Because it sits as a container layer, turning any Linux distro into an immutable system distributed via container registries. With Kairos, the OS is the container image, which is used for new installations and upgrades.",
},
{
title: "Bring your own OS:",
description:
"The Kairos 'factory' enables you to build custom bootable OS images for your edge devices, from your choice of OS (including openSUSE, Alpine and Ubuntu) and your choice of edge Kubernetes distribution - Kairos is totally agnostic.",
"The Kairos 'factory' enables you to build custom bootable-OS images for your edge devices, from your choice of OS (including openSUSE, Alpine and Ubuntu), and your choice of edge Kubernetes distributionKairos is totally agnostic.",
},
{
title: "Repeatable, immutable:",
description:
"Each node boots from the same image, so no more snowflakes in your clusters, and each system is immutable - it boots in a restricted, permissionless mode, where certain paths of it are not writeable. For instance, after installation it's not possible to install additional packages in the system, and any configuration change is discarded after reboot. This dramatically reduces the attack surface and the impact of malicious actors gaining access to the device. ",
"Each node boots from the same image, so no more snowflakes in your clusters, and each system is immutableit boots in a restricted, permissionless mode, where certain paths are not writeable. For instance, after an installation it's not possible to install additional packages in the system, and any configuration change is discarded after a reboot. This dramatically reduces the attack surface and the impact of malicious actors gaining access to the device.",
},
],
},
Expand All @@ -48,7 +48,7 @@ const MAIN_SECTIONS = [
{
title: "Secure peer to peer mesh with VPN:",
description:
"Kairos optionally supports P2P full-mesh out of the box. New devices wake up with a shared secret and distributed ledger of other nodes and clusters to look forthey form a unified overlay network that’s E2E encrypted to discover other devices, even spanning multiple networks, to bootstrap the cluster.",
"Kairos optionally supports P2P full-mesh out of the box. New devices wake up with a shared secret and distributed ledger of other nodes and clusters to look forthey form a unified overlay network that’s E2E encrypted to discover other devices, even spanning multiple networks, to bootstrap the cluster.",
},
],
},
Expand All @@ -59,17 +59,17 @@ const MAIN_SECTIONS = [
{
title: "Treat your OS just like any app:",
description:
"Each Kairos OS is created as easily as writing a Dockerfileno custom recipes or arcane languages here. You can run and customize the container images locally with docker, podman, or your container engine of choice exactly how you do for apps already.",
"Each Kairos OS is created as easily as writing a Dockerfileno custom recipes or arcane languages here. You can run and customize the container images locally with Docker, Podman, or your container engine of choice exactly how you do for apps already.",
},
{
title: "Run your pipeline to the edge: ",
description:
"Your built OS is a container-based single image that is distributed via container registries, so it plugs neatly into your existing CI/CD pipelines. It makes edge scale as repeatable and portable as driving containers. Customizing, mirroring of images, scanning vulnerabilities, gating upgrades, patching CVEs are some of the endless possibilities. Updating nodes is just as easy as selecting a new version via Kubernetes. Each node will pull the update from your repo, installing on A/B partitions for zero-risk upgrades with failover.",
"Your built OS is a container-based, single image that is distributed via container registries, so it plugs neatly into your existing CI/CD pipelines. It makes edge scale as repeatable and portable as driving containers. Customizing, mirroring of images, scanning vulnerabilities, gating upgrades, patching CVEs are some of the endless possibilities. Updating nodes is just as easy as selecting a new version via Kubernetes. Each node will pull the update from your repo, installing on A/B partitions for zero-risk upgrades with failover.",
},
{
title: "Run K8s with K8s:",
description:
"Use Kubernetes management principles to manage and provision your clusters. Kairos supports automatic node provisioning, via CRDs, upgrade management via Kubernetes, node repurposing and machine auto scaling capabilities, and complete configuration management via cloud-init.",
"Use Kubernetes management principles to manage and provision your clusters. Kairos supports automatic node provisioning via CRDs; upgrade management via Kubernetes; node repurposing and machine auto scaling capabilities; and complete configuration management via cloud-init.",
},
],
},
Expand All @@ -85,12 +85,12 @@ const MAIN_SECTIONS = [
{
title: "Extensively tested:",
description:
"We move fast, but we try not to break stuffparticularly your nodes. Every change in the Kairos codebase runs through highly engineered automated testing before release to catch bugs earlier.",
"We move fast, but we try not to break stuffparticularly your nodes. Every change in the Kairos codebase runs through highly engineered automated testing before release to catch bugs earlier.",
},
{
title: "Designed for everyone:",
description:
"While Kairos has been engineered for large-scale use by devops and IT engineering teams working in cloud, bare metal, edge and embedded systems environments, we welcome makers, hobbyists and anyone in the community to participate in driving forward our vision of the immutable, decentralized, containerized edge.",
"While Kairos has been engineered for large-scale use by DevOps and IT Engineering teams working in cloud, bare metal, edge and embedded systems environments, we welcome makers, hobbyists, and anyone in the community to participate in driving forward our vision of the immutable, decentralized, and containerized edge.",
},
{
title: "Backed by Spectro Cloud:",
Expand Down
4 changes: 2 additions & 2 deletions docs/src/pages/architecture/architecture.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,6 @@ title: "Architecture"
index: 1
---

# Installing kairos on baremetal, VMs, ...
# Installing Kairos on bare metal, VMs...

## Automated, Paired and take over install
## Automates, pairs, and takes over installs
25 changes: 12 additions & 13 deletions docs/src/pages/architecture/container.md
Original file line number Diff line number Diff line change
@@ -1,33 +1,32 @@
---
layout: "../../layouts/docs/Layout.astro"
title: "Container based OS"
title: "Container-based OS"
index: 2
---

# Container based OS
# Container-based OS

Kairos is a container-based OS.
Kairos is a container-based operating system (OS).

A container based OS is an OS which is shipped via containers. Indeed, if it happens to be based on Linux (most probably) you can run the container image as well on your docker daemon. The image being being booted is the container, which contains all the required pieces in order to boot (Kernel, Initrd, Init system).
A container-based operating system is an OS that is shipped via containers. Indeed, if it happens to be based on Linux (most probably), you can run the container image as well on your Docker daemon. The image being booted is the container, which contains all the required pieces in order to boot (Kernel, Initrd, Init system).

## Benefits of using containers to distribute upgrades

Container registries are already widely supported and used by anyone.

If you are operating a Kubernetes cluster and deploying apps on top, chances are that you already have a container registry deployed somewhere and configured to store them or manage your infrastructure stack. By using container images lets you re-use the same infrastructure to propagate upgrades to the nodes and handle customizations.
If you are operating a Kubernetes cluster and deploying applications on top, chances are that you already have a container registry deployed somewhere and configured to store them or manage your infrastructure stack. By using container images, you can reuse the same infrastructure to propagate upgrades to the nodes and handle customizations.

Container images can be extended after build by using standard container building practices and seamlessly plug into your existing pipelines. Kairos allows to seamlessly upgrade to container images that are derived from other versions.
Container images can be extended after a build by using standard container building practices and seamlessly plug into your existing pipelines. Kairos allows to seamlessly upgrade to container images that are derived from other versions.

This means that customizing a Kairos version, is required just to build a standard container image with a plain `Dockerfile`, plus the bits that are actually needed.

If you are familiar with Dockerfiles, then you are good to go to roll your own custom OS version to provision in the nodes. That removes any friction to questions like "How do I add this package to my nodes?", or more complex ones as "How can I replace with my own Kernel?".
This means that to customize a Kairos version, all that is required is to build a standard container image with a plain Dockerfile—plus, the bits that are actually needed.

If you are familiar with Dockerfiles, then you are good to go to roll your own custom OS version to provision in the nodes. That removes any friction to questions like, "How do I add this package to my nodes?", or more complex ones as, "How can I replace with my own Kernel?".

## Container Image based OS

The Image support matrix in [here](/reference/image_matrix) lists all the container images built from our CI on every release of Kairos.

To inspect an image and run it locally, you can use a container engine like docker or podman:
To inspect an image and run it locally, you can use a container engine like Docker or Podman:

```
$ docker pull quay.io/kairos/core-alpine:v1.1.0
Expand Down Expand Up @@ -74,7 +73,7 @@ total 102M
6692029 -rw-r--r-- 1 root root 11M Apr 16 2020 vmlinuz-5.14.21-150400.24.21-default
```

The CI process generates bootable medium by the container images, and similarly we can modify this image to introduce our changes and re-master an ISO as described in [Automated installation](installation/automated), but that can be resumed in the following steps:
The CI process generates bootable medium by the container images, and similarly, we can modify this image to introduce our changes and remaster an ISO as described in [Automated installation](installation/automated), but that can be resumed in the following steps:

```bash
$ docker run -ti --name custom-container quay.io/kairos/core-alpine:v1.1.0
Expand All @@ -96,10 +95,10 @@ $ ls
custom-iso.iso custom-iso.iso.sha256
```

In order to go further and upgrade nodes using this image, now the only requirement is to push it in a container registry and upgrades the nodes using that container image.
In order to go further and upgrade nodes using this image, now the only requirement is to push it in a container registry and upgrade the nodes using that container image.

For upgrading to a container image see [manual upgrades](/upgrade/manual) and [kubernetes upgrades](/upgrade/kubernetes).

## See also

- [ISO remastering](/installation/automated#iso-remastering)
- [ISO remastering](/installation/automated#iso-remastering)
Loading

0 comments on commit c17f6d5

Please sign in to comment.