mcpField
E
external-urls

external-urls

github.com/julianobarbosaCloud & DevOps1491 installsUpdated 2d ago
Repository

About external-urls

External URLs is a quick-reference skill for teams working with Hypera's multi-cluster GitOps infrastructure. It organizes service, cluster API, repository, and SMTP endpoints by environment, and includes health-check commands and troubleshooting guidance.

Key features

  1. 01Look up service URLs by environment
  2. 02Reference cluster API endpoints
  3. 03List Git and Helm repository URLs
  4. 04Check URL and cluster connectivity
  5. 05Consult DNS and certificate troubleshooting

Use cases

  1. 01Finding an environment's service endpoint
  2. 02Checking cluster connectivity when VPN is required
  3. 03Validating application URL health
  4. 04Troubleshooting DNS or certificate problems

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/julianobarbosa/claude-code-skills --skill external-urls

After installing, type/external-urlsin Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

references/
urls-detail.md
scripts/
check-urls.sh
list-urls.sh

Details

From the project README

External URLs Skill

Quick reference for all external URLs and endpoints in Hypera's multi-cluster GitOps infrastructure.

Quick URL Lookup

Application URLs by Environment

Hub (Shared Services)

ServiceURLPurpose
ArgoCDhttps://argocd.cafehyna.com.brGitOps UI & API
Sentryhttps://sentry-hub.cafehyna.hypera.com.brError tracking
SonarQubehttps://sonarqube-hub.cafehyna.com.brCode quality
phpMyAdminhttps://dba.cafehyna.com.brMySQL admin
Adminerhttps://dba2.cafehyna.com.brMulti-DB admin
Mimirhttps://mimir-hub.cafehyna.com.brMetrics storage

Development

ServiceURLPurpose
Sentryhttps://sentry.adocyl.com.brError tracking
SonarQubehttps://sonarqube.hypera.com.brCode quality
Grafana OnCallhttps://oncall-dev.cafehyna.comOn-call management
phpMyAdminhttps://dev-dba.cafehyna.com.brMySQL admin
RabbitMQhttps://rabbitmq-painelclientes-dev.cafehyna.com.brMessage queue

Production

ServiceURLPurpose
Sentryhttps://sentry.cafehyna.hypera.com.brError tracking

Cluster API Endpoints

All clusters use Azure Private Link (VPN required):

ClusterAPI ServerRegion
cafehyna-hubhttps://aks-cafehyna-default-b2ie56p8.5bbf1042-d320-432c-bd11-cea99f009c29.privatelink.eastus.azmk8s.io:443East US
cafehyna-devhttps://aks-cafehyna-dev-hlg-q3oga63c.30041054-9b14-4852-9bd5-114d2fac4590.privatelink.eastus.azmk8s.io:443East US
cafehyna-prdhttps://aks-cafehyna-prd-hsr83z2k.c7d864af-cbd7-481b-866b-8559e0d1c1ea.privatelink.eastus.azmk8s.io:443East US
painelclientes-devhttps://akspainelclientedev-dns-vjs3nd48.hcp.eastus2.azmk8s.io:443East US 2
painelclientes-prdhttps://akspainelclientesprd-dns-kezy4skd.hcp.eastus2.azmk8s.io:443East US 2
loyalty-devhttps://loyaltyaks-qas-dns-d330cafe.hcp.eastus.azmk8s.io:443East US

Repository URLs

Git Repositories (Azure DevOps)
RepositoryURL
infra-teamhttps://[email protected]/hypera/Cafehyna%20-%20Desenvolvimento%20Web/_git/infra-team
argo-cd-helm-valueshttps://[email protected]/hypera/Cafehyna%20-%20Desenvolvimento%20Web/_git/argo-cd-helm-values
kubernetes-configurationhttps://[email protected]/hypera/Cafehyna%20-%20Desenvolvimento%20Web/_git/kubernetes-configuration
Helm Repositories
RepositoryURLCharts
ingress-nginxhttps://kubernetes.github.io/ingress-nginxingress-nginx
jetstackhttps://charts.jetstack.iocert-manager
bitnamihttps://charts.bitnami.com/bitnamiexternal-dns, phpmyadmin, rabbitmq
prometheus-communityhttps://prometheus-community.github.io/helm-chartskube-prometheus-stack
robustahttps://robusta-charts.storage.googleapis.comrobusta
cetichttps://cetic.github.io/helm-chartsadminer
defectdojohttps://raw.githubusercontent.com/DefectDojo/django-DefectDojo/helm-chartsdefectdojo

