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

WIP rebase on latest metal3-io PRs #32

Closed
wants to merge 3 commits into from

Conversation

hardys
Copy link

@hardys hardys commented Nov 26, 2019

Updated to bring in the following commits

metal3-io#97
metal3-io#104
metal3-io#107

stbenjam and others added 3 commits November 26, 2019 13:19
This commit adds support for IPv6. When $PROVISIONING_IP is specified,
which may be an IPv6 address, the various containers will wait for that
IP to become available on an interface.

If the IP is IPv6, then we use an IPv6-specific configurations. Note,
IPv6 hosts are expected to be using UEFI boot, as we use snponly.efi.
snponly.efi uses the UEFI network stack instead of the iPXE drivers.
When using EDK2 OVMF + iPXE + ipxe.efi, we have seen lock-ups in
initialization of the hardware devices.

As neither CentOS nor RHEL distribute iPXE builds with IPv6 support, we
build them from source as part of the container build.

 Conflicts:
	Dockerfile
	configure-ironic.sh

Related metal3-io change metal3-io#107
(cherry picked from commit 2ad2b0d)
We don't appear to need these, infact they output
errors on container startup...

Related metal3-io change metal3-io#104
(cherry picked from commit f380833)
Rely instead on the logs to std out/err for each container

Related metal3-io change metal3-io#97
(cherry picked from commit 8b4ceb6)
@openshift-ci-robot openshift-ci-robot added do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. size/L Denotes a PR that changes 100-499 lines, ignoring generated files. labels Nov 26, 2019
@hardys hardys requested a review from stbenjam November 26, 2019 13:25
@openshift-ci-robot
Copy link

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: hardys

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@openshift-ci-robot openshift-ci-robot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Nov 26, 2019
@openshift-ci-robot
Copy link

@hardys: The following test failed, say /retest to rerun them all:

Test name Commit Details Rerun command
ci/prow/images a6ece74 link /test images

Full PR test history. Your PR dashboard. Please help us cut down on flakes by linking to an open issue when you hit one in your PR.

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

cd src && \
sed -i -e "s/#undef.*NET_PROTO_IPV6/#define NET_PROTO_IPV6/g" config/general.h && \
make bin/undionly.kpxe bin-x86_64-efi/ipxe.efi bin-x86_64-efi/snponly.efi

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These changes need to go into Dockerfile.ocp, unless we can get this into the downstream ipxe-bootimgs?

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yup, this may cause a problem, last time I tried to build a image in this build system with two "FROM " statements in the DockerFile the build system changed one of them but not the other (this may be what you need or it might get in the way....), as far as I could see it happens here
https://github.com/openshift/builder/blob/master/pkg/build/builder/docker.go#L374

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If it does the last FROM, it may not be a big issue as long as where it's built can hit docker.io to get the centos images, we only use the builder to make the ipxe images.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

1776926 has been marked as a dupe of https://bugzilla.redhat.com/show_bug.cgi?id=1637650 so perhaps we can use the non-qemu ipxe-roms package from the RHEL8 appstream repo?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

snpnoly.efi is still missing, which we need to make things work correctly.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ok I'll copy the current build-from-source for now and we can follow-up with a change that makes this work with the packaged ipxe-roms

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • the FROM that changes is just the last one (example for kuryr https://github.com/openshift/kuryr-kubernetes/blob/master/openshift-kuryr-cni-ci-rhel8.Dockerfile)
  • the internal build infra can't hit docker.io or any other external site that is not explicitly allowed (we have the same issue for packages and source repos, which is managed directly in the openshift config)
    as a workaround, we can have the source that we want to compile in the image repo itself or in a downstream repo
    or, well, wait for the bugzilla to be resolved

cp /tftpboot/undionly.kpxe /tftpboot/ipxe.efi /tftpboot/snponly.efi /shared/tftpboot

# Copy IPv4 or IPv6 config
cp /etc/dnsmasq.conf.ipv$IPV /etc/dnsmasq.conf

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

missing dnsmasq.conf files

cd src && \
sed -i -e "s/#undef.*NET_PROTO_IPV6/#define NET_PROTO_IPV6/g" config/general.h && \
make bin/undionly.kpxe bin-x86_64-efi/ipxe.efi bin-x86_64-efi/snponly.efi

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • the FROM that changes is just the last one (example for kuryr https://github.com/openshift/kuryr-kubernetes/blob/master/openshift-kuryr-cni-ci-rhel8.Dockerfile)
  • the internal build infra can't hit docker.io or any other external site that is not explicitly allowed (we have the same issue for packages and source repos, which is managed directly in the openshift config)
    as a workaround, we can have the source that we want to compile in the image repo itself or in a downstream repo
    or, well, wait for the bugzilla to be resolved

@hardys
Copy link
Author

hardys commented Dec 4, 2019

Thanks for the feedback @elfosardo holding on bz1776929 for this so we can remove the need to build the ipxe roms from source.

@hardys hardys closed this Mar 4, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
approved Indicates a PR has been approved by an approver from all required OWNERS files. do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. size/L Denotes a PR that changes 100-499 lines, ignoring generated files.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants