incident

7Modules

Overview

Description

Collection of Action Modules to automate events in the BigPanda Platform

Readme

BigPanda Ansible Collection (bigpanda.incident)

Ansible Collection of action modules that automate the BigPanda Incident Management platform. Use it from a plain ansible-playbook invocation, from Ansible Automation Platform (AAP), or from an Event-Driven Ansible (EDA) rulebook to react to BigPanda webhooks.

The collection is distributed through Red Hat Automation Hub as the certified bigpanda.incident collection, and through community Galaxy.


Table of contents

  1. What's included
  2. Action modules — reference
  3. Quick local test
  4. Targeting EU / dedicated tenants
  5. Testing in Ansible Automation Platform
  6. EDA rulebook
  7. License

What's included

TypeNamePurpose
Modulebigpanda.incident.commentPost a comment on an incident
Modulebigpanda.incident.add_tagAdd/update a tag on an incident
Modulebigpanda.incident.assignAssign a user to an incident
Modulebigpanda.incident.resolveResolve (close) an incident
Modulebigpanda.incident.resolve_alertResolve one or more alerts
Modulebigpanda.incident.mergeMerge incidents into a target
Modulebigpanda.incident.splitSplit alerts off into a new incident
Rulebookextensions/eda/rulebooks/bigpanda-webhook.ymlReceive BigPanda Share-via-Webhook events in EDA

All modules call the v2.0 BigPanda public REST API. Authentication is a BigPanda User API Key (Settings → API Keys), passed via api_token. The API host defaults to https://api.bigpanda.io and can be overridden per task with api_url, or once per play via module_defaults (see Targeting EU / dedicated tenants). Every module supports check_mode--check returns the url, method, and payload that would have been sent without making any HTTP request.


Action modules — reference

bigpanda.incident.comment

