Skip to content
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

unpacker: Translate /boot → /usr/lib/ostree-boot #969

Closed
wants to merge 1 commit into from

Conversation

cgwalters
Copy link
Member

At one point rpm-ostree install libvirt dragged in libguestfs which in turn
brought in syslinux-extlinux-nonlinux which has files in /boot/extlinux,
which we rejected. (That dependency chain appears to have been fixed currently)

For the general case, this is just a partial fix in that we haven't nailed down
the semantics of how updates for /boot work. But in this particular case,
we'll just break libguestfs' extlinux verb, which I'm OK with.

Another case is fwupdate-efi - we require manual intervention to copy the
data into /boot after installing the package.

This is also preparation for unified core
in that we now ensure imported kernels don't end up in /boot unless
explicitly configured.

Closes: #853

At one point `rpm-ostree install libvirt` dragged in libguestfs which in turn
brought in `syslinux-extlinux-nonlinux` which has files in `/boot/extlinux`,
which we rejected.  (That dependency chain appears to have been fixed currently)

For the general case, this is just a partial fix in that we haven't nailed down
the semantics of how updates for `/boot` work.  But in this particular case,
we'll just break libguestfs' `extlinux` verb, which I'm OK with.

Another case is `fwupdate-efi` - we require manual intervention to copy the
data into `/boot` after installing the package.

This is also preparation for [unified core](coreos#729)
in that we now ensure imported kernels don't end up in `/boot` unless
explicitly configured.

Closes: coreos#853
@jlebon
Copy link
Member

jlebon commented Sep 5, 2017

@rh-atomic-bot r+ dc0e8db

@rh-atomic-bot
Copy link

⌛ Testing commit dc0e8db with merge 5278940...

rh-atomic-bot pushed a commit that referenced this pull request Sep 5, 2017
At one point `rpm-ostree install libvirt` dragged in libguestfs which in turn
brought in `syslinux-extlinux-nonlinux` which has files in `/boot/extlinux`,
which we rejected.  (That dependency chain appears to have been fixed currently)

For the general case, this is just a partial fix in that we haven't nailed down
the semantics of how updates for `/boot` work.  But in this particular case,
we'll just break libguestfs' `extlinux` verb, which I'm OK with.

Another case is `fwupdate-efi` - we require manual intervention to copy the
data into `/boot` after installing the package.

This is also preparation for [unified core](#729)
in that we now ensure imported kernels don't end up in `/boot` unless
explicitly configured.

Closes: #853

Closes: #969
Approved by: jlebon
@rh-atomic-bot
Copy link

💔 Test failed - status-atomicjenkins

@jlebon
Copy link
Member

jlebon commented Sep 7, 2017

@rh-atomic-bot retry

@rh-atomic-bot
Copy link

⌛ Testing commit dc0e8db with merge 20abc85...

@rh-atomic-bot
Copy link

☀️ Test successful - status-atomicjenkins
Approved by: jlebon
Pushing 20abc85 to master...

miabbott added a commit to miabbott/atomic-host-tests that referenced this pull request Oct 2, 2017
In projectatomic#254, it is noted that the package layering of `httpd` isn't
working on CentOS because the `centos-logos` dependency is trying to
layer files on `/boot`.  Until CentOS gets a version of `rpm-ostree`
that supports layering on `/boot` (see coreos/rpm-ostree#969),
we need to use a different package to test package layering in CentOS.

This change brings in a conditional installation of `ntp` in the
CentOS case, until we have a newer version of `rpm-ostree` to use.
miabbott added a commit to miabbott/atomic-host-tests that referenced this pull request Oct 5, 2017
In projectatomic#254, it is noted that the package layering of `httpd` isn't
working on CentOS because the `centos-logos` dependency is trying to
layer files on `/boot`.  Until CentOS gets a version of `rpm-ostree`
that supports layering on `/boot` (see coreos/rpm-ostree#969),
we need to use a different package to test package layering in CentOS.

This change brings in a conditional installation of `ntp` in the
CentOS case, until we have a newer version of `rpm-ostree` to use.
mike-nguyen pushed a commit to projectatomic/atomic-host-tests that referenced this pull request Oct 6, 2017
* roles: improve ability to check for un/installed packages

The `rpm_ostree_install*` and `rpm_ostree_uninstall*` roles had some
limitations when first created.  Namely, only being able to be used
once per playbook and being unable to check for a binary that did not
match the package name.

This changes the roles to use the `allow_duplicates` boolean, so that
they may be used multiple times in the same playbook.  The `*verify`
roles have also been changed to allow for checking for a different
binary name than what is used by the package.  For example, the `ntp`
package installs an `ntpd` binary, whereas the `httpd` package installs
an `httpd` binary.

* tests: handle package layering on CentOS

In #254, it is noted that the package layering of `httpd` isn't
working on CentOS because the `centos-logos` dependency is trying to
layer files on `/boot`.  Until CentOS gets a version of `rpm-ostree`
that supports layering on `/boot` (see coreos/rpm-ostree#969),
we need to use a different package to test package layering in CentOS.

This change brings in a conditional installation of `ntp` in the
CentOS case, until we have a newer version of `rpm-ostree` to use.

* test/i-s-t: use conditionl vars from vars files

This changes how the variables used by the `improved-sanity-test` are
loaded in each playbook section.  Commonly used variables are now
found in `vars/common.yml` and are loaded for each playbook section.
Additional variables that may change per OS platform, are broken out
into separate files.

By supplying a list of files to the `vars_files:` statement, Ansible
will try to import each file in the list and stopping when a file is
found.[0]  This allows us to override any variables per OS while
maintaing sensible defaults.

[0] http://docs.ansible.com/ansible/latest/playbooks_conditionals.html#conditional-imports

* roles/tests: handle shared variable namespace

When running a role multiple times in a playbook, we can run into
problems with variables since they all live in the same namespace.
Notably, when you run a role multiple times, variables that are
optional but have been defined, will carry over to the next execution
of the role.  Or if two roles have the same variable name, you can get
values stomping on each other.

This commit tries to alleviate some of these problems by updating the
variable names in the roles to be unique to the role.  Additionally,
when using roles multiple times in playbooks, both required and optional
variables are explicitly defined to avoid any overwriting.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

pkglayering: support packages installing into /boot
3 participants