Skip to content

LOG-9342: add context files for agentic SDLC#3271

Open
vparfonov wants to merge 2 commits into
openshift:masterfrom
vparfonov:log9342
Open

LOG-9342: add context files for agentic SDLC#3271
vparfonov wants to merge 2 commits into
openshift:masterfrom
vparfonov:log9342

Conversation

@vparfonov
Copy link
Copy Markdown
Contributor

@vparfonov vparfonov commented May 6, 2026

Description

Add README.md, CONTRIBUTING.md, and ARCHITECTURE.md at the root of the repository to provide comprehensive documentation for developers and AI agents. These files cover:

  • README.md: Project overview, building and running locally, directory structure, and pointers to detailed documentation
  • CONTRIBUTING.md: PR submission process, development workflows, testing requirements, coding conventions, and guidelines for adding new features
  • ARCHITECTURE.md: Internal architecture, design decisions, component descriptions, key tradeoffs, and dependency documentation

/cc @Clee2691 @alanconway
/assign @jcantrill

Links

Summary by CodeRabbit

  • Documentation
    • Added a comprehensive architecture document describing design principles, components, data flows, configuration generation, testing, monitoring, and security considerations
    • Published a detailed contributor guide covering onboarding, development workflow, testing, code quality, and PR submission processes
    • Expanded the project README with overview, local setup, quick-start, directory layout, and resources
    • Minor formatting fix to the agents data-flow diagram for clearer presentation

@openshift-ci-robot openshift-ci-robot added the jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. label May 6, 2026
@qodo-code-review
Copy link
Copy Markdown

ⓘ You've reached your Qodo monthly free-tier limit. Reviews pause until next month — upgrade your plan to continue now, or link your paid account if you already have one.

@openshift-ci-robot
Copy link
Copy Markdown

openshift-ci-robot commented May 6, 2026

@vparfonov: This pull request references LOG-9342 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 task to target the "4.8.0" version, but no target version was set.

Details

In response to this:

Description

Add README.md, CONTRIBUTING.md, and ARCHITECTURE.md at the root of the repository to provide comprehensive documentation for developers and AI agents. These files cover:

  • README.md: Project overview, building and running locally, directory structure, and pointers to detailed documentation
  • CONTRIBUTING.md: PR submission process, development workflows, testing requirements, coding conventions, and guidelines for adding new features
  • ARCHITECTURE.md: Internal architecture, design decisions, component descriptions, key tradeoffs, and dependency documentation

/cc
/assign

Links

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
Copy link
Copy Markdown

coderabbitai Bot commented May 6, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

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

Review profile: CHILL

Plan: Enterprise

Run ID: b125af68-4139-4f3b-8ed4-9145c9be1bc6

📥 Commits

Reviewing files that changed from the base of the PR and between 641b28e and 92f18b2.

📒 Files selected for processing (2)
  • AGENTS.md
  • ARCHITECTURE.md
✅ Files skipped from review due to trivial changes (2)
  • AGENTS.md
  • ARCHITECTURE.md

Walkthrough

Added three documentation files: ARCHITECTURE.md (CLO architecture, components, data flow, design decisions, testing, and security), CONTRIBUTING.md (comprehensive contributor guide with workflow, testing, and CI/CD expectations), and an expanded README.md (overview, quick start, directory map, and resources). No code or API changes.

Changes

Project Documentation

Layer / File(s) Summary
Top-level index / Quick start
README.md
Replaced/expanded README with project purpose, repository responsibilities, prerequisites, quick start commands, directory structure, architecture summary, contribution pointer, license, and help resources.
Architecture / Design
ARCHITECTURE.md
New architecture document describing core design principles, ASCII architecture diagram, core components (controllers, API types), configuration generation for Vector, data flow patterns, minimal required attributes, key directories, design decisions and tradeoffs, guidance for adding outputs/inputs/filters, testing strategy, dependency/version notes, monitoring/observability, Dockerfile build artifacts, and security considerations.
Contributor workflow & governance
CONTRIBUTING.md
Replaced CONTRIBUTING.md with a detailed contributor guide covering getting started, development workflow, local testing, PR submission standards, commit messages, CI/CD expectations, testing requirements, coding conventions, API/config guidance, and support channels.
Minor presentation tweak
AGENTS.md
Adjusted code block fencing in the “Data Flow Architecture” section to wrap the diagram in a text fenced code block.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

