auth
무료Authentication and authorization patterns for Rossoctl services
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Iterative debugging workflow for fixing issues on a running cluster
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
실행 점수 미검증
설치 방법 보기설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.
Iterative debugging workflow for fixing issues on a running HyperShift cluster.
All kubectl/oc commands MUST redirect output to files. Live debugging generates the most context pollution because of iterative check-fix-recheck loops.
export LOG_DIR=/tmp/rossoctl/k8s/${CLUSTER:-local}
mkdir -p $LOG_DIR
# Every kubectl command → redirect to file
kubectl <command> > $LOG_DIR/<name>.log 2>&1 && echo "OK" || echo "FAIL"
# Analyze in subagent: Task(subagent_type='Explore') to read log files
# Use subagents for BOTH failure analysis AND verifying expected behavior
When tests fail on a deployed cluster, use this workflow to:
# Set the kubeconfig for your cluster
export KUBECONFIG=~/clusters/hcp/rossoctl-hypershift-custom-<suffix>/auth/kubeconfig
# Verify connection
kubectl get nodes
# View test results XML
cat test-results/e2e-results.xml
# Or re-run failing test with verbose output
pytest rossoctl/tests/e2e/common/test_mlflow_traces.py -v -s
# Get all pods in relevant namespace
kubectl get pods -n rossoctl-system
# Check specific component
kubectl get pods -n rossoctl-system -l app=otel-collector
# Describe problematic pod
kubectl describe pod -n rossoctl-system <pod-name>
# Get recent logs
kubectl logs -n rossoctl-system deployment/otel-collector --tail=100
# Stream logs in real-time
kubectl logs -n rossoctl-system deployment/otel-collector -f
# Filter for errors
kubectl logs -n rossoctl-system deployment/otel-collector --tail=200 | grep -iE "(error|fail|403|401)"
# View ConfigMap contents
kubectl get configmap otel-collector-config -n rossoctl-system -o yaml
# Check Secret contents (decoded)
kubectl get secret mlflow-oauth-secret -n rossoctl-system -o jsonpath='{.data.OIDC_CLIENT_ID}' | base64 -d
# View rendered Helm values
helm get values rossoctl-deps -n rossoctl-system > /tmp/rossoctl-deps-values.yaml
cat /tmp/rossoctl-deps-values.yaml
# View AuthorizationPolicy
kubectl get authorizationpolicy -n rossoctl-system -o yaml
# Check waypoint proxy
kubectl get gateway -n rossoctl-system
# Check service labels
kubectl get svc mlflow -n rossoctl-system -o yaml | grep -A5 labels
# Edit the chart template
vim charts/rossoctl-deps/templates/otel-collector.yaml
# Apply the change
helm upgrade rossoctl-deps charts/rossoctl-deps -n rossoctl-system \
-f /tmp/rossoctl-deps-values.yaml
# Rollout restart to pick up ConfigMap changes
kubectl rollout restart deployment/otel-collector -n rossoctl-system
# Wait for rollout to complete
kubectl rollout status deployment/otel-collector -n rossoctl-system --timeout=60s
# Get route to weather service
ROUTE_HOST=$(kubectl get route weather-service -n team1 -o jsonpath='{.spec.host}')
# Send test request
curl -sk -X POST "https://$ROUTE_HOST/" \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"message/send","params":{"message":{"messageId":"test-123","parts":[{"kind":"text","text":"What is the weather?"}],"role":"user"}}}'
# Check logs after test request
kubectl logs -n rossoctl-system deployment/otel-collector --tail=50
# Run the specific failing test
pytest rossoctl/tests/e2e/common/test_mlflow_traces.py::test_mlflow_has_traces -v
# Check if OAuth extension started
kubectl logs -n rossoctl-system deployment/otel-collector | grep oauth2client
# Test token acquisition
KEYCLOAK_HOST=$(kubectl get route keycloak -n keycloak -o jsonpath='{.spec.host}')
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)
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"
# Check Istiod logs for authorization warnings
kubectl logs -n istio-system deployment/istiod --tail=100 | grep -i authorization
# Check if pods are in ambient mode
kubectl get pod -n rossoctl-system -l app=otel-collector -o jsonpath='{.items[0].metadata.annotations}'
# Verify trust domain
kubectl get configmap istio -n istio-system -o jsonpath='{.data.mesh}' | grep trustDomain
# Add debug exporter to pipeline (in otel-collector.yaml)
# exporters: [ debug, otlphttp/mlflow ]
# Check debug output for traces
kubectl logs -n rossoctl-system deployment/otel-collector | grep "Span #"
# Check for export errors
kubectl logs -n rossoctl-system deployment/otel-collector | grep -i "drop\|error\|fail"
# Weather service check
kubectl get pod -n team1 -l app=weather-service -o jsonpath='{.items[0].spec.containers[0].env}' | jq
# OTEL collector environment
kubectl get pod -n rossoctl-system -l app=otel-collector -o jsonpath='{.items[0].spec.containers[0].env}' | jq
# Get all routes
kubectl get routes -A
# Check all deployments ready
kubectl get deployments -n rossoctl-system
# Watch pod status
watch kubectl get pods -n rossoctl-system
# Quick port-forward for testing
kubectl port-forward -n rossoctl-system svc/mlflow 5000:5000
Once the fix is verified:
pytest rossoctl/tests/e2e/ -vgit add -A && git commit -m "fix: <description>"tdd:hypershifttesting:kubectl-debugging아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.
로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.
아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.
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
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.