Skip to content

feat(crd): add additional integration types (PagerDuty, Teams, Opsgenie, Webhook) #63

@joelp172

Description

@joelp172

Summary

Only Slack integrations are supported. UptimeRobot supports many other integration types that users may need.

Current Behaviour

  • Only `SlackIntegration` CRD exists
  • UptimeRobot API supports: Slack, PagerDuty, Opsgenie, Microsoft Teams, Webhooks, Zapier, Splunk, and more
  • Users wanting other integrations must manage them outside the operator

Proposed Approach

Option A: Separate CRDs per integration type

kind: PagerDutyIntegration
kind: TeamsIntegration
kind: WebhookIntegration

Pros: Type-safe, specific validation per integration
Cons: CRD proliferation

Option B: Generic Integration CRD

kind: Integration
spec:
  type: pagerduty
  config:
    serviceKey: "..."

Pros: Single CRD, extensible
Cons: Weaker type safety, complex validation

Recommended: Start with highest-value integrations

  1. Webhook (generic, covers many use cases)
  2. PagerDuty (common in enterprise)
  3. Microsoft Teams (common in enterprise)
  4. Opsgenie (common in enterprise)

Acceptance Criteria

  • Validate each integration type against real API
  • At least Webhook integration implemented
  • Consistent pattern with existing SlackIntegration
  • Unit and E2E tests per integration type
  • Documentation with examples

Phase

P4 — Feature Gaps (Phase 3: Expand)

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestfeatureNew CRD features and API coveragepriority: lowP4/P5/P6 - Nice to have

    Projects

    Status

    Todo

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions