Commit Graph

5 Commits

Author SHA1 Message Date
Siddharth Chandrasekaran 335cac942b installer: add support for user network configuration
The following new features are added to photon-installer:

- Add support for configuring network (VLAN/DHCP/Static)
- Add support for displaying a generic URL downloader window based on
  "download_screen" key in ui_config.json see installer/ui_config.txt
  for more details.
- Allow files from http/https URLs to be downloaded as part of
  additional_files

Other changes:

- Fix some random pylint issues.
- Add installer/ui_config.txt to document keys in ui_config.json

Note:

This patch add a new build and iso-install time dependency to python
package pyOpenSSL.

Change-Id: I7c56e15292781e874977c66410bf08cf4397b126

Conflicts:
	installer/installer.py

Change-Id: If5381e4749e1c9245c86c7a4c68de4b6f88e5c07
Reviewed-on: http://photon-jenkins.eng.vmware.com:8082/8409
Tested-by: gerrit-photon <photon-checkins@vmware.com>
Reviewed-by: Anish Swaminathan <anishs@vmware.com>
2019-10-30 18:59:25 -07:00
Alexey Makhalov f8fdbcecc0 installer: remove shell scripts
..except mk-setup-grub.sh.

Extras:
- use PARTUUID/UUID in fstab. It is most flexible and will
  allow imagebuilder to use fstab creator from installer
  instead its own implementation.
- Renamed /boot/esp ESP mountpoint to /boot/efi.
- Updated installer/README.txt to reflect previous lvm change.
- Fixed UI config for skipping inactive screens.

Change-Id: I5df3044a42b8deb748c87278dee137081ed60079
Reviewed-on: http://photon-jenkins.eng.vmware.com:8082/8231
Tested-by: gerrit-photon <photon-checkins@vmware.com>
Reviewed-by: Anish Swaminathan <anishs@vmware.com>
2019-10-14 18:13:22 -07:00
Alexey Makhalov 9273a97061 installer: refactor UI initialization
Move curses.wrapper down to classes/methods instead of
wrapping entire isoInstaller.
It will allow us to run KS installation in console(non curses)
mode, if install_config['ui'] set to false.

Extras:
1) Cleaned up logging.
2) Introduced install_config['log_level'] parameter.
3) Introduced --ui-config argument for isoInstaller.
4) Fixed ostree installation path. OStree installer works,
but target system was not tested.
5) Moved ostree specific install_config options under
install_config['ostree']

Change-Id: I6c31821778d506f3f28fa07254a556830b1fe534
Reviewed-on: http://photon-jenkins.eng.vmware.com:8082/8156
Tested-by: gerrit-photon <photon-checkins@vmware.com>
Reviewed-by: Anish Swaminathan <anishs@vmware.com>
2019-10-08 15:16:20 -07:00
Alexey Makhalov b291a1d201 installer: reorganize entry point
Installer engine consist of two pieces (stages):
1) installer.configure(install_config, ui_config)
   - install_config is a KS input config as well as 'installer'
     portion of image builder config
   if 'install_config' is None then configure will trigger
   interactive ncurses configurator
   - ui_config is a config for interactive ncurses configurator.
     Can be used to control what screens to show.
   No actions allowed toward target system (disk or image) during
   configure stage.

2) installer.execute(install_config)
   - takes install_config and "execute" it. All actions on target
     system are performed here.

Installer can be run as an app, like ./isoInstaller

In this case control flow looks like:
isoInstaller
  <detect KS from kernel cmdline> - no luck
  installer.configure(None, ui_config)
    ui_config - run ncurses interractive installer to
                construct 'install_config'
    <perform sanity checks of install_config>
  installer.execute(install_config)

When isoInstaller detects KS file - control flow is like:
isoInstaller
  <detect KS from kernel cmdline> - success - create 'install_config'
  installer.configure(install_config, None)
    <perform sanity checks of install_config>
  installer.execute(install_config)

When installer called from image builder it is similar to KS case:
image builder
  <parses its config file> - creates install_config out of
                             'installer' section
  installer.configure(install_config, None)
    <perform sanity checks of install_config>
  installer.execute(install_config)
  <performs post actions>
  <convert raw disk to some output format>

Changed images config file to move installer specific
changes to 'installer' subsection

Deprecate install_config fields: iso_installer, ui_install,
additional-files.

Unified password related logic in installer and removed it
from image builder.

Added ks_config.txt file - documentation for ks file format.

NOTE: this commit can break ostree, as it was not tested.

Change-Id: I3f718b6793c7f0befeb63df4d7e99072cf4d7693
Reviewed-on: http://photon-jenkins.eng.vmware.com:8082/8127
Tested-by: gerrit-photon <photon-checkins@vmware.com>
Reviewed-by: Alexey Makhalov <amakhalov@vmware.com>
2019-10-04 11:00:33 -07:00
Alexey Makhalov 17096ae22e installer: use logging
Use logging facility for all logging activities in installer
to console and to the file. Do not use direct print or write
to file and do not use journald.

Extra: remove deprecated and not used files

Change-Id: Ic41817589c55178634af8e15443079cd78454203
Reviewed-on: http://photon-jenkins.eng.vmware.com:8082/8093
Reviewed-by: Anish Swaminathan <anishs@vmware.com>
Tested-by: gerrit-photon <photon-checkins@vmware.com>
2019-09-26 20:41:51 -07:00