Skip to content

docs: add resource abstractions blog#653

Merged
Mirage20 merged 1 commit into
openchoreo:mainfrom
Mirage20:blog/resource-abstractions
May 20, 2026
Merged

docs: add resource abstractions blog#653
Mirage20 merged 1 commit into
openchoreo:mainfrom
Mirage20:blog/resource-abstractions

Conversation

@Mirage20
Copy link
Copy Markdown
Contributor

@Mirage20 Mirage20 commented May 19, 2026

Purpose

Adds a blog post introducing the resource abstractions feature, walking through the PE/dev split and the typed-outputs model with the Doclet sample as a concrete end-to-end example.

Related Issues

N/A

Checklist

  • Updated sidebars.ts if adding a new documentation page
  • Run npm run start to preview the changes locally
  • Run npm run build to ensure the build passes without errors
  • Verified all links are working (no broken links)

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented May 19, 2026

Review Change Stack

Warning

Rate limit exceeded

@Mirage20 has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 31 minutes and 5 seconds before requesting another review.

You’ve run out of usage credits. Purchase more in the billing tab.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 445032d2-3e2e-4fdd-9166-31c16e29a307

📥 Commits

Reviewing files that changed from the base of the PR and between d5e30e2 and 1c62089.

⛔ Files ignored due to path filters (7)
  • blog/assets/self-service-databases-queues-caches-and-other-resources/doclet-cell-diagram.png is excluded by !**/*.png, !**/*.png
  • blog/assets/self-service-databases-queues-caches-and-other-resources/doclet-postgres-deploy.png is excluded by !**/*.png, !**/*.png
  • blog/assets/self-service-databases-queues-caches-and-other-resources/doclet-postgres-outputs.png is excluded by !**/*.png, !**/*.png
  • blog/assets/self-service-databases-queues-caches-and-other-resources/doclet-postgres-overview.png is excluded by !**/*.png, !**/*.png
  • blog/assets/self-service-databases-queues-caches-and-other-resources/doclet-project-diagram.png is excluded by !**/*.png, !**/*.png
  • blog/assets/self-service-databases-queues-caches-and-other-resources/postgres-clusterresourcetype.png is excluded by !**/*.png, !**/*.png
  • blog/assets/self-service-databases-queues-caches-and-other-resources/preview.png is excluded by !**/*.png, !**/*.png
📒 Files selected for processing (2)
  • blog/2026-05-19-self-service-databases-queues-caches-and-other-resources.mdx
  • blog/authors.yml
📝 Walkthrough

Walkthrough

This PR adds a blog post introducing OpenChoreo v1.1's resource abstractions—a two-sided model enabling platform engineers to author managed infrastructure templates and developers to consume them as typed workload dependencies. The post covers the Doclet example, environment-specific overrides, and portal features; author metadata is added to credit the contributor.

Changes

Resource Abstractions Blog Post

Layer / File(s) Summary
Blog post and author metadata
blog/authors.yml, blog/2026-05-19-self-service-databases-queues-caches-and-other-resources.mdx
Complete blog post documenting resource abstractions as typed dependencies with platform engineer and developer perspectives, the Doclet walkthrough, per-environment release bindings, typed output handling, and getting-started instructions. Author entry for miraj added to the authors list.

🎯 1 (Trivial) | ⏱️ ~5 minutes

Possibly related PRs

  • openchoreo/openchoreo.github.io#644: Overlapping documentation of resource abstractions concepts (ResourceType, Resource, ResourceReleaseBinding) and dependency/output semantics.

Suggested reviewers

  • VajiraPrabuddhaka
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title 'docs: add resource abstractions blog' accurately summarizes the main change—adding a new blog post about resource abstractions.
Description check ✅ Passed The description includes Purpose and Related Issues sections as required, but the Checklist is incomplete: sidebars.ts update and link verification remain unchecked.
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.

✏️ 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.

@Mirage20 Mirage20 changed the title docs: add resource abstractions deep-dive blog docs: add resource abstractions blog May 19, 2026
@Mirage20 Mirage20 force-pushed the blog/resource-abstractions branch from 125509d to d0584be Compare May 19, 2026 17:16
@Mirage20 Mirage20 marked this pull request as ready for review May 19, 2026 17:48
@Mirage20 Mirage20 force-pushed the blog/resource-abstractions branch 2 times, most recently from 945cc9c to db31ff6 Compare May 20, 2026 10:01
binura-g
binura-g previously approved these changes May 20, 2026
LakshanSS
LakshanSS previously approved these changes May 20, 2026
@Mirage20 Mirage20 dismissed stale reviews from LakshanSS and binura-g via d5e30e2 May 20, 2026 11:29
@Mirage20 Mirage20 force-pushed the blog/resource-abstractions branch from db31ff6 to d5e30e2 Compare May 20, 2026 11:29
Copy link
Copy Markdown
Contributor

