Skip to content

firehydrant/signals-migrator

Repository files navigation

Signals Migrator

This can be used to import resources from legacy alerting providers into Signals.

Screencast signals-migrator in action

Usage

Download the binary from GitHub releases, or if you prefer using Go toolchain, run:

go install github.com/firehydrant/signals-migrator@latest

Generate Signals resources from external alerting providers

Ensure these environment variables are set:

  • FIREHYDRANT_API_KEY (retrieve this from FireHydrant Settings > API Keys)
  • PROVIDER e.g. 'PagerDuty'
  • PROVIDER_API_KEY
  • PROVIDER_APP_ID (optional, not all providers require this)

Afterwards, run signals-migrator import (or go run . import for development version), which will generate output/[PROVIDER]_to_fh_signals.tf file.

During the process, we will attempt to match users by email to existing users in FireHydrant. For users without a match, we will ask you to decide on whether to skip the user or manually match them to existing user.

Important

If you are using Single Sign-On (SSO) for FireHydrant, users of your organization may need to log in to FireHydrant at least once before running the migration tool.

On the other hand, we can't reliably match teams ourselves as they have wide variance of identification. As such, we will ask you to select from three options:

  1. Skip the team
  2. Create a new team
  3. Match to an existing team

Afterwards, the tool will generate the mapping appropriately, handling de-duplication and merging as necessary.

Supported providers

We support importing from various providers. Refer to individual documentation for provider-specific instructions:

PagerDuty Opsgenie VictorOps
Docs PagerDuty Opsgenie VictorOps
Import users
Import teams and members
Import escalation policies
Import scheduling strategy

Developing

A devcontainer setup has been prepared to be used in VS Code. Run direnv allow to auto-load .env file.

If alternative method is preferred, you will need:

  • Go compiler
  • Install tools in ./deps.sh

Also recommended to smooth out development outside of devcontainer:

  • direnv for autoloading .env file, also automatically adds ./bin to $PATH.
  • just for running tasks defined in Justfile.

Most commands in Justfile can be run out in regular bash too.