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

Add 2404 targets to the OVA and RAW builder and 2204 for RAW #1503

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion docs/book/src/capi/providers/vsphere.md
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,9 @@ In addition to the configuration found in `images/capi/packer/config`, the `ova`
| `rhel-7.json` | The settings for the RHEL 7 image |
| `ubuntu-1804.json` | The settings for the Ubuntu 18.04 image |
| `ubuntu-2004.json` | The settings for the Ubuntu 20.04 image |
| `ubuntu-2204.json` | The settings for the Ubuntu 22.04 image |
| `ubuntu-2204.json` | The settings for the Ubuntu 22.04 image |
| `ubuntu-2204-efi.json` | The settings for the Ubuntu 22.04 EFI image |
| `ubuntu-2404-efi.json` | The settings for the Ubuntu 24.04 EFI image |
| `vsphere.json` | Additional settings needed when building on a remote vSphere |

### Photon specific options
Expand Down
10 changes: 10 additions & 0 deletions images/capi/ansible/roles/sysprep/tasks/debian.yml
Original file line number Diff line number Diff line change
Expand Up @@ -144,3 +144,13 @@
path: /etc/cloud/cloud.cfg.d/90-installer-network.cfg
state: absent
when: ansible_distribution_version is version('22.04', '>=')

- name: Remove subiquity install logs
ansible.builtin.file:
path: "{{ item }}"
state: absent
when: ansible_distribution_version is version('22.04', '>=')
loop:
- /var/log/installer/subiquity-server-debug.log
- /var/log/installer/subiquity-server-info.log
- /var/log/installer/
Empty file.
117 changes: 117 additions & 0 deletions images/capi/packer/ova/linux/ubuntu/http/24.04.efi/user-data
Original file line number Diff line number Diff line change
@@ -0,0 +1,117 @@
#cloud-config
# Copyright 2022 The Kubernetes Authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

# For more information on how autoinstall is configured, please refer to
# https://ubuntu.com/server/docs/install/autoinstall-reference
autoinstall:
version: 1
# Disable ssh server during installation, otherwise packer tries to connect and exceed max attempts
early-commands:
- systemctl stop ssh
# Configure the locale
locale: en_US.UTF-8
keyboard:
layout: us
grub:
reorder_uefi: false
replace_linux_default: false
# For more information on how partitioning is configured,
# please refer to https://curtin.readthedocs.io/en/latest/topics/storage.html.
storage:
swap:
size: 0
grub:
reorder_uefi: false
replace_linux_default: false
config:
- ptable: gpt
path: /dev/sda
wipe: superblock-recursive
preserve: false
name: ''
grub_device: false
type: disk
id: disk-sda
- device: disk-sda
# Create EFI partition of 512MB same as in Ubuntu 20.04
size: 536870912
wipe: superblock
flag: boot
number: 1
preserve: false
grub_device: true
type: partition
id: partition-0
- fstype: fat32
volume: partition-0
preserve: false
type: format
id: format-0
- device: disk-sda
size: -1
wipe: superblock
flag: ''
number: 2
preserve: false
grub_device: false
type: partition
id: partition-1
- fstype: ext4
volume: partition-1
preserve: false
type: format
id: format-1
- path: /
device: format-1
type: mount
id: mount-1
- path: /boot/efi
device: format-0
type: mount
id: mount-0
updates: "all"
ssh:
install-server: true
allow-pw: true
# Customize the list of packages installed.
packages:
- open-vm-tools
# Create the default user.
# Ensures the "builder" user doesn't require a password to use sudo.
user-data:
users:
- name: builder
# openssl passwd -6 -stdin <<< builder
passwd: $6$xyz$UtXVazU08Q5b8AW.TJ3MPYZglyXa3Ttf2RCel8MCUPlEYO1evWxeWBhZ2QqivU/Ij4tqYAxMCqc2ujEM4dMSe1
groups: [adm, cdrom, dip, plugdev, lxd, sudo]
lock-passwd: false
sudo: ALL=(ALL) NOPASSWD:ALL
shell: /bin/bash

# This command runs after all other steps; it:
# 1. Disables swapfiles
# 2. Removes the existing swapfile
# 3. Removes the swapfile entry from /etc/fstab
# 4. Removes snapd, https://bugs.launchpad.net/subiquity/+bug/1946609
# 5. Cleans up any packages that are no longer required
# 6. Removes the cached list of packages
late-commands:
- curtin in-target --target=/target -- swapoff -a
- curtin in-target --target=/target -- rm -f /swap.img
- curtin in-target --target=/target -- sed -ri '/\sswap\s/s/^#?/#/' /etc/fstab
- chroot /target apt-get purge -y snapd
- curtin in-target --target=/target -- apt-get purge --auto-remove -y
- curtin in-target --target=/target -- apt-get clean
- curtin in-target --target=/target -- rm -rf /var/lib/apt/lists/*
11 changes: 11 additions & 0 deletions images/capi/packer/ova/packer-node.json
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,8 @@
"{{user `boot_command_suffix`}}"
],
"boot_wait": "{{user `boot_wait`}}",
"cd_files": "{{user `cd_files`}}",
"cd_label": "{{user `cd_label`}}",
"cdrom_adapter_type": "{{user `cdrom_adapter_type`}}",
"communicator": "ssh",
"cores": "{{user `cpu_cores`}}",
Expand Down Expand Up @@ -90,6 +92,8 @@
"{{user `boot_command_suffix`}}"
],
"boot_wait": "{{user `boot_wait`}}",
"cd_files": "{{user `cd_files`}}",
"cd_label": "{{user `cd_label`}}",
"cdrom_adapter_type": "{{user `cdrom_adapter_type`}}",
"communicator": "ssh",
"cores": "{{user `cpu_cores`}}",
Expand Down Expand Up @@ -140,6 +144,8 @@
"{{user `boot_command_suffix`}}"
],
"boot_wait": "{{user `boot_wait`}}",
"cd_files": "{{user `cd_files`}}",
"cd_label": "{{user `cd_label`}}",
"cdrom_type": "{{user `cdrom_type`}}",
"cluster": "{{user `cluster`}}",
"communicator": "ssh",
Expand Down Expand Up @@ -199,6 +205,8 @@
"{{user `boot_command_suffix`}}"
],
"boot_wait": "{{user `boot_wait`}}",
"cd_files": "{{user `cd_files`}}",
"cd_label": "{{user `cd_label`}}",
"cdrom_type": "{{user `cdrom_type`}}",
"cluster": "{{user `cluster`}}",
"communicator": "ssh",
Expand Down Expand Up @@ -234,6 +242,7 @@
"network_card": "{{user `network_card`}}"
}
],
"notes": "Builddate: {{isotime \"2006-01-02T15:04\"}}, containerd_version: {{user `containerd_version`}} vsphere_guest_os_type: {{user `vsphere_guest_os_type`}} kubernetes_cni_semver: {{user `kubernetes_cni_semver`}} kubernetes_semver: {{user `kubernetes_semver`}} kubernetes_source_type: {{user `kubernetes_source_type`}} vm_version: {{user `vmx_version`}}",
"password": "{{user `password`}}",
"resource_pool": "{{user `resource_pool`}}",
"shutdown_command": "echo '{{user `ssh_password`}}' | sudo -S -E sh -c 'userdel -f -r {{user `ssh_username`}} && rm -f /etc/sudoers.d/{{user `ssh_username` }} && {{user `shutdown_command`}}'",
Expand All @@ -257,6 +266,8 @@
{
"CPUs": "{{user `cpu`}}",
"RAM": "{{user `memory`}}",
"cd_files": "{{user `cd_files`}}",
"cd_label": "{{user `cd_label`}}",
"cluster": "{{user `cluster`}}",
"communicator": "ssh",
"convert_to_template": "{{user `convert_to_template`}}",
Expand Down
18 changes: 18 additions & 0 deletions images/capi/packer/ova/ubuntu-2404-efi.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
{
"boot_command_prefix": "c<wait>linux /casper/vmlinuz ipv6.disable={{ user `boot_disable_ipv6` }} --- autoinstall ds='nocloud-net;s=http://{{ .HTTPIP }}:{{ .HTTPPort }}/24.04.efi/'<enter><wait>initrd /casper/initrd<enter><wait>boot<enter>",
"boot_disable_ipv6": "0",
"boot_media_path": "/media/HTTP",
"build_name": "ubuntu-{{user `distro_version` | replace_all \".\" \"\" }}-efi",
"distro_arch": "amd64",
"distro_name": "ubuntu",
"distro_version": "24.04",
"firmware": "efi",
"floppy_dirs": "./packer/ova/linux/{{user `distro_name`}}/http/",
"guest_os_type": "ubuntu-64",
"iso_checksum": "https://releases.ubuntu.com/noble/SHA256SUMS",
"iso_checksum_type": "file",
"iso_url": "https://releases.ubuntu.com/noble/ubuntu-24.04-live-server-amd64.iso",
"os_display_name": "Ubuntu 24.04",
"shutdown_command": "shutdown -P now",
"vsphere_guest_os_type": "ubuntu64Guest"
}
Empty file.
111 changes: 111 additions & 0 deletions images/capi/packer/raw/linux/ubuntu/http/22.04.efi/user-data
Original file line number Diff line number Diff line change
@@ -0,0 +1,111 @@
#cloud-config
# Copyright 2022 The Kubernetes Authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

# For more information on how autoinstall is configured, please refer to
# https://ubuntu.com/server/docs/install/autoinstall-reference
autoinstall:
version: 1
# Disable ssh server during installation, otherwise packer tries to connect and exceed max attempts
early-commands:
- systemctl stop ssh
# Configure the locale
locale: en_US.UTF-8
keyboard:
layout: us
grub:
reorder_uefi: false
replace_linux_default: false
# For more information on how partitioning is configured,
# please refer to https://curtin.readthedocs.io/en/latest/topics/storage.html.
storage:
config:
- ptable: gpt
path: /dev/sda
wipe: superblock-recursive
preserve: false
name: ''
grub_device: false
type: disk
id: disk-sda
- device: disk-sda
# Create EFI partition of 512MB same as in Ubuntu 20.04
size: 536870912
wipe: superblock
flag: boot
number: 1
preserve: false
grub_device: true
type: partition
id: partition-0
- fstype: fat32
volume: partition-0
preserve: false
type: format
id: format-0
- device: disk-sda
size: -1
wipe: superblock
flag: ''
number: 2
preserve: false
grub_device: false
type: partition
id: partition-1
- fstype: ext4
volume: partition-1
preserve: false
type: format
id: format-1
- path: /
device: format-1
type: mount
id: mount-1
- path: /boot/efi
device: format-0
type: mount
id: mount-0
updates: "all"
ssh:
install-server: true
allow-pw: true
# Create the default user.
# Ensures the "builder" user doesn't require a password to use sudo.
user-data:
users:
- name: builder
# openssl passwd -6 -stdin <<< builder
passwd: $6$xyz$UtXVazU08Q5b8AW.TJ3MPYZglyXa3Ttf2RCel8MCUPlEYO1evWxeWBhZ2QqivU/Ij4tqYAxMCqc2ujEM4dMSe1
groups: [adm, cdrom, dip, plugdev, lxd, sudo]
lock-passwd: false
sudo: ALL=(ALL) NOPASSWD:ALL
shell: /bin/bash

# This command runs after all other steps; it:
# 1. Disables swapfiles
# 2. Removes the existing swapfile
# 3. Removes the swapfile entry from /etc/fstab
# 4. Cleans up any packages that are no longer required
# 5. Removes the cached list of packages
late-commands:
- |
if [ -d /sys/firmware/efi ]; then
apt-get install -y efibootmgr
efibootmgr -o $(efibootmgr | perl -n -e '/Boot(.+)\* ubuntu/ && print $1')
fi
- swapoff -a
- rm -f /swapfile
- sed -ri '/\sswap\s/s/^#?/#/' /etc/fstab
- apt-get purge --auto-remove -y
- rm -rf /var/lib/apt/lists/*
Empty file.
Loading