ParameterRequiredDescription
environment_idyesThe BigPanda environment that contains the incident
incident_idyesIncident to comment on
commentyesComment text (≤ 1000 chars)
api_tokenyesBigPanda User API Key
api_urlnoBigPanda API base URL (default https://api.bigpanda.io; env fallback BIGPANDA_API_URL)
- bigpanda.incident.comment:
    environment_id: "{{ environment_id }}"
    incident_id:    "{{ incident_id }}"
    comment:        "Investigating; ETA 10 min"
    api_token:      "{{ api_token }}"

bigpanda.incident.add_tag

ParameterRequiredDescription
environment_idyesEnv containing the incident
incident_idyesIncident to tag
tag_idyesThe tag name (must already exist in the env)
tag_valueyesValue to set
api_tokenyesBigPanda User API Key
api_urlnoBigPanda API base URL (default https://api.bigpanda.io; env fallback BIGPANDA_API_URL)
- bigpanda.incident.add_tag:
    environment_id: "{{ environment_id }}"
    incident_id:    "{{ incident_id }}"
    tag_id:         "priority"
    tag_value:      "P2"
    api_token:      "{{ api_token }}"

bigpanda.incident.assign

ParameterRequiredDescription
environment_idyesEnv containing the incident
incident_idyesIncident to assign
assignee_idyesBigPanda user UUID
api_tokenyesBigPanda User API Key
api_urlnoBigPanda API base URL (default https://api.bigpanda.io; env fallback BIGPANDA_API_URL)
- bigpanda.incident.assign:
    environment_id: "{{ environment_id }}"
    incident_id:    "{{ incident_id }}"
    assignee_id:    "{{ assignee_id }}"
    api_token:      "{{ api_token }}"

bigpanda.incident.resolve

ParameterRequiredDescription
environment_idyesEnv containing the incident
incident_idyesIncident to resolve
resolution_commentnoPosted to the timeline before close
api_tokenyesBigPanda User API Key
api_urlnoBigPanda API base URL (default https://api.bigpanda.io; env fallback BIGPANDA_API_URL)
- bigpanda.incident.resolve:
    environment_id:     "{{ environment_id }}"
    incident_id:        "{{ incident_id }}"
    resolution_comment: "Fixed via automated runbook"
    api_token:          "{{ api_token }}"

bigpanda.incident.resolve_alert

ParameterRequiredDescription
environment_idyesEnv containing the alerts
alert_idsyesList of alert UUIDs (≤ 500 per call)
commentsnoResolution comment attached to the batch
api_tokenyesBigPanda User API Key
api_urlnoBigPanda API base URL (default https://api.bigpanda.io; env fallback BIGPANDA_API_URL)
- bigpanda.incident.resolve_alert:
    environment_id: "{{ environment_id }}"
    alert_ids:      ["5d09d221aebaec1c43ccd448", "5cff623a21169351a82cb5e2"]
    comments:       "Marking for regional similarity"
    api_token:      "{{ api_token }}"

bigpanda.incident.merge

ParameterRequiredDescription
environment_idyesEnv containing the incidents
incident_idyesTarget incident (absorbs the others)
source_incidentsyesList of incident UUIDs to merge into the target
commentnoPosted to the timeline
api_tokenyesBigPanda User API Key
api_urlnoBigPanda API base URL (default https://api.bigpanda.io; env fallback BIGPANDA_API_URL)
- bigpanda.incident.merge:
    environment_id:   "{{ environment_id }}"
    incident_id:      "{{ incident_id }}"
    source_incidents: ["incA", "incB"]
    comment:          "Same root cause"
    api_token:        "{{ api_token }}"

bigpanda.incident.split

ParameterRequiredDescription
environment_idyesEnv containing the incident
incident_idyesSource incident to split alerts out of
alert_idsyesAlert UUIDs to move into a new incident
commentnoPosted to the timeline
api_tokenyesBigPanda User API Key
api_urlnoBigPanda API base URL (default https://api.bigpanda.io; env fallback BIGPANDA_API_URL)
- bigpanda.incident.split:
    environment_id: "{{ environment_id }}"
    incident_id:    "{{ incident_id }}"
    alert_ids:      ["alertX", "alertY"]
    comment:        "Different host class"
    api_token:      "{{ api_token }}"

Quick local test

For a fast sanity check from a laptop:

# install ansible-core
brew install ansible

# install the collection from Galaxy (or Automation Hub)
ansible-galaxy collection install bigpanda.incident

# dry run (no network calls)
ansible-playbook -i 'localhost,' -c local --check \
  -e environment_id=<env-uuid> \
  -e incident_id=<inc-uuid> \
  -e api_token=<your-token> \
  -e msg="Hello from Ansible" \
  /dev/stdin <<'YAML'
- hosts: localhost
  tasks:
    - bigpanda.incident.comment:
        environment_id: "{{ environment_id }}"
        incident_id:    "{{ incident_id }}"
        comment:        "{{ msg }}"
        api_token:      "{{ api_token }}"
YAML

Drop --check to make the real API call. Each module supports check mode and will return the url, method, and payload it would have sent — useful for previewing a destructive operation before running it.


Targeting EU / dedicated tenants

BigPanda is hosted at multiple endpoints. Set api_url on each module, or once per play via module_defaults:

- hosts: localhost
  module_defaults:
    group/bigpanda.incident.all:
      api_url:   "{{ bigpanda_api_url | default('https://api.bigpanda.io') }}"
      api_token: "{{ bigpanda_api_token }}"
  tasks:
    - bigpanda.incident.comment:
        environment_id: "{{ environment_id }}"
        incident_id:    "{{ incident_id }}"
        comment:        "Investigating"

Common values:

Tenantapi_url
US (default)https://api.bigpanda.io
EU (prod-eu-central-1)https://eu-api.bigpanda.io
Dedicatedprovided by your BigPanda CSM

api_url also reads from the BIGPANDA_API_URL environment variable, which is handy for execution-environment image overrides.


Testing in Ansible Automation Platform

To exercise every module from the AAP Controller UI (Project → Job Template → Survey), use the companion repository bigpandaio/bigpanda-ansible-test.

It contains one playbook per module, a collections/requirements.yml that pulls bigpanda.incident from Automation Hub at Project-sync time, and a README with the full Job Template + Survey configuration for every module — variable names, types, defaults, descriptions, and a recommended safe-to-destructive launch order.

If you don't already have an AAP instance, the fastest free option is the Red Hat Developer Sandbox, which provisions AAP 2.5 with Automation Controller, EDA Controller, and Private Automation Hub in a single click.


EDA rulebook

extensions/eda/rulebooks/bigpanda-webhook.yml listens on TCP 6000 and matches the BigPanda Notifications Webhook v2 payload shape:

RuleConditionDefault action
1event.payload.incident.resolved == trueRun AAP job template BigPanda - On Incident Resolved
2event.payload.incident.active == true AND event.payload.incident.status == "critical"Run AAP job template BigPanda - On Critical Incident

Both rules extract incident_id from event.payload.incident.id and environment_id from event.payload.metadata.environment_id and pass them as extra_vars to the downstream job template.

Wire your AAP-side job templates to do the actual remediation. Configure your BigPanda share integration to POST to the EDA listener URL.

For an auth-protected listener, uncomment the token and hmac_secret fields at the top of the rulebook.


License

GPL-2.0-or-later. See COPYING in the repo root.

Certification

Product
2.4
2.5
2.6
2.7
DocumentationDependencies
No dependencies
There are currently no dependencies for this collection.
View in Automation Hub
Red Hat logoLinkedInYouTubeFacebookTwitter

Platforms

Products & services

Try, buy, sell

Help

About Red Hat Ecosystem Catalog

The Red Hat Ecosystem Catalog is the official source for discovering and learning more about the Red Hat Ecosystem of both Red Hat and certified third-party products and services.

We’re the world’s leading provider of enterprise open source solutions—including Linux, cloud, container, and Kubernetes. We deliver hardened solutions that make it easier for enterprises to work across platforms and environments, from the core datacenter to the network edge.

© 2026 Red Hat, LLC
Feedback