cluster-update-advisor

작성자: openshift

OpenShift 클러스터 업데이트(업그레이드) 준비 상태와 위험을 평가합니다. 클러스터 업데이트가 안전한지 평가할 때, 업데이트가 가능할 때, 또는…

npx skills add https://github.com/openshift/agentic-skills --skill cluster-update-advisor

Cluster Update Advisor

Purpose

Assess cluster update readiness and produce a structured risk report with actionable prerequisites, blockers, and recommendations.

The proposal request includes pre-collected cluster readiness data (JSON) gathered by the Cluster Version Operator. Analyze this data, classify findings, and produce a decision with evidence. Do not re-collect cluster data — it is already in the request.

Inputs

The proposal request contains:

  • Current and target version metadata
  • Channel and update path information
  • Cluster readiness JSON — cluster health checks with context relevant to preparing for the update

The readiness JSON is embedded in the request between ```json markers under the "Cluster Readiness Data" heading. Parse it to begin analysis.

Readiness JSON structure:

{
  "current_version": "4.21.5",
  "target_version": "4.21.8",
  "checks": {
    "cluster_conditions":    { "_status": "ok", "summary": {...}, ... },
    "operator_health":       { "_status": "ok", "summary": {...}, ... },
    "api_deprecations":      { "_status": "ok", "summary": {...}, ... },
    "node_capacity":         { "_status": "ok", "summary": {...}, ... },
    "pdb_drain":             { "_status": "ok", "summary": {...}, ... },
    "etcd_health":           { "_status": "ok", "summary": {...}, ... },
    "network":               { "_status": "ok", "summary": {...}, ... },
    "crd_compat":            { "_status": "ok", "summary": {...}, ... },
    "olm_operator_lifecycle": { "_status": "ok", "summary": {...}, ... }
  }
}

Each check contains _status (ok or error) and check-specific data with a summary section for quick parsing.

Evaluation

Parse readiness data

Extract the JSON from the proposal request. Count checks with _status ok vs error for completeness.

Verify data completeness

Any check with _status error represents a gap in visibility. Note incomplete areas — they reduce confidence.

Evaluate findings in detail

If the system prompt includes organization-specific policy (thresholds, scheduling preferences, risk tolerance), apply those constraints. Otherwise use sensible defaults. Walk through each check's summary and detail data:

  • Compare numeric thresholds (node headroom, etcd backup age)
  • Evaluate conditional update risks against cluster state
  • Identify compounding risks (e.g., paused MCP + cert expiry)
  • Estimate update duration (~10 min/node)

Classify findings

Assign each finding a severity per the classification table.

CheckBlocker if...Warning if...
Cluster conditionsUpgradeable=False (non-z-stream)Update already in progress
API deprecationsWorkloads use APIs removed in targetWorkloads use deprecated APIs
Operator healthAny operator has Upgradeable=FalseAny operator is Degraded=True
MachineConfigPoolAny MCP paused or degradedMCP updating or not all machines ready
Node capacityHeadroom < 20%Headroom < 40%
PDB configPDB blocks ALL replicas from drainingPDB has maxUnavailable: 0
etcd healthAny member unhealthyNo recent backup (within 24h)
Network pluginSDN in use and target requires OVN (4.17+)Using deprecated SDN (< 4.17)
CRD compatibilityStored version not served; operator maxOpenShiftVersion < targetDeprecated versions still served
OLM operator lifecycleInstalled operator incompatible with target OCP; operator product EOLOperator has pending update; operator product in Maintenance Support

For other checks, treat an issue as a blocker if would cause data loss, a performance regression, or a failed update. Treat the issue as a warning if would cause temporary disruption or slow updates.

Investigate with other skills

If additional information or context is needed to classify a finding, these skills may be useful:

  • openshift-docs — Read official OpenShift update docs for version-specific procedures and breaking changes.

  • prometheus — Query cluster metrics for trend analysis (etcd latency, CPU headroom, firing alerts).

  • jira — Search Red Hat Jira for bugs and known issues affecting the target version.

  • product-lifecycle — Query Red Hat Product Life Cycle API to check support status and OCP compatibility for installed operators. Use the operator's package name from OLM readiness data to look up entries via the package field (exact match). Flag operators whose product version is End of life or whose openshift_compatibility does not include the target OCP version.

Classify overall recommendation

Aggregate finding classification, and and make a decision on the overall assessment:

  • escalate — insufficient data for confident assessment.
  • block — findings must be resolved before update.
  • warn — findings exist but manageable with prerequisites.
  • recommend — all checks pass within acceptable thresholds.
BlockersWarningsDecision
Unable to assessanyescalate
1+anyblock
01+warn
00recommend

Produce a structured risk report

The output schema is enforced by the OlsAgent CR's outputSchema field — the operator handles structured output compliance via the LLM API.

Failure Modes — What NOT to Do

  1. Never recommend updating without analyzing the readiness data. The JSON in the request is the source of truth.

  2. Never dismiss conditional update risks. If the update path is conditional, evaluate each risk against the cluster.

  3. Never skip the API deprecation check. Workloads using removed APIs will break after the update.

  4. Never assume etcd is healthy. Always check member health in the readiness data.

  5. Never fabricate Jira issue keys, KB article IDs, or CVE numbers. Use the redhat-support skill to get real data.

  6. Never recommend skipping an update version unless the readiness data shows that path exists.

  7. Never recommend force-updating. If the standard path is blocked, report it.

openshift의 다른 스킬

openshift-expert
openshift
OpenShift 플랫폼 및 Kubernetes 전문가로, 클러스터 아키텍처, 오퍼레이터, 네트워킹, 스토리지, 문제 해결 및 CI/CD 파이프라인에 대한 깊은 지식을 보유하고 있습니다. 사용…
official
find-token
openshift
숨겨진 인증 토큰을 찾습니다. find-token 스크립트를 실행하여 고유 토큰을 검색하세요.
official
code-review
openshift
풀 리퀘스트의 코드 품질, 정확성, 프로젝트 규칙을 검토합니다. 사용자가 PR 검토, 코드 리뷰, 또는 변경 사항 확인을 요청할 때 사용하세요.
official
css-review
openshift
CSS 코딩 스타일, PatternFly 토큰 사용, 모범 사례를 검토합니다. 사용자가 CSS 검토, 스타일 확인, 또는 CSS 파일 감사를 요청할 때 사용하세요.
official
review-readmes
openshift
리포지토리의 모든 README.md 파일을 검토하여 오타, 오류, 오래된 정보를 찾습니다. 사용자가 README 검토, 문서 정확성 확인 등을 요청할 때 사용합니다.
official
review-skills
openshift
프로젝트 AI 스킬의 중복, 오래된 참조, 오류 및 구조적 문제를 검토합니다. 사용자가 스킬 검토, 스킬 감사, 확인 등을 요청할 때 사용하세요.
official
test
openshift
태그로 필터링된 종단 간 테스트를 실행합니다. 사용자가 테스트 실행, Playwright 실행, 또는 @core나 @attach 같은 특정 기능 태그를 테스트하도록 요청할 때 사용하세요.
official
unused-exports
openshift
다른 파일에서 가져오지 않은 내보낸 심볼을 찾습니다. 사용자가 "내보내기 확인", "사용되지 않는 내보내기"라고 말하거나 내보내기를 정리하도록 요청할 때 사용하세요.
official