#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 # Create a single-partition with no swap space. Kubernetes # really dislikes the idea of anyone else managing memory. # For more information on how partitioning is configured, # please refer to https://curtin.readthedocs.io/en/latest/topics/storage.html. storage: config: - type: disk id: disk-0 size: largest grub_device: true preserve: false ptable: msdos wipe: superblock - type: partition id: partition-0 device: disk-0 size: -1 number: 1 preserve: false flag: boot - type: format id: format-0 volume: partition-0 fstype: ext4 preserve: false - type: mount id: mount-0 device: format-0 path: / 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. Cleans up any packages that are no longer required # 5. Removes the cached list of packages late-commands: - swapoff -a - rm -f /swapfile - sed -ri '/\sswap\s/s/^#?/#/' /etc/fstab - apt-get purge --auto-remove -y - rm -rf /var/lib/apt/lists/*