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
 | 
					@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