Installing an Ignition Designer Plugin when spinning up a Docker Container

I am doing some work with Ignition + Docker + Kubernetes and I wanted to know if it is possible to install a plugin module when spinning up an ignition container? I want to use the Tag CICD plugin to have better source control when working in Designer.

Some of this might depend on what version you're using (8.1.x or 8.3.x), but you've got a few options:

  1. Build a derived image that places the module into /usr/local/bin/ignition/user-lib/modules alongside the other built-in modules. On 8.1.x, it will always be loaded if present. On 8.3.x, it will be loaded on a first-launch (fresh data volume) and treated as a built-in module (only able to be disabled, not uninstalled).
  2. Use an init container to retrieve the module and place accordingly prior to launch of the main Ignition container. Again, your approach may vary based on version--Ignition 8.3.x uses a data/modules.json to define which modules should be loaded/enabled on startup.
  3. On Docker only, you can simply bind-mount the module file directly into place.

With Ignition 8.3.x, you also have new environment variables such as ACCEPT_MODULE_LICENSES and ACCEPT_MODULE_CERTS to automate auto-acceptance of third-party modules. If you're needing to integrate third-party modules in 8.1.x, you might find useful information in my ignition-derived-example repo.

Let me know if you'd like more information on any of these options based on what you think you need.

1 Like