278 lines
29 KiB
Plaintext
278 lines
29 KiB
Plaintext
<mxfile host="app.diagrams.net" modified="2026-05-09T00:00:00.000Z" agent="Mozilla/5.0" version="24.0.0" type="device">
|
|
<diagram name="s17b-cert-manager-variants" id="cert-manager-variants">
|
|
<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="title" value="cert-manager 변형 / 추상화 / 실패 처리 — s17 (정상 발급) 외 전체 그림" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;whiteSpace=wrap;fontSize=24;fontStyle=1;fontFamily=Pretendard,Helvetica;" vertex="1" parent="1">
|
|
<mxGeometry x="60" y="36" width="1500" height="40" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="subtitle" value="진입 모드 (수동/자동) · CertificateRequest 추상화 · Issuer 4 종류 · Challenge 2 타입 · 실패 백오프" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;whiteSpace=wrap;fontSize=15;fontFamily=Pretendard,Helvetica;fontColor=#57606A;" vertex="1" parent="1">
|
|
<mxGeometry x="60" y="76" width="1500" height="22" as="geometry" />
|
|
</mxCell>
|
|
|
|
<mxCell id="grp-entry" value="① 진입 경로 — 수동 vs 자동 (ingress-shim)" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#F3E8FF;strokeColor=#5B21B6;strokeWidth=1;fontSize=13;fontStyle=1;fontFamily=Pretendard,Helvetica;fontColor=#5B21B6;align=left;verticalAlign=top;spacingLeft=10;spacingTop=6;" vertex="1" parent="1">
|
|
<mxGeometry x="40" y="120" width="1520" height="160" as="geometry" />
|
|
</mxCell>
|
|
|
|
<mxCell id="op" value="" style="sketch=0;outlineConnect=0;fillColor=#232F3E;strokeColor=#232F3E;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;aspect=fixed;shape=mxgraph.aws4.user;" vertex="1" parent="1">
|
|
<mxGeometry x="90" y="170" width="60" height="60" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="op-lbl" value="Operator" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;fontSize=12;fontFamily=Pretendard,Helvetica;fontStyle=1;" vertex="1" parent="1">
|
|
<mxGeometry x="50" y="234" width="140" height="20" as="geometry" />
|
|
</mxCell>
|
|
|
|
<mxCell id="path-a" value="A. 수동 모드 — kubectl apply -f certificate.yaml" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#5B21B6;strokeWidth=2;fontSize=12;fontStyle=1;fontFamily=Pretendard,Helvetica;fontColor=#5B21B6;align=left;verticalAlign=middle;spacingLeft=14;" vertex="1" parent="1">
|
|
<mxGeometry x="220" y="155" width="380" height="44" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="path-a-sub" value="Operator 가 Certificate CRD 를 직접 작성·apply" style="text;html=1;align=left;verticalAlign=middle;whiteSpace=wrap;fontSize=10;fontStyle=2;fontFamily=Pretendard,Helvetica;fontColor=#7C3AED;spacingLeft=14;" vertex="1" parent="1">
|
|
<mxGeometry x="220" y="200" width="380" height="18" as="geometry" />
|
|
</mxCell>
|
|
|
|
<mxCell id="path-b" value="B. 자동 모드 — Ingress annotation → ingress-shim" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#5B21B6;strokeWidth=2;fontSize=12;fontStyle=1;fontFamily=Pretendard,Helvetica;fontColor=#5B21B6;align=left;verticalAlign=middle;spacingLeft=14;" vertex="1" parent="1">
|
|
<mxGeometry x="220" y="220" width="380" height="44" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="path-b-sub" value="annotation: cert-manager.io/cluster-issuer:letsencrypt-prod" style="text;html=1;align=left;verticalAlign=middle;whiteSpace=wrap;fontSize=10;fontStyle=2;fontFamily=monospace;fontColor=#7C3AED;spacingLeft=14;" vertex="1" parent="1">
|
|
<mxGeometry x="220" y="265" width="380" height="14" as="geometry" />
|
|
</mxCell>
|
|
|
|
<mxCell id="entry-cert" value="" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#EDE9FE;strokeColor=#5B21B6;strokeWidth=2;" vertex="1" parent="1">
|
|
<mxGeometry x="660" y="170" width="320" height="80" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="entry-cert-title" value="kind: Certificate" style="text;html=1;align=center;verticalAlign=top;whiteSpace=wrap;fontSize=13;fontStyle=1;fontFamily=Pretendard,Helvetica;fontColor=#5B21B6;spacingTop=10;" vertex="1" parent="1">
|
|
<mxGeometry x="660" y="170" width="320" height="22" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="entry-cert-sub" value="(어느 모드로든 결과는 동일한 CRD)" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;fontSize=11;fontStyle=2;fontFamily=Pretendard,Helvetica;fontColor=#5B21B6;" vertex="1" parent="1">
|
|
<mxGeometry x="660" y="200" width="320" height="42" as="geometry" />
|
|
</mxCell>
|
|
|
|
<mxCell id="e-op-a" style="endArrow=classic;html=1;strokeColor=#5B21B6;strokeWidth=2;fontFamily=Pretendard,Helvetica;exitX=1;exitY=0.3;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="op" target="path-a">
|
|
<mxGeometry relative="1" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="e-op-b" style="endArrow=classic;html=1;strokeColor=#5B21B6;strokeWidth=2;fontFamily=Pretendard,Helvetica;exitX=1;exitY=0.7;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="op" target="path-b">
|
|
<mxGeometry relative="1" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="e-a-cert" style="endArrow=classic;html=1;strokeColor=#5B21B6;strokeWidth=2;fontFamily=Pretendard,Helvetica;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.3;entryDx=0;entryDy=0;" edge="1" parent="1" source="path-a" target="entry-cert">
|
|
<mxGeometry relative="1" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="e-b-cert" style="endArrow=classic;html=1;strokeColor=#5B21B6;strokeWidth=2;fontFamily=Pretendard,Helvetica;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.7;entryDx=0;entryDy=0;" edge="1" parent="1" source="path-b" target="entry-cert">
|
|
<mxGeometry relative="1" as="geometry" />
|
|
</mxCell>
|
|
|
|
<mxCell id="entry-note" value="자동 모드 (실전에서 가장 흔함):
• Ingress 객체에 annotation cert-manager.io/cluster-issuer:<name> 만 붙이면
• cert-manager-ingress-shim 컨트롤러가 Ingress.spec.tls 를 보고
• Certificate CRD 를 자동 생성 → 이후 흐름은 수동 모드와 동일 (s17)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#EDE9FE;strokeColor=#5B21B6;strokeWidth=1;dashed=1;fontSize=11;fontStyle=2;fontFamily=Pretendard,Helvetica;fontColor=#5B21B6;align=left;verticalAlign=middle;spacingLeft=14;" vertex="1" parent="1">
|
|
<mxGeometry x="1010" y="155" width="540" height="110" as="geometry" />
|
|
</mxCell>
|
|
|
|
<mxCell id="grp-cr" value="② Certificate vs CertificateRequest — 발급 단위 추상화 (1 : N)" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#FFF7ED;strokeColor=#FB923C;strokeWidth=1;fontSize=13;fontStyle=1;fontFamily=Pretendard,Helvetica;fontColor=#C2410C;align=left;verticalAlign=top;spacingLeft=10;spacingTop=6;" vertex="1" parent="1">
|
|
<mxGeometry x="40" y="300" width="740" height="270" as="geometry" />
|
|
</mxCell>
|
|
|
|
<mxCell id="cert-top" value="kind: Certificate
(1 개 — 영구 desired state)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FED7AA;strokeColor=#C2410C;strokeWidth=2;fontSize=12;fontStyle=1;fontFamily=Pretendard,Helvetica;fontColor=#7C2D12;align=center;verticalAlign=middle;" vertex="1" parent="1">
|
|
<mxGeometry x="270" y="345" width="280" height="55" as="geometry" />
|
|
</mxCell>
|
|
|
|
<mxCell id="cr-1" value="CertificateRequest #1
t = 0
(initial 발급)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#C2410C;strokeWidth=2;fontSize=11;fontStyle=1;fontFamily=Pretendard,Helvetica;fontColor=#C2410C;align=center;verticalAlign=middle;" vertex="1" parent="1">
|
|
<mxGeometry x="60" y="450" width="180" height="80" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="cr-2" value="CertificateRequest #2
t = 60d
(renewal-1)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#C2410C;strokeWidth=2;fontSize=11;fontStyle=1;fontFamily=Pretendard,Helvetica;fontColor=#C2410C;align=center;verticalAlign=middle;" vertex="1" parent="1">
|
|
<mxGeometry x="260" y="450" width="180" height="80" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="cr-3" value="CertificateRequest #3
t = 120d
(renewal-2)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#C2410C;strokeWidth=2;fontSize=11;fontStyle=1;fontFamily=Pretendard,Helvetica;fontColor=#C2410C;align=center;verticalAlign=middle;" vertex="1" parent="1">
|
|
<mxGeometry x="460" y="450" width="180" height="80" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="cr-dots" value="...
시간순 누적" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;fontSize=12;fontStyle=2;fontFamily=Pretendard,Helvetica;fontColor=#C2410C;" vertex="1" parent="1">
|
|
<mxGeometry x="660" y="465" width="100" height="50" as="geometry" />
|
|
</mxCell>
|
|
|
|
<mxCell id="e-cert-cr1" style="endArrow=classic;html=1;strokeColor=#C2410C;strokeWidth=2;fontFamily=Pretendard,Helvetica;exitX=0.2;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="cert-top" target="cr-1">
|
|
<mxGeometry relative="1" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="e-cert-cr2" style="endArrow=classic;html=1;strokeColor=#C2410C;strokeWidth=2;fontFamily=Pretendard,Helvetica;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="cert-top" target="cr-2">
|
|
<mxGeometry relative="1" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="e-cert-cr3" style="endArrow=classic;html=1;strokeColor=#C2410C;strokeWidth=2;fontFamily=Pretendard,Helvetica;exitX=0.8;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="cert-top" target="cr-3">
|
|
<mxGeometry relative="1" as="geometry" />
|
|
</mxCell>
|
|
|
|
<mxCell id="cr-note" value="✓ Certificate = 영구 spec (1 개) · CertificateRequest = 발급 1회분 (N 개 시간순)
✓ ACME issuer 면 각 CR → Order/Challenge 생성 (s17) · CA/Vault/SelfSigned 면 CR 단계에서 직접 발급" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FFEDD5;strokeColor=#FB923C;strokeWidth=1;dashed=1;fontSize=11;fontStyle=2;fontFamily=Pretendard,Helvetica;fontColor=#7C2D12;align=left;verticalAlign=middle;spacingLeft=14;" vertex="1" parent="1">
|
|
<mxGeometry x="60" y="540" width="700" height="22" as="geometry" />
|
|
</mxCell>
|
|
|
|
<mxCell id="grp-issuer" value="③ Issuer 종류 — spec.* 4 옵션 + scope (Issuer / ClusterIssuer)" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#EFF6FF;strokeColor=#3B82F6;strokeWidth=1;fontSize=13;fontStyle=1;fontFamily=Pretendard,Helvetica;fontColor=#1E40AF;align=left;verticalAlign=top;spacingLeft=10;spacingTop=6;" vertex="1" parent="1">
|
|
<mxGeometry x="800" y="300" width="760" height="270" as="geometry" />
|
|
</mxCell>
|
|
|
|
<mxCell id="issuer-base" value="" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#DBEAFE;strokeColor=#1E40AF;strokeWidth=2;" vertex="1" parent="1">
|
|
<mxGeometry x="820" y="350" width="220" height="160" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="issuer-base-title" value="Issuer / ClusterIssuer" style="text;html=1;align=center;verticalAlign=top;whiteSpace=wrap;fontSize=13;fontStyle=1;fontFamily=Pretendard,Helvetica;fontColor=#1E40AF;spacingTop=10;" vertex="1" parent="1">
|
|
<mxGeometry x="820" y="350" width="220" height="24" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="issuer-base-scope-title" value="Scope :" style="text;html=1;align=left;verticalAlign=middle;whiteSpace=wrap;fontSize=11;fontStyle=1;fontFamily=Pretendard,Helvetica;fontColor=#1E40AF;spacingLeft=14;" vertex="1" parent="1">
|
|
<mxGeometry x="820" y="384" width="220" height="20" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="issuer-base-scope1" value="• Issuer : namespace 한정" style="text;html=1;align=left;verticalAlign=middle;whiteSpace=wrap;fontSize=11;fontFamily=Pretendard,Helvetica;fontColor=#1E3A8A;spacingLeft=20;" vertex="1" parent="1">
|
|
<mxGeometry x="820" y="406" width="220" height="20" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="issuer-base-scope2" value="• ClusterIssuer : 전역" style="text;html=1;align=left;verticalAlign=middle;whiteSpace=wrap;fontSize=11;fontFamily=Pretendard,Helvetica;fontColor=#1E3A8A;spacingLeft=20;" vertex="1" parent="1">
|
|
<mxGeometry x="820" y="426" width="220" height="20" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="issuer-base-tip" value="공통: spec.acme | spec.ca
 spec.vault | spec.selfSigned
 중 하나 선택" style="text;html=1;align=left;verticalAlign=middle;whiteSpace=wrap;fontSize=10;fontStyle=2;fontFamily=Pretendard,Helvetica;fontColor=#1E40AF;spacingLeft=14;" vertex="1" parent="1">
