propellor spin
This commit is contained in:
parent
4a8ca90d65
commit
06ebb4593a
|
@ -15,7 +15,7 @@ propellor (2.5.0) UNRELEASED; urgency=medium
|
||||||
* Mount /proc inside a chroot before provisioning it, to work around #787227
|
* Mount /proc inside a chroot before provisioning it, to work around #787227
|
||||||
* --spin now works when given a short hostname that only resolves to an
|
* --spin now works when given a short hostname that only resolves to an
|
||||||
ipv6 address.
|
ipv6 address.
|
||||||
* Added publish and publish' properties for systemd-spawn containers.
|
* Added publish property for systemd-spawn containers, for port publishing.
|
||||||
(Needs systemd version 220.)
|
(Needs systemd version 220.)
|
||||||
* Added bind and bindRo properties for systemd-spawn containers.
|
* Added bind and bindRo properties for systemd-spawn containers.
|
||||||
* Firewall: Port was changed to a newtype, and the Port and PortRange
|
* Firewall: Port was changed to a newtype, and the Port and PortRange
|
||||||
|
|
|
@ -38,6 +38,7 @@ import qualified Propellor.Property.Chroot as Chroot
|
||||||
import qualified Propellor.Property.Apt as Apt
|
import qualified Propellor.Property.Apt as Apt
|
||||||
import qualified Propellor.Property.File as File
|
import qualified Propellor.Property.File as File
|
||||||
import Propellor.Property.Systemd.Core
|
import Propellor.Property.Systemd.Core
|
||||||
|
import Propellor.Property.Mount
|
||||||
import Utility.FileMode
|
import Utility.FileMode
|
||||||
|
|
||||||
import Data.List
|
import Data.List
|
||||||
|
@ -165,8 +166,19 @@ nspawned c@(Container name (Chroot.Chroot loc system builderconf _) h) =
|
||||||
-- Chroot provisioning is run in systemd-only mode,
|
-- Chroot provisioning is run in systemd-only mode,
|
||||||
-- which sets up the chroot and ensures systemd and dbus are
|
-- which sets up the chroot and ensures systemd and dbus are
|
||||||
-- installed, but does not handle the other provisions.
|
-- installed, but does not handle the other provisions.
|
||||||
chrootprovisioned = Chroot.provisioned'
|
chrootprovisioned =
|
||||||
(Chroot.propigateChrootInfo chroot) chroot True
|
(toProp provisioner `onChange` umountProc)
|
||||||
|
<!>
|
||||||
|
(toProp (revert provisioner))
|
||||||
|
provisioner = Chroot.provisioned' (Chroot.propigateChrootInfo chroot) chroot True
|
||||||
|
|
||||||
|
-- The chroot's /proc is left mounted by the chroot provisioning,
|
||||||
|
-- but that will prevent systemd-nspawn from starting systemd in
|
||||||
|
-- it, so unmount.
|
||||||
|
umountProc = check (elem procloc <$> mountPointsBelow loc) $
|
||||||
|
property (procloc ++ " unmounted") $ do
|
||||||
|
makeChange $ umountLazy procloc
|
||||||
|
procloc = loc </> "proc"
|
||||||
|
|
||||||
-- Use nsenter to enter container and and run propellor to
|
-- Use nsenter to enter container and and run propellor to
|
||||||
-- finish provisioning.
|
-- finish provisioning.
|
||||||
|
|
Loading…
Reference in New Issue