Skip to content

Instantly share code, notes, and snippets.

@ghuntley
Created September 6, 2011 03:43
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ghuntley/1196525 to your computer and use it in GitHub Desktop.
Save ghuntley/1196525 to your computer and use it in GitHub Desktop.
FreeNAS (core) + Community Addon

Package Management:

<ghuntley> so; if some core effort was put into plugin architecture then we could let the community run free and do their thing and allow iX to focus on corenas.
<molander> yes, that's definitely the plan
<molander> we are going to do it exactly as you surmise; using a jail to hold 3rd party add-ons
<molander> with the PC-BSD PBI infrastructure for "official" FreeNAS add-ons that modify the menu
<ghuntley> " PC-BSD uses files with the .pbi filename extension which, when double-clicked, bring up an installation wizard program. An autobuild system tracks the FreeBSD ports collection and generates new PBI's     daily. The generated PBI's are maintained at the PC-BSD software repository."
<ghuntley> is that what you were talking about re: PBI plugin architecture?
<molander> yah, so a slightly mod'd PBI can easily install the app with dependencies and modify the menu     system for the app
<molander> yes
<molander> so some questions to answer would be should we separate a PBI jail from a general ports/pkg jail 
<molander> should we have a pbi viewer/installer in the GUI
<molander> etc
<molander> a nice advantage is we've got a wizard to build PBI's so that windows/linux guys should be able to work through creating them with little effort
<molander> yah, PBI Builder *should* be in the PC-BSD 9 Beta 1.5
<molander> maybe Kris added it to the FreeBSD ports tree for 9
<ghuntley> package name?
<molander> ok yes, pbi-manager and pbimaker

Database:

<ghuntley> Plugin settings/configuration should be stored in an seperate sqlite database.
<ghuntley> jailbox that shit to prevent users from cocking up core freenas.
<molander> right 

Jailing:

<molander> so, we think it would be interesting to have the option of spinning off multiple jails 
<molander> and perhaps beginning jailing the FreeNAS services themselves
<molander> kris from pc-bsd also has a pretty interesting jail management tool called Warden
<molander> it's GUI-based in qt but knowing Kris, it's probably all cli, too
<molander> so we might take a look at writing a python front-end to it
<molander> we've got some neat ideas for jail load balancing, seamless migration of jails, etc
<molander> we've just begun breaking freenas back down to it's framework
<molander> so it can be an easy appliance-kit
<molander> and maybe do a demo of that with BIND
<molander> or ipfw/f
<molander> pf*

Networking:

  • 1 x IP Address for FreeNAS (core)
  • 1 x IP Address for FreeNAS (jail) which is shared between all plugins.

or

  • 1 x IP address per "plugin/jail"

AVAHI:

How does a plugin advertise via AVAHI? Should it use the core freenas IP or should the jail have an independent AVAHI service running?

freenas/nanobsd/Files/usr/local/etc/avahi/services$ ls -ltr 
-rw-r--r-- 1 ghuntley ghuntley 1200 2011-09-05 18:12 afp.service
-rw-r--r-- 1 ghuntley ghuntley  569 2011-09-05 18:12 cifs.service

File-system:

Where should plugins be stored? UnionFS? On ZFS vol ufs? On USB core-fileystems?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment