Community Plugins and Call for Volunteers

Kris Moore

SVP of Engineering
Administrator
Moderator
iXsystems
Joined
Nov 12, 2015
Messages
1,448
With the release of 11.3 just around the corner, one exciting improvement is the new Community Plugins Repository. This is a great opportunity for FreeNAS enthusiasts to get more involved with the project by ensuring that new plugins are quickly vetted and made available to the FreeNAS community. iX plans to continue testing and pushing updates to our Official plugins repository, but we want to give you the option to quickly improve your workflow with unofficial plugins. We’re excited to work with the community to provide more tools to enhance FreeNAS!

So how can you get involved? Easy! All the action happens in our Community Repo on GitHub. Monitoring for pull requests, testing new plugins, and providing feedback or reviews on new plugin submissions is the best way to show your involvement. As the community repository grows and more people get involved, we want to grant additional repository access to active community members, allowing them to be “official” reviewers and approve pull requests.

If you have any questions about Community Plugins, please feel free to ask away and we’ll do our best to answer.

Thanks!
 

rexit1982

Dabbler
Joined
Oct 30, 2019
Messages
31
The information around options getting, setting and initial deployment could use some clarification. Diving deeper into the quasselcore example in the docs I think I figured it out, but if there are any "Hey you should really try to include xyz in your plugin config" that would be great to point out.
I'm also curious about the update/upgrade. With upgrades seeming to be based on release and releases look like they are handled based on repo branch, do you need different plugin files for every release level? Are updated versions triggered by plugin config or does it only make an internal call to pull a newer version of a pre-built package? Is it in anyway related to the revision key in the <plugin>.json file? Are there scripts that get called on firstboot after an update or upgrade?

If I completely missed some place that covered most of that let me know, I don't have any sort bsd background at all and when I started playing with duplicati it seemed like it would be prettier to sue the plugin structure instead of jsut installing it in a hand configured jail.
 

Kris Moore

SVP of Engineering
Administrator
Moderator
iXsystems
Joined
Nov 12, 2015
Messages
1,448
We're working a blog post/documentation on this whole process right now. Something should be up and online "soon".
 

rexit1982

Dabbler
Joined
Oct 30, 2019
Messages
31
Does incrementing the revision property trigger updates or does the update function only work on packages/ports?
 
Joined
Jan 4, 2014
Messages
1,644
@Kris Moore I notice that Tautulli is listed in the Official Repository and not the Community Repository. However, when I attempt to install it from the FreeNAS 11.3 Plugins UI, I'm greeted with the following message:

screenshot.81.png


If it's not an official plugin, shouldn't it reside in the Community Repo?

