Skip to content
This repository was archived by the owner on Apr 13, 2026. It is now read-only.

chore: add tutorials about the deployer#777

Merged
jakobmoellerdev merged 46 commits into
open-component-model:mainfrom
Skarlso:create-ocm-deployment-tutorial
Mar 27, 2026
Merged

chore: add tutorials about the deployer#777
jakobmoellerdev merged 46 commits into
open-component-model:mainfrom
Skarlso:create-ocm-deployment-tutorial

Conversation

@Skarlso

@Skarlso Skarlso commented Mar 20, 2026

Copy link
Copy Markdown
Contributor

What this PR does / why we need it

Part of open-component-model/ocm-project#890.

This PR adds the deployment tutorials. One for the basic, simple deployment, the other, for the deployment using Kro and Flux.

Which issue(s) this PR is related to

Type of content

  • Tutorial (getting-started/ or tutorials/)
  • How-to Guide (how-to/)
  • Explanation / Concept (concepts/)
  • Reference (reference/)
  • Other (infrastructure, config, fixes)

Checklist

  • I have read and followed the Contributing Guide
  • All commands/code snippets are tested and can be copy-pasted

Summary by CodeRabbit

  • Documentation
    • Reordered tutorials and adjusted navigation weights for improved discoverability.
    • Heavily revised the Helm bootstrap tutorial with clearer structure, stepwise verification, updated commands/variable substitution, expanded troubleshooting, and “What You Learned”/next-step guidance.
    • Expanded/getting-started guidance with optional-component tips and RBAC/security cautions.
    • Added a new how-to for deploying raw Kubernetes manifests via the Deployer.
  • Chores
    • Extended repository spell-check wordlist.

@Skarlso Skarlso requested a review from a team as a code owner March 20, 2026 21:31
@netlify

netlify Bot commented Mar 20, 2026

Copy link
Copy Markdown

Deploy Preview for open-component-model ready!

Name Link
🔨 Latest commit eab25ba
🔍 Latest deploy log https://app.netlify.com/projects/open-component-model/deploys/69c5a10ce86fd50008162767
😎 Deploy Preview https://deploy-preview-777--open-component-model.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@coderabbitai

coderabbitai Bot commented Mar 20, 2026

Copy link
Copy Markdown

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

Reordered several tutorial front-matter weights, restructured credential TOC entries, added a new how‑to for deploying raw Kubernetes manifests with the Deployer, clarified optional components and RBAC notes in setup docs, updated bootstrap/Helm tutorials to use envsubst and improved localization/verification guidance, and updated the repository spellcheck wordlist.

Changes

Cohort / File(s) Summary
Tutorial Weight & Minor TOC Edits
content/docs/tutorials/advanced-component-constructor.md, content/docs/tutorials/signing-and-verification.md, content/docs/tutorials/configure-credentials-for-controllers.md
Adjusted front-matter weight values; restructured credential TOC entries and added a top-level “How to Use…” link.
Bootstrap / Helm Tutorials
content/docs/tutorials/deploy-helm-chart-bootstrap.md, content/docs/getting-started/deploy-helm-chart.md
Major rewrite of bootstrap tutorial: new sections (What You’ll Learn, Prereqs, Concepts, Architecture), explicit step flow, localization model updates, RGD/OCI format changes, envsubst-based apply flow, verification command updates, expanded troubleshooting.
New How‑To: Deployer
content/docs/how-to/deploy-manifests-with-deployer.md
Added a new how-to documenting packaging a raw Kubernetes manifest as a component blob and deploying it via the Deployer (prereqs, bootstrap manifest, verification, troubleshooting, cleanup).
Setup Guide Clarifications
content/docs/getting-started/setup-controller-environment.md
Added tip that some components (kro/Flux) are optional, caution about default kro cluster-wide access, and adjusted Next Steps links to include Deployer/how-to split.
Repo Spellcheck Wordlist
.github/config/wordlist.txt
Added new tokens (ApplySets, hardcoded, orchestrator, RGD's) to the GitHub wordlist.

Sequence Diagram(s)

sequenceDiagram
    participant Dev as Developer
    participant CLI as OCM CLI
    participant Reg as OCI Registry
    participant Ctrl as OCM Controllers
    participant K8s as Kubernetes API

    Dev->>CLI: create component-constructor (blob with deployment.yaml)
    CLI->>Reg: push component version & blob
    Dev->>K8s: apply bootstrap (Repository, Component, Resource, Deployer)
    K8s->>Ctrl: controllers observe Repository/Component/Resource
    Ctrl->>Reg: fetch component blob (OCI pull)
    Ctrl->>Ctrl: verify blob & build tracked manifest (ApplySets)
    Ctrl->>K8s: apply tracked Kubernetes objects (server-side apply)
    K8s->>Dev: Pods/Deployment become available (verification)
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

Suggested labels

area/documentation, kind/chore

Suggested reviewers

  • jakobmoellerdev
  • frewilhelm
  • morri-son

Poem

🐇 I nibble docs beneath moonlight's gleam,

I tuck a blob and push a dream.
We swap weights, tidy TOCs with care,
Deployer hums — manifests appear.
Hop, patch, and nibble a carrot share!

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'chore: add tutorials about the deployer' accurately describes the main change: adding new tutorial documentation focused on the deployer, as evidenced by the new deploy-manifests-with-deployer.md guide and updates to related tutorial files.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

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

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

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.

@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: 9

🧹 Nitpick comments (1)
content/docs/tutorials/configure-credentials-for-controllers.md (1)

17-20: Consider removing the redundant self-reference in the manual TOC.

The first bullet item at line 17 links to the section header it's already under (#how-to-configure-credentials), which is redundant. Since Hugo auto-generates a TOC when toc: true is set in the front matter (line 6), this manual TOC duplication may confuse readers.

Consider either:

  1. Removing line 17 entirely and keeping only the sub-section links (lines 18-20), or
  2. Relying solely on Hugo's automatic TOC generation by removing lines 17-20
♻️ Option 1: Remove the self-referencing bullet
 ## How to Configure Credentials?
 
 Currently, OCM controllers supports two ways to configure credentials for accessing private OCM repositories:
 
-- [How to Configure Credentials?](`#how-to-configure-credentials`)
-  - [Create a Kubernetes Secret of Type `dockerconfigjson`](`#create-a-kubernetes-secret-of-type-dockerconfigjson`)
-  - [Create a Kubernetes Secret or Configmap from an `.ocmconfig` file](`#create-a-kubernetes-secret-or-configmap-from-an-ocmconfig-file`)
-- [How to Use the Configured Credentials?](`#how-to-use-the-configured-credentials`)
+- [Create a Kubernetes Secret of Type `dockerconfigjson`](`#create-a-kubernetes-secret-of-type-dockerconfigjson`)
+- [Create a Kubernetes Secret or Configmap from an `.ocmconfig` file](`#create-a-kubernetes-secret-or-configmap-from-an-ocmconfig-file`)
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@content/docs/tutorials/configure-credentials-for-controllers.md` around lines
17 - 20, The manual TOC currently includes a self-referencing top-level bullet
linking to "#how-to-configure-credentials" which is redundant because Hugo's
automatic TOC is enabled (front matter key toc: true); remove the single
self-referencing bullet ("How to Configure Credentials?") from the manual list
(or remove the entire manual list if you prefer auto-TOC only) so that only the
subsection links ("Create a Kubernetes Secret of Type `dockerconfigjson`" and
"Create a Kubernetes Secret or Configmap from an `.ocmconfig` file") remain;
locate the markdown block containing the manual TOC near the
"#how-to-configure-credentials" header and delete the redundant entry.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@content/docs/tutorials/deploy-with-controllers-advanced.md`:
- Line 345: The file ends without a trailing newline; update the document
"deploy-with-controllers-advanced.md" by adding a single newline character after
the final line ("Complete with configuration and transfer to a private registry,
and setting helm values for our deployment to boot.") so the file terminates
with exactly one trailing newline.
- Line 207: Replace the backtick placeholder links for "controller chain" and
"Deployer" with the actual documentation URLs or internal doc anchors: find the
canonical docs/pages that describe the controller chain and the Deployer (search
for pages mentioning "controller chain" and "Deployer" in the docs site) and
update the two link targets in the line containing "bootstrap the RGD" so the
markdown reads [controller chain](<actual-doc-url>) and
[Deployer](<actual-doc-url>), preserving the existing link text and formatting.
- Line 21: The markdown references the link labels [Kro] and [Flux] but no link
definitions are present; add link reference definitions for these labels (e.g.,
at the end of the document) pointing to the official Kro and Flux documentation
URLs so the inline references resolve; update the file's markdown to include
lines like "[Kro]: <KRO_DOC_URL>" and "[Flux]: <FLUX_DOC_URL>" (replace with the
correct documentation URLs) so the links render correctly.
- Line 200: Remove the extra blank line before the callout shortcode "{{<callout
context=\"note\">}}" in the Markdown block so there are no multiple consecutive
blank lines; edit the paragraph containing the trailing triple-backtick and the
following blank line and delete one of the blank lines so the callout
immediately follows the content.
- Line 12: The Markdown link for the Deployer is malformed and uses a
placeholder; replace the escaped-backtick link segment
"`kubernetes-deployment.yaml placeholder`" with a proper Markdown link target to
the Deployer docs (e.g., [Deployer](<correct-deployer-doc-url>)) so the sentence
reads "...The Deployer extracts and applies it automatically." Keep the
surrounding text and mention of ResourceGraphDefinition and localization intact
(search for "ResourceGraphDefinition" and "Deployer" to locate the line).
- Around line 218-219: The repository example uses the legacy type value; locate
the repositorySpec block that currently reads "type: OCIRegistry" (search for
repositorySpec and the literal "OCIRegistry") and change it to the preferred
"type: OCIRepository" so it matches the other tutorials and the component
descriptor documentation.

In `@content/docs/tutorials/deploy-with-controllers.md`:
- Line 259: The sentence contains an unresolved placeholder "<deployer concept
placeholder>" that needs to be replaced with the real Deployer concept
documentation link; locate the Deployer concepts page that explains ApplySets
(or the specific "ApplySets" subsection), then replace the placeholder with the
proper Markdown link text and URL (e.g., "Deployer concepts — ApplySets" or
similar) in the sentence that references ApplySets so the line reads something
like: To understand ... please visit the [Deployer concepts —
ApplySets](<actual-doc-url>) page.
- Line 44: Remove the extra consecutive blank line in the Markdown file
deploy-with-controllers.md at the indicated location so there is only a single
blank line between paragraphs; edit the section around the blank line to
collapse the two empty lines into one to satisfy Markdown formatting rules.
- Around line 206-207: Update the Repository resource snippet so the
repositorySpec uses the same resource type as other docs: change the property
value "type: OCIRepository" to "type: OCIRegistry" (the snippet containing
baseUrl: $OCM_REPO and type: OCIRepository should be updated), ensuring the
Repository resource examples match deploy-helm-chart-bootstrap.md and other
guides.

---

Nitpick comments:
In `@content/docs/tutorials/configure-credentials-for-controllers.md`:
- Around line 17-20: The manual TOC currently includes a self-referencing
top-level bullet linking to "#how-to-configure-credentials" which is redundant
because Hugo's automatic TOC is enabled (front matter key toc: true); remove the
single self-referencing bullet ("How to Configure Credentials?") from the manual
list (or remove the entire manual list if you prefer auto-TOC only) so that only
the subsection links ("Create a Kubernetes Secret of Type `dockerconfigjson`"
and "Create a Kubernetes Secret or Configmap from an `.ocmconfig` file") remain;
locate the markdown block containing the manual TOC near the
"#how-to-configure-credentials" header and delete the redundant entry.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 1f8ab9a9-f30a-490f-bc52-d4ec81485e68

📥 Commits

Reviewing files that changed from the base of the PR and between 56ad181 and c1fa8ae.

📒 Files selected for processing (6)
  • content/docs/tutorials/advanced-component-constructor.md
  • content/docs/tutorials/configure-credentials-for-controllers.md
  • content/docs/tutorials/deploy-helm-chart-bootstrap.md
  • content/docs/tutorials/deploy-with-controllers-advanced.md
  • content/docs/tutorials/deploy-with-controllers.md
  • content/docs/tutorials/signing-and-verification.md

Comment thread content/docs/tutorials/deploy-with-controllers-advanced.md Outdated
Comment thread content/docs/tutorials/deploy-with-controllers-advanced.md Outdated
Comment thread content/docs/tutorials/deploy-with-controllers-advanced.md Outdated
Comment thread content/docs/tutorials/deploy-with-controllers-advanced.md Outdated
Comment thread content/docs/tutorials/deploy-with-controllers-advanced.md Outdated
Comment thread content/docs/tutorials/deploy-with-controllers-advanced.md Outdated
Comment thread content/docs/tutorials/deploy-with-controllers.md
Comment thread content/docs/tutorials/deploy-with-controllers.md Outdated
Comment thread content/docs/tutorials/deploy-with-controllers.md Outdated
On-behalf-of: Gergely Brautigam <gergely.brautigam@sap.com>

Signed-off-by: Gergely Brautigam <182850+Skarlso@users.noreply.github.com>
@Skarlso Skarlso force-pushed the create-ocm-deployment-tutorial branch from c1fa8ae to 3bd3344 Compare March 20, 2026 21:51

@jakobmoellerdev jakobmoellerdev left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Well-structured tutorials with clear step-by-step flow and good use of collapsible expected output sections. A few items need attention before merging.

Must-Fix: Placeholder/broken links

  • deploy-with-controllers-advanced.md:12[Deployer] link contains placeholder text (kubernetes-deployment.yaml placeholder), will render broken.
  • deploy-with-controllers-advanced.md:21[Kro] and [Flux] are undefined Markdown link references. Use [Kro](https://kro.run/) and [Flux](https://fluxcd.io/).
  • deploy-with-controllers-advanced.md:206 — Two more placeholder links: [controller chain] and [Deployer] both point to kubernetes-deploy.yaml placeholder.
  • deploy-with-controllers.md:258<deployer concept placeholder> renders literally in callout.

Should-Fix

  • deploy-with-controllers.md:206 — Uses type: OCIRepository but most existing docs use type: OCIRegistry (e.g. deploy-helm-chart-bootstrap.md:410). Which is correct for the controller CRD? Please align across tutorials.
  • deploy-with-controllers.md:245 — Prose says "update the OCM_REPO_PLACEHOLDER" but the YAML uses $OCM_REPO. Misleading.
  • deploy-with-controllers.md:194 — "apply for objects for the controller" → "apply objects for the controller"

Nits

  • deploy-with-controllers-advanced.md:314 — Uses k alias instead of kubectl
  • deploy-with-controllers-advanced.md:322 — "it's fetch the image" → "it fetched the image"
  • deploy-with-controllers-advanced.md:345 — Missing trailing newline (MD047 lint)

Added a note indicating that not all components are required for every use case, allowing users to skip certain installations based on their specific needs.

Signed-off-by: Fabian Burth <fabian.burth@sap.com>
Reorganized raw manifests and Helm chart deployment tutorials into a single "How-to: Deploy Manifests with Deployer" guide. Removed redundant or outdated examples to simplify the content while maintaining clarity. Updated references to new how-to documentation.

Signed-off-by: Fabian Burth <fabian.burth@sap.com>

@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: 1

🧹 Nitpick comments (2)
content/docs/how-to/deploy-manifests-with-deployer.md (1)

17-17: Clarify optional RBAC prerequisite.

The current phrasing suggests RBAC configuration is required, but it's typically optional. Consider:

-- Any extra RBAC configured by following [Custom RBAC guide]({{< relref "custom-rbac.md" >}})
+- (Optional) Custom RBAC configured as documented in the [Custom RBAC guide]({{< relref "custom-rbac.md" >}})
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@content/docs/how-to/deploy-manifests-with-deployer.md` at line 17, The line
"Any extra RBAC configured by following [Custom RBAC guide]({{< relref
"custom-rbac.md" >}})" implies RBAC is required; update it to clarify it is
optional, e.g., prepend "Optional:" or rephrase to "Any additional RBAC
(optional) — see [Custom RBAC guide]({{< relref "custom-rbac.md" >}})" so
readers know RBAC is only needed if you require custom permissions; modify that
exact sentence in the document.
content/docs/getting-started/setup-controller-environment.md (1)

12-20: Consider style consistency for "Kubernetes" vs "k8s".

Line 14 uses "raw k8s deployment" while other documentation typically spells out "Kubernetes" in prose. For consistency, consider:

-you're only deploying raw k8s deployment from an ocm resource, you may be 
+you're only deploying raw Kubernetes manifests from an OCM resource, you may be

The callout itself is a valuable addition that clarifies optional dependencies for users.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@content/docs/getting-started/setup-controller-environment.md` around lines 12
- 20, Replace the informal "k8s" in the callout text with the full "Kubernetes"
for style consistency—specifically update the phrase "raw k8s deployment" inside
the callout block to "raw Kubernetes deployment" (or "a raw Kubernetes
deployment" to fit grammar) and ensure other nearby prose in the same callout
uses the same capitalization/term to match the project’s documentation
convention.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@content/docs/how-to/deploy-manifests-with-deployer.md`:
- Around line 220-224: Add a blank line before the bullet list that starts with
"Repository — points to the OCM repository" so the Markdown linter recognizes
it; edit the block containing the lines "Repository", "Component", "Resource",
and "Deployer" and insert one empty line immediately above the first list item
to satisfy the lint rule.

---

Nitpick comments:
In `@content/docs/getting-started/setup-controller-environment.md`:
- Around line 12-20: Replace the informal "k8s" in the callout text with the
full "Kubernetes" for style consistency—specifically update the phrase "raw k8s
deployment" inside the callout block to "raw Kubernetes deployment" (or "a raw
Kubernetes deployment" to fit grammar) and ensure other nearby prose in the same
callout uses the same capitalization/term to match the project’s documentation
convention.

In `@content/docs/how-to/deploy-manifests-with-deployer.md`:
- Line 17: The line "Any extra RBAC configured by following [Custom RBAC
guide]({{< relref "custom-rbac.md" >}})" implies RBAC is required; update it to
clarify it is optional, e.g., prepend "Optional:" or rephrase to "Any additional
RBAC (optional) — see [Custom RBAC guide]({{< relref "custom-rbac.md" >}})" so
readers know RBAC is only needed if you require custom permissions; modify that
exact sentence in the document.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 7c0c478f-a512-4068-98ac-bf0658903a9d

📥 Commits

Reviewing files that changed from the base of the PR and between c1fa8ae and 12b0034.

📒 Files selected for processing (7)
  • .github/config/wordlist.txt
  • content/docs/getting-started/setup-controller-environment.md
  • content/docs/how-to/deploy-manifests-with-deployer.md
  • content/docs/tutorials/advanced-component-constructor.md
  • content/docs/tutorials/configure-credentials-for-controllers.md
  • content/docs/tutorials/deploy-helm-chart-bootstrap.md
  • content/docs/tutorials/signing-and-verification.md
✅ Files skipped from review due to trivial changes (4)
  • content/docs/tutorials/signing-and-verification.md
  • content/docs/tutorials/deploy-helm-chart-bootstrap.md
  • content/docs/tutorials/advanced-component-constructor.md
  • content/docs/tutorials/configure-credentials-for-controllers.md

Comment thread content/docs/how-to/deploy-manifests-with-deployer.md
…orials

Enhanced deployment tutorials by wrapping YAML code blocks with collapsible sections for better readability and navigation.

Signed-off-by: Fabian Burth <fabian.burth@sap.com>
Improved the Helm chart deployment tutorial by reworking the structure, simplifying explanations, and adding clear section headers. Introduced callout blocks for prerequisites, tips, and troubleshooting to enhance readability. Updated localization and bootstrap deployment steps to make them more concise and user-friendly.

Signed-off-by: Fabian Burth <fabian.burth@sap.com>

@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

♻️ Duplicate comments (1)
content/docs/how-to/deploy-manifests-with-deployer.md (1)

224-228: ⚠️ Potential issue | 🟠 Major

Add blank lines before list blocks to fix markdownlint MD032 (CI blocking).

Line 225 and Line 281 start lists without a preceding blank line. This is failing Verify Markdown.

📝 Proposed fix
 The resource chain works as follows:
+
 - **Repository** — points to the OCM repository
 - **Component** — references a specific component version
 - **Resource** — selects the manifest resource from the component
 - **Deployer** — downloads, verifies, and applies the manifest using server-side apply with ApplySets
 If you see `401: unauthorized` errors, your registry package is private. Either:
+
 - Make the package public in GitHub Package settings
 - [Configure credentials]({{< relref "configure-credentials-for-controllers.md" >}}) for the controller resources

Also applies to: 280-283

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@content/docs/how-to/deploy-manifests-with-deployer.md` around lines 224 -
228, Add a blank line before the list that starts with "- **Repository** —
points to the OCM repository" (the "resource chain" list under its heading) and
likewise add a blank line before the list at the later section around the
manifest examples (the list starting at lines ~280–283) so both list blocks are
preceded by an empty line to satisfy markdownlint MD032 and CI Verify Markdown;
locate these lists by the bullet text ("Repository", "Component", "Resource",
"Deployer") and the subsequent manifest/example bullet block and insert a single
blank line immediately above each.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@content/docs/tutorials/deploy-helm-chart-bootstrap.md`:
- Line 50: The sentence currently uses the non-preferred spelling "hardcoded";
update the text in deploy-helm-chart-bootstrap.md (the sentence "This ensures
your deployment always uses images from the current registry, not hardcoded
original locations.") to use "hard-coded" instead of "hardcoded" so it passes
spellcheck.
- Around line 13-16: Insert a blank line before each bullet list that currently
follows immediately after lead-in text—specifically the list starting with "- An
OCM component containing a Helm chart, an image reference, and deployment
instructions" (and the similar lists beginning with "- A running Podinfo
application" and "- Understanding of how localization keeps image references in
sync after transfers"), as well as the other list blocks noted in the comment;
update those list blocks by adding a single empty line above each list so
markdownlint MD032 passes.

---

Duplicate comments:
In `@content/docs/how-to/deploy-manifests-with-deployer.md`:
- Around line 224-228: Add a blank line before the list that starts with "-
**Repository** — points to the OCM repository" (the "resource chain" list under
its heading) and likewise add a blank line before the list at the later section
around the manifest examples (the list starting at lines ~280–283) so both list
blocks are preceded by an empty line to satisfy markdownlint MD032 and CI Verify
Markdown; locate these lists by the bullet text ("Repository", "Component",
"Resource", "Deployer") and the subsequent manifest/example bullet block and
insert a single blank line immediately above each.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: f7d13eea-a732-44f0-838c-c43834633cba

📥 Commits

Reviewing files that changed from the base of the PR and between 12b0034 and 4682d1c.

📒 Files selected for processing (3)
  • content/docs/getting-started/deploy-helm-chart.md
  • content/docs/how-to/deploy-manifests-with-deployer.md
  • content/docs/tutorials/deploy-helm-chart-bootstrap.md
✅ Files skipped from review due to trivial changes (1)
  • content/docs/getting-started/deploy-helm-chart.md

Comment thread content/docs/tutorials/deploy-helm-chart-bootstrap.md
Comment thread content/docs/tutorials/deploy-helm-chart-bootstrap.md
Clarified the usage of the architecture diagram by adding a descriptive introduction and removing unnecessary collapsible tags to streamline the content.

Signed-off-by: Fabian Burth <fabian.burth@sap.com>
Inserted missing line breaks in multiple lists within "Deploy Helm Chart Bootstrap" and "Deploy Manifests with Deployer" tutorials to ensure proper Markdown rendering. Expanded wordlist to include "hardcoded".

Signed-off-by: Fabian Burth <fabian.burth@sap.com>
Comment thread content/docs/tutorials/deploy-helm-chart-bootstrap.md
…igurations

Replaced hardcoded registry references with dynamic environment variables (`envsubst`) in "Deploy Helm Chart Bootstrap" and "Deploy Helm Chart" tutorials. Added setup instructions for environment variables (`GITHUB_USERNAME` and `OCM_REPO`) and clarified related steps for localization and deployments.

Signed-off-by: Fabian Burth <fabian.burth@sap.com>
…ials

Signed-off-by: Fabian Burth <fabian.burth@sap.com>
…installation

Added a callout block warning about the default installation's cluster-wide access, recommending restrictive RBAC for production environments. Included a link to the official documentation for further guidance.

Signed-off-by: Fabian Burth <fabian.burth@sap.com>

@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

♻️ Duplicate comments (1)
content/docs/tutorials/deploy-helm-chart-bootstrap.md (1)

63-63: ⚠️ Potential issue | 🟡 Minor

Spellcheck issue remains unresolved.

The word "hardcoded" at line 63 was flagged in a previous review as failing spellcheck. The preferred spelling is "hard-coded" (hyphenated). This issue was not marked as addressed in prior review cycles.

📝 Proposed fix
-This ensures your deployment always uses images from the current registry, not hardcoded original locations.
+This ensures your deployment always uses images from the current registry, not hard-coded original locations.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@content/docs/tutorials/deploy-helm-chart-bootstrap.md` at line 63, Update the
wording in the sentence containing "hardcoded original locations" to use the
preferred spelling "hard-coded" (i.e., change "hardcoded original locations" to
"hard‑coded original locations") so the sentence reads: "This ensures your
deployment always uses images from the current registry, not hard‑coded original
locations." Locate the phrase in the deploy-helm-chart-bootstrap.md content and
replace the single word accordingly.
🧹 Nitpick comments (1)
content/docs/getting-started/setup-controller-environment.md (1)

13-15: Polish phrasing for readability in the tip callout.

Line 13–15 reads awkwardly (“raw k8s deployment from an ocm resource”). Consider tightening wording for docs quality.

Suggested wording
-Depending on your use case, you may not need the full setup. For example, if 
-you're only deploying raw k8s deployment from an ocm resource, you may be 
-able to skip kro and Flux. 
+Depending on your use case, you may not need the full setup. For example, if
+you're only deploying raw Kubernetes manifests from an OCM resource, you may
+be able to skip kro and Flux.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@content/docs/getting-started/setup-controller-environment.md` around lines 13
- 15, Reword the awkward tip that currently says “raw k8s deployment from an ocm
resource” for clarity and readability; replace the sentence with something like:
“If you’re only deploying a raw Kubernetes Deployment manifest provided by an
OCM resource, you can skip kro and Flux.” Locate and update the sentence that
contains the phrase "raw k8s deployment from an ocm resource" to use the clearer
wording and ensure the tip reads as a single concise sentence.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@content/docs/getting-started/deploy-helm-chart.md`:
- Around line 130-131: Update the wording that currently says "your GitHub
repository `https://github.com/$GITHUB_USERNAME?tab=packages`" to clarify this
is the account-level Packages page (not a repository page); locate the sentence
referencing the package
`component-descriptors/ocm.software/ocm-k8s-toolkit/simple` and change phrasing
to something like "go to your GitHub account Packages tab
(https://github.com/$GITHUB_USERNAME?tab=packages), select the package ... and
under 'Package settings' change the visibility to `public`" so readers know to
look at the account packages view rather than a repository.

In `@content/docs/getting-started/setup-controller-environment.md`:
- Around line 104-106: Update the broken RBAC link inside the "Security
consideration" callout by replacing the old URL
"https://kro.run/docs/concepts/access-control" with the current access-control
page "https://kro.run/docs/advanced/access-control" in the callout block (the
block starting with {{< callout context="caution" title="Security consideration"
>}}) so the markdown link check passes.

---

Duplicate comments:
In `@content/docs/tutorials/deploy-helm-chart-bootstrap.md`:
- Line 63: Update the wording in the sentence containing "hardcoded original
locations" to use the preferred spelling "hard-coded" (i.e., change "hardcoded
original locations" to "hard‑coded original locations") so the sentence reads:
"This ensures your deployment always uses images from the current registry, not
hard‑coded original locations." Locate the phrase in the
deploy-helm-chart-bootstrap.md content and replace the single word accordingly.

---

Nitpick comments:
In `@content/docs/getting-started/setup-controller-environment.md`:
- Around line 13-15: Reword the awkward tip that currently says “raw k8s
deployment from an ocm resource” for clarity and readability; replace the
sentence with something like: “If you’re only deploying a raw Kubernetes
Deployment manifest provided by an OCM resource, you can skip kro and Flux.”
Locate and update the sentence that contains the phrase "raw k8s deployment from
an ocm resource" to use the clearer wording and ensure the tip reads as a single
concise sentence.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 7193fa18-dabb-429f-9fcc-b5008c749d0c

📥 Commits

Reviewing files that changed from the base of the PR and between 4682d1c and bdbfa14.

📒 Files selected for processing (5)
  • .github/config/wordlist.txt
  • content/docs/getting-started/deploy-helm-chart.md
  • content/docs/getting-started/setup-controller-environment.md
  • content/docs/how-to/deploy-manifests-with-deployer.md
  • content/docs/tutorials/deploy-helm-chart-bootstrap.md
✅ Files skipped from review due to trivial changes (1)
  • content/docs/how-to/deploy-manifests-with-deployer.md
🚧 Files skipped from review as they are similar to previous changes (1)
  • .github/config/wordlist.txt

Comment thread content/docs/getting-started/deploy-helm-chart.md
Comment thread content/docs/getting-started/setup-controller-environment.md
Updated the link to the RBAC configuration guide in the security callout to point to the correct path in the updated documentation structure.

Signed-off-by: Fabian Burth <fabian.burth@sap.com>
…ry guidance

Updated the "Deploy Helm Chart Bootstrap" tutorial to simplify OCI reference handling using `toOCI()` and added clear instructions for configuring credentials for private registries. Expanded troubleshooting sections to address `ImagePullBackOff` errors. Improved consistency by replacing `componentversion` with shorthand `cv` in CLI commands.

Signed-off-by: Fabian Burth <fabian.burth@sap.com>
Signed-off-by: Fabian Burth <fabian.burth@sap.com>
Signed-off-by: Fabian Burth <fabian.burth@sap.com>

@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: 1

♻️ Duplicate comments (1)
content/docs/getting-started/deploy-helm-chart.md (1)

130-131: ⚠️ Potential issue | 🟡 Minor

Clarify package location as account-level, not repository-level.

Line 130 points to https://github.com/$GITHUB_USERNAME?tab=packages, which is the account Packages page, but the text says “in your GitHub repository.” Please align wording to avoid navigation confusion.

Suggested doc fix
-To make your component public in GitHub Container Registry, go to the `packages` tab in your GitHub repository `https://github.com/$GITHUB_USERNAME?tab=packages`,
+To make your component public in GitHub Container Registry, go to the `packages` tab in your GitHub account `https://github.com/$GITHUB_USERNAME?tab=packages`,
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@content/docs/getting-started/deploy-helm-chart.md` around lines 130 - 131,
The text incorrectly calls the account-level Packages page a "GitHub repository"
— update the sentence that references
`https://github.com/$GITHUB_USERNAME?tab=packages` and the phrase “in your
GitHub repository” to make clear this is the account-level Packages tab (not a
repository page); replace with wording like “go to your GitHub account Packages
page (`https://github.com/$GITHUB_USERNAME?tab=packages`)” and then instruct the
user to select the package
`component-descriptors/ocm.software/ocm-k8s-toolkit/simple` and change its
visibility to `public` under Package settings to avoid navigation confusion.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@content/docs/tutorials/deploy-helm-chart-bootstrap.md`:
- Around line 362-369: Change the ordered-list numbering to use "1." for every
item to satisfy markdownlint MD029: locate the two list items that start with
"Flux OCIRepository" (the block showing secretRef: name: ghcr-secret) and "Pod
imagePullSecrets" (the HelmRelease values guidance) and replace their current
numeric prefixes (e.g., "2." and "3.") with "1." so the list uses the required
1/1/1 style.

---

Duplicate comments:
In `@content/docs/getting-started/deploy-helm-chart.md`:
- Around line 130-131: The text incorrectly calls the account-level Packages
page a "GitHub repository" — update the sentence that references
`https://github.com/$GITHUB_USERNAME?tab=packages` and the phrase “in your
GitHub repository” to make clear this is the account-level Packages tab (not a
repository page); replace with wording like “go to your GitHub account Packages
page (`https://github.com/$GITHUB_USERNAME?tab=packages`)” and then instruct the
user to select the package
`component-descriptors/ocm.software/ocm-k8s-toolkit/simple` and change its
visibility to `public` under Package settings to avoid navigation confusion.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: f9428c47-ef36-4949-9133-5789c077f4e9

📥 Commits

Reviewing files that changed from the base of the PR and between bdbfa14 and 2b7612d.

📒 Files selected for processing (4)
  • .github/config/wordlist.txt
  • content/docs/getting-started/deploy-helm-chart.md
  • content/docs/getting-started/setup-controller-environment.md
  • content/docs/tutorials/deploy-helm-chart-bootstrap.md
✅ Files skipped from review due to trivial changes (1)
  • .github/config/wordlist.txt

Comment thread content/docs/tutorials/deploy-helm-chart-bootstrap.md Outdated
Signed-off-by: Fabian Burth <fabian.burth@sap.com>
jakobmoellerdev added a commit to open-component-model/open-component-model that referenced this pull request Mar 25, 2026
<!-- markdownlint-disable MD041 -->
#### What this PR does / why we need it

- refactor: remove `credentialCache` from provider and related test
files
- chore: simplify credential handling by inlining logic into
`toCredential` function

#### Which issue(s) this PR fixes
<!--
Usage: `Fixes #<issue number>`, or `Fixes (paste link of issue)`.
-->

the current provider credential cache is not correct. oras can and our
cred cache was only able to store by hostname but reusing the creds for
differing identities as we have it is invalid.

##### Verification

- [x] I have tested the changes locally by running `ocm`
  
this came up during testing of
open-component-model/ocm-website#777

Signed-off-by: Jakob Möller <contact@jakob-moeller.com>
Signed-off-by: Fabian Burth <fabian.burth@sap.com>
Comment thread content/docs/how-to/deploy-manifests-with-deployer.md
Comment thread content/docs/how-to/deploy-manifests-with-deployer.md
Comment thread content/docs/getting-started/deploy-helm-chart.md Outdated
Comment thread content/docs/getting-started/deploy-helm-chart.md Outdated
Comment thread content/docs/getting-started/deploy-helm-chart.md
@matthiasbruns

Copy link
Copy Markdown
Contributor

Signed-off-by: Fabian Burth <fabian.burth@sap.com>
Signed-off-by: Fabian Burth <fabian.burth@sap.com>
Updated `podinfo` image references in multiple tutorials to version 6.11.1 for consistency with the latest release. Added minor formatting adjustments for improved readability.

Signed-off-by: Fabian Burth <fabian.burth@sap.com>
Removed redundant Mermaid diagram class definitions from the `deploy-helm-chart-bootstrap.md` tutorial for clarity and to reduce unnecessary code.

Signed-off-by: Fabian Burth <fabian.burth@sap.com>
Applied step-based formatting (`{{< steps >}}` and `{{< step >}}`) to `deploy-manifests-with-deployer.md` and `deploy-helm-chart-bootstrap.md` for improved readability and structure. Updated callouts, details, and example commands accordingly.

Signed-off-by: Fabian Burth <fabian.burth@sap.com>
Replaced `imagePullSecrets` with `image.pullSecrets` in the example YAML for consistency with updated Helm chart configuration. Removed unused Mermaid `linkStyle` definitions for clarity.

Signed-off-by: Fabian Burth <fabian.burth@sap.com>
Added a callout to emphasize adding the secret to `ocmConfig` when using private registries. Improved numbering and formatting in the `deploy-helm-chart-bootstrap.md` tutorial.

Signed-off-by: Fabian Burth <fabian.burth@sap.com>
Improved wording in the private registries callout to specify adding the secret to the repositories' `ocmConfig` for better accuracy.

Signed-off-by: Fabian Burth <fabian.burth@sap.com>
Corrected "repositories `ocmConfig`" to "repository's `ocmConfig`" in the private registries callout for improved grammar and clarity.

Signed-off-by: Fabian Burth <fabian.burth@sap.com>
… tutorials

Added `readyWhen` conditions to relevant resources in `deploy-helm-chart.md` and `deploy-helm-chart-bootstrap.md` for improved deployment status monitoring and readability.

Signed-off-by: Fabian Burth <fabian.burth@sap.com>
…-tutorial

# Conflicts:
#	content/docs/getting-started/deploy-helm-chart.md
#	content/docs/tutorials/deploy-helm-chart-bootstrap.md
#	layouts/_shortcodes/callout.html
Signed-off-by: Fabian Burth <fabian.burth@sap.com>
Standardized indentation of YAML code blocks in `deploy-helm-chart-bootstrap.md` for improved readability and consistency.

Signed-off-by: Fabian Burth <fabian.burth@sap.com>
…tutorial

Enhanced YAML example in `deploy-helm-chart.md` by adding a `readyWhen` condition for improved clarity and deployment status monitoring.

Signed-off-by: Fabian Burth <fabian.burth@sap.com>
Corrected YAML indentation for the `readyWhen` condition in `deploy-helm-chart.md` to ensure proper formatting and clarity.

Signed-off-by: Fabian Burth <fabian.burth@sap.com>

@matthiasbruns matthiasbruns left a comment

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.

great job

@jakobmoellerdev jakobmoellerdev left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

went through again, looks great!

@jakobmoellerdev jakobmoellerdev merged commit 178c984 into open-component-model:main Mar 27, 2026
10 checks passed
ocmbot Bot pushed a commit that referenced this pull request Mar 27, 2026
<!-- markdownlint-disable MD041 -->
#### What this PR does / why we need it

Part of open-component-model/ocm-project#890.

This PR adds the deployment tutorials. One for the basic, simple
deployment, the other, for the deployment using Kro and Flux.

#### Which issue(s) this PR is related to
<!--
Usage: `Related to #<issue number>`, or `Related to (paste link of
issue)`.
-->

#### Type of content
<!--
Which section does this PR target? See CONTRIBUTING.md for guidance.
-->
- [x] Tutorial (`getting-started/` or `tutorials/`)
- [ ] How-to Guide (`how-to/`)
- [ ] Explanation / Concept (`concepts/`)
- [ ] Reference (`reference/`)
- [ ] Other (infrastructure, config, fixes)

#### Checklist

- [x] I have read and followed the [Contributing
Guide](https://github.com/open-component-model/ocm-website/blob/main/CONTRIBUTING.md)
- [x] All commands/code snippets are tested and can be copy-pasted

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **Documentation**
* Reordered tutorials and adjusted navigation weights for improved
discoverability.
* Heavily revised the Helm bootstrap tutorial with clearer structure,
stepwise verification, updated commands/variable substitution, expanded
troubleshooting, and “What You Learned”/next-step guidance.
* Expanded/getting-started guidance with optional-component tips and
RBAC/security cautions.
* Added a new how-to for deploying raw Kubernetes manifests via the
Deployer.
* **Chores**
  * Extended repository spell-check wordlist.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Signed-off-by: Gergely Brautigam <182850+Skarlso@users.noreply.github.com>
Signed-off-by: Fabian Burth <fabian.burth@sap.com>
Co-authored-by: Fabian Burth <fabian.burth@sap.com> 178c984
@coderabbitai coderabbitai Bot mentioned this pull request Mar 30, 2026
7 tasks
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants