autoinstall:
  version: 1

  # Configuração de Usuário e Senha
  identity:
    hostname: naraborba
    username: nara # Usuário padrão
    password: "$6$aiG/hKVbXBiwbSd3$bzbZk1v6LoaK/DMf9JHmlCDFn5SMIdldlXkndg7pOkIftkoQ0.ZFs6oKWkPSfiTcTVOF5XkEEO6QxIutp7Pdq1"

  # Configurações de Localização
  locale: pt_BR.UTF-8
  keyboard:
    layout: br
  timezone: America/Sao_Paulo

  # Configuração de Rede (DHCP)
  network:
    version: 2
    renderer: NetworkManager # Ideal para Ubuntu Desktop
    ethernets:
      # O Subiquity geralmente usa 'eth0' ou um nome 'ensX'
      # Definimos 'all-en' para tentar capturar todas as interfaces ethernet
      all-en:
        dhcp4: true

  # Configuração de Armazenamento (Particionamento)
  storage:
    config:
      # Seleciona automaticamente o primeiro disco encontrado
      - id: disk0
        type: disk
        match: {}
        ptable: gpt
        wipe: superblock-recursive

      # EFI 512 MB
      - id: part_efi
        type: partition
        device: disk0
        size: 512M
        flag: boot,esp

      - id: fmt_efi
        type: format
        fstype: fat32
        device: part_efi

      - id: mnt_efi
        type: mount
        device: fmt_efi
        path: /boot/efi

      # Restante em LVM
      - id: part_lvm
        type: partition
        device: disk0
        size: -1

      - id: pv0
        type: lvm_physical_volume
        device: part_lvm

      - id: vg0
        type: lvm_volume_group
        name: vgubuntu
        devices: [pv0]

      # Swap 4G
      - id: lv_swap
        type: lvm_logical_volume
        name: swap
        volume_group: vgubuntu
        size: 4G

      # Root = 100%
      - id: lv_root
        type: lvm_logical_volume
        name: root
        volume_group: vgubuntu
        size: 100%FREE

      - id: fmt_swap
        type: format
        fstype: swap
        device: lv_swap

      - id: fmt_root
        type: format
        fstype: ext4
        device: lv_root

      - id: mnt_root
        type: mount
        device: fmt_root
        path: /

  # Pós-instalação e Pacotes
  packages:
    # O pacote 'ca-certificates' é bom para garantir que o HTTPS funcione
    # O 'curl' é útil para baixar o script do Docker, se necessário
    - ca-certificates
    - curl
    - gnupg

  # Comandos executados após a instalação para instalar o Docker
  late-commands:
    - curtin in-target -- sh -c "install -m 0755 -d /etc/apt/keyrings"
    # Adiciona a chave GPG oficial do Docker
    - curtin in-target -- sh -c "curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg"
    # Adiciona o repositório do Docker
    - curtin in-target -- sh -c "echo 'deb [arch=\"$(dpkg --print-architecture)\" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo \"$VERSION_CODENAME\") stable' | tee /etc/apt/sources.list.d/docker.list > /dev/null"
    # Atualiza e instala os pacotes do Docker
    - curtin in-target -- sh -c "apt-get update"
    - curtin in-target -- sh -c "DEBIAN_FRONTEND=noninteractive apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin"
    # Adiciona o usuário 'jean' ao grupo docker
    - curtin in-target -- sh -c "usermod -aG docker nara"

  # Finalização
  power-state:
    delay: 5
    mode: reboot