kuberneteskubernetes-helmmattermost

How to configure Mattermost Plugins


I have deployed Mattermost Team Edition from the Helm Chart onto my k8s Cluster and it's working great. The issue is that the config.json file is mounted as a secret, so configuration can't be done from the UI but in the config.json that is part of values.yaml in the helm chart. How does one configure plugins? For starters, I would like to enable the zoom plugin

configJSON: {
  "PluginSettings": {
    "Enable": true,
    "EnableUploads": true,
    "Directory": "./plugins",
    "ClientDirectory": "./client/plugins",
    "Plugins": {},
    "PluginStates": {
       "zoom": {
         "Enable": true
       },
       "com.mattermost.nps": {
         "Enable": false
       },
       "mattermost-webrtc-video": {
         "Enable": true
       },
       "github": {
         "Enable": true
       },
       "jira": {
         "Enable": true
       },
    }
}

Is this the right way of enabling the plugins? How do I configure the plugins, especially the zoom one needs API credentials..


Solution

  • I see two options:

    The safe way

    Run another Mattermost server instance locally (for exemple using the Mattermost preview Docker, very easy to set up), configure your plugins and use its configuration file section for your cluster instances.

    The manual, error-prone way

    Edit the config.json yourself as you've started. For each plugin, there are two sections to edit, Plugins and PluginStates:

    "PluginSettings": {
            // [...]
            "Plugins": {
                "your.plugin.id": {
                    "pluginProperty1": "...",
                    "pluginProperty2": "...", 
                    "pluginProperty3": "...",
                    // [...]
                },
            },
            "PluginStates": {
                // [...]
                "your.plugin.id": {
                    "Enable": true
                },
            }
        }
    

    As you see, this requires to know what properties are defined for each plugin, for which there's only the solution to consult the plugin's documentation, or even it's code (look for a file called plugin.json at the root of the plugin's GitHub repo, in the settings section).

    I would recommand the first method if there's really no way for you to use the GUI to install&configure plugins.

    For other readers' information, in most Mattermost setups, you should be able to use the UI for this, even in High Availability Mode if your version is recent enough.