LogoLogo
Reliability HubAPI DocsPlatform
  • Welcome to Steadybit
  • Quick Start
    • First Steps
    • Compatibility
    • Install Agent and Extensions
    • Run an Experiment
    • Deploy Example Application
  • Concepts
    • Actions
    • Discovery
    • Query Language
  • Install and Configure
    • Install Agent
      • Architecture
      • Install on Kubernetes
      • Install on Linux Hosts
      • Install using Docker Compose
      • Install on Amazon ECS
      • Extension Registration
      • Using Mutual TLS for Extensions
      • Configuration Options
      • Agent State
      • Agent API
    • Install On-Prem Platform
      • Install on Minikube
      • Advanced Agent Authentication
      • Configuration Options
      • Maintenance & Incident Support
      • Syncing Teams via OIDC Attribute
    • Manage Environments
    • Manage Teams and Users
      • Users
      • Teams
      • Permissions
    • Manage Experiment Templates
  • Use Steadybit
    • Experiments
      • Design
      • Run
      • Run History
      • Schedule
      • Variables
      • Emergency Stop
      • Share
        • Templates
        • Duplicate
        • File
      • OpenTelemetry Integration
    • Explorer
      • Landscape
      • Targets
      • Advice
    • Reporting
  • Integrate with Steadybit
    • Extensions
      • Anatomy of an Extension
      • Extension Installation
      • Extension Kits
      • Available Extensions
    • API
      • Interactive API Documentation
    • CLI
    • Badges
    • Webhooks
      • Custom Webhooks
      • Preflight Webhooks
    • Preflight Actions
    • Slack Notifications
    • Audit Log
    • Hubs
  • Troubleshooting
    • How to troubleshoot
    • Common fixes
      • Extensions
      • Agents
      • On-prem platform
Powered by GitBook

Extension Docs

  • ActionKit
  • DiscoveryKit
  • EventKit

More Resources

  • Reliability Hub
  • API Docs
On this page
  • Overview
  • Kubernetes Auto Registration
  • Using Environment Variables
  • Using Configuration Files
  • Using the Agent API
  • Verify registered extensions

Was this helpful?

Edit on GitHub
  1. Install and Configure
  2. Install Agent

Extension Registration

Last updated 3 months ago

Was this helpful?

Overview

Extensions needs to be registered with the agent. There are multiple ways to do that:

  • (default behavior when using Kubernetes with our helm charts)

  • (default behavior when using Linux packages)

Kubernetes Auto Registration

The agent is looking for services and pods with an annotation steadybit.com/extension-auto-registration. These annotations are already added to our extensions if you use our official helm charts.

Kubernetes Auto Registration fine tuning

If you want to fine tune the auto registration, you can configure the mechanism to:

  • include only extension pods matching a given label selector

  • exclude extensions pod matching a given label selector

  • include only extension from a specific namespace

agent:
  extensions:
    autoregistration:
      matchLabelsInclude:
        custom/extension-i-want-to-register: true
      matchLabelsExclude:
        app.kubernetes.io/name: extension-host
      namespace: my-namespace
STEADYBIT_AGENT_EXTENSIONS_AUTOREGISTRATION_MATCHLABELS_0_KEY=custom/extension-i-want-to-discover
STEADYBIT_AGENT_EXTENSIONS_AUTOREGISTRATION_MATCHLABELS_0_VALUE=true
STEADYBIT_AGENT_EXTENSIONS_AUTOREGISTRATION_MATCHLABELSEXCLUDE_0_KEY=app.kubernetes.io/name
STEADYBIT_AGENT_EXTENSIONS_AUTOREGISTRATION_MATCHLABELSEXCLUDE_0_VALUE=extension-host
STEADYBIT_AGENT_EXTENSIONS_AUTOREGISTRATION_NAMESPACE=my-namespace

Using Environment Variables

You can specify environment Variables via agent.env files or directly via the command line.

Please note that these environment variables are index-based (referred to as n) to register multiple extension instances.

Valid Types are:

Environment Variable (n refers to the index of the extension's instance) (type refers to the type of the extension's endpoint)

Required

Description

STEADYBIT_AGENT_type_EXTENSIONS_n_URL

yes

Fully-qualified URL of the endpoint, e.g., http://my-extension.steadybit-extension.svc.cluster.local:8080/actions

STEADYBIT_AGENT_type_EXTENSIONS_n_METHOD

Optional HTTP method to use. Default: GET

STEADYBIT_AGENT_type_EXTENSIONS_n_BASIC_USERNAME

Optional basic authentication username to use within HTTP requests.

STEADYBIT_AGENT_type_EXTENSIONS_n_BASIC_PASSWORD

Optional basic authentication password to use within HTTP requests.

Example: To register, e.g., two ACTION extensions, where the second one requires basic authentication, you use

  • STEADYBIT_AGENT_ACTIONS_EXTENSIONS_0_URL,

  • STEADYBIT_AGENT_ACTIONS_EXTENSIONS_1_URL,

  • STEADYBIT_AGENT_ACTIONS_EXTENSIONS_1_BASIC_USERNAME and

  • STEADYBIT_AGENT_ACTIONS_EXTENSIONS_1_BASIC_PASSWORD.

You can also register extension without specifying the type, e.g., STEADYBIT_AGENT_EXTENSIONS_REGISTRATIONS_0_URL. In this case, the agent will try all known Types.

Environment Variable (n refers to the index of the extension's instance)

Required

Description

STEADYBIT_AGENT_EXTENSIONS_REGISTRATIONS_n_URL

yes

Fully-qualified URL of the endpoint, e.g., http://my-extension.steadybit-extension.svc.cluster.local:8080/actions

STEADYBIT_AGENT_EXTENSIONS_REGISTRATIONS_n_METHOD

Optional HTTP method to use. Default: GET

STEADYBIT_AGENT_EXTENSIONS_REGISTRATIONS_n_BASIC_USERNAME

Optional basic authentication username to use within HTTP requests.

STEADYBIT_AGENT_EXTENSIONS_REGISTRATIONS_n_BASIC_PASSWORD

Optional basic authentication password to use within HTTP requests.

Using Configuration Files

Linux packages installations are using this approach by default. The package installer of the extensions is writing configuration files to /etc/steadybit/extensions.d/extension-*.yaml which are read by the agent.

The content of each file is a YAML document with the following structure:

url: http://123.45.67.890:8085
types:
  - ACTION
  - DISCOVERY

Using the Agent API

Extension registrations are persisted using the configured persistence provider. With each agent restart, the agent will re-register these manual extensions registrations.

Example:

POST http://localhost:42899/extensions

{
  "url": "http://123.45.67.890:8085",
  "types": [
    "ACTION",
    "DISCOVERY"
  ]
}

Verify registered extensions

To check which extensions are registered in the agent, you need to take a look at the agent's logs.

Example output:

Jan 16 07:50:49 steadybit-agent-0 steadybit-agent INFO Extension-registry change: ADD Extension{source='KubernetesExtensionRegistrator', httpEndpointRef=GET http://steadybit-agent-extension-jmeter.steadybit-agent.svc.cluster.local:8087}
Jan 16 07:50:49 steadybit-agent-0 steadybit-agent INFO Extension-registry change: ADD Extension{source='KubernetesExtensionRegistrator', httpEndpointRef=GET http://steadybit-extension-loadtest-9005.steadybit-agent.svc.cluster.local:9005}
Jan 16 07:50:49 steadybit-agent-0 steadybit-agent INFO Extension-registry change: ADD Extension{source='KubernetesExtensionRegistrator', httpEndpointRef=GET http://steadybit-agent-extension-gatling.steadybit-agent.svc.cluster.local:8087}
Jan 16 07:50:49 steadybit-agent-0 steadybit-agent INFO Extension-registry change: ADD Extension{source='KubernetesExtensionRegistrator', httpEndpointRef=GET http://steadybit-agent-extension-k6.steadybit-agent.svc.cluster.local:8087}

DISCOVERIES referring to a .

ACTIONS referring to a .

EVENTS referring to a .

ADVICE referring to a .

You can also register extensions via the .

You can find detailed information about the agent API in the documentation.

index response of a discovery
list of actions
list of event listeners
list of advices
Agent API
Agent API
Kubernetes Auto Registration
Environment Variables
Configuration Files
Agent API