Skip to content

sadaszewski/focker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Focker 2

- IMPORTANT BACKWARDS INCOMPATIBLE CHANGE
-
- Focker now uses its own service to start the jails on boot. Use:
- focker bootstrap filesystem to create the new necessary filesystem
- (/focker/jailconf). Use scripts/migrate_jailconf.py to migrate your
- jail configs to the new location. Furthermore, you need to place and
- enable scripts/focker_service in /usr/local/etc/rc.d/.

- IMPORTANT LEGAL NOTICE
-
- I oppose totalitarianism, anti-constitutional crimes and crimes against
- Human Rights. If you support forced or effectively forced gene therapy
- (or other medical procedures), digital identity tracking, contact tracing,
- lockdowns and/or abolition of cash, I expressly deny any license to you
- for using this and/or any other software of mine in any way, shape or form.
- GPL COMPATIBILITY NOTICE
-
- Whenever GPLv3 contains a statement conflicting with the above Legal Notice
- the above Legal Notice shall prevail.

Visit:

  • covidhub.ch,
  • verfassungsfreunde.ch,
  • actions-suisse.ch,
  • banbye.pl

to get your facts straight.


To install Focker 2, please read the Installation manual.

For introduction, see Basic Usage Guide or Detailed Intro. For an end-to-end example with description, see the scm-manager example.

Focker underwent a not-so-slow overhaul in the period of June-August 2021 which was concluded by the release of version 2.0. The aim was to make the code more structured, have better abstractions/more reusability and to lay foundations for the future development. Consequently, three major objectives have been achieved:

  • API - new abstractions constitute a framework which makes Focker as easy to use in custom code as in the command line,
  • Configurability - at the same time the way Focker's configuration is passed around has been remade, allowing to pass any and all Focker parameters either on the command line OR via environment variables OR by system/user-specific configuration files - /etc/focker.conf, /usr/local/etc/focker.conf and ~/focker.conf,
  • Plugins system - the native Focker command modules (image, jail, compose) have become plugins themselves and the rule now is to implement every new block of functionality as a plugin on top of the slim and robust core.

Three important mechanisms have changed:

  • Facets - facets and dictionary-based steps are innovations that vastly improve the image recipe writing experience,
  • FEnv (Focker Environment) Variables can be used to parametrize the processes of image and composition building.
  • Bootstrap - bootstrap is now more granular and gives user more control.

Focker 2.0 introduced as well many smaller Improvements:

  • Taking into account the exec.fib setting when running focker jail exec,
  • Allow for bootstrapping images using different versions of FreeBSD not only the current one,
  • Sorting of listing results,
  • Configurable prefix for names in /etc/jail.conf,
  • Configurable location (dataset) for focker objects.
  • Detect usage of volumes by jails when pruning
  • Roundtrip jail.conf parser
  • Automatically create mount destinations if they don't exist
  • Allow to include other Fockerfiles inside of a Fockerfile, as an alternative to the scheme of base images,
  • Make a few more settings configurable, e.g. whether to copy /etc/resolv.conf or not, possibility of static resolv.conf, etc.,

Future development will focus on providing the "Infrastructure as Code" functionality well-known from the Kubernetes (K8s) ecosystem and highly appreciated by the industry.

About

Focker is a FreeBSD image/jail orchestration tool in the vein of Docker.

Resources

License

Stars

Watchers

Forks

Packages

No packages published