Skip to content

CNTRLPLANE-3743: Add Agentic SDLC context files#440

Open
sanchezl wants to merge 4 commits into
openshift:masterfrom
sanchezl:contextify
Open

CNTRLPLANE-3743: Add Agentic SDLC context files#440
sanchezl wants to merge 4 commits into
openshift:masterfrom
sanchezl:contextify

Conversation

@sanchezl

@sanchezl sanchezl commented Jun 29, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Add ARCHITECTURE.md — design decisions, controllers, capabilities integration, config observers, reconciliation flow, namespace map
  • Add CONTRIBUTING.md — dev workflow, build/test commands, PR guidelines, rebase checklist, OWNERS structure
  • Add AGENTS.md — AI agent instructions, repo layout, critical rules, key patterns
  • Add CLAUDE.md symlink → AGENTS.md
  • Update README.md — add Quick Start, cluster inspection commands, documentation links, related repos table

Test plan

  • Verify all relative links resolve (ARCHITECTURE.md, CONTRIBUTING.md, AGENTS.md)
  • Verify CLAUDE.md symlink resolves to AGENTS.md
  • Verify make targets listed in docs match actual Makefile (make build, make test, make verify, make test-e2e)
  • Review ARCHITECTURE.md design decisions for accuracy

Summary by CodeRabbit

  • Documentation
    • Added comprehensive project and architecture docs covering what the operator manages, how it behaves, and key operational rules.
    • Expanded contributor guidance with build, test, and release workflow instructions.
    • Updated the main README with a shorter overview, quick-start steps, and links to related project resources.

@openshift-ci-robot openshift-ci-robot added the jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. label Jun 29, 2026
@openshift-ci-robot

openshift-ci-robot commented Jun 29, 2026

Copy link
Copy Markdown
Contributor

@sanchezl: This pull request references CNTRLPLANE-3743 which is a valid jira issue.

Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the story to target the "5.0.0" version, but no target version was set.

Details

In response to this:

Summary

  • Add ARCHITECTURE.md — design decisions, controllers, capabilities integration, config observers, reconciliation flow, namespace map
  • Add CONTRIBUTING.md — dev workflow, build/test commands, PR guidelines, rebase checklist, OWNERS structure
  • Add AGENTS.md — AI agent instructions, repo layout, critical rules, key patterns
  • Add CLAUDE.md symlink → AGENTS.md
  • Update README.md — add Quick Start, cluster inspection commands, documentation links, related repos table

Test plan

  • Verify all relative links resolve (ARCHITECTURE.md, CONTRIBUTING.md, AGENTS.md)
  • Verify CLAUDE.md symlink resolves to AGENTS.md
  • Verify make targets listed in docs match actual Makefile (make build, make test, make verify, make test-e2e)
  • Review ARCHITECTURE.md design decisions for accuracy

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository.

@coderabbitai

coderabbitai Bot commented Jun 29, 2026

Copy link
Copy Markdown

Walkthrough

Adds AGENTS.md (contributor/AI-agent guidance), ARCHITECTURE.md (full architecture overview), CONTRIBUTING.md (contributor workflow and conventions), symlinks CLAUDE.md to AGENTS.md, and rewrites README.md with a new operator overview, Quick Start section, simplified OTE commands, and a Related Repositories table.

Changes

Documentation overhaul

Layer / File(s) Summary
Core documentation
AGENTS.md, ARCHITECTURE.md, CONTRIBUTING.md, CLAUDE.md
Adds AGENTS.md with operator layout, build/test commands, critical behavioral rules, and key patterns; ARCHITECTURE.md with reconciliation flow, capability integration, config observers, CRD ownership, and design decisions; CONTRIBUTING.md with PR workflow, code conventions, and rebase checklist; CLAUDE.md redirects to AGENTS.md.
README rewrite
README.md
Replaces prior content with new operator overview, Quick Start subsections (prerequisites, build, unit/e2e tests, local run, cluster inspection), a Documentation list, simplified OTE section, and a Related Repositories table.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~5 minutes

🚥 Pre-merge checks | ✅ 15
✅ Passed checks (15 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the main change: adding Agentic SDLC context and guidance files to the repository.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Stable And Deterministic Test Names ✅ Passed PASS: The PR only changes docs and a symlink; no Go/Ginkgo test definitions were touched, so no test titles were introduced or modified.
Test Structure And Quality ✅ Passed Diff touches only README.md; no Ginkgo/_test.go files changed, so the Ginkgo test-structure check is not applicable.
Microshift Test Compatibility ✅ Passed PASS: The PR only adds/updates docs and a symlink; no new Ginkgo e2e tests or runtime test code were introduced, so MicroShift compatibility isn’t implicated.
Single Node Openshift (Sno) Test Compatibility ✅ Passed The added Ginkgo e2e tests only create pods and verify NetworkPolicy/connectivity; no node-count, scheduling, or HA assumptions were found.
Topology-Aware Scheduling Compatibility ✅ Passed Diff vs base touches only docs (AGENTS/ARCHITECTURE/CLAUDE/CONTRIBUTING/README); no manifests, controllers, or scheduling code changed.
Ote Binary Stdout Contract ✅ Passed PR only changes docs; OTE entrypoints/suite setup show no new process-level stdout writes, and Ginkgo output is routed to stderr.
Ipv6 And Disconnected Network Test Compatibility ✅ Passed PASS: The PR only changes docs/links; no new Ginkgo e2e test code was added, and the changed files contain no IPv4/public-internet test assumptions.
No-Weak-Crypto ✅ Passed The PR only adds/updates markdown docs and a symlink; scanned content shows no MD5/SHA1/DES/RC4/3DES/Blowfish/ECB, custom crypto, or secret comparisons.
Container-Privileges ✅ Passed Docs-only PR: changed files are markdown/symlink, and none contain privileged/hostPID/hostNetwork/SYS_ADMIN/allowPrivilegeEscalation settings.
No-Sensitive-Data-In-Logs ✅ Passed Targeted scans of the changed docs found no emails, keys, SSNs, or real secrets; only generic terms like “token bucket” and “image pull secret” appeared.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Comment @coderabbitai help to get the list of available commands.

@openshift-ci

openshift-ci Bot commented Jun 29, 2026

Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by:
Once this PR has been reviewed and has the lgtm label, please assign p0lyn0mial for approval. For more information see the Code Review Process.

The full list of commands accepted by this bot can be found here.

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@ARCHITECTURE.md`:
- Around line 26-36: The architecture diagram block is an unlabeled fenced code
block, which triggers markdownlint. Update the fence around the RunOperator()
tree to use an explicit language tag such as text so the diagram remains
rendered correctly. Make this change in the markdown section containing the
controller list and keep the existing content unchanged.

In `@README.md`:
- Around line 54-60: The README’s OTE example uses a suite name that does not
exist, so update the example to match an actual suite registered in
cluster-openshift-controller-manager-operator-tests-ext main.go. Check the suite
definitions used by list-suites/run-suite in
cmd/cluster-openshift-controller-manager-operator-tests-ext/main.go and replace
openshift/openshift-controller-manager-operator/all with the correct existing
suite identifier.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository: openshift/coderabbit/.coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: db2a4ecd-6de5-4cd7-a9e7-306b4fc7c220

📥 Commits

Reviewing files that changed from the base of the PR and between 34f95b0 and 4083145.

📒 Files selected for processing (5)
  • AGENTS.md
  • ARCHITECTURE.md
  • CLAUDE.md
  • CONTRIBUTING.md
  • README.md

Comment thread ARCHITECTURE.md
Comment on lines +26 to +36
```
RunOperator()
├── OpenShiftControllerManagerOperator — main sync loop for both operand Deployments
├── StaticResourceController — reconciles RBAC, Namespaces, Services, NetworkPolicies from bindata/
├── ConfigObserver — watches cluster config and transforms it into operand configuration
├── UserCAObservationController — watches proxy config and syncs trusted CA bundles
├── ResourceSyncController — copies Secrets/ConfigMaps between namespaces
├── ClusterOperatorStatusController — aggregates conditions into the ClusterOperator object
├── LogLevelController — reconciles operator log verbosity from CR spec
└── ImagePullSecretCleanupController — cleans up internal-registry pull secrets when registry is disabled
```

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Label the diagram fence.

This block will trip markdownlint as written. Use an explicit language tag such as text.

Suggested fix
-```
+```text
 RunOperator()
   ├── OpenShiftControllerManagerOperator  — main sync loop for both operand Deployments
   ├── StaticResourceController            — reconciles RBAC, Namespaces, Services, NetworkPolicies from bindata/
   ...
-```
+```
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
```
RunOperator()
├── OpenShiftControllerManagerOperator — main sync loop for both operand Deployments
├── StaticResourceController — reconciles RBAC, Namespaces, Services, NetworkPolicies from bindata/
├── ConfigObserver — watches cluster config and transforms it into operand configuration
├── UserCAObservationController — watches proxy config and syncs trusted CA bundles
├── ResourceSyncController — copies Secrets/ConfigMaps between namespaces
├── ClusterOperatorStatusController — aggregates conditions into the ClusterOperator object
├── LogLevelController — reconciles operator log verbosity from CR spec
└── ImagePullSecretCleanupController — cleans up internal-registry pull secrets when registry is disabled
```
🧰 Tools
🪛 markdownlint-cli2 (0.22.1)

[warning] 26-26: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@ARCHITECTURE.md` around lines 26 - 36, The architecture diagram block is an
unlabeled fenced code block, which triggers markdownlint. Update the fence
around the RunOperator() tree to use an explicit language tag such as text so
the diagram remains rendered correctly. Make this change in the markdown section
containing the controller list and keep the existing content unchanged.

Source: Linters/SAST tools

Comment thread README.md
Comment on lines 54 to 60
```bash
# List all test suites
# List available test suites
./cluster-openshift-controller-manager-operator-tests-ext list-suites

# List tests in a specific suite
./cluster-openshift-controller-manager-operator-tests-ext list-tests openshift/openshift-controller-manager-operator/all
# Run a test suite
./cluster-openshift-controller-manager-operator-tests-ext run-suite openshift/openshift-controller-manager-operator/all
```

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Fix the OTE example suite name.

The example points at a suite that does not exist in cmd/cluster-openshift-controller-manager-operator-tests-ext/main.go. Copy-pasting it will fail.

Suggested fix
-./cluster-openshift-controller-manager-operator-tests-ext run-suite openshift/openshift-controller-manager-operator/all
+./cluster-openshift-controller-manager-operator-tests-ext run-suite openshift/cluster-openshift-controller-manager-operator/operator
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
```bash
# List all test suites
# List available test suites
./cluster-openshift-controller-manager-operator-tests-ext list-suites
# List tests in a specific suite
./cluster-openshift-controller-manager-operator-tests-ext list-tests openshift/openshift-controller-manager-operator/all
# Run a test suite
./cluster-openshift-controller-manager-operator-tests-ext run-suite openshift/openshift-controller-manager-operator/all
```
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@README.md` around lines 54 - 60, The README’s OTE example uses a suite name
that does not exist, so update the example to match an actual suite registered
in cluster-openshift-controller-manager-operator-tests-ext main.go. Check the
suite definitions used by list-suites/run-suite in
cmd/cluster-openshift-controller-manager-operator-tests-ext/main.go and replace
openshift/openshift-controller-manager-operator/all with the correct existing
suite identifier.

@openshift-ci

openshift-ci Bot commented Jun 29, 2026

Copy link
Copy Markdown
Contributor

@sanchezl: all tests passed!

Full PR test history. Your PR dashboard.

Details

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

jira/valid-reference Indicates that this PR references a valid Jira ticket of any type.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants