Skip to content

feat: add support for Raspberry Pi OS Trixie#2732

Open
nicomiguelino wants to merge 8 commits intoScreenly:masterfrom
nicomiguelino:feat/trixie-support
Open

feat: add support for Raspberry Pi OS Trixie#2732
nicomiguelino wants to merge 8 commits intoScreenly:masterfrom
nicomiguelino:feat/trixie-support

Conversation

@nicomiguelino
Copy link
Copy Markdown
Contributor

@nicomiguelino nicomiguelino commented Apr 7, 2026

Issues Fixed

Fixes #2532

Description

Raspberry Pi OS Trixie (Debian 13) removes apt-key, which the previous playbook relied on via ansible.builtin.apt_key. This change replaces the deprecated approach with the modern method recommended by Docker and Debian:

  • Creates /etc/apt/keyrings/ directory
  • Downloads the Docker GPG key to /etc/apt/keyrings/docker.asc using get_url
  • Adds signed-by=/etc/apt/keyrings/docker.asc to the Docker apt sources list entry
  • Consolidates the separate x86 and Raspberry Pi key tasks into a single task (both use the same Debian Docker repository)

This approach is backward-compatible with Bookworm.

Checklist

  • I have performed a self-review of my own code.
  • New and existing unit tests pass locally and on CI with my changes.
  • I have done an end-to-end test for Raspberry Pi devices.
  • I have tested my changes for x86 devices.
  • I added a documentation for the changes I have made (when necessary).

- Replace deprecated `apt-key` tasks with `get_url` to store Docker GPG key in `/etc/apt/keyrings/docker.asc`
- Add `signed-by` reference in Docker apt sources list entry
- Consolidate x86 and Raspberry Pi key tasks into a single task using the Debian Docker repository

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@nicomiguelino nicomiguelino self-assigned this Apr 7, 2026
nicomiguelino and others added 2 commits April 7, 2026 11:31
- Update `REPOSITORY`, `BRANCH`, and `GITHUB_RAW_URL` to use the fork and branch
- Disable interactive prompts; hardcode network management and system upgrade to `Yes`

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Guard `.pkla` tasks to only run on Debian 12 (Bookworm) and earlier
- Add polkit `.rules` task for Debian 13 (Trixie+) where `.pkla` support was dropped

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates the installer/playbooks to support Raspberry Pi OS Trixie (Debian 13), primarily by replacing deprecated apt-key usage for Docker and adjusting NetworkManager polkit configuration for newer polkit versions.

Changes:

  • Switch Docker APT key handling to /etc/apt/keyrings and add signed-by in the Docker repo entry.
  • Add a polkit .rules file for NetworkManager authorization on Debian 13+ and gate legacy .pkla edits to Debian <= 12.
  • Modify bin/install.sh defaults/flow (branch/repo URLs and user prompts).

Reviewed changes

Copilot reviewed 2 out of 3 changed files in this pull request and generated 1 comment.

File Description
bin/install.sh Changes installer defaults and removes interactive prompting (currently hardcodes fork/branch and forces options).
ansible/roles/system/tasks/main.yml Migrates Docker repo key setup away from apt_key and adds signed-by to the repo entry.
ansible/roles/network/tasks/main.yml Adds Debian-version-gated polkit configuration for NetworkManager (rules for 13+, pkla for <=12).
Comments suppressed due to low confidence (1)

ansible/roles/system/tasks/main.yml:314

  • Because this task uses lineinfile without a regexp, hosts that already have the previous Docker repo line (without signed-by) will end up with two deb entries in docker.list after reruns/upgrades. Add a regexp (or use replace/template) so the existing Docker repo line is updated in-place rather than duplicated.
- name: Add Docker repo
  ansible.builtin.lineinfile:
    path: /etc/apt/sources.list.d/docker.list
    create: true
    line: "deb [arch={{ architecture }} signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian {{ debian_name.stdout }} stable"
    state: present
    owner: root
    group: root
    mode: "0644"

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

nicomiguelino and others added 2 commits April 7, 2026 13:39
- Restore `BRANCH`, `REPOSITORY`, and `GITHUB_RAW_URL` to upstream values
- Restore interactive prompts for network management, version, and system upgrade

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Replace `ansible-community/ansible-lint-action@main` (archived) with direct `pip install` and `ansible-lint` run

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@nicomiguelino nicomiguelino marked this pull request as ready for review April 7, 2026 20:47
@nicomiguelino nicomiguelino requested a review from a team as a code owner April 7, 2026 20:47
nicomiguelino and others added 3 commits April 7, 2026 13:49
- Restore `ansible-community/ansible-lint-action@main` usage
- Revert direct `pip install` and `ansible-lint` invocation

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Update `REPOSITORY`, `BRANCH`, and `GITHUB_RAW_URL` to use the fork and branch
- Disable interactive prompts; hardcode network management and system upgrade to `Yes`

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Add task to check if `/etc/timezone` exists
- Derive timezone from `/etc/localtime` symlink and write to `/etc/timezone` if missing

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@sonarqubecloud
Copy link
Copy Markdown

sonarqubecloud bot commented Apr 8, 2026

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[FEATURE] Support installing Anthias on Trixie

2 participants