forked from fediversity/meta
		
	Merge pull request 'add diagrams' (#30) from entity-relations into main
Reviewed-on: Fediversity/meta#30 Reviewed-by: Valentin Gagarin <valentin.gagarin@tweag.io>
This commit is contained in:
		
						commit
						76eafa45ca
					
				
					 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
 | 
			
		||||
skinparam backgroundcolor transparent
 | 
			
		||||
 | 
			
		||||
package Management {
 | 
			
		||||
    object "Nix-Panel" as A {
 | 
			
		||||
| 
						 | 
				
			
			@ -12,7 +13,7 @@ package Management {
 | 
			
		|||
        Secrets
 | 
			
		||||
    }
 | 
			
		||||
    object "**Orchestrator**" as Orch {
 | 
			
		||||
        NixOps
 | 
			
		||||
        Terraform
 | 
			
		||||
    }
 | 
			
		||||
    object "**Identity Management**" as AAA {
 | 
			
		||||
        Authentication
 | 
			
		||||
| 
						 | 
				
			
			@ -49,12 +50,10 @@ package Virtualization {
 | 
			
		|||
        Application C
 | 
			
		||||
    }
 | 
			
		||||
    map "**Application options**" as App {
 | 
			
		||||
        Edumeet => Matrix
 | 
			
		||||
        Vaultwarden => Matrix
 | 
			
		||||
        NextCloud => Pixelfed
 | 
			
		||||
        Webmail => Peertube
 | 
			
		||||
        Hedgehoc => Mastodon
 | 
			
		||||
        Project planning => Owncast
 | 
			
		||||
        Office => Castopod
 | 
			
		||||
        Forgejo => Mastodon
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										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