-
Notifications
You must be signed in to change notification settings - Fork 0
/
switch-workflow.puml
78 lines (61 loc) · 1.68 KB
/
switch-workflow.puml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
@startuml
participant Propeller #F2A007
participant Vault
participant PostgreSQL #A65526
participant ArgoCD
participant Application
note over Application #167369
Application uses user 1
end note
activate Propeller
Propeller -> Vault: Request active user
activate Vault
Vault --> Propeller: user 1
deactivate Vault
Propeller -> Propeller: Generate random password
Propeller -> PostgreSQL: Rotate user 2 password
activate PostgreSQL
PostgreSQL --> Propeller: Success
deactivate PostgreSQL
Propeller -> Vault: Update user 2 password
activate Vault
Vault --> Propeller: Success
deactivate Vault
Propeller -> Vault: Switch active user to user 2
activate Vault
Vault --> Propeller: Success
deactivate Vault
Propeller -> ArgoCD: Trigger rollout
activate ArgoCD
ArgoCD -> Application: Sync
activate Application
ArgoCD --> Propeller: Success
deactivate ArgoCD
Application -> Vault: Request active user
activate Vault
Vault --> Application: user 2
deactivate Vault
Application -> PostgreSQL: Connect with user 2
activate PostgreSQL
PostgreSQL --> Application: Connection established
deactivate PostgreSQL
deactivate Application
note over Application #167369
Application uses user 2
end note
loop Poll until rollout complete or timeout
Propeller -> ArgoCD: Request rollout status
activate ArgoCD
ArgoCD --> Propeller: Status (pending/success/failed)
deactivate ArgoCD
end
Propeller -> PostgreSQL: Rotate user 1 password
activate PostgreSQL
PostgreSQL --> Propeller: Success
deactivate PostgreSQL
Propeller -> Vault: Update user 1 password
activate Vault
Vault --> Propeller: Success
deactivate Vault
deactivate Propeller
@enduml