mcpbeat

Iri Controller

openshift/iri-controller

The InternalReleaseImage controller manages the IRI resource lifecycle, generates MachineConfigs for the IRI registry, updates status by aggregating from MachineConfigNodes, and handles deletion. Use when reviewing controller implementation or validating behaviors.

719 tokens
context cost
the whole folder, loaded on every use
1
files
instructions only
0
copies elsewhere
how many repositories repackaged it
267
stars on the repo
on the repository, not the skill itself

Install

one command, takes just this skill from the repository
npx skills add https://github.com/openshift/machine-config-operator --skill iri-controller

The instruction itself

7 sections, as written by the author

Verify InternalReleaseImage Controller Implementation

Verify that the InternalReleaseImage (IRI) controller implementation correctly handles all acceptance criteria defined in test scenarios.

IRI Aggregation Behavior

Verify that the IRI aggregation implementation correctly handles all acceptance criteria defined in the CSV test scenarios.

Scenarios to Verify

See testdata/acceptance/README.md for complete scenario descriptions.

The skill verifies the implementation matches these acceptance criteria by checking code paths, status constants, condition handling, and message formatting.

Verification Steps

For each scenario:

  • Read the CSV file to understand the expected behavior
  • Search aggregation.go for the relevant code paths:
  • aggregateMCNIRIStatus() - main aggregation function
  • checkAPIIntRegistryAvailability() - api-int health check
  • processMCNReleases() - MCN status processing
  • buildAggregatedReleases() - final status construction
  • Verify status constants match CSV expectations:
  • IRIStatusAllReleasesAvailable
  • IRIStatusAPIIntNotAvailable
  • IRIStatusSomeNodesNotAvailable
  • IRIStatusSomeRegistriesUnavailable
  • Check condition handling in updateDegradedCondition()
  • Verify message formatting includes node lists in brackets with commas

Code Locations to Check

Primary implementation:

  • pkg/controller/internalreleaseimage/aggregation.go
  • pkg/controller/internalreleaseimage/internalreleaseimage_controller.go

Event handlers that trigger aggregation:

  • updateMachineConfigNode() - watches for MCN status changes
  • updateNode() - watches for node Ready condition changes

Report Format

For each scenario, report:

  • PASS: Code correctly implements the scenario
  • ⚠️ PARTIAL: Code partially implements but missing details
  • FAIL: Code does not match expected behavior
  • 📝 Notes: Any observations or edge cases

Include:

  • Which code section handles the scenario
  • How the expected status/reason/message is generated
  • Any gaps or improvements needed

Example Verification

For "happy-path.csv":

  • Read the CSV expectations
  • Verify IRIStatusAllReleasesAvailable is returned when:
  • All MCNs have InternalReleaseImageDegraded=False
  • api-int registry ping succeeds
  • All nodes are ready
  • Confirm message: "All the release images are available"
  • Check that releases use api-int URL format

How to use it

Copy the folder

Take openshift/iri-controller from the repository into ~/.claude/skills for personal use, or into .claude/skills inside a project.

Check the name does not clash

The agent identifies a skill by the name field in its header. Two skills with the same name cannot sit side by side — one of them will be ignored.