🚥 Pre-merge checks | ✅ 11 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Test Structure And Quality ⚠️ Warning Test code lacks meaningful assertion failure messages. Many Expect() calls missing diagnostic text (e.g., Expect(x).To(Equal(y),"message")). Violates check requirement #4 on assertion messages. Add diagnostic messages to all assertions. Example: Expect(len(conditions)).To(Equal(2),"pruned conditions"); Expect(original.Hash64a()).ToNot(Equal(modified.Hash64a()),"different content").
✅ Passed checks (11 passed)
Check name Status Explanation
Title check ✅ Passed The title 'LOG-9342: add context files for agentic SDLC' directly reflects the main change—adding three documentation files (README.md, CONTRIBUTING.md, ARCHITECTURE.md) for developer and AI agent guidance.
Description check ✅ Passed The PR description covers all mandatory template sections: a detailed description of the three files added and their purposes, reviewer assignments (/cc), approver assignment (/assign), and the related JIRA link (LOG-9342). No critical sections are missing.
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 This PR is documentation-only (README.md, CONTRIBUTING.md, ARCHITECTURE.md, AGENTS.md). No test files with Ginkgo test declarations were modified. The check is not applicable to this PR.
Microshift Test Compatibility ✅ Passed No Ginkgo e2e tests were added. PR contains only documentation files and a Markdown formatting fix. The check is not applicable.
Single Node Openshift (Sno) Test Compatibility ✅ Passed PR contains only documentation changes (ARCHITECTURE.md, CONTRIBUTING.md, README.md, AGENTS.md). No new Ginkgo tests or Go code files added. SNO test compatibility check not applicable.
Topology-Aware Scheduling Compatibility ✅ Passed Documentation-only changes (ARCHITECTURE.md, CONTRIBUTING.md, README.md). Check applies to manifest/operator/controller changes—none were made.
Ote Binary Stdout Contract ✅ Passed Main operator code uses proper logging without stdout writes. fmt.Print calls are only in separate CLI tools, not the main binary.
Ipv6 And Disconnected Network Test Compatibility ✅ Passed PR adds only documentation files (ARCHITECTURE.md, CONTRIBUTING.md, README.md, AGENTS.md). No new Ginkgo e2e tests are introduced. Check not applicable to documentation-only changes.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Tip

💬 Introducing Slack Agent: The best way for teams to turn conversations into code.

Slack Agent is built on CodeRabbit's deep understanding of your code, so your team can collaborate across the entire SDLC without losing context.

  • Generate code and open pull requests
  • Plan features and break down work
  • Investigate incidents and troubleshoot customer tickets together
  • Automate recurring tasks and respond to alerts with triggers
  • Summarize progress and report instantly

Built for teams:

  • Shared memory across your entire org—no repeating context
  • Per-thread sandboxes to safely plan and execute work
  • Governance built-in—scoped access, auditability, and budget controls

One agent for your entire SDLC. Right inside Slack.

👉 Get started


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

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

@openshift-ci openshift-ci Bot requested review from Clee2691 and alanconway May 6, 2026 08:18
@openshift-ci
Copy link
Copy Markdown
Contributor

openshift-ci Bot commented May 6, 2026

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: vparfonov
Once this PR has been reviewed and has the lgtm label, please assign alanconway 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

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 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 18-53: Three fenced code blocks in ARCHITECTURE.md are missing
language specifiers (MD040); update the three blocks that contain the ASCII
diagram (starts with the box "User (via kubectl)"), the "ClusterLogForwarder
Spec" snippet, and the pipeline line "Sources → internal preprocessing → global
transforms → output-specific transforms → sinks" by adding an explicit language
token (e.g., replace ``` with ```text) on each opening fence so markdownlint no
longer flags MD040.
🪄 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: d00c23f9-21ab-406a-ab5b-f77a7290bed0

📥 Commits

Reviewing files that changed from the base of the PR and between a77f14f and e3eaaa5.

📒 Files selected for processing (3)
  • ARCHITECTURE.md
  • CONTRIBUTING.md
  • README.md

Comment thread ARCHITECTURE.md Outdated
@vparfonov
Copy link
Copy Markdown
Contributor Author

/hold

@openshift-ci openshift-ci Bot added the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label May 6, 2026
Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

♻️ Duplicate comments (1)
ARCHITECTURE.md (1)

130-132: ⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Add language specifier to the fenced code block.

The fenced code block showing the data flow pattern is missing a language specifier, which triggers markdownlint warning MD040. Add text as the language specifier.

📝 Proposed fix
-```
+```text
 Sources → internal preprocessing → global transforms → output-specific transforms → sinks
</details>

<details>
<summary>🤖 Prompt for AI Agents</summary>

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 130 - 132, The fenced code block containing
"Sources → internal preprocessing → global transforms → output-specific
transforms → sinks" lacks a language specifier; update that fenced block to
include the language tag "text" (i.e., replace the opening withtext) so
markdownlint MD040 is satisfied.


</details>

</blockquote></details>

</blockquote></details>

<details>
<summary>🤖 Prompt for all review comments with AI agents</summary>

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

Duplicate comments:
In @ARCHITECTURE.md:

  • Around line 130-132: The fenced code block containing "Sources → internal
    preprocessing → global transforms → output-specific transforms → sinks" lacks a
    language specifier; update that fenced block to include the language tag "text"
    (i.e., replace the opening withtext) so markdownlint MD040 is satisfied.

</details>

---

<details>
<summary>ℹ️ Review info</summary>

<details>
<summary>⚙️ Run configuration</summary>

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

**Review profile**: CHILL

**Plan**: Enterprise

**Run ID**: `f6a61a75-9794-4e3d-98c6-e64838bab8c0`

</details>

<details>
<summary>📥 Commits</summary>

Reviewing files that changed from the base of the PR and between e3eaaa5f874689d9f11e9dba71e536b1ffe67c56 and 273b553f2ebb31d1a808650bdbc4a07778284ebe.

</details>

<details>
<summary>📒 Files selected for processing (3)</summary>

* `ARCHITECTURE.md`
* `CONTRIBUTING.md`
* `README.md`

</details>

</details>

<!-- This is an auto-generated comment by CodeRabbit for review status -->

Add README.md, CONTRIBUTING.md, and ARCHITECTURE.md at the root of the
repository to provide comprehensive documentation for developers and AI
agents. These files cover:

- README.md: Project overview, building and running locally, directory
  structure, and pointers to detailed documentation
- CONTRIBUTING.md: PR submission process, development workflows, testing
  requirements, coding conventions, and guidelines for adding new features
- ARCHITECTURE.md: Internal architecture, design decisions, component
  descriptions, key tradeoffs, and dependency documentation

All files include accurate references to actual codebase structure,
Makefile targets, and external dependencies. AGENTS.md already exists
and was verified as complete.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
@vparfonov vparfonov changed the title LOG-9342: Add context files for repository documentation LOG-9342: add context files for agentic SDLC May 6, 2026
@openshift-ci
Copy link
Copy Markdown
Contributor

openshift-ci Bot commented May 11, 2026

@vparfonov: 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.

Comment thread ARCHITECTURE.md

The configuration generator translates ClusterLogForwarder specs into Vector configurations.

**Key Design**: Template-based generation for consistency and maintainability
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I saw this elsewhere in this doc but I'm wondering why "template" was chosen given we refactored it in this release to use structs. This should be corrected to reflect HEAD

Comment thread ARCHITECTURE.md

**Tradeoff**: Operator must stay updated with Vector releases and API changes

### 2. Template-Based Configuration Generation
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I assume this will change with other mods

Comment thread ARCHITECTURE.md
1. **Declarative Configuration**: Users specify desired state via CRDs; the operator ensures the cluster matches that state
2. **Separation of Concerns**: Collector logic is separated from forwarding logic through Vector's transform and sink model
3. **Multi-tenancy**: Infrastructure, application, and audit logs are isolated to support per-tenant controls
4. **Template-Based Generation**: Complex configurations are generated from templates to ensure consistency and maintainability
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

This is inaccurate. We no longer use templates in this code base

Comment thread ARCHITECTURE.md

```text
┌─────────────────────────────────────────────────────────────────────┐
│ User (via kubectl) │
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Should we say 'oc' since we otherwise use it in all our documentation?

Comment thread ARCHITECTURE.md

**Output Structure** (`internal/generator/vector/output/`)

Each output type is a separate package implementing the Element interface:
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

We can remove reference to Element here

Comment thread CONTRIBUTING.md
## Questions?

- Check [docs/](docs/) for detailed information
- Open a [discussion](https://github.com/openshift/cluster-logging-operator/discussions)
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Remove or reference issues as I'm not certain this is enabled or we have ever used it

Comment thread CONTRIBUTING.md

## License

By contributing, you agree that your contributions will be licensed under the Apache License 2.0.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I would reference the LICENSE file

Comment thread README.md

### Prerequisites

- Go 1.24 or later
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Remove version

Comment thread README.md
- [Feature Documentation](docs/features/)
- [API Reference](docs/reference/)

For official OpenShift Logging documentation, see the [OpenShift Container Platform documentation](https://docs.openshift.com/container-platform/latest/logging/cluster-logging-deploying.html).
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Verify this link is accurate

Comment thread README.md
## Getting Help

- Open an issue in this repository for bugs, feature requests, or documentation problems
- Check existing [issues](https://github.com/openshift/cluster-logging-operator/issues) and [discussions](https://github.com/openshift/cluster-logging-operator/discussions)
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Remove ref to dissucsions

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

Labels

do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. 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.

3 participants