CentOS / sig-cloud-instance-build

CentOS Cloud Instance SIG: Metadata to build & release instances
362 stars 167 forks source link

Add Kickstart for CentOS 8 cloud image #159

Closed cgoncalves closed 1 year ago

centos-ci commented 5 years ago

Can one of the admins verify this patch?

ianw commented 5 years ago

How does this relate to the builds I found at https://koji.mbox.centos.org/koji/packageinfo?packageID=2960 ?

kbsingh commented 5 years ago

@ianw does not

to help move this forward, let me import the ks used to build that image, and we can rebase / take it from there

vholer commented 5 years ago

Hello guys, don't take it bad, but is there any progress on C8 cloud image? Not having an official cloud image even after 2 weeks looks like a big miss to me. For sure, anybody can build image on his own, but, official image is official image... Thank you!!

breisig commented 5 years ago

I tried using this KS file (with packer) to build an image and then tried to amazon-import the image but the import image fails with the usual.

ClientError: Unable to determine kernel version., error: ResourceNotReady: failed waiting for successful resource state
BOPOHA commented 5 years ago

I also suggest deleting NetworkManager* at all. Instead, you can use network-scripts package. systemctl enable network - will do all the other things.

breisig commented 5 years ago

I got abit further with building this image and but when trying to import it to AWS (using amazon-import) , amazon-import says..

Unsupported kernel version 4.18.0-80.el8.x86_64

Any ideas?

alanivey commented 4 years ago

Regarding potentially removing NetworkManager... I have not tried CentOS 8 in AWS, but it was my experience that NetworkManager was required to get the IPv6 gateway from the EC2 router advertisements and create the IPv6 default route. In troubleshooting the issue, it was observed that the RHEL7 AMI contains NetworkManager packages, and simply installing the package and enabling NetworkManager.service in CentOS 7 results the IPv6 route having the correct default route without additional configuration or interaction.

FWIW, I only tested with newer EC2 instance types with ENA; it might be that older instance types don't need this.

kbsingh commented 4 years ago

I havent looked at any of the ipv6 pieces in AWS as yet, but can poke that. Do we have any feedback from the C7 images in that regard ?

alanivey commented 4 years ago

We use our own AMI built-on top of the latest CentOS 7 AMI from account 410186602215 (we can't have Marketplace codes in our images), so I can speak to my experience. While I'm not using the AWS Marketplace AMI, NetworkManager appears to be missing there too. Without NetworkManager, there wasn't a default service getting the router advertisements for the IPv6 gateway for the default route. This was a few months ago; this is from my notes:

Without NetworkManager, the default IPv6 route solution is:

$ yum -y install radvd
$ radvdump
# Run for a moment and the comment output in the first three lines will contain the gateway IPv6 address

# Add the route manually:
$ ip -6 route add default via fe80::31:4cff:dead:beef dev eth0

For adding route on reboot:

$ echo 'default via fe80::31:4cff:dead:beef dev eth0' > /etc/sysconfig/network-scripts/route6-eth0
$ chmod 644 /etc/sysconfig/network-scripts/route6-eth0

This is not ideal as you need to get a real value from the VPC and that doesn't work with making a portable AMI.

RHEL 7 appears to yum -y install NetworkManager && systemctl enable --now NetworkManager, so I did the same thing and called it a day. Perhaps I did something wrong there.

I only bring it up in this issue in case something similar is needed with CentOS 8.

BOPOHA commented 4 years ago

Without NetworkManager, there wasn't a default service getting the router advertisements for the IPv6 gateway for the default route. This was a few months ago; this is from my notes:

It is the bug in the cloud-init package, hardcoded 'IPV6_AUTOCONF=no':

# file /usr/lib/python*/site-packages/cloudinit/net/sysconfig.py
            # Now generate the cloud-init portion of sysconfig/network
            netcfg.extend([_make_header(), 'NETWORKING=yes'])
            if network_state.use_ipv6:
                netcfg.append('NETWORKING_IPV6=yes')
                netcfg.append('IPV6_AUTOCONF=no')

Look more https://bugs.centos.org/view.php?id=14760 and here https://bugs.launchpad.net/cloud-init/+bug/1808647

There are a few walkarouds: