config BR2_PACKAGE_CZECHLIGHT_CFG_FS
	bool "Prepare persistent /cfg partition and /etc overlay. Install required YANG models."
	depends on BR2_INIT_SYSTEMD
	depends on BR2_PACKAGE_NETOPEER2
	help
	  This is required for RAUC to work properly.  It creates a blank FS
	  image, configures systemd to mount it, and ensures that its contents
	  get restored to /etc at boot.  The /etc is set up as a RW overlay on
	  top of a read-only rootfs.
	  This takes care of installing YANG files used by czechlight system
	  daemons into sysrepo.

if BR2_PACKAGE_CZECHLIGHT_CFG_FS

config CZECHLIGHT_CFG_FS_SIZE
	string "exact size"
	default "128M"
	help
	  Size of the /cfg filesystem image.  This must be big enough to
	  accommodate all configuration, but small enough to fit within the
	  corresponding partition.

if BR2_PACKAGE_SYSREPO

config CZECHLIGHT_CFG_FS_PERSIST_SYSREPO
	bool "Persist sysrepo configuration into /cfg"
	default Y
	help
	  Save sysrepo's YANG files into /cfg upon changes

endif # BR2_PACKAGE_SYSREPO

if BR2_PACKAGE_NETOPEER2

config CZECHLIGHT_CFG_FS_PERSIST_KEYS
	bool "Persist host keys for OpenSSH and Netopeer2"
	default Y
	help
	  Save OpenSSH's key material and netopeer2's SSH keys into /cfg

endif # BR2_PACKAGE_NETOPEER2

if BR2_PACKAGE_SYSTEMD

config CZECHLIGHT_CFG_FS_PERSIST_NETWORK
	bool "Persist network configuration for eth1"
	default Y
	help
	  Save network configuration file for eth1 into /cfg

endif # BR2_PACKAGE_SYSTEMD

endif # BR2_PACKAGE_CZECHLIGHT_CFG_FS
