add diagrams #30
8 changed files with 81 additions and 5 deletions
3
architecture-docs/.gitignore
vendored
Normal file
3
architecture-docs/.gitignore
vendored
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
*.err
|
||||||
|
*.odt
|
||||||
|
.~lock*
|
Binary file not shown.
Before Width: | Height: | Size: 72 KiB |
25
architecture-docs/entity-relations.mmd
Normal file
25
architecture-docs/entity-relations.mmd
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
---
|
||||||
|
title: Fediversity migration entity relations
|
||||||
|
---
|
||||||
|
erDiagram
|
||||||
|
setup["Fediversity setup"]
|
||||||
|
env["run-time environment"]
|
||||||
|
deployed["deployed configuration"]
|
||||||
|
staged["staged configuration"]
|
||||||
|
token["deployment token"]
|
||||||
|
script["migration script"]
|
||||||
|
|
||||||
|
setup }o--o{ env : offers
|
||||||
|
setup ||--o{ operator : serves
|
||||||
|
operator ||--o{ domain : owns
|
||||||
|
deployment }|--|| domain : uses
|
||||||
|
operator ||--o{ deployment : has
|
||||||
|
deployment ||--|{ token : generates
|
||||||
|
deployment ||--o| deployed : has
|
||||||
|
deployment ||--|| staged : has
|
||||||
|
deployed |o--|| staged : compares
|
||||||
|
deployed ||--|{ application : describes
|
||||||
|
application ||--o{ version : follows
|
||||||
|
application ||--o{ script : runs
|
||||||
|
deployed }|--o{ version : follows
|
||||||
|
script }o--|| token : uses
|
1
architecture-docs/entity-relations.svg
Normal file
1
architecture-docs/entity-relations.svg
Normal file
File diff suppressed because one or more lines are too long
After Width: | Height: | Size: 16 KiB |
BIN
architecture-docs/host-architecture.png
Normal file
BIN
architecture-docs/host-architecture.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 73 KiB |
|
@ -1,4 +1,5 @@
|
||||||
@startuml
|
@startuml
|
||||||
|
skinparam backgroundcolor transparent
|
||||||
|
|
||||||
package Management {
|
package Management {
|
||||||
object "Nix-Panel" as A {
|
object "Nix-Panel" as A {
|
||||||
|
@ -12,7 +13,7 @@ package Management {
|
||||||
Secrets
|
Secrets
|
||||||
}
|
}
|
||||||
object "**Orchestrator**" as Orch {
|
object "**Orchestrator**" as Orch {
|
||||||
NixOps
|
Terraform
|
||||||
}
|
}
|
||||||
object "**Identity Management**" as AAA {
|
object "**Identity Management**" as AAA {
|
||||||
Authentication
|
Authentication
|
||||||
|
@ -49,12 +50,10 @@ package Virtualization {
|
||||||
Application C
|
Application C
|
||||||
}
|
}
|
||||||
map "**Application options**" as App {
|
map "**Application options**" as App {
|
||||||
Edumeet => Matrix
|
Vaultwarden => Matrix
|
||||||
NextCloud => Pixelfed
|
NextCloud => Pixelfed
|
||||||
Webmail => Peertube
|
Webmail => Peertube
|
||||||
Hedgehoc => Mastodon
|
Forgejo => Mastodon
|
||||||
Project planning => Owncast
|
|
||||||
Office => Castopod
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
47
architecture-docs/interactions.mmd
Normal file
47
architecture-docs/interactions.mmd
Normal file
|
@ -0,0 +1,47 @@
|
||||||
|
flowchart
|
||||||
|
|
||||||
|
user(user) --> |use| deployment
|
||||||
|
|
||||||
|
configuration1 -->|deploy| deployed1
|
||||||
|
devs(developers) --> |maintain| fediversity
|
||||||
|
|
||||||
|
fediversity --> |update| provider1
|
||||||
|
subgraph provider1["fediversity setup A"]
|
||||||
|
subgraph configurations1[configurations]
|
||||||
|
configuration1[staged configuration]
|
||||||
|
configuration1 --> |update| configuration1
|
||||||
|
deployed1[deployed configuration]
|
||||||
|
end
|
||||||
|
deployed1 --> |describe| deployment
|
||||||
|
provider-config[runtime config] --> |describe| host
|
||||||
|
provider-config --> |implement runtime interfaces| configurations1
|
||||||
|
subgraph host[runtime environment]
|
||||||
|
deployment[applications]
|
||||||
|
state
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
deployment --> |store| state
|
||||||
|
|
||||||
|
operator(operator) --> |change| configuration1
|
||||||
|
|
||||||
|
subgraph provider2["fediversity setup B"]
|
||||||
|
subgraph configurations2[configurations]
|
||||||
|
configuration2[staged configuration]
|
||||||
|
deployed2[deployed configuration]
|
||||||
|
end
|
||||||
|
subgraph host2[runtime environment]
|
||||||
|
deployment2[applications]
|
||||||
|
state2[state]
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
operator --> |trigger| migration
|
||||||
|
configurations1 & state --> migration
|
||||||
|
migration --> configurations2 & state2
|
||||||
|
provider(hosting provider) --> |maintain| provider1
|
||||||
|
subgraph fediversity[fediversity source code]
|
||||||
|
applications[application modules]
|
||||||
|
backends[runtime backends]
|
||||||
|
config[runtime options]
|
||||||
|
end
|
1
architecture-docs/interactions.svg
Normal file
1
architecture-docs/interactions.svg
Normal file
File diff suppressed because one or more lines are too long
After Width: | Height: | Size: 32 KiB |
Loading…
Add table
Reference in a new issue