Domain Reference

DomainUsageEnvironment
*.cafehyna.com.brPrimary applicationsAll
*.cafehyna.hypera.com.brHypera-branded servicesHub/Prd
*.adocyl.com.brDevelopment servicesDev
*.hypera.com.brCorporate servicesAll

Certificate & DNS

  • Certificate Issuer: Let's Encrypt
  • DNS Provider: Cloudflare
  • ClusterIssuers: letsencrypt-prod, letsencrypt-staging
  • Contact: [email protected]

SMTP Services

ServiceHostEnvironment
Office 365smtp.office365.comHub
SendGridsmtp.sendgrid.netProduction

Quick Commands

Check Application URL Health
# Check ArgoCD
curl -sI https://argocd.cafehyna.com.br | head -1

# Check all hub services
for url in argocd.cafehyna.com.br sentry-hub.cafehyna.hypera.com.br sonarqube-hub.cafehyna.com.br dba.cafehyna.com.br; do
  echo -n "$url: "; curl -sI "https://$url" -o /dev/null -w "%{http_code}\n" --connect-timeout 5 2>/dev/null || echo "FAILED"
done
Check Cluster Connectivity
# Test cluster API (requires VPN)
curl -sk https://aks-cafehyna-default-b2ie56p8.5bbf1042-d320-432c-bd11-cea99f009c29.privatelink.eastus.azmk8s.io:443/healthz

# Using kubectl
kubectl --kubeconfig ~/.kube/aks-rg-hypera-cafehyna-hub-config cluster-info
Check Helm Repository
# Add and update
helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
helm repo update ingress-nginx

# Search charts
helm search repo ingress-nginx

Configuration File Locations

URLs are defined in these configuration files:

CategoryPath Pattern
Application Ingressargo-cd-helm-values/kube-addons/<service>/<cluster>/values.yaml
Cluster Endpointsinfra-team/argocd-clusters/<cluster>.yaml
Git Repositoriesinfra-team/argocd-repos/base/git-repositories/*.yaml
Helm Repositoriesinfra-team/argocd-repos/base/helm-repositories/*.yaml

Troubleshooting

IssueResolution
Application URL not reachableCheck ingress-nginx pods, verify DNS in Cloudflare
Cluster API timeoutVerify VPN connection, check Azure AKS status
Certificate errorVerify cert-manager ClusterIssuer, check Let's Encrypt rate limits
DNS not resolvingCheck external-dns logs, verify Cloudflare API token

Scripts

  • scripts/check-urls.sh - Health check all application URLs
  • scripts/list-urls.sh - List URLs by environment or category

Detailed Reference

For complete URL inventory with source file locations:


Gotchas

  • Private Link API endpoints require VPN, not just kubeconfig: All privatelink.eastus.azmk8s.io URLs resolve only inside the corporate network. kubectl will hang for 30s then time out — not produce a clear DNS error — when VPN is dropped.
  • cafehyna.com.br and cafehyna.hypera.com.br are different zones: Records added to the wrong zone propagate fine and resolve fine in browsers, but cert-manager DNS-01 challenges fail because the ACME validator queries the apex zone's NS records. Verify the zone with dig NS <domain> before adding records.
  • adocyl.com.br is the dev-only domain — don't reuse for hub: Cross-environment hostname reuse breaks Let's Encrypt staging vs prod issuer scoping, and SonarQube/Sentry session cookies leak across envs if they share the apex.
  • Azure DevOps Git URLs need URL-encoded project names: Cafehyna%20-%20Desenvolvimento%20Web must keep the encoding — raw spaces break git clone with a cryptic 404. The Azure DevOps UI hides this; copy from the SSH tab or use the encoded form.
  • smtp.office365.com requires modern auth (OAuth2) since Oct 2022: Basic auth on port 587 is disabled tenant-wide. Apps still configured with username/password silently fail with 535 5.7.139. Use SendGrid or app passwords with MFA bypass.
  • East US vs East US 2 cluster mix breaks cross-region pod traffic: painelclientes (EUS2) and cafehyna (EUS) clusters can't share private DNS zones without explicit VNet peering — ingress hostnames resolve but pod-to-pod fails. Check the region column before assuming connectivity.

Comments

Markdown supported