diff --git a/Documentation/dev/grub.md b/Documentation/dev/grub.md index 9472888a..18289d0a 100644 --- a/Documentation/dev/grub.md +++ b/Documentation/dev/grub.md @@ -9,15 +9,9 @@ For local development, install the dependencies for libvirt with UEFI. * [UEFI with QEMU](https://fedoraproject.org/wiki/Using_UEFI_with_QEMU) -## Application Container +## Containers -Run the `bootcfg` ACI with rkt according to the [development docs](develop.md). Examples contains a [grub.yaml](../../examples/grub.yaml) config with a default machine group for GRUB net booting. - -## Client VM - -Create a VM with an e1000 or virtio network device. - - sudo virt-install --name uefi-test --pxe --boot=uefi,network --disk pool=default,size=4 --network=bridge=metal0,model=e1000 --memory=1024 --vcpus=1 --os-type=linux --noautoconsole +Run `bootcfg` with rkt according to [Getting Started with rkt](../getting-started-with-rkt), but mount the [grub](../../examples/groups/grub) group example. ## Network @@ -25,21 +19,22 @@ On Fedora, add the `metal0` interface to the trusted zone in your firewall confi sudo firewall-cmd --add-interface=metal0 --zone=trusted -Add a `grub.efi` to `tftpboot` before building the dnsmasq ACI. +Run the `coreos.com/dnsmasq` ACI with rkt. - cd contrib/dnsmasq - ./get-tftp-files - sudo ./build-aci + sudo rkt run coreos.com/dnsmasq:v0.2.0 --net=metal0:IP=172.15.0.3 -- -d -q --dhcp-range=172.15.0.50,172.15.0.99 --enable-tftp --tftp-root=/var/lib/tftpboot --dhcp-match=set:efi-bc,option:client-arch,7 --dhcp-boot=tag:efi-bc,grub.efi --dhcp-userclass=set:grub,GRUB2 --dhcp-boot=tag:grub,"(http;bootcfg.foo:8080)/grub","172.15.0.2" --log-queries --log-dhcp --dhcp-userclass=set:ipxe,iPXE --dhcp-boot=tag:pxe,undionly.kpxe --dhcp-boot=tag:ipxe,http://bootcfg.foo:8080/boot.ipxe --address=/bootcfg.foo/172.15.0.2 -Build dnsmasq ACI with `acbuild` and run with rkt. +## Client VM - sudo rkt --insecure-options=image run dnsmasq.aci --net=metal0:IP=172.15.0.3 -- -d -q --dhcp-range=172.15.0.50,172.15.0.99 --enable-tftp --tftp-root=/var/lib/tftpboot --dhcp-match=set:efi-bc,option:client-arch,7 --dhcp-boot=tag:efi-bc,grub.efi --dhcp-userclass=set:grub,GRUB2 --dhcp-boot=tag:grub,"(http;bootcfg.foo:8080)/grub","172.15.0.2" --log-queries --log-dhcp --dhcp-userclass=set:ipxe,iPXE --dhcp-boot=tag:pxe,undionly.kpxe --dhcp-boot=tag:ipxe,http://bootcfg.foo:8080/boot.ipxe --address=/bootcfg.foo/172.15.0.2 +Create a VM with an e1000 or virtio network device. -### Docker + sudo virt-install --name uefi-test --pxe --boot=uefi,network --disk pool=default,size=4 --network=bridge=metal0,model=e1000 --memory=1024 --vcpus=1 --os-type=linux --noautoconsole -The coreos/dnsmasq Docker image bundles a `grub.efi`. +## Docker - sudo virt-install --name uefi-test --pxe --boot=uefi,network --disk pool=default,size=4 --network=bridge=docker0,model=e1000 --memory=1024 --vcpus=1 --os-type=linux --noautoconsole +If you use Docker, run `bootcfg` according to [Getting Started with Docker](../getting-started-with-docker), but mount the [grub](../../examples/groups/grub) group example. The start the `coreos/dnsmasq` Docker image, which bundles a `grub.efi`. sudo docker run --rm --cap-add=NET_ADMIN quay.io/coreos/dnsmasq -d -q --dhcp-range=172.17.0.43,172.17.0.99 --enable-tftp --tftp-root=/var/lib/tftpboot --dhcp-match=set:efi-bc,option:client-arch,7 --dhcp-boot=tag:efi-bc,grub.efi --dhcp-userclass=set:grub,GRUB2 --dhcp-boot=tag:grub,"(http;bootcfg.foo:8080)/grub","172.17.0.2" --log-queries --log-dhcp --dhcp-option=3,172.17.0.1 --dhcp-userclass=set:ipxe,iPXE --dhcp-boot=tag:pxe,undionly.kpxe --dhcp-boot=tag:ipxe,http://bootcfg.foo:8080/boot.ipxe --address=/bootcfg.foo/172.17.0.2 +Create a VM to verify the machine netboots. + + sudo virt-install --name uefi-test --pxe --boot=uefi,network --disk pool=default,size=4 --network=bridge=docker0,model=e1000 --memory=1024 --vcpus=1 --os-type=linux --noautoconsole \ No newline at end of file diff --git a/examples/README.md b/examples/README.md index 0700b027..a2620a9f 100644 --- a/examples/README.md +++ b/examples/README.md @@ -5,9 +5,9 @@ These examples network boot and provision VMs into CoreOS clusters using `bootcf | Name | Description | CoreOS Version | FS | Reference | |------------|-------------|----------------|----|-----------| -| pxe | CoreOS via iPXE | alpha/962.0.0 | RAM | [reference](https://coreos.com/os/docs/latest/booting-with-ipxe.html) | -| grub | CoreOS via GRUB2 Netboot | beta/899.6.0 | RAM | NA | -| pxe-disk | CoreOS via iPXE, with a root filesystem | alpha/962.0.0 | Disk | [reference](https://coreos.com/os/docs/latest/booting-with-ipxe.html) | +| pxe | CoreOS via iPXE | alpha/983.0.0 | RAM | [reference](https://coreos.com/os/docs/latest/booting-with-ipxe.html) | +| grub | CoreOS via GRUB2 Netboot | alpha/983.0.0 | RAM | NA | +| pxe-disk | CoreOS via iPXE, with a root filesystem | alpha/983.0.0 | Disk | [reference](https://coreos.com/os/docs/latest/booting-with-ipxe.html) | | etcd, etcd-docker | Cluster with 3 etcd nodes, 2 proxies | alpha/983.0.0 | RAM | [reference](https://coreos.com/os/docs/latest/cluster-architectures.html) | | etcd-install | Install a 3-node etcd cluster to disk | alpha/983.0.0 | Disk | [reference](https://coreos.com/os/docs/latest/installing-to-disk.html) | | k8s, k8s-docker | Kubernetes cluster with 1 master and 2 workers, TLS-authentication | alpha/983.0.0 | Disk | [reference](https://github.com/coreos/coreos-kubernetes) | diff --git a/examples/profiles/grub.json b/examples/profiles/grub.json index cc467aa1..273297dd 100644 --- a/examples/profiles/grub.json +++ b/examples/profiles/grub.json @@ -2,8 +2,8 @@ "id": "grub", "name": "CoreOS via GRUB2", "boot": { - "kernel": "(http;bootcfg.foo:8080)/assets/coreos/899.6.0/coreos_production_pxe.vmlinuz", - "initrd": ["(http;bootcfg.foo:8080)/assets/coreos/899.6.0/coreos_production_pxe_image.cpio.gz"], + "kernel": "(http;bootcfg.foo:8080)/assets/coreos/983.0.0/coreos_production_pxe.vmlinuz", + "initrd": ["(http;bootcfg.foo:8080)/assets/coreos/983.0.0/coreos_production_pxe_image.cpio.gz"], "cmdline": { "coreos.config.url": "http://bootcfg.foo:8080/ignition", "coreos.autologin": "", diff --git a/examples/profiles/pxe-disk.json b/examples/profiles/pxe-disk.json index 50dfcf1c..e342fa1c 100644 --- a/examples/profiles/pxe-disk.json +++ b/examples/profiles/pxe-disk.json @@ -2,8 +2,8 @@ "id": "pxe-disk", "name": "CoreOS with SSH", "boot": { - "kernel": "/assets/coreos/962.0.0/coreos_production_pxe.vmlinuz", - "initrd": ["/assets/coreos/962.0.0/coreos_production_pxe_image.cpio.gz"], + "kernel": "/assets/coreos/983.0.0/coreos_production_pxe.vmlinuz", + "initrd": ["/assets/coreos/983.0.0/coreos_production_pxe_image.cpio.gz"], "cmdline": { "root": "/dev/sda1", "coreos.config.url": "http://bootcfg.foo:8080/ignition?uuid=${uuid}&mac=${net0/mac:hexhyp}", diff --git a/examples/profiles/pxe.json b/examples/profiles/pxe.json index ee30a46c..71e19a9b 100644 --- a/examples/profiles/pxe.json +++ b/examples/profiles/pxe.json @@ -3,9 +3,9 @@ "name": "CoreOS with SSH", "ignition_id": "ssh.yaml", "boot": { - "kernel": "/assets/coreos/962.0.0/coreos_production_pxe.vmlinuz", + "kernel": "/assets/coreos/983.0.0/coreos_production_pxe.vmlinuz", "initrd": [ - "/assets/coreos/962.0.0/coreos_production_pxe_image.cpio.gz" + "/assets/coreos/983.0.0/coreos_production_pxe_image.cpio.gz" ], "cmdline": { "coreos.autologin": "",