Traefik Plugins Experimental Configuration¶
Overview¶
This guide provides instructions on how to configure and use the new experimental plugins install configuration option in Traefik. The plugins option introduces a system to extend Traefik capabilities with custom middlewares and providers.
Experimental
The plugins option is currently experimental and subject to change in future releases.
Use with caution in production environments.
Enabling Plugins¶
The plugins option is an install configuration parameter. To enable a plugin, you need to define it in your Traefik install configuration
experimental:
plugins:
plugin-name: # The name of the plugin in the routing configuration
moduleName: "github.com/github-organization/github-repository" # The plugin module name
version: "vX.XX.X" # The version to use[experimental.plugins.plugin-name]
moduleName = "github.com/github-organization/github-repository" # The plugin module name
version = "vX.XX.X" # The version to use# The plugin module name
# With plugin-name the name of the plugin in the routing configuration
--experimental.plugins.plugin-name.modulename=github.com/github-organization/github-repository
--experimental.plugins.plugin-name.version=vX.XX.X # The version to useTo learn more about how to add a new plugin to a Traefik instance, please refer to the developer documentation.
Plugin Options¶
| Field | Description | Type | Required |
|---|---|---|---|
moduleName |
Plugin's module name. | string | Yes |
version |
Plugin's version. | string | Yes |
hash |
Plugin's hash to validate. | string | No |
settings |
Plugin's settings (works only for wasm plugins). | object | No |
settings.envs |
Environment variables to forward to the wasm guest. | []string | No |
settings.mounts |
Directory to mount to the wasm guest. | []string | No |
settings.useUnsafe |
Allow the plugin to use unsafe and syscall packages. | bool | No |
Local Plugins¶
Local plugins allow you to use plugins from a local directory, without publishing them to the Traefik plugin catalog.
experimental:
localPlugins:
plugin-name: # The name of the plugin in the routing configuration
moduleName: "github.com/github-organization/github-repository" # The plugin module name[experimental.localPlugins.plugin-name]
moduleName = "github.com/github-organization/github-repository" # The plugin module name# The plugin module name
# With plugin-name the name of the plugin in the routing configuration
--experimental.localplugins.plugin-name.modulename=github.com/github-organization/github-repositoryLocal Plugin Options¶
| Field | Description | Type | Required |
|---|---|---|---|
moduleName |
Plugin's module name. | string | Yes |
settings |
Plugin's settings (works only for wasm plugins). | object | No |
settings.envs |
Environment variables to forward to the wasm guest. | []string | No |
settings.mounts |
Directory to mount to the wasm guest. | []string | No |
settings.useUnsafe |
Allow the plugin to use unsafe and syscall packages. | bool | No |