Files
project-infra/presentation/diagrams/06-vault-evolution.drawio
T

245 lines
23 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<mxfile host="app.diagrams.net" modified="2026-04-28T00:00:00.000Z" agent="Mozilla/5.0" version="24.0.0" type="device">
<diagram name="06-vault" id="vault">
<mxGraphModel dx="1600" dy="900" grid="0" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1600" pageHeight="900" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="grp-before" value="Before — Vault Injector (사이드카)" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#FEE2E2;strokeColor=#B91C1C;strokeWidth=2;dashed=0;fontSize=16;fontStyle=1;fontFamily=Pretendard,Helvetica;fontColor=#B91C1C;align=left;verticalAlign=top;spacingLeft=14;spacingTop=10;" vertex="1" parent="1">
<mxGeometry x="60" y="120" width="720" height="440" as="geometry" />
</mxCell>
<mxCell id="grp-after" value="After — VSO Operator" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#F3E8FF;strokeColor=#5B21B6;strokeWidth=2;dashed=0;fontSize=16;fontStyle=1;fontFamily=Pretendard,Helvetica;fontColor=#5B21B6;align=left;verticalAlign=top;spacingLeft=14;spacingTop=10;" vertex="1" parent="1">
<mxGeometry x="820" y="120" width="720" height="440" as="geometry" />
</mxCell>
<mxCell id="b-vault" value="" style="shape=image;html=1;image=https://www.vectorlogo.zone/logos/vaultproject/vaultproject-icon.svg;imageAspect=1;" vertex="1" parent="1">
<mxGeometry x="100" y="290" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="b-vault-lbl" value="Vault" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;fontSize=12;fontFamily=Pretendard,Helvetica;fontStyle=1;" vertex="1" parent="1">
<mxGeometry x="80" y="360" width="100" height="20" as="geometry" />
</mxCell>
<mxCell id="b-edge-lbl" value="login + KV read" style="text;html=1;align=center;verticalAlign=middle;fontSize=10;fontFamily=Pretendard,Helvetica;fontColor=#B91C1C;fillColor=#FFFFFF;" vertex="1" parent="1">
<mxGeometry x="200" y="184" width="100" height="18" as="geometry" />
</mxCell>
<mxCell id="b-pod1" value="Pod 1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#B91C1C;strokeWidth=2;fontSize=11;fontStyle=1;fontFamily=Pretendard,Helvetica;fontColor=#7F1D1D;align=left;verticalAlign=top;spacingLeft=8;spacingTop=4;" vertex="1" parent="1">
<mxGeometry x="380" y="190" width="240" height="70" as="geometry" />
</mxCell>
<mxCell id="b-pod1-side" value="vault-agent" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FECACA;strokeColor=#B91C1C;strokeWidth=2;fontSize=11;fontFamily=Pretendard,Helvetica;align=center;verticalAlign=middle;fontColor=#7F1D1D;" vertex="1" parent="1">
<mxGeometry x="395" y="215" width="100" height="36" as="geometry" />
</mxCell>
<mxCell id="b-pod1-app" value="app" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#EFF6FF;strokeColor=#1E40AF;strokeWidth=1;fontSize=11;fontFamily=Pretendard,Helvetica;align=center;verticalAlign=middle;fontColor=#1E40AF;" vertex="1" parent="1">
<mxGeometry x="525" y="215" width="80" height="36" as="geometry" />
</mxCell>
<mxCell id="b-pod2" value="Pod 2" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#B91C1C;strokeWidth=2;fontSize=11;fontStyle=1;fontFamily=Pretendard,Helvetica;fontColor=#7F1D1D;align=left;verticalAlign=top;spacingLeft=8;spacingTop=4;" vertex="1" parent="1">
<mxGeometry x="380" y="285" width="240" height="70" as="geometry" />
</mxCell>
<mxCell id="b-pod2-side" value="vault-agent" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FECACA;strokeColor=#B91C1C;strokeWidth=2;fontSize=11;fontFamily=Pretendard,Helvetica;align=center;verticalAlign=middle;fontColor=#7F1D1D;" vertex="1" parent="1">
<mxGeometry x="395" y="310" width="100" height="36" as="geometry" />
</mxCell>
<mxCell id="b-pod2-app" value="app" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#EFF6FF;strokeColor=#1E40AF;strokeWidth=1;fontSize=11;fontFamily=Pretendard,Helvetica;align=center;verticalAlign=middle;fontColor=#1E40AF;" vertex="1" parent="1">
<mxGeometry x="525" y="310" width="80" height="36" as="geometry" />
</mxCell>
<mxCell id="b-pod3" value="Pod 3" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#B91C1C;strokeWidth=2;fontSize=11;fontStyle=1;fontFamily=Pretendard,Helvetica;fontColor=#7F1D1D;align=left;verticalAlign=top;spacingLeft=8;spacingTop=4;" vertex="1" parent="1">
<mxGeometry x="380" y="380" width="240" height="70" as="geometry" />
</mxCell>
<mxCell id="b-pod3-side" value="vault-agent" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FECACA;strokeColor=#B91C1C;strokeWidth=2;fontSize=11;fontFamily=Pretendard,Helvetica;align=center;verticalAlign=middle;fontColor=#7F1D1D;" vertex="1" parent="1">
<mxGeometry x="395" y="405" width="100" height="36" as="geometry" />
</mxCell>
<mxCell id="b-pod3-app" value="app" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#EFF6FF;strokeColor=#1E40AF;strokeWidth=1;fontSize=11;fontFamily=Pretendard,Helvetica;align=center;verticalAlign=middle;fontColor=#1E40AF;" vertex="1" parent="1">
<mxGeometry x="525" y="405" width="80" height="36" as="geometry" />
</mxCell>
<mxCell id="b-xn" value="× N" style="text;html=1;align=center;verticalAlign=middle;fontSize=18;fontStyle=1;fontFamily=Pretendard,Helvetica;fontColor=#B91C1C;fillColor=#FFFFFF;strokeColor=#B91C1C;rounded=1;strokeWidth=2;" vertex="1" parent="1">
<mxGeometry x="650" y="290" width="80" height="60" as="geometry" />
</mxCell>
<mxCell id="b-xn-lbl" value="Pod 마다" style="text;html=1;align=center;verticalAlign=middle;fontSize=10;fontStyle=2;fontFamily=Pretendard,Helvetica;fontColor=#B91C1C;" vertex="1" parent="1">
<mxGeometry x="650" y="354" width="80" height="20" as="geometry" />
</mxCell>
<mxCell id="b-e1" style="endArrow=classic;html=1;strokeColor=#B91C1C;strokeWidth=2;fontFamily=Pretendard,Helvetica;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;curved=1;" edge="1" parent="1" source="b-vault" target="b-pod1-side">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="340" y="320" />
<mxPoint x="340" y="233" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="b-e2" style="endArrow=classic;html=1;strokeColor=#B91C1C;strokeWidth=2;fontFamily=Pretendard,Helvetica;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="b-vault" target="b-pod2-side">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="340" y="320" />
<mxPoint x="340" y="328" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="b-e3" style="endArrow=classic;html=1;strokeColor=#B91C1C;strokeWidth=2;fontFamily=Pretendard,Helvetica;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;curved=1;" edge="1" parent="1" source="b-vault" target="b-pod3-side">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="340" y="320" />
<mxPoint x="340" y="423" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="b-e4" style="endArrow=classic;html=1;strokeColor=#B91C1C;strokeWidth=2;dashed=1;fontFamily=Pretendard,Helvetica;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="b-pod1-side" target="b-pod1-app">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="b-e5" style="endArrow=classic;html=1;strokeColor=#B91C1C;strokeWidth=2;dashed=1;fontFamily=Pretendard,Helvetica;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="b-pod2-side" target="b-pod2-app">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="b-e6" style="endArrow=classic;html=1;strokeColor=#B91C1C;strokeWidth=2;dashed=1;fontFamily=Pretendard,Helvetica;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="b-pod3-side" target="b-pod3-app">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="b-render-lbl" value="render → /vault/secrets/*" style="text;html=1;align=center;verticalAlign=middle;fontSize=10;fontFamily=Pretendard,Helvetica;fontColor=#B91C1C;fillColor=#FFFFFF;fontStyle=2;" vertex="1" parent="1">
<mxGeometry x="100" y="470" width="200" height="18" as="geometry" />
</mxCell>
<mxCell id="b-render-arrow" style="endArrow=none;html=1;strokeColor=#B91C1C;strokeWidth=1;dashed=1;fontFamily=Pretendard,Helvetica;" edge="1" parent="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="200" y="479" />
<mxPoint x="490" y="370" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="b-warn" value="⚠ 사이드카 × N — 메모리 ≥ 50Mi/Pod, lifecycle/probe/log 따로 관리" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FECACA;strokeColor=#B91C1C;strokeWidth=2;dashed=1;fontSize=12;fontStyle=1;fontFamily=Pretendard,Helvetica;fontColor=#7F1D1D;align=center;verticalAlign=middle;" vertex="1" parent="1">
<mxGeometry x="100" y="500" width="640" height="40" as="geometry" />
</mxCell>
<mxCell id="a-vault" value="" style="shape=image;html=1;image=https://www.vectorlogo.zone/logos/vaultproject/vaultproject-icon.svg;imageAspect=1;" vertex="1" parent="1">
<mxGeometry x="860" y="290" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="a-vault-lbl" value="Vault" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;fontSize=12;fontFamily=Pretendard,Helvetica;fontStyle=1;" vertex="1" parent="1">
<mxGeometry x="840" y="360" width="100" height="20" as="geometry" />
</mxCell>
<mxCell id="a-vso" value="" style="shape=image;html=1;image=https://www.vectorlogo.zone/logos/hashicorp/hashicorp-icon.svg;imageAspect=1;" vertex="1" parent="1">
<mxGeometry x="1010" y="290" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="a-vso-lbl" value="VSO Operator" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;fontSize=12;fontFamily=Pretendard,Helvetica;fontStyle=1;" vertex="1" parent="1">
<mxGeometry x="980" y="360" width="120" height="20" as="geometry" />
</mxCell>
<mxCell id="a-secret" value="" style="shape=image;html=1;image=https://raw.githubusercontent.com/kubernetes/community/master/icons/svg/resources/unlabeled/secret.svg;imageAspect=1;" vertex="1" parent="1">
<mxGeometry x="1160" y="290" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="a-secret-lbl" value="K8s Secret" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;fontSize=12;fontFamily=Pretendard,Helvetica;fontStyle=1;" vertex="1" parent="1">
<mxGeometry x="1130" y="360" width="120" height="20" as="geometry" />
</mxCell>
<mxCell id="a-pod" value="Pod (auth-server)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#5B21B6;strokeWidth=2;fontSize=11;fontStyle=1;fontFamily=Pretendard,Helvetica;align=left;verticalAlign=top;spacingLeft=8;spacingTop=4;fontColor=#5B21B6;" vertex="1" parent="1">
<mxGeometry x="1330" y="200" width="190" height="240" as="geometry" />
</mxCell>
<mxCell id="a-pod-app" value="app (사이드카 0)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#EFF6FF;strokeColor=#1E40AF;strokeWidth=1;fontSize=11;fontFamily=Pretendard,Helvetica;align=center;verticalAlign=middle;fontColor=#1E40AF;" vertex="1" parent="1">
<mxGeometry x="1345" y="230" width="160" height="40" as="geometry" />
</mxCell>
<mxCell id="a-pod-env" value="envFrom:&#xa; - secretRef:&#xa; name: keycloak-db" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#1E1E1E;strokeColor=#5B21B6;strokeWidth=1;fontSize=10;fontFamily=monospace;align=left;verticalAlign=middle;fontColor=#A5F3FC;spacingLeft=8;" vertex="1" parent="1">
<mxGeometry x="1345" y="290" width="160" height="80" as="geometry" />
</mxCell>
<mxCell id="a-pod-note" value="K8s Secret 1개" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;fontSize=10;fontStyle=2;fontFamily=Pretendard,Helvetica;fontColor=#5B21B6;" vertex="1" parent="1">
<mxGeometry x="1345" y="380" width="160" height="20" as="geometry" />
</mxCell>
<mxCell id="a-e1" style="endArrow=classic;html=1;strokeColor=#5B21B6;strokeWidth=3;fontFamily=Pretendard,Helvetica;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="a-vault" target="a-vso">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="a-e1-lbl" value="KV read" style="text;html=1;align=center;verticalAlign=middle;fontSize=11;fontFamily=Pretendard,Helvetica;fontColor=#5B21B6;fillColor=#FFFFFF;" vertex="1" parent="1">
<mxGeometry x="935" y="310" width="60" height="18" as="geometry" />
</mxCell>
<mxCell id="a-e2" style="endArrow=classic;html=1;strokeColor=#5B21B6;strokeWidth=3;fontFamily=Pretendard,Helvetica;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="a-vso" target="a-secret">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="a-e2-lbl" value="reconcile 60s" style="text;html=1;align=center;verticalAlign=middle;fontSize=10;fontFamily=Pretendard,Helvetica;fontColor=#5B21B6;fillColor=#FFFFFF;" vertex="1" parent="1">
<mxGeometry x="1080" y="312" width="80" height="16" as="geometry" />
</mxCell>
<mxCell id="a-e3" style="endArrow=classic;html=1;strokeColor=#5B21B6;strokeWidth=3;fontFamily=Pretendard,Helvetica;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="a-secret" target="a-pod-env">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="a-e3-lbl" value="envFrom" style="text;html=1;align=center;verticalAlign=middle;fontSize=11;fontFamily=Pretendard,Helvetica;fontColor=#5B21B6;fillColor=#FFFFFF;" vertex="1" parent="1">
<mxGeometry x="1245" y="310" width="60" height="18" as="geometry" />
</mxCell>
<mxCell id="a-good" value="✓ 사이드카 0 · Controller drift 자동 복구 · Pod 는 Vault 를 모름" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#DDD6FE;strokeColor=#5B21B6;strokeWidth=2;dashed=1;fontSize=12;fontStyle=1;fontFamily=Pretendard,Helvetica;fontColor=#3B0764;align=center;verticalAlign=middle;" vertex="1" parent="1">
<mxGeometry x="860" y="500" width="640" height="40" as="geometry" />
</mxCell>
<mxCell id="cmp-title" value="비교" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;whiteSpace=wrap;fontSize=14;fontStyle=1;fontFamily=Pretendard,Helvetica;fontColor=#24292F;" vertex="1" parent="1">
<mxGeometry x="60" y="585" width="200" height="22" as="geometry" />
</mxCell>
<mxCell id="cmp-h0" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#F6F8FA;strokeColor=#D0D7DE;strokeWidth=1;fontSize=12;fontStyle=1;fontFamily=Pretendard,Helvetica;align=left;verticalAlign=middle;spacingLeft=12;" vertex="1" parent="1">
<mxGeometry x="60" y="615" width="380" height="36" as="geometry" />
</mxCell>
<mxCell id="cmp-h1" value="Before (Injector)" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#FEE2E2;strokeColor=#D0D7DE;strokeWidth=1;fontSize=12;fontStyle=1;fontFamily=Pretendard,Helvetica;fontColor=#B91C1C;align=center;verticalAlign=middle;" vertex="1" parent="1">
<mxGeometry x="440" y="615" width="380" height="36" as="geometry" />
</mxCell>
<mxCell id="cmp-h2" value="After (VSO)" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#F3E8FF;strokeColor=#D0D7DE;strokeWidth=1;fontSize=12;fontStyle=1;fontFamily=Pretendard,Helvetica;fontColor=#5B21B6;align=center;verticalAlign=middle;" vertex="1" parent="1">
<mxGeometry x="820" y="615" width="380" height="36" as="geometry" />
</mxCell>
<mxCell id="cmp-h3" value="결과" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#F6F8FA;strokeColor=#D0D7DE;strokeWidth=1;fontSize=12;fontStyle=1;fontFamily=Pretendard,Helvetica;fontColor=#24292F;align=center;verticalAlign=middle;" vertex="1" parent="1">
<mxGeometry x="1200" y="615" width="340" height="36" as="geometry" />
</mxCell>
<mxCell id="cmp-r1c0" value="Pod 당 비용" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#D0D7DE;strokeWidth=1;fontSize=12;fontStyle=1;fontFamily=Pretendard,Helvetica;align=left;verticalAlign=middle;spacingLeft=12;" vertex="1" parent="1">
<mxGeometry x="60" y="651" width="380" height="32" as="geometry" />
</mxCell>
<mxCell id="cmp-r1c1" value="사이드카 1개 (메모리 ≥ 50Mi)" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#D0D7DE;strokeWidth=1;fontSize=12;fontFamily=Pretendard,Helvetica;align=center;verticalAlign=middle;" vertex="1" parent="1">
<mxGeometry x="440" y="651" width="380" height="32" as="geometry" />
</mxCell>
<mxCell id="cmp-r1c2" value="0 (envFrom 만)" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#D0D7DE;strokeWidth=1;fontSize=12;fontFamily=Pretendard,Helvetica;align=center;verticalAlign=middle;" vertex="1" parent="1">
<mxGeometry x="820" y="651" width="380" height="32" as="geometry" />
</mxCell>
<mxCell id="cmp-r1c3" value="리소스 ↓" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#D0D7DE;strokeWidth=1;fontSize=12;fontFamily=Pretendard,Helvetica;fontColor=#15803D;align=center;verticalAlign=middle;" vertex="1" parent="1">
<mxGeometry x="1200" y="651" width="340" height="32" as="geometry" />
</mxCell>
<mxCell id="cmp-r2c0" value="K8s 네이티브" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#F6F8FA;strokeColor=#D0D7DE;strokeWidth=1;fontSize=12;fontStyle=1;fontFamily=Pretendard,Helvetica;align=left;verticalAlign=middle;spacingLeft=12;" vertex="1" parent="1">
<mxGeometry x="60" y="683" width="380" height="32" as="geometry" />
</mxCell>
<mxCell id="cmp-r2c1" value="Pod 어노테이션 기반" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#F6F8FA;strokeColor=#D0D7DE;strokeWidth=1;fontSize=12;fontFamily=Pretendard,Helvetica;align=center;verticalAlign=middle;" vertex="1" parent="1">
<mxGeometry x="440" y="683" width="380" height="32" as="geometry" />
</mxCell>
<mxCell id="cmp-r2c2" value="CRD (VaultStaticSecret 등)" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#F6F8FA;strokeColor=#D0D7DE;strokeWidth=1;fontSize=12;fontFamily=Pretendard,Helvetica;align=center;verticalAlign=middle;" vertex="1" parent="1">
<mxGeometry x="820" y="683" width="380" height="32" as="geometry" />
</mxCell>
<mxCell id="cmp-r2c3" value="GitOps drift 검증 가능" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#F6F8FA;strokeColor=#D0D7DE;strokeWidth=1;fontSize=12;fontFamily=Pretendard,Helvetica;fontColor=#15803D;align=center;verticalAlign=middle;" vertex="1" parent="1">
<mxGeometry x="1200" y="683" width="340" height="32" as="geometry" />
</mxCell>
<mxCell id="cmp-r3c0" value="값 회전" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#D0D7DE;strokeWidth=1;fontSize=12;fontStyle=1;fontFamily=Pretendard,Helvetica;align=left;verticalAlign=middle;spacingLeft=12;" vertex="1" parent="1">
<mxGeometry x="60" y="715" width="380" height="32" as="geometry" />
</mxCell>
<mxCell id="cmp-r3c1" value="Vault 변경 → Pod 재시작 필요" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#D0D7DE;strokeWidth=1;fontSize=12;fontFamily=Pretendard,Helvetica;align=center;verticalAlign=middle;" vertex="1" parent="1">
<mxGeometry x="440" y="715" width="380" height="32" as="geometry" />
</mxCell>
<mxCell id="cmp-r3c2" value="Vault 변경 → 60s 내 Secret 자동 갱신" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#D0D7DE;strokeWidth=1;fontSize=12;fontFamily=Pretendard,Helvetica;align=center;verticalAlign=middle;" vertex="1" parent="1">
<mxGeometry x="820" y="715" width="380" height="32" as="geometry" />
</mxCell>
<mxCell id="cmp-r3c3" value="운영 자동화" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#D0D7DE;strokeWidth=1;fontSize=12;fontFamily=Pretendard,Helvetica;fontColor=#15803D;align=center;verticalAlign=middle;" vertex="1" parent="1">
<mxGeometry x="1200" y="715" width="340" height="32" as="geometry" />
</mxCell>
<mxCell id="cmp-r4c0" value="시크릿 노출 면" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#F6F8FA;strokeColor=#D0D7DE;strokeWidth=1;fontSize=12;fontStyle=1;fontFamily=Pretendard,Helvetica;align=left;verticalAlign=middle;spacingLeft=12;" vertex="1" parent="1">
<mxGeometry x="60" y="747" width="380" height="32" as="geometry" />
</mxCell>
<mxCell id="cmp-r4c1" value="Pod 메모리 (사이드카가 보유)" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#F6F8FA;strokeColor=#D0D7DE;strokeWidth=1;fontSize=12;fontFamily=Pretendard,Helvetica;align=center;verticalAlign=middle;" vertex="1" parent="1">
<mxGeometry x="440" y="747" width="380" height="32" as="geometry" />
</mxCell>
<mxCell id="cmp-r4c2" value="etcd 에 K8s Secret (base64)" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#F6F8FA;strokeColor=#D0D7DE;strokeWidth=1;fontSize=12;fontFamily=Pretendard,Helvetica;align=center;verticalAlign=middle;" vertex="1" parent="1">
<mxGeometry x="820" y="747" width="380" height="32" as="geometry" />
</mxCell>
<mxCell id="cmp-r4c3" value="etcd encryption 필수 (다음 슬라이드)" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#F6F8FA;strokeColor=#D0D7DE;strokeWidth=1;fontSize=12;fontFamily=Pretendard,Helvetica;fontColor=#B45309;align=center;verticalAlign=middle;" vertex="1" parent="1">
<mxGeometry x="1200" y="747" width="340" height="32" as="geometry" />
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>