Hi - I answer from the OpenSmartRoute documentation: routing, the API, plans and quotas, self-hosting. Ask away, or open a support ticket if you need a person.
Grounded in the docs - follow a source before acting on it.
integration-framework - Skill - OpenSmartRoute
Skillv1.0.0
integration-framework
Resource creation methods belong on `Scenario` and must register cleanup via `s.OnCleanup`. Cleanup functions must use `context.Background()` so they run even when the test context is cancelled. - Ass
Resource creation methods belong on Scenario and must register cleanup via s.OnCleanup. Cleanup functions must use context.Background() so they run even when the test context is cancelled.
Assertion methods use require.Eventually with DefaultTimeout (60s) and DefaultInterval (2s). Do not introduce custom timeouts without justification.
Builder functions (Build*) return *unstructured.Unstructured. The framework uses the dynamic client, not typed clients, to avoid importing the operator's Go types.
Traffic assertion methods belong on GatewayProxy. New HTTP helpers should follow the polling pattern of ExpectBlocked/ExpectAllowed.
GVR constants go in resources.go. New CRD types the framework interacts with need a GVR added there.
Port allocation uses Framework.AllocatePort() (atomic counter from 29000). Do not hardcode ports.
Use it
Copy one of these into your project. Installing also returns the manifest and these snippets.
yaml
targets:
- https://api.opensmartroute.ai/api/v1/registry/networking-incubator-coraza-kubernetes-operator-integrat-6f0350/manifest # or paste the manifest below
Manifest
An Open Capability Manifest: the router reads it to know what this does, what it costs and when to pick it.
{
"ocm": "1",
"id": "networking-incubator-coraza-kubernetes-operator-integrat-6f0350",
"kind": "skill",
"name": "integration-framework",
"description": "Resource creation methods belong on `Scenario` and must register cleanup via `s.OnCleanup`. Cleanup functions must use `context.Background()` so they run even when the test context is cancelled. - Assertion methods use `require.Eventually` with `DefaultTimeout` (60s) and `DefaultInterval` (2s). Do not introduce custom timeouts without justification. - Builder functions (`Build*`) return `*unstructured.Unstructured`. The framework uses the dynamic client, not typed clients, to avoid importing the operator's Go types. - Traffic assertion methods belong on `GatewayProxy`. New HTTP helpers should follow the polling pattern of `ExpectBlocked`/`ExpectAllowed`. - GVR constants go in `resources.go`. New CRD types the framework interacts with need a GVR added there. - Port allocation uses `Framework.AllocatePort()` (atomic counter from 29000). Do not hardcode ports.",
"publisher": "networking-incubator",
"version": "1.0.0",
"capabilities": {
"domains": [
"coding"
],
"tags": [
"skill-md",
"github-instructions"
],
"languages": [
"en"
]
},
"quality_prior": 0.6,
"examples": [
"Resource creation methods belong on `Scenario` and must register cleanup via `s.OnCleanup`. Cleanup functions must use `context.Background()` so they run even when the test context is cancelled. - Assertion methods use `require.Eventually` with `DefaultTimeout` (60s) and `DefaultInterval` (2s). Do not introduce custom timeouts without justification. - Builder functions (`Build*`) return `*unstructured.Unstructured`. The framework uses the dynamic client, not typed clients, to avoid importing the operator's Go types. - Traffic assertion methods belong on `GatewayProxy`. New HTTP helpers should follow the polling pattern of `ExpectBlocked`/`ExpectAllowed`. - GVR constants go in `resources.go`. New CRD types the framework interacts with need a GVR added there. - Port allocation uses `Framework.AllocatePort()` (atomic counter from 29000). Do not hardcode ports."
],
"primary": false,
"metadata": {
"source": {
"provider": "github-instructions",
"repository": "https://github.com/networking-incubator/coraza-kubernetes-operator",
"path": ".github/instructions/integration-framework.instructions.md",
"ref": "4b3bd925d193a7465d55e3366492852126f1fa8a",
"url": "https://github.com/networking-incubator/coraza-kubernetes-operator/blob/4b3bd925d193a7465d55e3366492852126f1fa8a/.github/instructions/integration-framework.instructions.md",
"key": "networking-incubator/coraza-kubernetes-operator/.github/instructions/integration-framework.instructions.md"
},
"applies_to": "test/framework/**/*.go"
},
"instructions": "- Resource creation methods belong on `Scenario` and must register cleanup via `s.OnCleanup`. Cleanup functions must use `context.Background()` so they run even when the test context is cancelled.\n- Assertion methods use `require.Eventually` with `DefaultTimeout` (60s) and `DefaultInterval` (2s). Do not introduce custom timeouts without justification.\n- Builder functions (`Build*`) return `*unstructured.Unstructured`. The framework uses the dynamic client, not typed clients, to avoid importing the operator's Go types.\n- Traffic assertion methods belong on `GatewayProxy`. New HTTP helpers shoul",
"cost": {
"context_tokens": 217
}
}
Fetch it by URL: GET /api/v1/registry/networking-incubator-coraza-kubernetes-operator-integrat-6f0350/manifest?version=1.0.0
Reviews
Star ratings from people who tried it. One review per account; edit yours any time.
No reviews yet. Install it, try it, and be the first to rate it.