auth
無料Authentication and authorization patterns for Rossoctl services
日本語の概要は準備中です。原文の説明を表示しています。
Root cause analysis with live cluster - full access to pods, logs, secrets, configs for deep investigation
日本語の概要は準備中です。原文の説明を表示しています。
実行スコア 未検証
インストール方法を見るインストールする前に、エージェントに与えられる指示の中身を確認できます。
flowchart TD
START(["/rca:hypershift"]) --> P1["Phase 1: Observe"]:::rca
P1 --> P2["Phase 2: Inspect"]:::rca
P2 --> P3["Phase 3: Reproduce"]:::rca
P3 --> P4["Phase 4: Trace"]:::rca
P4 --> ROOT{"Root cause found?"}
ROOT -->|Yes| P5["Phase 5: Document"]:::rca
ROOT -->|No| P2
P5 --> TDD["tdd:hypershift"]:::tdd
classDef rca fill:#FF5722,stroke:#333,color:white
classDef tdd fill:#4CAF50,stroke:#333,color:white
Follow this diagram as the workflow.
Systematic root cause analysis with full cluster access for deep investigation.
RCA with cluster access generates massive context pollution from kubectl describe, logs, configmap dumps, and secret inspection. ALL output MUST go to files.
# Session-scoped log directory
export LOG_DIR=/tmp/rossoctl/rca/${WORKTREE:-$CLUSTER}
mkdir -p $LOG_DIR
Rules:
$LOG_DIR/<name>.logTask(subagent_type='Explore')| Aspect | rca:hypershift | rca:ci |
|---|---|---|
| Access | Full cluster (pods, logs, secrets, configs) | CI logs only |
| Debugging | Real-time with k8s:* skills | Static log analysis |
| State | Can inspect current state | Historical artifacts only |
| When | Have cluster, need deep investigation | No cluster available |
rca:ci was inconclusiveAuto-approved: All read operations on hosted clusters are auto-approved. Run each command separately for auto-approve to work.
Set cluster context:
export CLUSTER=<suffix> MANAGED_BY_TAG=${MANAGED_BY_TAG:-rossoctl-hypershift-custom}
export KUBECONFIG=~/clusters/hcp/$MANAGED_BY_TAG-$CLUSTER/auth/kubeconfig
Verify connection (small output, OK inline):
kubectl get nodes
┌─────────────────────────────────────────────────────────────────┐
│ 1. OBSERVE │
│ ├─ Check pod status │
│ ├─ Get recent events │
│ └─ Review current logs │
├─────────────────────────────────────────────────────────────────┤
│ 2. INSPECT │
│ ├─ Examine failing component │
│ ├─ Check configs and secrets │
│ └─ Verify connectivity │
├─────────────────────────────────────────────────────────────────┤
│ 3. REPRODUCE │
│ ├─ Run failing test with verbose output │
│ ├─ Watch logs in real-time │
│ └─ Capture exact failure │
├─────────────────────────────────────────────────────────────────┤
│ 4. TRACE │
│ ├─ Follow request through components │
│ ├─ Identify where failure occurs │
│ └─ Determine root cause │
├─────────────────────────────────────────────────────────────────┤
│ 5. DOCUMENT │
│ ├─ Root cause with evidence │
│ ├─ Reproduction steps │
│ └─ Fix and verification plan │
└─────────────────────────────────────────────────────────────────┘
Check all pods:
kubectl get pods -A
Find problem pods:
kubectl get pods -A --field-selector=status.phase!=Running,status.phase!=Succeeded
Check rossoctl-system namespace:
kubectl get pods -n rossoctl-system
Check team1 namespace:
kubectl get pods -n team1
Cluster-wide events:
kubectl get events -A --sort-by='.lastTimestamp' | tail -30
Namespace events:
kubectl get events -n rossoctl-system --sort-by='.lastTimestamp'
OTEL Collector logs:
kubectl logs -n rossoctl-system deployment/otel-collector --tail=100
MLflow logs:
kubectl logs -n rossoctl-system deployment/mlflow --tail=100
Agent logs:
kubectl logs -n team1 deployment/weather-service --tail=100
Filter for errors:
kubectl logs -n rossoctl-system deployment/otel-collector --tail=500 | grep -iE "error|fail|warn"
Describe failing pod:
kubectl describe pod <pod-name> -n <namespace>
Check container status:
kubectl get pod <pod-name> -n <namespace> -o jsonpath='{.status.containerStatuses[*]}'
List ConfigMaps:
kubectl get configmap -n rossoctl-system
View specific ConfigMap:
kubectl get configmap otel-collector-config -n rossoctl-system -o yaml
List Secrets (check existence, not values):
kubectl get secrets -n rossoctl-system
Check secret keys:
kubectl get secret mlflow-oauth-secret -n rossoctl-system -o jsonpath='{.data}' | jq 'keys'
Decode specific secret value:
kubectl get secret <secret-name> -n <namespace> -o jsonpath='{.data.<key>}' | base64 -d
Service endpoints:
kubectl get endpoints -n rossoctl-system
Test internal connectivity:
kubectl run -it --rm debug --image=curlimages/curl -- \
curl -v http://mlflow.rossoctl-system.svc.cluster.local:5000/health
Check routes (OpenShift):
kubectl get routes -A
Set environment variables:
export CLUSTER=<suffix> WORKTREE=<worktree> MANAGED_BY_TAG=${MANAGED_BY_TAG:-rossoctl-hypershift-custom}
Run specific test with verbose output:
KUBECONFIG=~/clusters/hcp/$MANAGED_BY_TAG-$CLUSTER/auth/kubeconfig \
.worktrees/$WORKTREE/.github/scripts/local-setup/hypershift-full-test.sh $CLUSTER \
--include-test --pytest-filter "<test_name>" --pytest-args "-v -s"
Watch component logs (in separate terminal):
kubectl logs -f -n rossoctl-system deployment/otel-collector
Or use stern for multiple pods:
stern -n rossoctl-system .
For a typical agent request:
Client → Gateway → Agent → Tool → Agent → Gateway → Client
↓
OTEL Collector → MLflow
Check each hop:
OTEL Collector:
kubectl logs -n rossoctl-system deployment/otel-collector | grep -i "span\|trace\|export"
MLflow:
kubectl logs -n rossoctl-system deployment/mlflow | grep -i "trace\|experiment\|error"
Agent:
kubectl logs -n team1 deployment/weather-service | grep -i "request\|response\|error"
Get Keycloak host:
KEYCLOAK_HOST=$(kubectl get route keycloak -n keycloak -o jsonpath='{.spec.host}')
Get OAuth client credentials:
CLIENT_ID=$(kubectl get secret mlflow-oauth-secret -n rossoctl-system -o jsonpath='{.data.OIDC_CLIENT_ID}' | base64 -d)
CLIENT_SECRET=$(kubectl get secret mlflow-oauth-secret -n rossoctl-system -o jsonpath='{.data.OIDC_CLIENT_SECRET}' | base64 -d)
Test OAuth token exchange:
curl -sk -X POST "https://$KEYCLOAK_HOST/realms/master/protocol/openid-connect/token" \
-d "grant_type=client_credentials" \
-d "client_id=$CLIENT_ID" \
-d "client_secret=$CLIENT_SECRET"
## Root Cause Analysis
**Failure**: [Test name / description]
**Cluster**: [cluster suffix]
**Date**: [timestamp]
### Symptoms
- [What failed]
- [Error messages]
### Investigation Steps
1. [Step taken] → [Finding]
2. [Step taken] → [Finding]
### Root Cause
[Clear statement with evidence]
### Evidence
[Relevant log lines or command output]
### Fix
[Proposed solution]
### Verification
[How to confirm fix works]
Before posting RCA findings to any public destination (issue comment, PR comment, etc.):
If the root cause involves a dependency bug, unexpected behavior, or version issue:
cve:scan to check if this is a known CVEcve:brainstorm BEFORE documenting findings publiclycve:brainstorm)| Task | Command |
|---|---|
| Pod status | kubectl get pods -A |
| Pod logs | kubectl logs -n <ns> deployment/<name> |
| Describe pod | kubectl describe pod <name> -n <ns> |
| Get secret | kubectl get secret <name> -n <ns> -o yaml |
| Events | kubectl get events -A --sort-by='.lastTimestamp' |
| ConfigMap | kubectl get configmap <name> -n <ns> -o yaml |
rca:ci - RCA from CI logs onlytdd:hypershift - Fix iteration after RCAk8s:pods - Pod debuggingk8s:logs - Log analysisk8s:health - Platform health checkk8s:live-debugging - Iterative debuggingauth:mlflow-oidc-auth - MLflow OIDC auth debuggingopenshift:debug - Debug OpenShift-specific operators, SCCs, buildsopenshift:routes - Debug route/ingress issuescve:scan - CVE scanning (check if root cause is a known CVE)cve:brainstorm - Disclosure planning (if CVE found during RCA)まだレビューはありません。使ってみた感想をお寄せください。
ログインなしで書き込めます。使ってみた感想、質問、動かなかった環境などを気軽にどうぞ。
まだコメントはありません。最初のコメントを書いてみませんか。
Authentication and authorization patterns for Rossoctl services
日本語の概要は準備中です。原文の説明を表示しています。
Create confidential OAuth2 clients in Keycloak for server-to-service authentication
日本語の概要は準備中です。原文の説明を表示しています。
Configure MLflow with mlflow-oidc-auth plugin for Keycloak OIDC authentication
日本語の概要は準備中です。原文の説明を表示しています。
Configure OpenTelemetry Collector with OAuth2 authentication for trace export
日本語の概要は準備中です。原文の説明を表示しています。
CI pipeline monitoring, status checks, and PR validation workflows
日本語の概要は準備中です。原文の説明を表示しています。
Monitor running CI jobs, wait for completion, create tasks for results
日本語の概要は準備中です。原文の説明を表示しています。