Change ESP type from 'ef' to 'c'. RPi3 bootcode requires it
in order to find boot partition.
Change-Id: I987fa14061e5f499da11960f0e2f80a71edf5f52
Reviewed-on: http://photon-jenkins.eng.vmware.com:8082/8471
Reviewed-by: Anish Swaminathan <anishs@vmware.com>
Tested-by: Anish Swaminathan <anishs@vmware.com>
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>
1) do not redirect STDOUT to /var/log/installer, but
print it on the screen. /var/log/installer.log will be
created by logger library.
2) eject cdrom not for the 'ui' path, but for 'live'.
Change-Id: Iced0871d6c57b8c38263b1fd37c2b9826520b5be
Reviewed-on: http://photon-jenkins.eng.vmware.com:8082/8443
Reviewed-by: Anish Swaminathan <anishs@vmware.com>
Tested-by: Anish Swaminathan <anishs@vmware.com>
- Addded a new target 'minimal-iso' in Makefile
* This generates photon-minimal-*.iso and corresponding debug iso
* Size of minimal-iso is 263MB and size of debug iso is 1166M
- minimal-iso skips photon flavour selection(edge, developer and ostree) UI
Change-Id: I945d74e13c0fbca700cfd6a18467fdac42b68f87
Reviewed-on: http://photon-jenkins.eng.vmware.com:8082/8254
Tested-by: gerrit-photon <photon-checkins@vmware.com>
Reviewed-by: Alexey Makhalov <amakhalov@vmware.com>
- EFI partition required at least 10M to copy extra binary for aarch
- starting a docker before executing docker run
- Select the appropriate the docker file based on ARCH
Change-Id: I23746b5fe435a9a52f71ba6013637afeaf6542ed
Reviewed-on: http://photon-jenkins.eng.vmware.com:8082/8374
Tested-by: gerrit-photon <photon-checkins@vmware.com>
Reviewed-by: Anish Swaminathan <anishs@vmware.com>
It allows imagegenerator to do not execute any postactions by
simply specifying thme in installer config section.
Added extra steps to postinstall module.
Added machineid and locale modules.
expirepassword moved to installer->password->age field
as an integer value.
Removed mknod creation in /dev
Fix remote repo=
Change-Id: I76f947f8770a3e87012843f2e1371ef775cd951f
Reviewed-on: http://photon-jenkins.eng.vmware.com:8082/8245
Tested-by: michellew <michellew@vmware.com>
Reviewed-by: Anish Swaminathan <anishs@vmware.com>
..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>
[Alexey] Extras:
1) Introduced tree view of partitions for multiple disk and LVM support.
2) Multiple disk core functionality implementation.
3) LVM detach using 'dmsetup remove'.
4) Add LVM documentation to ks_config.txt
5) Fix json syntax in ks_config.txt (" instead of ').
6) UI: support for /dev/loop (1) and /dev/vda (254) disks.
7) Fix install_linux_esx logic.
8) Treat BIOS and EFI boot partition as normal partitions (inject
them into partitions list).
9) Introduced PartitionType enum.
10) Renamed non obvious steps in _unsafe_install().
11) Use vfat instead of fat for ESP.
12) Update grubx64.efi to support lvm.
Co-developed-by: Alexey Makhalov <amakhalov@vmware.com>
Change-Id: I49e26f22e80eb399e3b48ee98d92ea460a957bf1
Reviewed-on: http://photon-jenkins.eng.vmware.com:8082/8125
Tested-by: gerrit-photon <photon-checkins@vmware.com>
Reviewed-by: Harinadh Dommaraju <hdommaraju@vmware.com>
Reviewed-by: Anish Swaminathan <anishs@vmware.com>
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>
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>
image-builder: use installer instead of mk-setup-vmdk.sh
script to partition /dev/loop device.
Use default partitioning scheme (provided by installer) for
most images. For other images specify 'partitions' (in kickstart
syntax) field for custom partitioning. Only 'size' field
remaining for the size of the raw image file. It is image builder
responsibility to create raw image file and losetup it.
install_config['partition_type'] was introduced to support
MSDOS partition table, for images like rpi3.
introduced new optional field for partition - 'fs_options' to
set additional mkfs options for given fs type.
'boot' was renamed to 'bootmode' to avoid confusion.
Remove chown fro mk-prepare-system
Fix installer exception if tdnf is not found on the host.
Deprecated mk-setup-vmdk.sh.
Deprecated mk-clean-vmdk.sh, move corresponding code to
python.
Change-Id: I8ce9426cf8b5524e2a9037f1aa365b49be53ab35
Reviewed-on: http://photon-jenkins.eng.vmware.com:8082/8123
Reviewed-by: Anish Swaminathan <anishs@vmware.com>
Tested-by: gerrit-photon <photon-checkins@vmware.com>
1) Do not add UI specific fields in install_config which is not used
at execution state, such as custom partition internal information.
Use only install_config['partitions']
2) Do not overwrite install_config['disk'] by partitions data.
Create new field for that: install_config['partitions_data']
3) New class pastitionpane as a sub element of custom partitioning
screen.
4) Rename PartitionISO to CustomPartition to avoid confusion.
5) Cleanup Image Builder.
Change-Id: Id1aef8b18b866ee464bd583c820f92c5037aae71
Reviewed-on: http://photon-jenkins.eng.vmware.com:8082/8105
Tested-by: gerrit-photon <photon-checkins@vmware.com>
Reviewed-by: Anish Swaminathan <anishs@vmware.com>
Only image builder used 'rpm' to install packages.
Switch to 'tdnf'. If tdnf is not available or version is old
(basically if host's tdnf failed) then use tdnf from photon:3.0
docker image.
Extras: remove swap add/remove logic as it is useless
Change-Id: Ifb8a3a29531ed6776cba450e977fbc0c36e49450
Reviewed-on: http://photon-jenkins.eng.vmware.com:8082/8097
Tested-by: gerrit-photon <photon-checkins@vmware.com>
Reviewed-by: Anish Swaminathan <anishs@vmware.com>
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>
Do not do partitioning in the very beginning of ui config
or at the end of ks config. Merge partitioning code and
move it to installer execution. Remove any partitioning
code from selectdisk ui screen.
Extras:
- deprecate 'vmdk_install' (it is same as 'not iso_installer')
- improve nsurses ui rendering. Avoid unnecessary refresh.
- removed unused param in display() and menu items handlers
Change-Id: I90522da30bb29b452bb68e64e749ab81177875a0
Reviewed-on: http://photon-jenkins.eng.vmware.com:8082/8088
Reviewed-by: Anish Swaminathan <anishs@vmware.com>
Tested-by: Anish Swaminathan <anishs@vmware.com>
Previous commit separated iso builder and installer.
So, iso_system in installer is not used anymore, it is
always False. Safe to remove.
Change-Id: I269bcaff6b05e451dfa0af88bf945f5fca1d44a6
Reviewed-on: http://photon-jenkins.eng.vmware.com:8082/8038
Tested-by: gerrit-photon <photon-checkins@vmware.com>
Reviewed-by: Anish Swaminathan <anishs@vmware.com>
RPMS got accidentally removed by tdnf as part of cachedir cleaning.
When cachedir is bindmounted to rpm_path, use keepcache=1 to keep
them intact.
Extras:
- incremetal build: do full build if support/{make,pullpublishrpms}
were changes in addition to support/package-builder.
- remove 3.0 and x86_64 from temporary repo file.
Change-Id: I7c41985c77781657a833be37bc98af550f4ff9aa
Reviewed-on: http://photon-jenkins.eng.vmware.com:8082/8036
Tested-by: gerrit-photon <photon-checkins@vmware.com>
Reviewed-by: Anish Swaminathan <anishs@vmware.com>
The purpose of this commit is to improve debugability
of installer codebase. Installer can be run from running
Photon OS instance just as "./isoInstaller". You do not
need to create bootable ISO and run it to verify installer
code.
Changes in this commit:
- use local input.json as build_install_options
- support "packages" field in build_install_options file
- do not modify and use host's /etc/yum/repos.d and
/etc/tdnf.conf create them in working directory instead
- added --rpms-path parameter, default: ../stage/RPMS
- add logging of shell scripts to installer.log
- do not use "swapoff -a" at finalize step, swapoff only
installer created swap
Change-Id: I9cf034ba069e4625bd79a22aff6db3bbcba869d0
Reviewed-on: http://photon-jenkins.eng.vmware.com:8082/8024
Tested-by: gerrit-photon <photon-checkins@vmware.com>
Reviewed-by: Anish Swaminathan <anishs@vmware.com>
After multiversion support, linux package was not getting
removed when linux-esx was supposed to get installed
due to the presence of the additional version information in
the package list json, this fixes it.
Change-Id: Iad007d2a7fd8459d15296a602c793ef5cef13d03
Reviewed-on: http://photon-jenkins.eng.vmware.com:8082/6444
Tested-by: gerrit-photon <photon-checkins@vmware.com>
Reviewed-by: Sharath George
When building an AMI image, if grub2 is not available on the system,
the bootloader setup will fail. However, the image builder ignores
this error and proceeds anyway, creating an unbootable image. Fix it
by erroring out if mk-setup-grub.sh fails.
Change-Id: I0c9f69e176513f47be761e0d464484660b9d9856
Reviewed-on: http://photon-jenkins.eng.vmware.com:8082/6339
Tested-by: michellew <michellew@vmware.com>
Reviewed-by: Sharath George
-Remove the use of photoninstaller.py
-Replace image builder script
-Enhance image builder config file
-Support image building using config files from Makefile
- make image IMG_NAME=<name>
- make image CONFIG=<config_file>
- or combination of both the above
Change-Id: I1a0db70969224826130c5e4c25a74e7217a8dace
Reviewed-on: http://photon-jenkins.eng.vmware.com:8082/6150
Reviewed-by: Anish Swaminathan <anishs@vmware.com>
Tested-by: Anish Swaminathan <anishs@vmware.com>
- Use image-builder instead of cloud-image-builder
- Remove install type from json files for images
- Clean up json files
- Add metapackage minimal
- Remove full flavor from ISO and add developer and edge
- Remove installation type from json files and use package list json
Change-Id: I6b667beb92f9f68533e48482f84139102b818342
Conflicts:
Makefile
support/package-builder/SpecData.py
Change-Id: Iff18095a5f53151d0456c694c039da720eef2398
Reviewed-on: http://photon-jenkins.eng.vmware.com:8082/6170
Reviewed-by: Anish Swaminathan <anishs@vmware.com>
Tested-by: Anish Swaminathan <anishs@vmware.com>
Extras:
- Installer: fix make iso
- Makefile: support THREADS=n for make <package>
- glibc: disable obsoleted rpc - use libtirpc instead.
disable obsoleted nsl.
- gcc/libsanitizer: do not use deprecated ustat syscall.
- coreutils: version update to support new glibc.
- gzip: fix compilation issue against glibc-2.28.
- findutils: fix compilation issue against glibc-2.28.
- m4: fix compilation issue against glibc-2.28.
- parted: fix compilation issue against glibc-2.28.
- make: fix compilation issue against glibc-2.27.
- bison: fix compilation issue against glibc-2.28.
- e2fsprogs: version update to fix compilation issue againts glibc-2.28
- hdparm: version update to fix compilation issue againts glibc-2.28
- kexec-tools: version update to fix compilation issue againts glibc-2.28
- librpcsecgcc: use libtirpc instead of glibc/rpc.
- libunistring: version update to fix compilation issue againts glibc-2.28
- psmisc: version update to fix compilation issue againts glibc-2.28
- sg3_utils: fix compilation issue against glibc-2.28.
- syslinux: fix compilation issue against glibc-2.28.
- btrfs-progs: fix compilation issue against e2fsprogs-1.44.
- fsarchiver: fix compilation issue against glibc-2.28.
- systemd: fix compilation issue against glibc-2.28.
- nfs-utils: fix compilation issue against glibc-2.28
use internal rpcgen, disable librpcsecgss dependency.
- mysql: use libtirpc instead obsoleted rpc from glibc.
- vsftpd: use libnsl instead of obsoleted nsl from glibc.
- libnsl: new package.
- rpcsvc-proto: new package.
- python-pyvim: use --no-same-owner for tar.
- autofs: use rpcsvc-proto and libtirpc.
- xmlsec1: fix requires.
- open-vm-tools: version update to 10.3.0 to support tirpc.
- xinetd: use libtirpc.
- tcp_wrappers: use libnsl.
- libvirt: use libtirpc.
- motd: fix always rebuild issue.
- rubygem-ffi: fix always rebuild issue.
- ceph: remove epoch.
Change-Id: Ida206a38398aeb7fd18e1c24acaf21a3511ff853
Reviewed-on: http://photon-jenkins.eng.vmware.com:8082/5548
Reviewed-by: Alexey Makhalov <amakhalov@vmware.com>
Tested-by: Sharath George
-- remove unused shebangs.
-- interger division with operator //
-- replace Set with set.
-- replace `` with repr.
-- replace has_key with in
Change-Id: I8ef92b42cb1a4477eb8be23da6a86499a3436876
Reviewed-on: http://photon-jenkins.eng.vmware.com:8082/3860
Tested-by: gerrit-photon <photon-checkins@vmware.com>
Reviewed-by: Bo Gan <ganb@vmware.com>