octavia/specs/version0.5/tls-data-security-2.diag

35 lines
1.6 KiB
Plaintext

seqdiag {
span_height = 10;
activation = none;
Barbican;
=== In Octavia ===
Octavia -> Octavia [label="Get a new cert/key from CertGenerator"];
Octavia -> "Compute Driver" [label="Create new Amphora"] {
"Compute Driver" -> Nova [label="Create instance", note="Ref Impl, ConfigDrive: Octavia Controller certificate and IP, and a generated/signed cert + private key"];
}
Octavia => "Compute Driver" [label="Wait for Amphora Ready"];
loop {
"Compute Driver" => Nova [label="Poll for ACTIVE Amphora", note="Ref Impl", return="Amphora Management IP"];
}
Octavia -> Octavia [label="Store Amphora IP"];
Octavia => "Amp Driver" [label="Run Amphora Self-Test", return="PASS/FAIL"] {
"Amp Driver" -> "Amp Driver" [label="Poll DB until first Heartbeat arrives", note="Ref Impl"];
"Amp Driver" => "Amphora API" [label="Run Self-Test", note="Ref Impl"] {
=== If Self-test passes ===
Octavia -> Octavia [label="Add Amphora to standby pool"];
=== If Self-test fails ===
Octavia -> Octavia [label="Delete Amphora"];
}
}
=== In the Amphora (Ref Impl) ===
Amphora -> Amphora [label="Start Services (API, Heartbeat)"];
"Amp Heartbeat" -> "Amp Driver" [label="Announce", note="UDP"] {
"Amp Driver" -> "Amp Driver" [label="Verify Amphora by Signed UDP Heartbeat"];
=== If Verification fails ===
"Amp Driver" -> "Amp Driver" [label="Log and Ignore"];
=== If Verification succeeds ===
"Amp Driver" -> "Health Manager" [label="Store Heartbeat"];
}
}