ix-plugin-hub / iocage-plugin-index

Community created JSON files for plugins.
153 stars 112 forks source link

x x

GitHub Workflow Status Cirrus CI - Task and Script Build Status

iocage-ix-plugins

Community created plugins for TrueNAS and FreeBSD

Creating Plugins

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.

Installing Plugins

Using Local File

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".

Pulling from Internet

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"

Plugin installation tests

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.

Plugin block

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"

Block variables