TDP Plugin Wrappers

In this repo you will find plugin wrappers built and tested for TAP 1.7 based on OSS backstage plugins.

Currently this repo contains 35 tested plugin wrappers.

An example TDP Config file is provided as well.

Plugin Wrappers

Github

Github Insights

Required Configuration

This plugin requires configuring:

  1. Github Authentication
  2. Github Integration
Annotations

Required annotations:

  • github.com/project-slug

Optional annotations:

  • github.com/project-readme-path

Github Pull Requests

Required Configuration

This plugin requires configuring:

  1. Github Authentication
  2. Github Integration
Annotations

Required annotations:

  • github.com/project-slug

Optional annotations:

  • roadie-backstage-pull-requests/default-filter

Github Issues

Required Configuration

This plugin requires configuring:

  1. Github Authentication
  2. Github Integration
Annotations

Required annotations:

  • github.com/project-slug

Github Actions

Required Configuration

This plugin requires configuring:

  1. Github Authentication
  2. Github Integration
Annotations

Required annotations:

  • github.com/project-slug

Github Security Insights

Required Configuration

This plugin requires configuring:

  1. Github Authentication
  2. Github Integration
Annotations

Required annotations:

  • github.com/project-slug

Azure DevOps

Frontend Plugin

Required Configuration

This plugin requires configuring the backend plugin

Annotations

Required Annotations:

  • dev.azure.com/project-repo

Optional Annotations:

  • dev.azure.com/project
  • dev.azure.com/build-definition

Backend Plugin

Required Configuration

This plugin requires a dedicated Azure DevOps stanza:

azureDevOps:
  host: dev.azure.com
  token: AZURE_TOKEN
  organization: my-company

Configuration Details:

  • host and token can be the same as the ones used for the integration section
  • AZURE_TOKEN should be replaced with a Personal Access Token with read access to both Code and Build
  • organization is your Azure DevOps Services (cloud) Organization name or for Azure DevOps Server (on-premise) this will be your Collection name

Tekton

Frontend Plugin

Required Configuration

This plugin has no extra dependencies

Annotations

Required Annotations:

  • backstage.io/kubernetes-label-selector or backstage.io/kubernetes-id
  • janus-idp.io/tekton

Optional Annotations:

  • backstage.io/kubernetes-namespace

Jenkins

Frontend Plugin

Required Configuration

This plugin requires configuring the backend plugin

Annotations

Required Annotations:

  • jenkins.io/job-full-name

Backend Plugin

Required Configuration

This plugin needs a dedicated jenkins stanza which has multiple formats based on your use case:

Simgle Jenkins Server

jenkins:
  baseUrl: https://jenkins.example.com
  username: backstage-bot
  apiKey: 123456789abcdef0123456789abcedf012

Multiple Jenkins Servers

jenkins:
  instances:
  - name: default
    baseUrl: https://jenkins.example.com
    username: backstage-bot
    apiKey: 123456789abcdef0123456789abcedf012
  - name: departmentFoo
    baseUrl: https://jenkins-foo.example.com
    username: backstage-bot
    apiKey: 123456789abcdef0123456789abcedf012

Configuration Details:

  • when using multiple jenkins servers, the value of the component annotation when referencing a jenkins server which is not named default must be in the format <JENKINS CONFIG NAME>:<FOLDER>/<JOB>. if the name section is not added, the default jenkins server will be used.

TODO

Frontend Plugin

Required Configuration

This plugin requires configuring the backend plugin

Annotations

Optional Annotations:

  • backstage.io/source-location

Backend Plugin

Required Configuration

This plugin has no needed configuration.

Harbor

Frontend Plugin

Required Configuration

This plugin requires configuring the backend plugin

Annotations

Required Annotations:

  • goharbor.io/repository-slug

Backend Plugin

Required Configuration

under app_config in TAP GUI section you must add the following:

harbor:
  baseUrl: https://YOUR_HARBOR_FQDN #! Required
  username: YOUR_HARBOR_USER #! Required
  password: YOUR_HARBOR_USER #! Required

FluxCD

Frontend Plugin

Required Configuration

This plugin has no extra dependencies

Annotations

Required Annotations:

  • backstage.io/kubernetes-label-selector or backstage.io/kubernetes-id

Optional Annotations:

  • backstage.io/kubernetes-namespace

Grafana

Frontend Plugin

Required Configuration

under app_config we must add values to the proxy section as well as a dedicated section for Grafana:

proxy:
  '/grafana/api':
    # May be a public or an internal DNS
    target: https://YOUR_GRAFANA_FQDN
    headers:
      Authorization: Bearer YOUR_GRAFANA_TOKEN

