|
| 1 | +# Mermaid source for authorizer-chain-computation image |
| 2 | + |
| 3 | +This diagram was rendered on https://www.mermaidchart.com/play, not using the |
| 4 | +native GitHub mermaid renderer so that the image was more visually clear. |
| 5 | +Mermaid layout configs are not respected by GitHub. |
| 6 | + |
| 7 | + |
| 8 | +```mermaid |
| 9 | +--- |
| 10 | +config: |
| 11 | + layout: elk |
| 12 | +title: Kubernetes with Conditional Authorization |
| 13 | +--- |
| 14 | +flowchart LR |
| 15 | + subgraph ChainAuthorizer["ChainAuthorizer"] |
| 16 | + direction TB |
| 17 | + AuthzAllow["Allow"] |
| 18 | + AuthzConditional["Conditional"] |
| 19 | + AuthzDeny["Deny"] |
| 20 | + AuthzNoOpinion["NoOpinion"] |
| 21 | + end |
| 22 | + subgraph WithAuthorization["WithAuthorization"] |
| 23 | + direction TB |
| 24 | + ServeHTTP["ServeHTTP"] |
| 25 | + ServeHTTPWithConditions["ServeHTTP + ctx conditions"] |
| 26 | + CannotBecomeAuthz["CannotBecomeAuthz"] |
| 27 | + end |
| 28 | + subgraph ChainAuthorizerEval["ChainAuthorizerEval"] |
| 29 | + NoOpinion2["NoOpinion"] |
| 30 | + Allow2["Allow"] |
| 31 | + Conditional2["Conditional"] |
| 32 | + Deny2["Deny"] |
| 33 | + end |
| 34 | + subgraph ValidatingAdmission["ValidatingAdmission"] |
| 35 | + direction TB |
| 36 | + AdmissionAllow["Allow"] |
| 37 | + AdmissionEvaluate["Evaluate"] |
| 38 | + AdmissionNoOpinion["NoOpinion"] |
| 39 | + AdmissionDeny["Deny"] |
| 40 | + ChainAuthorizerEval |
| 41 | + end |
| 42 | + Request["Request"] --> ChainAuthorizer |
| 43 | + AuthzNoOpinion --> Request |
| 44 | + AuthzAllow --> ServeHTTP |
| 45 | + ServeHTTPWithConditions --> AdmissionEvaluate |
| 46 | + AdmissionEvaluate --> AdmissionNoOpinion & AdmissionAllow & AdmissionDeny |
| 47 | + AdmissionNoOpinion --> ChainAuthorizerEval |
| 48 | + NoOpinion2 --> AdmissionNoOpinion |
| 49 | + Allow2 --> AdmissionAllow |
| 50 | + Conditional2 --> AdmissionEvaluate |
| 51 | + Deny2 --> AdmissionDeny |
| 52 | + AdmissionDeny --> 403(["403"]) |
| 53 | + ServeHTTP -- Allowed --> AdmissionAllow["Allow"] |
| 54 | + AuthzConditional -- 1+ Allow --> ServeHTTPWithConditions |
| 55 | + AuthzConditional -- 0 Allow --> CannotBecomeAuthz |
| 56 | + AuthzDeny --> CannotBecomeAuthz |
| 57 | + CannotBecomeAuthz --> 403 |
| 58 | + AdmissionAllow --> Storage(["Storage"]) |
| 59 | +``` |
0 commit comments