Secondly, concerning community plugins, the message is clear that IXsystems does not provide technical support for them. Well, neither should the plugin provider (unless maybe there's a problem with the package itself). I understand the need to keep plugin providers, whether official or community, at arm's length from the forum so they're not the target of support enquires that have nothing to do with the package itself. However, the last part of the message 'Thorough research is strongly recommended before installing or using an unofficial plugin' is somewhat vague and unhelpful. Do I interpret this part of the message as 'The community forum is your friend'? Is this the best mechanism for reporting package problems? It's an interesting dichotomy; protecting the identity of plugin providers versus reporting plugin issues.

new plugins are quickly vetted and made available to the FreeNAS community
My final point concerns plugins that are broken. The classic one is NextCloud, which interestingly is an official plugin. The forum is littered with posts discussing the brokenness of this plugin. There are some very clever forum members who have kindly given their time to provide workarounds and automated scripting that circumvent the use of this plugin. The message from the community is loud and clear 'Don't use this plugin!'.

It's another interesting dilemma for IXsystems. Leave the plugin in the collection or remove it?. Ideally, in the longer term, there should be a periodic audit of plugins in the official and community collections and an effective mechanism to get broken plugins fixed and returned to the collection or removed (preferably not).
 
Last edited:

waqarahmed

iXsystems
iXsystems
Joined
Aug 28, 2019
Messages
136
Does incrementing the revision property trigger updates or does the update function only work on packages/ports?

Hi @rexit1982. So revision property is used to determine if a plugin needs an update and if yes, system issues an alert in this case prompting the user to update his/her plugin. If the plugin packages updated and the user installed one is old, the alert is automatically issued. How ever there are times when changes are made to the plugin manifest and plugin maintainer would like the user to know this has happened, in that case the revision key is useful and we issue an alert based on that.

However this feature isn't available until release of next major version i.e 12.

If you are curious as to how it works in 12, we construct "epoch!manifest_version.version.revision" and then based on this issue an alert.
 

rexit1982

Dabbler
Joined
Oct 30, 2019
Messages
31
Hi @rexit1982. So revision property is used to determine if a plugin needs an update and if yes, system issues an alert in this case prompting the user to update his/her plugin. If the plugin packages updated and the user installed one is old, the alert is automatically issued. How ever there are times when changes are made to the plugin manifest and plugin maintainer would like the user to know this has happened, in that case the revision key is useful and we issue an alert based on that.

However this feature isn't available until release of next major version i.e 12.

If you are curious as to how it works in 12, we construct "epoch!manifest_version.version.revision" and then based on this issue an alert.
I've also been digging about and found that the artifcat repo seems to get cloned out to the plugin folder of a given jail. Are there any functions that update that clone and/or pull in new settings, overlay files etc? Does that repo and certain functions also get updated with iocage update? all that I can gather from the iocage documents is that the update command only really works with pkg.

I'd like to update the admin ui and such as certain settings get modified.
 

waqarahmed

iXsystems
iXsystems
Joined
Aug 28, 2019
Messages
136
@rexit1982 yes the repository does get updated whenever you update a plugin apart from the pkgs installed in the plugin jail. There are actually hooks as well if you want to run anything before the update happens or after the update is done inside the jail ( run anything as in run some script ).
 

Yorick

Wizard
Joined
Nov 4, 2018
Messages
1,912
The information around options getting, setting and initial deployment could use some clarification.

I'm completely baffled by this right now. It looks as if they're meant to be hooks into the plugin to configure parameters once it's running, but playing around in the UI, I don't see how a user accesses those.

Background: I am trying to figure out how to have one plugin "hook into" another, thinking about things like reverse proxy, grafana, and the like. I don't see a way that a plugin can call a function in another plugin during install, but arguably that should be left to the user. I think a small manual step of going back and configuring some parameters is fine, the question I have is: How?
 

rexit1982

Dabbler
Joined
Oct 30, 2019
Messages
31
I'm completely baffled by this right now. It looks as if they're meant to be hooks into the plugin to configure parameters once it's running, but playing around in the UI, I don't see how a user accesses those.

Background: I am trying to figure out how to have one plugin "hook into" another, thinking about things like reverse proxy, grafana, and the like. I don't see a way that a plugin can call a function in another plugin during install, but arguably that should be left to the user. I think a small manual step of going back and configuring some parameters is fine, the question I have is: How?

Changing the params is not in the 11.x UI. I forget when I found that out but it looks like something that jsut didn't come over yet in the plugins UI during the update. not sure if it is in 12 or not I have not played with that version yet. You can still change them in the cli using iocage, I think you ahve to have serviceset and serviceget in your properties file.
 

RegularJoe

Patron
Joined
Aug 19, 2013
Messages
330
If you have any questions about Community Plugins, please feel free to ask away and we’ll do our best to answer.

Hi Kris,

I would like to get the Bacula-Server plugin so that it works on FN11.2, make one for FN11.3 that works as well and then get it on the current TN12.0. In the past this was an iXsystems plugin. I there any reason why it cannot become a community one?

Thanks,
Joe
 

Kris Moore

SVP of Engineering
Administrator
Moderator
iXsystems
Joined
Nov 12, 2015
Messages
1,448
Hi Kris,

I would like to get the Bacula-Server plugin so that it works on FN11.2, make one for FN11.3 that works as well and then get it on the current TN12.0. In the past this was an iXsystems plugin. I there any reason why it cannot become a community one?

Thanks,
Joe

Nope, community plugin is just fine if you or somebody wants to contribute one.
 
Top