mcpField
E
external-urls

external-urls

github.com/julianobarbosaクラウド・DevOps1491 回インストール2 日前に更新
リポジトリ

external-urls について

External URLs は、Hypera のマルチクラスター GitOps インフラを扱うチーム向けのリファレンススキルです。環境別にサービス、クラスター API、リポジトリ、SMTP のエンドポイントを整理し、ヘルスチェックコマンドとトラブルシューティングも掲載しています。

主な機能

  1. 01環境別のサービス URL 検索
  2. 02クラスター API エンドポイントの参照
  3. 03Git・Helm リポジトリ URL の一覧
  4. 04URL とクラスター接続の確認
  5. 05DNS・証明書の問題の調査

活用シーン

  1. 01環境ごとのサービスエンドポイントの特定
  2. 02VPN が必要なクラスター接続の確認
  3. 03アプリケーション URL の状態確認
  4. 04DNS や証明書の問題の調査

インストール

コマンドをコピーしてターミナルで実行します。

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

インストール後、Claude Code で/external-urlsを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

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

詳細

外部 URL スキル

Hypera のマルチクラスター GitOps インフラストラクチャで使用するすべての外部 URL とエンドポイントのクイックリファレンスです。

URL のクイック検索

環境別アプリケーション URL

ハブ(共有サービス)

サービスURL用途
ArgoCDhttps://argocd.cafehyna.com.brGitOps UI と API
Sentryhttps://sentry-hub.cafehyna.hypera.com.brエラー追跡
SonarQubehttps://sonarqube-hub.cafehyna.com.brコード品質
phpMyAdminhttps://dba.cafehyna.com.brMySQL 管理
Adminerhttps://dba2.cafehyna.com.brマルチ DB 管理
Mimirhttps://mimir-hub.cafehyna.com.brメトリクスストレージ

開発

サービスURL用途
Sentryhttps://sentry.adocyl.com.brエラー追跡
SonarQubehttps://sonarqube.hypera.com.brコード品質
Grafana OnCallhttps://oncall-dev.cafehyna.comオンコール管理
phpMyAdminhttps://dev-dba.cafehyna.com.brMySQL 管理
RabbitMQhttps://rabbitmq-painelclientes-dev.cafehyna.com.brメッセージキュー

本番

サービスURL用途
Sentryhttps://sentry.cafehyna.hypera.com.brエラー追跡

クラスター API エンドポイント

すべてのクラスターで Azure Private Link を使用します(VPN が必要です)。

クラスターAPI サーバーリージョン
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

リポジトリ URL

Git リポジトリ(Azure DevOps)
リポジトリURL
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 リポジトリ
リポジトリURLチャート
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

ドメインリファレンス

ドメイン用途環境
*.cafehyna.com.br主要アプリケーションすべて
*.cafehyna.hypera.com.brHypera ブランドのサービスハブ/本番
*.adocyl.com.br開発サービス開発
*.hypera.com.br企業サービスすべて

証明書と DNS

  • 証明書発行者: Let's Encrypt
  • DNS プロバイダー: Cloudflare
  • ClusterIssuers: letsencrypt-prod、letsencrypt-staging
  • 連絡先: [email protected]

SMTP サービス

サービスホスト環境
Office 365smtp.office365.comハブ
SendGridsmtp.sendgrid.net本番

クイックコマンド

アプリケーション URL の健全性を確認
# 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
クラスターの接続性を確認する
# 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
Helm リポジトリを確認する
# 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

設定ファイルの場所

URL は以下の設定ファイルで定義されています。

カテゴリパスのパターン
アプリケーションの Ingressargo-cd-helm-values/kube-addons/<service>/<cluster>/values.yaml
クラスターのエンドポイントinfra-team/argocd-clusters/<cluster>.yaml
Git リポジトリinfra-team/argocd-repos/base/git-repositories/*.yaml
Helm リポジトリinfra-team/argocd-repos/base/helm-repositories/*.yaml

トラブルシューティング

問題解決方法
アプリケーション URL に到達できないingress-nginx ポッドを確認し、Cloudflare の DNS を確認します
クラスター API がタイムアウトするVPN 接続を確認し、Azure AKS の状態を確認します
証明書エラーcert-manager の ClusterIssuer を確認し、Let's Encrypt のレート制限を確認します
DNS が解決されないexternal-dns のログを確認し、Cloudflare API トークンを確認します

スクリプト

  • scripts/check-urls.sh - すべてのアプリケーション URL のヘルスチェック
  • scripts/list-urls.sh - 環境またはカテゴリ別に URL を一覧表示

詳細リファレンス

URL の全一覧とソースファイルの場所については、以下を参照してください。


注意事項

  • Private Link API エンドポイントには kubeconfig だけでなく VPN が必要です: すべての privatelink.eastus.azmk8s.io URL は、社内ネットワーク内でのみ解決されます。VPN が切断されると、kubectl は明確な DNS エラーを返さずに 30 秒間ハングした後、タイムアウトします。
  • cafehyna.com.br と cafehyna.hypera.com.br は異なるゾーンです: 誤ったゾーンに追加されたレコードは正常に伝播し、ブラウザーでも正常に解決されますが、ACME バリデーターがゾーンの頂点にある NS レコードを照会するため、cert-manager の DNS-01 チャレンジは失敗します。レコードを追加する前に、dig NS <domain> でゾーンを確認してください。
  • adocyl.com.br は開発専用ドメインです。ハブでは再利用しないでください: 環境をまたいでホスト名を再利用すると、Let's Encrypt のステージング用と本番用の issuer のスコープが崩れます。また、SonarQube と Sentry のセッション Cookie を同じ頂点ドメインで共有すると、環境間で漏えいします。
  • Azure DevOps の Git URL ではプロジェクト名を URL エンコードする必要があります: Cafehyna%20-%20Desenvolvimento%20Web のエンコードは維持する必要があります。スペースをそのまま使うと、git clone が判読しにくい 404 エラーで失敗します。Azure DevOps の UI ではこの点が分かりにくいため、SSH タブからコピーするか、エンコードされた形式を使用してください。
  • smtp.office365.com では 2022 年 10 月以降、モダン認証(OAuth2)が必要です: ポート 587 での基本認証はテナント全体で無効になっています。ユーザー名とパスワードを設定したままのアプリは、535 5.7.139 を返してもエラーが表示されずに失敗します。SendGrid、または MFA をバイパスしたアプリパスワードを使用してください。
  • East US と East US 2 のクラスターが混在すると、リージョン間のポッド通信に問題が発生します: painelclientes(EUS2)クラスターと cafehyna(EUS)クラスターは、明示的な VNet ピアリングがないとプライベート DNS ゾーンを共有できません。Ingress のホスト名は解決されても、ポッド間通信は失敗します。接続性を前提とする前に、リージョン列を確認してください。

コメント