New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fixes #14920 - Support for booting UEFI machines #82
Conversation
@lzap @timogoebel might be interesting for you |
This essentially implements http://projects.theforeman.org/issues/14920 which is great. I think we should provide sane defaults: RHEL6
RHEL7
Debian/Ubuntu
Also reword the commit message to Big +1 from me other than that, thanks! |
For the record, here is the bit which deploys the files: https://github.com/theforeman/puppet-foreman_proxy/pull/276/files |
The puppet code looks fine so 👍 on that but I'm unfamiliar with the dhcp specifics so I'm trusting @lzap on that. |
Thanks for the feedback, I changed the commit message and added the defaults, but I changed two things:
|
} | ||
|
||
'RedHat': { | ||
$dhcp_dir = '/etc/dhcp' | ||
$packagename = 'dhcp' | ||
$servicename = 'dhcpd' | ||
$root_group = 'root' | ||
if 0 + $::operatingsystemmajrelease > 6 { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We still avoid using this fact because older facter versions don't support it, but I haven't seen this workaround before. Will puppet automatically convert the string to an int?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, it's a common workaround for "casting to int". However this does fail if the fact operatingsystemmajrelease
is not available.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
OK, I will change this to use the operatingsystemrelease
fact.
This makes sense to me and I don't think it'll have any impact on users. The whole block is still behind an |
I changed all tests to use rspec-puppet-facts and changed the |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Other than one small thing I think this looks good to go.
let(:facts) do | ||
facts.merge({ | ||
:concat_basedir => '/doesnotexist', | ||
:domain => 'example.org', |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The default facts also have a domain which we can use. IMHO there's no need to override it.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fully agree with that. I kept it, because I thought that the "fragment content check" also checks the domain name, but this is only the case in init_spec.rb
. I will correct this.
Removed the override of the |
Merged, danke @ManfredP! |
I don't think so, when I install 1.13 stable RC1 with default installer options, this is what I get:
The filename is set, so what migration would you expect? |
@lzap the migrations are for upgrades, so if you install 1.12 and then upgrade it to 1.13 with the installer then you have an old answer in your answers file. |
|
Good point. |
@ekohl I understand but what I am trying to say is there is nothing to migrate, it currently renders the template with:
The patch does not change the behaviour. Please explain. |
before this change the |
Sure, I understand the process, but why I still have the correct entry Someone explain to me please. Later, |
Thanks to everyone for the support and for merging this. |
Thanks for your contribution! As you could see it was already on the todo list. |
Hi, thanks for the module. I added the possibility to boot UEFI machines and have different boot loaders for different architectures. I did this by introducing a new parameter for the base class called
bootfiles
, which defaults to an empty hash. If you don't add anything tobootfiles
everything stays the same, so the change will not break compatibility for existing users. The keys inbootfiles
are the 16 bit architecture codes in hex and the values are the file names. The filename inpxefilename
becomes the default which is used if no architecture code matches. In most of the cases you will want to setbootfiles
to'00:00': 'pxelinux.0'
'00:06': 'shim.efi'
'00:07': 'shim.efi'
'00:09': 'shim.efi'