-
Notifications
You must be signed in to change notification settings - Fork 881
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
feat(raspberry-pi-os): Add Raspberry Pi OS support #5827
base: main
Are you sure you want to change the base?
Conversation
ee038ab
to
9eeab09
Compare
This commit adds support for the Raspberry Pi OS debian distribution. It includes a distro definition, 3 modules and integration into other systems like config generation. Signed-off-by: paulober <[email protected]>
c475d72
to
683ffc8
Compare
Is there an option if a setting for |
Some additional context: This PR (and the linked GitHub PRs from other repos) are part of a wider desire to move to using cloud-init as the customisation scheme for Raspberry Pi OS, with associated infrastructure in Raspberry Pi Imager to ensure we maintain feature parity (if not an increased feature set) with the current 'firstrun' style customisation scheme. Going forward, assuming this PR is merged and our migration proceeds along happily enough, my plan is to recommend to each distro vendor supplying OS images to the Raspberry Pi Imager that they also adopt cloud-init as their customisation scheme. This may result in additional PRs adding distro features to cloud-init in a similar manner to this PR - but should absolutely improve the experience for end users across the board. |
Signed-off-by: paulober <[email protected]>
Signed-off-by: paulober <[email protected]>
config/cloud.cfg.tmpl
Outdated
@@ -305,6 +320,11 @@ system_info: | |||
{% elif variant == "openmandriva" %} | |||
network: | |||
renderers: ['network-manager', 'networkd'] | |||
{% elif variant == "raspberry-pi-os" %} | |||
network: | |||
dhcp_client_priority: [dhclient] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Upstream dhclient is abandoned. Is raspberry-pi-os's plan to support it forever?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This was included as an error, and dhclient is not actually used by Raspberry Pi OS - instead, we use network-manager's built in DHCP client. I believe this has been corrected in the latest version of this PR.
config/cloud.cfg.tmpl
Outdated
{% elif variant == "raspberry-pi-os" %} | ||
network: | ||
dhcp_client_priority: [dhclient] | ||
renderers: ['netplan', 'network-manager', 'networkd', 'eni'] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Which of these does raspberry-pi-os support and plan to use?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Which of these does raspberry-pi-os support and plan to use?
In the updated PR, this has been reduced to netplan & network-manager, both of which we want to offer.
Signed-off-by: paulober <[email protected]>
8f8d1ad
to
1a850fe
Compare
Signed-off-by: paulober <[email protected]>
fcd247a
to
9bb2b18
Compare
This commit adds support for the Raspberry Pi OS debian based distribution. It includes a distro definition, 3 modules and integration into other systems like config generation and docs.
tools/.github-cla-signers
tests/unittests/
cloudinit/example.py
should be tested bytests/unittests/test_example.py
tox -e py3
tox -e doc
.Proposed Commit Message
Additional Context
It currently includes the
cc_rpi_userdata
module for renaming the image user and handling the setup wizard.Maybe adding the user configuration stuff to a custom add_user implementation for the first user added
is a better approach here.
Also it would be great if the
final_message
would support commands. This would give use the option to remove therc.local
approach and print the IPs through the cloud-init system configuration.@tdewey-rpi, @XECDesign, @ghollingworth, @will-v-pi
Test Steps
Tested with custom Raspberry Pi OS image.
Will add more
Merge type