From af4ae29b14299f775bbcf91e54eaa69977f8b9d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcus=20Sch=C3=A4fer?= Date: Wed, 3 Jan 2024 13:15:12 +0100 Subject: [PATCH] Update documentation Add more details on the main idea of this version of flake-pilot and provide a diagram to illustrate the use cases better --- README.md | 82 +++++++++++++----------- images/transparency.drawio | 124 +++++++++++++++++++++++++++++++++++++ images/transparency.png | Bin 0 -> 72640 bytes 3 files changed, 169 insertions(+), 37 deletions(-) create mode 100644 images/transparency.drawio create mode 100644 images/transparency.png diff --git a/README.md b/README.md index 7151f3e..d7784fc 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,11 @@ # Flake Pilot +## Semi Transparent Container/VM instances + 1. [Introduction](#introduction) + 1. [Use Cases](#usecases) 2. [Installation](#installation) 3. [Quick Start OCI containers](#oci) - 1. [Use Cases](#usecases) 4. [Quick Start FireCracker VMs](#fire) 1. [Use FireCracker VM image from components](#components) 2. [Networking](#networking) @@ -29,6 +31,46 @@ OCI container or a FireCracker VM. There are two main components: ```flake-ctl``` is the management utility to list, register, remove, and-more... flake applications on your host. +The main idea for flake-pilot was not only to launch isolated apps like +native binaries but also allow to run a provision step prior calling +the application. This concept then allows to run semi transparent +container/VM instances which can take information from other places +prior its execution. The following diagram visualizes this concept: + +![](images/transparency.png) + +As a result we see some interesting use cases described in the following +section. + +### Use Cases + +* delta containers used together with a base container such that + only small delta containers gets pulled to the registry used with + a base that exists only once. + +* include arbitrary data without harming the host integrity e.g custom + binaries, proprietary software not following package guidelines and + standards, e.g automotive industry processes which we will not be + able to change in this live ;) + +* layering of several containers, e.g deltas on top of a base. Building + up a solution stack e.g base + python + python-app. + +* provisioning app dependencies from the host instead of providing them + in the container, e.g a delta container providing the app using a base + container but take the certificates or other sensitive information + from the host; three way dependency model. + +Actually all of the above use cases are immaterial if a proper packaging, +release and maintenance of the application is possible. However, I have +learned the world is not an ideal place and there might be a spot for +this project to be useful, supporting users with "special" needs and +adding an adaptive feature to the OS. + +For demo purposes and to showcase the mentioned use cases, some +example images were created. See [How To Build Your Own App Images](#images) +for further details + ## Installation flake-pilot components are written in rust and available as packages @@ -78,40 +120,6 @@ connected to the ```aws-cli``` container provided by Amazon on aws ec2 help ``` -### Use Cases - -Apart from this very simple example you can do a lot more. The main -idea for flake-pilot was not only to launch container based apps but -also allow to run a provision step prior calling the application. -This concept then allows for use cases like: - -* delta containers used together with a base container such that - only small delta containers gets pulled to the registry used with - a base that exists only once. - -* include arbitrary data without harming the host integrity e.g custom - binaries, proprietary software not following package guidelines and - standards, e.g automotive industry processes which we will not be - able to change in this live ;) - -* layering of several containers, e.g deltas on top of a base. Building - up a solution stack e.g base + python + python-app. - -* provisioning app dependencies from the host instead of providing them - in the container, e.g a delta container providing the app using a base - container but take the certificates or other sensitive information - from the host; three way dependency model. - -Actually all of the above use cases are immaterial if a proper packaging, -release and maintenance of the application is possible. However, I have -learned the world is not an ideal place and there might be a spot for -this project to be useful, supporting users with "special" needs and -adding an adaptive feature to the OS. - -For demo purposes and to showcase the mentioned use cases, some -example images were created. See [How To Build Your Own App Images](#images) -for further details - ## Quick Start FireCracker VMs Using containers to isolate applications from the host system is a common @@ -346,14 +354,14 @@ One option is to use the **Open Build Service** which is able to build software packages and images and therefore allows to maintain the complete application stack. -For demo purposes and to showcase the mentioned +For demo purposes and to showcase the mentioned [Use Cases](#usecases) some example images were created and could be considered as a simple ```flake store```. Please find them here: * https://build.opensuse.org/project/show/home:marcus.schaefer:delta_containers Feel free to browse through the project and have some fun testing. There -is a short description in each application build how to use them. +is a short description for each application how to use them. **_NOTE:_** All images are build using the [KIWI](https://github.com/OSInside/kiwi) appliance builder which is diff --git a/images/transparency.drawio b/images/transparency.drawio new file mode 100644 index 0000000..b90d533 --- /dev/null +++ b/images/transparency.drawio @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/images/transparency.png b/images/transparency.png new file mode 100644 index 0000000000000000000000000000000000000000..204c01c5c24b3634f08e488897fc18f06d7800d9 GIT binary patch literal 72640 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%0AD#n`1nKMG(p&!hukt7v9iTxsYl(ZUU<=7QL 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 RsFh;?0#8>zmvv4FO#tp@-Z}sP literal 0 HcmV?d00001