{
  "test_id": "T95",
  "date": "2026-07-06",
  "env": "Istio 1.30.0 (istiod + istio/gateway chart) / k8s 1.30.6 (homelab kubeadm, containerd)",
  "verdict": "pass",
  "observed": "istio/gateway 차트 values에 safe sysctl 2종(net.ipv4.ip_unprivileged_port_start=0, net.ipv4.ip_local_port_range='10240 60999')을 넣어 격리 네임스페이스(istio-vt-t95)에 배포한 결과, Deployment pod template에는 2종이 모두 렌더링됐으나(C1) sidecar injector webhook을 거친 최종 pod의 spec.securityContext에는 net.ipv4.ip_unprivileged_port_start=0 하나만 남았고(C2), pod 내부 /proc/sys/net/ipv4/ip_local_port_range는 커널 기본값(32768 60999)으로 확인돼 values의 설정이 조용히 소실됨을 실증했다(C2b). 원인은 istiod 차트의 gateway-injection-template.yaml이 pod-level securityContext를 무조건 렌더링하고(.Values.gateways.securityContext가 비면 ip_unprivileged_port_start=0 기본 주입), strategic merge에서 sysctls 리스트(merge key 없음)가 통째 교체되기 때문이다. 현 클러스터 injector configmap의 data.values는 gateways.securityContext={}로 else 분기가 활성 상태였다. 수정 경로 검증(C3)으로 istiod 차트를 gateways.securityContext에 sysctl 2종을 넣어 로컬 렌더링하니 istio-sidecar-injector configmap의 data.values에 해당 값이 전달되고 템플릿 분기가 이를 참조함을 확인했다. 단 C3의 클러스터 최종 확정(istiod helm upgrade 후 pod 재생성 확인)은 공유 컨트롤플레인 변경이라 이번 실측에선 실행하지 않았다.",
  "claims": [
    {
      "cid": "C1",
      "claim": "gateway 차트 values의 securityContext.sysctls는 Deployment pod template까지 정상 렌더링된다 (T94 재확인)",
      "empirical": "supports-claim",
      "note": "클러스터 실측 — Deployment jsonpath에서 sysctl 2종 확인"
    },
    {
      "cid": "C2",
      "claim": "sidecar injector의 gateway 주입 템플릿이 pod-level securityContext를 무조건 렌더링하고 sysctls 리스트를 통째 교체해, gateway 차트 values의 sysctls가 최종 pod에서 소실된다",
      "empirical": "supports-claim",
      "note": "클러스터 실측 — 최종 pod에 ip_unprivileged_port_start=0만 잔존, /proc의 ip_local_port_range=32768 60999(기본값). 에러·이벤트 없이 조용히 소실"
    },
    {
      "cid": "C3",
      "claim": "실효 주입 지점은 istiod 차트 values의 gateways.securityContext다 (injector configmap data.values를 거쳐 주입 시점 분기에서 사용)",
      "empirical": "supports-claim-rendering-only",
      "note": "istiod 차트 로컬 렌더링으로 configmap data.values 전달 확인. 클러스터 최종 pod 반영은 미실행(istiod upgrade 승인 필요) — 적용 환경에서 재확인 요망. 템플릿 값→pod 경로 자체는 C2에서 실측됨(else 분기 기본값이 pod에 그대로 나타남)"
    }
  ]
}