grafana:
  # Publicly accessible domain
  domain: https://YOUR_GRAFANA_FQDN

  # Is unified alerting enabled in Grafana?
  # See: https://grafana.com/blog/2021/06/14/the-new-unified-alerting-system-for-grafana-everything-you-need-to-know/
  # Optional. Default: false
  unifiedAlerting: false
Annotations

Required Annotations:

  • grafana/dashboard-selector

Prometheus

Frontend Plugin

Required Configuration

under app_config we must add values to the proxy section as well as a dedicated section for prometheus:

proxy:
  '/prometheus/api':
    # url to the api and path of your hosted prometheus instance
    target: http://YOUR_PROMETHEUS_FQDN_INCLUDING_PORT/api/v1/
    changeOrigin: true
    secure: false

# Defaults to /prometheus/api and can be omitted if proxy is configured for that url
prometheus:
  proxyPath: /prometheus/api
  uiUrl: http://YOUR_PROMETHEUS_FQDN_INCLUDING_PORT
Annotations

Required Annotations:

  • prometheus.io/rule

Tech Radar

Frontend Plugin

Tech Insights

Frontend Plugin

Required Configuration

This plugin requires configuring the backend plugin

Backend Plugin

OpenAI - ChatGPT

Frontend Plugin

Required Configuration

This plugin requires configuring the backend plugin

Backend Plugin

Required Configuration

under app_config in TAP GUI section you must add the following:

openai:
  apiKey: YOUR_OPENAI_API_KEY #! Required
  baseURL: #! (OPTIONAL) - Defaults to https://api.openai.com/v1 which is the public OpenAI endpoint

K8sGPT

Frontend Plugin

Developer Toolbox

Frontend Plugin

Backstage Dev Tools

Frontend Plugin

Required Configuration

This plugin requires configuring the backend plugin

Backend Plugin

Hashicorp Vault

Frontend Plugin

Required Configuration

This plugin requires configuring the backend plugin

Annotations

Required Annotations:

  • vault.io/secrets-path

Backend Plugin

Required Configuration

under app_config we must add a dedicated section for our Vault configuration:

vault:
  baseUrl: http://your-internal-vault-url.svc
  publicUrl: https://your-vault-url.example.com
  token: <VAULT_TOKEN>
  secretEngine: 'customSecretEngine' # Optional. By default it uses 'secrets'. Can be overwritten by the annotation of the entity
  kvVersion: <kv-version> # Optional. The K/V version that your instance is using. The available options are '1' or '2'
  schedule: # Optional. If the token renewal is enabled this schedule will be used instead of the hourly one
    frequency: { hours: 1 }
    timeout: { hours: 1 }

New Relic

New Relic APM

Required Configuration

under app_config we must add values to the proxy section:

proxy:
  '/newrelic/apm/api':
    target: "https://api.newrelic.com/v2"
    headers:
      X-Api-Key: YOURN_NEWRELIC_USER_API_KEY
    allowedHeaders:
      - "link"
Annotations

This plugin has no needed annotations.

New Relic Dashboards

Required Configuration

under app_config we must add values to the proxy section:

proxy:
  '/newrelic/api':
    target: "https://api.newrelic.com/v2"
    headers:
      X-Api-Key: YOURN_NEWRELIC_USER_API_KEY
Annotations

Required annotations:

  • newrelic.com/dashboard-guid

Kafka

Frontend Plugin

Required Configuration

This plugin requires the related backend plugin.

Annotations

Required annotations:

  • kafka.apache.org/consumer-groups

Optional annotations:

  • kafka.apache.org/dashboard-urls

Backend Plugin

Required Configuration

under app_config we must add a dedicated kafka section:

kafka:
  clientId: YOUR_CLIUENT_ID
  clusters:
    - name: CLUSTER_NAME
      brokers:
        - BROKER_ADDRESS:BROKER_PORT
      ssl: true # Optional
      sasl: # Optional
        mechanism: plain # or 'scram-sha-256' or 'scram-sha-512' # Optional
        username: my-username # Optional
        password: my-password # Optional

Datadog

Frontend Plugin

Required Configuration

No required configuration for this plugin.

Annotations

Required Annotations:

  • datadoghq.com/dashboard-url

Optional annotations:

  • datadoghq.com/graph-token
  • datadoghq.com/site

ML Workflows

Frontend Plugin

Required Configuration

This plugin requires the related backend plugin. You must also set the following configuration in your TAP values under the app_config section:

mlbackstage:
  clusterName: CLUSTER_NAME
  imageRepoBaseUrl: IMAGE_REPO_BASE_URL

Backend Plugin