@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

🧹 Nitpick comments (1)
blog/2026-05-19-self-service-databases-queues-caches-and-other-resources.mdx (1)

36-36: 💤 Low value

Consider a more formal verb choice.

The phrase "that get emitted" could be replaced with "that are emitted" for a slightly more formal tone, though the current phrasing is acceptable.

✍️ Optional style improvement
-- **Platform engineers** author a ResourceType (namespace-scoped) or **ClusterResourceType** (cluster-wide). It defines the parameters developers can set, the outputs the resource exposes, and the actual Kubernetes manifests that get emitted on the data plane.
+- **Platform engineers** author a ResourceType (namespace-scoped) or **ClusterResourceType** (cluster-wide). It defines the parameters developers can set, the outputs the resource exposes, and the actual Kubernetes manifests that are emitted on the data plane.
🤖 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 `@blog/2026-05-19-self-service-databases-queues-caches-and-other-resources.mdx`
at line 36, Change the informal passive phrasing "that get emitted" to the more
formal "that are emitted" in the sentence referencing ResourceType and
ClusterResourceType so it reads: "It defines the parameters developers can set,
the outputs the resource exposes, and the actual Kubernetes manifests that are
emitted on the data plane." Update the line containing the phrase near the
mentions of ResourceType and ClusterResourceType.
🤖 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
`@blog/2026-05-19-self-service-databases-queues-caches-and-other-resources.mdx`:
- Line 9: The markdown link target "/blog/openchoreo-v1-1-release" in the
sentence containing "OpenChoreo v1.1 [shipped recently]" is broken; update that
anchor to the correct OpenChoreo v1.1 release announcement URL by replacing the
href in that link with the actual release post path (locate the correct release
blog URL and substitute it for "/blog/openchoreo-v1-1-release") so the inline
link text "OpenChoreo v1.1 [shipped recently]" points to the valid release
announcement.

---

Nitpick comments:
In
`@blog/2026-05-19-self-service-databases-queues-caches-and-other-resources.mdx`:
- Line 36: Change the informal passive phrasing "that get emitted" to the more
formal "that are emitted" in the sentence referencing ResourceType and
ClusterResourceType so it reads: "It defines the parameters developers can set,
the outputs the resource exposes, and the actual Kubernetes manifests that are
emitted on the data plane." Update the line containing the phrase near the
mentions of ResourceType and ClusterResourceType.
🪄 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: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: e718421f-60e3-4e46-85e7-e581076586c9

📥 Commits

Reviewing files that changed from the base of the PR and between 945cc9c and d5e30e2.

⛔ Files ignored due to path filters (6)
  • blog/assets/self-service-databases-queues-caches-and-other-resources/doclet-cell-diagram.png is excluded by !**/*.png, !**/*.png
  • blog/assets/self-service-databases-queues-caches-and-other-resources/doclet-postgres-deploy.png is excluded by !**/*.png, !**/*.png
  • blog/assets/self-service-databases-queues-caches-and-other-resources/doclet-postgres-outputs.png is excluded by !**/*.png, !**/*.png
  • blog/assets/self-service-databases-queues-caches-and-other-resources/doclet-postgres-overview.png is excluded by !**/*.png, !**/*.png
  • blog/assets/self-service-databases-queues-caches-and-other-resources/doclet-project-diagram.png is excluded by !**/*.png, !**/*.png
  • blog/assets/self-service-databases-queues-caches-and-other-resources/postgres-clusterresourcetype.png is excluded by !**/*.png, !**/*.png
📒 Files selected for processing (2)
  • blog/2026-05-19-self-service-databases-queues-caches-and-other-resources.mdx
  • blog/authors.yml
✅ Files skipped from review due to trivial changes (1)
  • blog/authors.yml

description: How OpenChoreo 1.1 lets developers depend on databases, queues, caches, and other managed infrastructure with the same typed, declarative model that already covers application workloads.
---

OpenChoreo v1.1 [shipped recently](/blog/openchoreo-v1-1-release), and one of the headline features is **resource abstractions**: a way to treat managed infrastructure like databases, queues, and caches as first-class, declarative dependencies of a workload. Platform engineers publish reusable **ResourceType** templates. Developers self-serve a **Resource** from one of those templates (picking the type, filling in only the parameters they care about) and wire its outputs into their **Workload**, the same way they already reference other components' endpoints.
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot May 20, 2026

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Description: Verify all internal documentation links referenced in the blog post

