Community created plugins for TrueNAS and FreeBSD
Add a plugin JSON file to this repo along with an appropriate icon in the icons directory.
After creating the JSON file and adding an icon, add the plugin to the INDEX file. If the plugin is approved, it appears in the list of iocage plugins.
For more detailed information on creating a plugin, see Create a Plugin.
Install a plugin using a local file:
iocage fetch -P /path/to/local/file.json ip4_addr="interface|IPaddress"
where interface is the name of the active network interface and IP address is the desired IP address for the plugin.
For example, ip4_addr="em0|10.238.4.196"
.
Install a plugin from the internet:
iocage fetch -P jenkins -g https://github.com/ix-plugin-hub/iocage-plugin-index ip4_addr="interface|IPaddress"
where interface is the name of the active network interface and IP address is the desired IP address for the plugin.
For example, ip4_addr="igb0|192.168.0.91"
This repository contains cirrus-ci tasks for automated plugin installation tests executed as a part of the PR checks and on the master
branch.
.cirrus/install_script.sh is the installation test script run for every plugin included in the .cirrus.yml file.
The following .cirrus.yml
task shows an example of needed YAML section to enable automatic installation test for a plugin.
<PLUGIN_NAME>_task:
<<: *INSTALL_PLUGIN
only_if: "changesInclude('<PLUGIN_NAME>.json', '.cirrus/install_script.sh')"
matrix:
- freebsd_instance:
image_family: freebsd-12-2
env:
PLUGIN_FILE: "<PLUGIN_NAME>.json"
<PLUGIN_NAME>
should equal (and be replaced with) the plugin JSON file name (without the.json
file suffix)- The
matrix
->freebsd_instance
->image_family
should match the plugin manifest FreeBSD version. Alternatively thismatrix
can be a list offreebsd_instances
with different versions if multiple FreeBSD versions are supported or needed to be tested - required
env
variables:PLUGIN_FILE
should equal the plugin manifest file and is the one parsed inside theinstall_script
- optional
env
variables:ADMIN_UI_USER
should be used if there is a username/password required to reach the admin UI. Value should have the format:<username>:<password>
FOLLOW_REDIRECTS
if set to"false"
will not follow redirects to admin UI and treat a 3XX code as success for the admin portal UI checkSKIP_UI_CHECK
if set to"true"
will skip the admin portal UI check entirelySKIP_SERVICE_CHECK
if set to"true"
will skip checking if the services started inpost_install
are runningOVERRIDE_ADMIN_UI
check this UI URL after plugin installation instead of the URL specified in pluginui.json