{"id":"IL-0502","org":"2i2c","date":"2025-08-20","docs":["https://github.com/2i2c-org/infrastructure/issues/6487","https://github.com/2i2c-org/infrastructure/issues/6646"],"title":{"en":"The JupyterHub at temple.2i2c.cloud stopped resolving in DNS after a wildcard record was added for a new cluster","ko":"새 와일드카드 DNS 레코드 때문에 temple.2i2c.cloud 가 조회되지 않아 JupyterHub 에 접속할 수 없었다"},"domain":["networking"],"impact":{"scope":"The JupyterHub at temple.2i2c.cloud did not resolve and could not be reached","users":"the Temple community, shortly before a demo","region":"unknown"},"review":{"written_by":"session","reviewed_at":null,"reviewed_by":null},"lessons":{"en":"Adding a wildcard record for a subdomain stopped a broader wildcard from answering for that subdomain's own name, so a *.X.2i2c.cloud record needs an X.2i2c.cloud record alongside it. The 30-minute default TTL at Namecheap meant any DNS fix could take that long to propagate, and the engineer creating the original record had no access to the DNS provider.","ko":"자동 경보가 커뮤니티 신고보다 먼저 문제를 잡았다. 새 클러스터를 준비한 엔지니어가 DNS 를 관리하는 Namecheap 에 권한이 없어서 다른 사람에게 부탁해 레코드를 만들었다. Namecheap 의 기본 TTL 이 30분이라 고친 값이 전파되는 데 그만큼 걸릴 수 있었다. 2i2c 는 장애가 데모 도중이 아니라 데모 전에 났고, DNS 를 고칠 권한이 있는 사람이 마침 자리에 있었던 것이 운이 좋았다고 적었다."},"related":[],"sources":[{"url":"https://github.com/2i2c-org/incident-reports/blob/main/reports/2025-08-20-temple.2i2c.cloud-unreachable.pdf","kind":"github","archived":null}],"summary":{"en":"While setting up a new cluster for Temple at 9:21 AM, 2i2c added a wildcard DNS record, *.temple.2i2c.cloud, at its DNS provider Namecheap, pointing to the new cluster's Ingress IP. Existing records were not touched, so no change was expected. The new wildcard, however, stopped the existing *.2i2c.cloud wildcard from answering for temple.2i2c.cloud itself, so the name of the existing hub no longer resolved; DNS caching delayed the effect until 10:02 AM. The engineer setting up the cluster had no access to Namecheap, so the record was created by passing the request on to others.\n\nWhen the uptime alert fired at 10:02 AM, an engineer found that temple.2i2c.cloud returned no records and added an explicit A record for temple.2i2c.cloud in Namecheap. The alert resolved at 10:15 AM, 13 minutes 46 seconds after it started. Because the community's demo was close, the TTL was lowered from the 30-minute default to 5 minutes at 10:32 AM, though it was unclear whether this changed propagation, and at 10:47 AM the community member preparing the demo was offered an /etc/hosts entry as a workaround. At 10:55 AM the community reported that the hub worked for them.","ko":"태평양 시간으로 2025년 8월 20일 오전 9:21 에 2i2c 는 Temple 의 새 클러스터를 준비하며 *.temple.2i2c.cloud 레코드를 만들어 새 클러스터의 Ingress IP 를 가리키게 했다. 그때까지 temple.2i2c.cloud 는 *.2i2c.cloud 와일드카드로 조회되고 있었다. 2i2c 는 새 와일드카드 때문에 temple.2i2c.cloud 가 더는 *.2i2c.cloud 로 조회되지 않게 됐고, DNS 캐시 때문에 그 효과가 늦게 나타났다고 봤다. 새 클러스터를 맡은 엔지니어는 DNS 가 있는 Namecheap 에 권한이 없어서 다른 사람에게 부탁해 이 레코드를 만들었다.\n\n오전 10:02 에 업타임 체크 경보가 울렸고, dig 결과에 레코드가 없는 것을 보고 NameCheap 에 temple.2i2c.cloud 의 A 레코드를 따로 더했다. 오전 10:09 에 커뮤니티의 지원 티켓이 들어왔고 오전 10:15 에 경보가 풀렸다. 영향 시간은 13분 46초였다. 데모가 임박해 오전 10:32 에 TTL 을 기본값 30분에서 5분으로 바꿨지만 실제로 효과가 있었는지는 분명하지 않았다. 오전 10:47 에 데모를 준비하는 커뮤니티 사용자에게 /etc/hosts 우회책을 안내했고, 오전 10:55 에 커뮤니티가 잘 된다고 알려 왔다."},"trigger":{"en":"At 9:21 AM, while setting up a new cluster for Temple, a wildcard DNS record *.temple.2i2c.cloud was added pointing to the new cluster's Ingress IP.","ko":"Temple 의 새 클러스터를 준비하면서 *.temple.2i2c.cloud 와일드카드 레코드를 더해 새 클러스터의 Ingress IP 를 가리키게 했다."},"severity":"unknown","symptoms":["dns-resolution-failures","service-unavailable"],"timeline":{"detected_after":"0m","resolved_after":"13m 46s"},"date_kind":"incident","detection":{"en":"Automated uptime alerts caught the failure at 10:02 AM, before the community reported it in a support ticket at 10:09 AM.","ko":"오전 10:02 에 Google Cloud 의 업타임 체크 경보가 PagerDuty 로 울렸다. 커뮤니티 신고는 그 뒤인 오전 10:09 에 들어왔다."},"components":["dns-server"],"root_cause":"config-change","remediation":[{"text":{"en":"Added an explicit A record for temple.2i2c.cloud in Namecheap","ko":"NameCheap DNS 에 temple.2i2c.cloud 의 A 레코드를 따로 더했다."}},{"text":{"en":"Lowered the DNS TTL from the 30-minute default to 5 minutes","ko":"기본값이 30분이던 DNS TTL 을 5분으로 바꿨다. 데모가 임박해서 해 본 조치였고, 전파 속도에 실제 효과가 있었는지는 분명하지 않았다."}},{"text":{"en":"Offered the community member running the demo an /etc/hosts entry as a workaround","ko":"데모를 하려는 커뮤니티 사용자에게 /etc/hosts 항목을 넣는 우회책을 안내했다."}}],"action_items":[{"text":{"en":"Give everyone on the team access to Namecheap, or move to another DNS provider","ko":"팀원 모두가 Namecheap 에 들어갈 수 있게 권한을 고친다. 그럴 수 없으면 DNS 사업자를 옮긴다."}},{"text":{"en":"Use a 5-minute TTL instead of 30 minutes for all new DNS entries","ko":"새로 만드는 모든 DNS 레코드의 TTL 을 30분이 아니라 5분으로 둔다."}},{"text":{"en":"Document that adding a *.X.2i2c.cloud DNS entry requires adding an X.2i2c.cloud entry as well","ko":"*.X.2i2c.cloud 레코드를 더할 때는 X.2i2c.cloud 레코드도 반드시 같이 더해야 한다고 문서에 적는다."}}],"contributing":["assumption-unverified","failure-delayed-by-cache","default-config-unchanged"],"recurrence_of":null,"symptoms_text":{"en":"On 20 August 2025 at 10:02 AM Pacific time, an automated uptime check on temple.2i2c.cloud started failing and paged 2i2c: the JupyterHub at temple.2i2c.cloud could not be reached, shortly before the community that uses it was to give a demo.\n\nThe alert, INCIDENT #1194, read \"An uptime check on two-eye-two-see Uptime Check URL labels {project_id=two-eye-two-see, host=temple.2i2c.cloud} is failing.\" Running `dig temple.2i2c.cloud` returned NOERROR but no entries, so the hub's name was not resolving. A community member opened a support ticket at 10:09 AM.\n\nThe DNS record that caused the failure had been added at 9:21 AM, about 40 minutes earlier, without any visible effect at the time; the team put the delay down to DNS caching. Because the default TTL on Namecheap records is 30 minutes, any fix could take that long to propagate. DNS resolved properly for the engineer working on the issue only at 10:47 AM.","ko":"temple.2i2c.cloud 의 JupyterHub 에 접속할 수 없었고 업타임 체크 경보가 울렸다. 커뮤니티가 데모를 하기 직전이었다.\n\nPagerDuty 로 온 Google Cloud 경보는 An uptime check on two-eye-two-see Uptime Check URL labels {project_id=two-eye-two-see, host=temple.2i2c.cloud} is failing. 이었고, 정책은 temple.2i2c.cloud on 2i2c, 조건은 Simple Health Check Endpoint 였다.\n\ndig temple.2i2c.cloud 의 응답은 NOERROR 였지만 레코드가 하나도 없었다.\n\n같은 날 오전 9:21 에 Temple 의 새 클러스터를 준비하면서 *.temple.2i2c.cloud 레코드를 만들어 새 클러스터의 Ingress IP 를 가리키게 했다. 기존 레코드는 건드리지 않아 아무 변화도 없을 것으로 봤다. 장애는 DNS 캐시 때문에 늦게 나타났다.\n\nA 레코드를 따로 더한 뒤에도 Namecheap 의 기본 TTL 이 30분이라 고친 값이 전파되는 데 그만큼 걸릴 수 있었다. 문제를 맡은 엔지니어 쪽에서 DNS 가 제대로 조회된 것은 오전 10:47 이었다."},"updated_at":"2026-11-14T12:34:14.749004Z","url":"https://benchlet.com/incidentlib/app/cases/IL-0502","org_slug":"2i2c"}