|
|
<mxGeometry x="820" y="450" width="220" height="55" as="geometry" />
|
|
</mxCell>
|
|
|
|
<mxCell id="issuer-acme" value="spec.acme → ACME 서버" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#1E40AF;strokeWidth=2;fontSize=12;fontStyle=1;fontFamily=Pretendard,Helvetica;fontColor=#1E40AF;align=left;verticalAlign=top;spacingLeft=14;spacingTop=8;" vertex="1" parent="1">
|
|
<mxGeometry x="1080" y="350" width="240" height="60" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="issuer-acme-sub" value="Let's Encrypt · ZeroSSL (공개 도메인)" style="text;html=1;align=left;verticalAlign=middle;whiteSpace=wrap;fontSize=10;fontStyle=2;fontFamily=Pretendard,Helvetica;fontColor=#1E3A8A;spacingLeft=14;" vertex="1" parent="1">
|
|
<mxGeometry x="1080" y="378" width="240" height="20" as="geometry" />
|
|
</mxCell>
|
|
|
|
<mxCell id="issuer-ca" value="spec.ca → 자체 CA" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#1E40AF;strokeWidth=2;fontSize=12;fontStyle=1;fontFamily=Pretendard,Helvetica;fontColor=#1E40AF;align=left;verticalAlign=top;spacingLeft=14;spacingTop=8;" vertex="1" parent="1">
|
|
<mxGeometry x="1320" y="350" width="240" height="60" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="issuer-ca-sub" value="cert+key 가 K8s Secret 으로 사전 등록 (내부망 / mTLS)" style="text;html=1;align=left;verticalAlign=middle;whiteSpace=wrap;fontSize=10;fontStyle=2;fontFamily=Pretendard,Helvetica;fontColor=#1E3A8A;spacingLeft=14;" vertex="1" parent="1">
|
|
<mxGeometry x="1320" y="378" width="240" height="32" as="geometry" />
|
|
</mxCell>
|
|
|
|
<mxCell id="issuer-vault" value="spec.vault → Vault PKI" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#1E40AF;strokeWidth=2;fontSize=12;fontStyle=1;fontFamily=Pretendard,Helvetica;fontColor=#1E40AF;align=left;verticalAlign=top;spacingLeft=14;spacingTop=8;" vertex="1" parent="1">
|
|
<mxGeometry x="1080" y="430" width="240" height="60" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="issuer-vault-sub" value="HashiCorp Vault PKI engine (Vault 사용 환경)" style="text;html=1;align=left;verticalAlign=middle;whiteSpace=wrap;fontSize=10;fontStyle=2;fontFamily=Pretendard,Helvetica;fontColor=#1E3A8A;spacingLeft=14;" vertex="1" parent="1">
|
|
<mxGeometry x="1080" y="458" width="240" height="32" as="geometry" />
|
|
</mxCell>
|
|
|
|
<mxCell id="issuer-self" value="spec.selfSigned → 자기 서명" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#1E40AF;strokeWidth=2;fontSize=12;fontStyle=1;fontFamily=Pretendard,Helvetica;fontColor=#1E40AF;align=left;verticalAlign=top;spacingLeft=14;spacingTop=8;" vertex="1" parent="1">
|
|
<mxGeometry x="1320" y="430" width="240" height="60" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="issuer-self-sub" value="브라우저 신뢰 X — 테스트 / 임시 / dev 전용" style="text;html=1;align=left;verticalAlign=middle;whiteSpace=wrap;fontSize=10;fontStyle=2;fontFamily=Pretendard,Helvetica;fontColor=#1E3A8A;spacingLeft=14;" vertex="1" parent="1">
|
|
<mxGeometry x="1320" y="458" width="240" height="20" as="geometry" />
|
|
</mxCell>
|
|
|
|
<mxCell id="e-issuer-acme" style="endArrow=classic;html=1;strokeColor=#1E40AF;strokeWidth=2;fontFamily=Pretendard,Helvetica;exitX=1;exitY=0.2;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="issuer-base" target="issuer-acme">
|
|
<mxGeometry relative="1" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="e-issuer-vault" style="endArrow=classic;html=1;strokeColor=#1E40AF;strokeWidth=2;fontFamily=Pretendard,Helvetica;exitX=1;exitY=0.8;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="issuer-base" target="issuer-vault">
|
|
<mxGeometry relative="1" as="geometry" />
|
|
</mxCell>
|
|
|
|
<mxCell id="issuer-note" value="✓ s17 그림은 ACME (Let's Encrypt) 사례 · 내부망/mTLS 면 CA 또는 Vault 가 일반적" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;fontSize=11;fontStyle=2;fontFamily=Pretendard,Helvetica;fontColor=#1E40AF;" vertex="1" parent="1">
|
|
<mxGeometry x="820" y="525" width="720" height="22" as="geometry" />
|
|
</mxCell>
|
|
|
|
<mxCell id="grp-challenge" value="④ Challenge 타입 — HTTP-01 vs DNS-01 (wildcard 차이)" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#FEF3C7;strokeColor=#B45309;strokeWidth=1;fontSize=13;fontStyle=1;fontFamily=Pretendard,Helvetica;fontColor=#B45309;align=left;verticalAlign=top;spacingLeft=10;spacingTop=6;" vertex="1" parent="1">
|
|
<mxGeometry x="40" y="590" width="740" height="200" as="geometry" />
|
|
</mxCell>
|
|
|
|
<mxCell id="ch-http-title" value="HTTP-01 (s17 그림의 방식)" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;fontSize=13;fontStyle=1;fontFamily=Pretendard,Helvetica;fontColor=#B45309;" vertex="1" parent="1">
|
|
<mxGeometry x="60" y="624" width="340" height="22" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="ch-http-cm" value="cert-manager" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#B45309;strokeWidth=1;fontSize=10;fontStyle=1;fontFamily=Pretendard,Helvetica;fontColor=#B45309;align=center;verticalAlign=middle;" vertex="1" parent="1">
|
|
<mxGeometry x="60" y="654" width="90" height="40" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="ch-http-ep" value=".well-known/
acme-challenge/<token>" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FFEDD5;strokeColor=#B45309;strokeWidth=1;fontSize=9;fontStyle=1;fontFamily=monospace;fontColor=#7C2D12;align=center;verticalAlign=middle;" vertex="1" parent="1">
|
|
<mxGeometry x="170" y="654" width="140" height="40" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="ch-http-acme" value="ACME 서버
HTTP GET" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#B45309;strokeWidth=1;fontSize=10;fontStyle=1;fontFamily=Pretendard,Helvetica;fontColor=#B45309;align=center;verticalAlign=middle;" vertex="1" parent="1">
|
|
<mxGeometry x="330" y="654" width="70" height="40" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="e-http-1" style="endArrow=classic;html=1;strokeColor=#B45309;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="ch-http-cm" target="ch-http-ep">
|
|
<mxGeometry relative="1" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="e-http-2" style="endArrow=classic;html=1;strokeColor=#B45309;strokeWidth=2;dashed=1;fontFamily=Pretendard,Helvetica;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="ch-http-acme" target="ch-http-ep">
|
|
<mxGeometry relative="1" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="ch-http-note" value="✓ 외부 80/tcp 접근 필요 · ✗ wildcard 불가 (a.com 만) · ✓ 즉시 검증" style="text;html=1;align=left;verticalAlign=middle;whiteSpace=wrap;fontSize=11;fontFamily=Pretendard,Helvetica;fontColor=#7C2D12;spacingLeft=14;" vertex="1" parent="1">
|
|
<mxGeometry x="60" y="704" width="340" height="22" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="ch-http-use" value="용도: 일반 단일 도메인" style="text;html=1;align=left;verticalAlign=middle;whiteSpace=wrap;fontSize=11;fontStyle=2;fontFamily=Pretendard,Helvetica;fontColor=#B45309;spacingLeft=14;" vertex="1" parent="1">
|
|
<mxGeometry x="60" y="724" width="340" height="22" as="geometry" />
|
|
</mxCell>
|
|
|
|
<mxCell id="ch-divider" value="" style="endArrow=none;html=1;strokeColor=#B45309;strokeWidth=1;dashed=1;" edge="1" parent="1">
|
|
<mxGeometry relative="1" as="geometry">
|
|
<mxPoint x="420" y="624" as="sourcePoint" />
|
|
<mxPoint x="420" y="780" as="targetPoint" />
|
|
</mxGeometry>
|
|
</mxCell>
|
|
|
|
<mxCell id="ch-dns-title" value="DNS-01 (wildcard 필요 시)" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;fontSize=13;fontStyle=1;fontFamily=Pretendard,Helvetica;fontColor=#B45309;" vertex="1" parent="1">
|
|
<mxGeometry x="430" y="624" width="340" height="22" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="ch-dns-cm" value="cert-manager" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#B45309;strokeWidth=1;fontSize=10;fontStyle=1;fontFamily=Pretendard,Helvetica;fontColor=#B45309;align=center;verticalAlign=middle;" vertex="1" parent="1">
|
|
<mxGeometry x="430" y="654" width="90" height="40" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="ch-dns-api" value="DNS API
TXT record" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FFEDD5;strokeColor=#B45309;strokeWidth=1;fontSize=10;fontStyle=1;fontFamily=Pretendard,Helvetica;fontColor=#7C2D12;align=center;verticalAlign=middle;" vertex="1" parent="1">
|
|
<mxGeometry x="540" y="654" width="120" height="40" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="ch-dns-acme" value="ACME 서버
DNS query" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#B45309;strokeWidth=1;fontSize=10;fontStyle=1;fontFamily=Pretendard,Helvetica;fontColor=#B45309;align=center;verticalAlign=middle;" vertex="1" parent="1">
|
|
<mxGeometry x="680" y="654" width="80" height="40" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="e-dns-1" style="endArrow=classic;html=1;strokeColor=#B45309;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="ch-dns-cm" target="ch-dns-api">
|
|
<mxGeometry relative="1" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="e-dns-2" style="endArrow=classic;html=1;strokeColor=#B45309;strokeWidth=2;dashed=1;fontFamily=Pretendard,Helvetica;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="ch-dns-acme" target="ch-dns-api">
|
|
<mxGeometry relative="1" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="ch-dns-note" value="✓ DNS API 권한 필요 (Route53/CloudDNS 등) · ✓ wildcard *.example.com 가능" style="text;html=1;align=left;verticalAlign=middle;whiteSpace=wrap;fontSize=11;fontFamily=Pretendard,Helvetica;fontColor=#7C2D12;spacingLeft=14;" vertex="1" parent="1">
|
|
<mxGeometry x="430" y="704" width="340" height="22" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="ch-dns-use" value="용도: wildcard, 사설망 (80/tcp 노출 X)" style="text;html=1;align=left;verticalAlign=middle;whiteSpace=wrap;fontSize=11;fontStyle=2;fontFamily=Pretendard,Helvetica;fontColor=#B45309;spacingLeft=14;" vertex="1" parent="1">
|
|
<mxGeometry x="430" y="724" width="340" height="22" as="geometry" />
|
|
</mxCell>
|
|
|
|
<mxCell id="grp-failure" value="⑤ 실패 처리 — status.conditions + 지수 백오프 재시도" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#FEE2E2;strokeColor=#B91C1C;strokeWidth=1;fontSize=13;fontStyle=1;fontFamily=Pretendard,Helvetica;fontColor=#B91C1C;align=left;verticalAlign=top;spacingLeft=10;spacingTop=6;" vertex="1" parent="1">
|
|
<mxGeometry x="800" y="590" width="760" height="200" as="geometry" />
|
|
</mxCell>
|
|
|
|
<mxCell id="state-pending" value="Pending" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#B91C1C;strokeWidth=2;fontSize=13;fontStyle=1;fontFamily=Pretendard,Helvetica;fontColor=#B91C1C;align=center;verticalAlign=middle;" vertex="1" parent="1">
|
|
<mxGeometry x="830" y="650" width="120" height="50" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="state-issuing" value="Issuing" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FECACA;strokeColor=#B91C1C;strokeWidth=2;fontSize=13;fontStyle=1;fontFamily=Pretendard,Helvetica;fontColor=#B91C1C;align=center;verticalAlign=middle;" vertex="1" parent="1">
|
|
<mxGeometry x="1010" y="650" width="120" height="50" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="state-ready" value="Ready ✓" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#DCFCE7;strokeColor=#15803D;strokeWidth=3;fontSize=13;fontStyle=1;fontFamily=Pretendard,Helvetica;fontColor=#14532D;align=center;verticalAlign=middle;" vertex="1" parent="1">
|
|
<mxGeometry x="1190" y="620" width="130" height="40" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="state-failed" value="Failed ✗" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FCA5A5;strokeColor=#7F1D1D;strokeWidth=3;fontSize=13;fontStyle=1;fontFamily=Pretendard,Helvetica;fontColor=#7F1D1D;align=center;verticalAlign=middle;" vertex="1" parent="1">
|
|
<mxGeometry x="1190" y="690" width="130" height="40" as="geometry" />
|
|
</mxCell>
|
|
|
|
<mxCell id="e-pending-issuing" 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="state-pending" target="state-issuing">
|
|
<mxGeometry relative="1" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="e-issuing-ready" style="endArrow=classic;html=1;strokeColor=#15803D;strokeWidth=2;fontFamily=Pretendard,Helvetica;exitX=1;exitY=0.3;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="state-issuing" target="state-ready">
|
|
<mxGeometry relative="1" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="e-issuing-failed" style="endArrow=classic;html=1;strokeColor=#7F1D1D;strokeWidth=2;fontFamily=Pretendard,Helvetica;exitX=1;exitY=0.7;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="state-issuing" target="state-failed">
|
|
<mxGeometry relative="1" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="e-failed-pending" style="endArrow=classic;html=1;strokeColor=#7F1D1D;strokeWidth=2;dashed=1;fontFamily=Pretendard,Helvetica;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" edge="1" parent="1" source="state-failed" target="state-pending">
|
|
<mxGeometry relative="1" as="geometry">
|
|
<Array as="points">
|
|
<mxPoint x="1255" y="760" />
|
|
<mxPoint x="890" y="760" />
|
|
</Array>
|
|
</mxGeometry>
|
|
</mxCell>
|
|
<mxCell id="retry-lbl" value="지수 백오프 후 재시도 (1m → 2m → 4m → ... max ~30m)" style="text;html=1;align=center;verticalAlign=middle;fontSize=11;fontFamily=Pretendard,Helvetica;fontColor=#7F1D1D;fillColor=#FFFFFF;fontStyle=1;" vertex="1" parent="1">
|
|
<mxGeometry x="950" y="752" width="350" height="18" as="geometry" />
|
|
</mxCell>
|
|
|
|
<mxCell id="failure-note" value="status.conditions: Ready · Issuing · Failed
디버깅: kubectl describe certificate <name> + kubectl describe certificaterequest" style="text;html=1;align=left;verticalAlign=middle;whiteSpace=wrap;fontSize=11;fontStyle=2;fontFamily=Pretendard,Helvetica;fontColor=#B91C1C;spacingLeft=14;" vertex="1" parent="1">
|
|
<mxGeometry x="1340" y="640" width="220" height="60" as="geometry" />
|
|
</mxCell>
|
|
|
|
<mxCell id="caption-bg" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#F6F8FA;strokeColor=#D0D7DE;" vertex="1" parent="1">
|
|
<mxGeometry x="40" y="800" width="1520" height="44" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="caption" value="cert-manager 의 변형들 — 진입 모드 / CR 추상화 / Issuer 4 종류 / Challenge 2 타입 / 실패 처리. s17 (정상 발급) 과 함께 보면 cert-manager 전체 그림" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;fontSize=14;fontStyle=1;fontFamily=Pretendard,Helvetica;fontColor=#24292F;" vertex="1" parent="1">
|
|
<mxGeometry x="40" y="800" width="1520" height="44" as="geometry" />
|
|
</mxCell>
|
|
|
|
</root>
|
|
</mxGraphModel>
|
|
</diagram>
|
|
</mxfile>
|