OpsBoard: Using k8or Common CRDs for AWS Cloud Service Integration
By Anna V. April 23, 2025. Revised. Version: 0.0.09
📌 Overview
k8or OpsBoard now supports Common Resources, a reusable collection of cloud-native integrations based on Kubernetes Custom Resource Definitions (CRDs). These include AWS:
S3 Buckets
DynamoDB Tables
MySQL Databases (via RDS)
Other AWS Services via the ACK controllers
Developers can discover, transfer, configure, and connect to these resources inside their application environments (Dev, Test, Stage, Prod) without redefining AWS infrastructure each time.
🔁 How It Works: Step-by-Step
Step 1: Navigate to Common Category
On the OpsBoard dashboard, look for the new category:
CATEGORY > Common
You'll see a list of AWS CRDs such as:
s3-bucket-standard
dynamodb-default
mysql-rds-basic
Each CRD is a predefined configuration and includes its own HELM chart or manifest.
Step 2: Transfer to the Environment
Click Transfer on a Common CRD.
Choose the environment (e.g., Development) to send this resource to.
The CRD is now copied into that environment namespace, retaining its config.
✅ Note: You can mutate the transferred CRD after copying. Each environment holds its own copy.
Step 3: Configure Cloud Resource (Access)
Click Access on the CRD.
You’ll be presented with an editable configuration UI for:
Bucket Name, e.g.,
aircraft-logs-543
AWS Access Key / Secret (or use IRSA if configured)
Region, IAM Role, Storage Class, etc.
After saving, the config is written to:
A namespace ConfigMap
The external ViewPort registry
This ensures persistence and cluster visibility.
Step 4: Expose to Other Services
Click Expose on the CRD.
This makes the resource discoverable by other microservices in the same environment (via labels, selectors, or config references).
A FE/MW MSV can now click Expose on the CRD, read the reference, and paste/attach it via their Access button.
🧠 Think of Expose as a "shared service declaration" and Access as a "service consumer configuration".
🔗 Dependency Tracking
All dependencies are tracked automatically:
Which MSVs (e.g., MW components) access which CRD
Which environments contain what configuration
Visual overlays in the UI (optional enhancement) showing connections
💡 Use Case Example
Upload middleware MSV:
order-processor
Transfer
s3-logs-bucket
from Common to DevClick on Access and configure it with test credentials
Expose the CRD
MW MSV reads the config and links it via Access
Result: the MW can now write logs or fetch data from a centralized S3 bucket.
📌 Notes
This workflow supports both manual UI-based actions and automated GitOps-based deployments using manifest injection.
Changes made via the Access form are version-tracked and audit-logged.
CRDs can be used by multiple MSVs but are environment-scoped.
Last updated