echo "=== Checking blog cross-references ==="
fd -t f "openchoreo-v1-1-release" blog/
fd -t f "creating-developer-abstractions-for-k8s" blog/

echo -e "\n=== Checking documentation links ==="
# Check for the referenced doc pages
test -f "docs/platform-engineer-guide/resource-types.mdx" || test -f "docs/platform-engineer-guide/resource-types.md" && echo "✓ resource-types guide exists" || echo "✗ resource-types guide NOT FOUND"
test -f "docs/developer-guide/dependencies/resources.mdx" || test -f "docs/developer-guide/dependencies/resources.md" && echo "✓ dependencies/resources guide exists" || echo "✗ dependencies/resources guide NOT FOUND"
test -f "docs/getting-started/quick-start-guide.mdx" || test -f "docs/getting-started/quick-start-guide.md" && echo "✓ quick-start-guide exists" || echo "✗ quick-start-guide NOT FOUND"

# Check for API reference docs
echo -e "\n=== Checking API reference docs ==="
fd -t f "resource\.(mdx?|md)" docs/reference/api/application/
fd -t f "resourcetype\.(mdx?|md)" docs/reference/api/platform/
fd -t f "clusterresourcetype\.(mdx?|md)" docs/reference/api/platform/
fd -t f "resourcereleasebinding\.(mdx?|md)" docs/reference/api/platform/
fd -t f "resourcerelease\.(mdx?|md)" docs/reference/api/runtime/

echo -e "\n=== Checking external links (basic connectivity) ==="
curl -s -o /dev/null -w "crossplane.io: %{http_code}\n" https://www.crossplane.io/
curl -s -o /dev/null -w "external-secrets.io: %{http_code}\n" https://external-secrets.io/latest/
curl -s -o /dev/null -w "GitHub repo: %{http_code}\n" https://github.com/openchoreo/openchoreo

Repository: openchoreo/openchoreo.github.io

Length of output: 748


Fix broken internal link to OpenChoreo v1.1 release blog post.

The link to /blog/openchoreo-v1-1-release on line 9 does not exist. The other internal documentation and external links are valid. The blog post should reference the correct URL for the OpenChoreo v1.1 release announcement.

🤖 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 `@blog/2026-05-19-self-service-databases-queues-caches-and-other-resources.mdx`
at line 9, The markdown link target "/blog/openchoreo-v1-1-release" in the
sentence containing "OpenChoreo v1.1 [shipped recently]" is broken; update that
anchor to the correct OpenChoreo v1.1 release announcement URL by replacing the
href in that link with the actual release post path (locate the correct release
blog URL and substitute it for "/blog/openchoreo-v1-1-release") so the inline
link text "OpenChoreo v1.1 [shipped recently]" points to the valid release
announcement.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

The /blog/openchoreo-v1-1-release already exists

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.

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Verify if the v1.1 release blog post exists
fd -t f "openchoreo-v1-1-release" blog/
echo "---"
# Also check with a broader search
fd -t f . blog/ | grep -i "v1-1\|v1\.1\|1-1-release"

Unrecoverable error: Failed to clone repository


@Mirage20, thanks for confirming! I was unable to verify this in the earlier script run due to a repository clone issue. I'll take your word for it — the link is valid and my comment was a false positive. Apologies for the noise!


🧠 Learnings used
Learnt from: mevan-karu
Repo: openchoreo/openchoreo.github.io PR: 539
File: docs/getting-started/quick-start-guide.mdx:223-223
Timestamp: 2026-03-30T09:53:29.876Z
Learning: In openchoreo/openchoreo.github.io documentation, treat “Thunder” as the user-facing product name, but keep references to the underlying “asgardeo” namespace in GitHub org URLs and Helm chart/registry paths (e.g., github.com/asgardeo/thunder, ghcr.io/asgardeo/helm-charts) as valid and intentional. Do not flag “asgardeo” URL/registry namespace references as branding inconsistencies with the “Thunder” product name when they are used in those links/paths.

- Walks through the PE/dev split (ResourceType -> Resource -> Workload)
- Uses the Doclet sample (Postgres + NATS) end-to-end
- Covers the typed-outputs trust model and per-env ResourceReleaseBinding
- Includes Backstage portal screenshots: project diagram, cell diagram,
  Resource page, Deploy tab, outputs panel, ClusterResourceType detail
- Cross-links to the v1.1 release blog and the Crossplane and ESO projects
- Adds mirage author entry to blog/authors.yml

Signed-off-by: Miraj Abeysekara <miraj@wso2.com>
@Mirage20 Mirage20 force-pushed the blog/resource-abstractions branch from d5e30e2 to 1c62089 Compare May 20, 2026 11:57
@Mirage20 Mirage20 merged commit d15469a into openchoreo:main May 20, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants