summaryrefslogtreecommitdiff
path: root/src/Propellor/Property/HostingProvider/Exoscale.hs
blob: a123c54a9674f2c27f94bf65e74bd100b8831685 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
-- | Maintainer: Sean Whitton <spwhitton@spwhitton.name>

module Propellor.Property.HostingProvider.Exoscale (
	distroKernel,
) where

import Propellor.Base
import qualified Propellor.Property.Grub as Grub
import qualified Propellor.Property.Apt as Apt
import qualified Propellor.Property.Reboot as Reboot

-- | Current Exoshare Debian image doesn't install GRUB, so this property makes
-- sure GRUB is installed and we're running the distro's kernel
--
-- We reboot after doing this because 'Sbuild.built' will fail to set up an
-- overlay-type chroot on an old kernel
distroKernel :: Architecture -> Property DebianLike
distroKernel arch = combineProperties "boots distro kernel" $ props
	& Grub.installed' Grub.PC
	& Apt.installed ["linux-image-" ++ arch]
	-- only these ones are not idempotent so need flag file
	& flagFile
		(Grub.boots "/dev/vda"
		`before` Grub.mkConfig
		`before` Reboot.now)
		"/etc/propellor-distro-kernel"