From 3a1bec498eea61f1171c85fad0de04124d957112 Mon Sep 17 00:00:00 2001 From: Pierre Ozoux Date: Wed, 18 Jan 2023 17:52:27 +0100 Subject: [PATCH] Adds UC1 and UC2 --- UC1-Applications Lifecycle.md | 15 +++++++++++++++ UC2-Bucket Lifecycle.md | 14 ++++++++++++++ 2 files changed, 29 insertions(+) create mode 100644 UC1-Applications Lifecycle.md create mode 100644 UC2-Bucket Lifecycle.md diff --git a/UC1-Applications Lifecycle.md b/UC1-Applications Lifecycle.md new file mode 100644 index 0000000..3c0a095 --- /dev/null +++ b/UC1-Applications Lifecycle.md @@ -0,0 +1,15 @@ +As an Application Operator, I want to be able to manage applications so that I can be autonomous in this task, without interrupting the technical team. + +Manage in this context means: + - create (Create an HedgeDoc instance at this URL for this organization) + - read/list (List all HedgeDoc instance, List all the different instances of this organization) + - update (Change some high level/Infrastructure configuration that is accessible to Application Operator) + - delete (An Organization doesn't need any more his instance, so we need to delete it) + +Other Benefits: +If the operator manages the application with a standard system, it is less likely that there is a drift in the different applications instances deployed. + +## Solution + +Kubernetes API with the use of CRD and RBAC (authz) on these CRDs allows to expose a beautiful API to manage these applications. +If you couple Kubernetes authn with an OIDC, you have what we consider the best API to build this system. diff --git a/UC2-Bucket Lifecycle.md b/UC2-Bucket Lifecycle.md new file mode 100644 index 0000000..996f5d7 --- /dev/null +++ b/UC2-Bucket Lifecycle.md @@ -0,0 +1,14 @@ +system: libre.sh runtime + +As most of applications need an ObjectStore bucket, and to accomplish UC1, the libre.sh runtime needs to be able to manage the lifecycle of the applications bucket. + +Requirements: +- be able to manage buckets on various cloud provider + - scaleway + - minio +- be able to manage bucket policies in high level fashion +- create an owner user for the application be able to interact with this bucket + +## Solution + +A CRD to describe the bucket object. \ No newline at end of file