Skip to content

upstart: drop vestigial support for upstart (SC-902)#1421

Merged
TheRealFalcon merged 6 commits into
canonical:mainfrom
blackboxsw:drop-upstart
May 10, 2022
Merged

upstart: drop vestigial support for upstart (SC-902)#1421
TheRealFalcon merged 6 commits into
canonical:mainfrom
blackboxsw:drop-upstart

Conversation

@blackboxsw
Copy link
Copy Markdown
Collaborator

@blackboxsw blackboxsw commented Apr 29, 2022

upstream cloud-init not longer publishes to distribution
versions which support upstart.

Trusty has not been receiving cloud-init updates since
0.7.5 and Xenial stopped getting updates as version 21.1.

Even though Ubuntu Xenial's default init system is systemd
there was still an option for folks to launch amd maintain
images which relied on upstart. Now that Xenial no longer has
updates from upstream cloud-init we can drop all upstart
support.

Old Fedora and RHEL releases which use upstart are also not
receiving cloud-init updates from tip of main.

Proposed Commit Message

Grab above

Additional Context

Packaging branch to also remove emit_upstart from a modified /etc/cloud/cloud.cfg across upgrade from debian/cloud-init.postinst #1429

Test Steps

Checklist:

  • My code follows the process laid out in the documentation
  • I have updated or added any unit tests accordingly
  • I have updated or added any documentation accordingly

@TheRealFalcon TheRealFalcon changed the title upstart: drop vestigial support for upstart upstart: drop vestigial support for upstart (SC-902) Apr 29, 2022
@blackboxsw
Copy link
Copy Markdown
Collaborator Author

Dropping this PR @TheRealFalcon was working on this ticket today. Sorry James.

@blackboxsw blackboxsw closed this Apr 29, 2022
@blackboxsw blackboxsw reopened this Apr 30, 2022
upstream cloud-init not longer publishes to distribution
versions which support upstart.

Trusty has not been receiving cloud-init updates since
0.7.5 and Xenial stopped getting updates as version 21.1.

Even though Ubuntu Xenial's default init system is systemd
there was still an option for folks to launch amd maintain
images which relied on upstart. Now that Xenial no longer has
updates from upstream cloud-init we can drop all upstart
support.

Old Fedora and RHEL releases which use upstart are also not
receiving cloud-init updates from tip of main.
@blackboxsw blackboxsw marked this pull request as ready for review May 3, 2022 21:26
@blackboxsw blackboxsw mentioned this pull request May 4, 2022
3 tasks
Copy link
Copy Markdown
Contributor

@TheRealFalcon TheRealFalcon left a comment

Choose a reason for hiding this comment

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

@blackboxsw
Copy link
Copy Markdown
Collaborator Author

Looks good, but I think there's a few more:

I had intentionally left this in thinking there could be some custom image uses of touch /var/lib/cloud/data/no-net to prevent the network datasource from being detected for images which mandate that init-local detection is valid. There is no other way for a custom image to "disable" network datasource detection which may cost them a lot of time on boot. I'm inclined to leave it in as there may be use-cases in the wild that make use of this marker file. I've changed the comment to not indicate the upstart
aspect of this behavior as that is long gone.

Removed all doc changes below and supplemented cloud-config-archive with a text/cloud-config in the example.

Changed text of both systemd/cloud-config.target and systemd/cloud-init.target to be a bit more helpful.

@blackboxsw blackboxsw requested a review from TheRealFalcon May 5, 2022 17:24
@blackboxsw
Copy link
Copy Markdown
Collaborator Author

blackboxsw commented May 5, 2022

I had intentionally left this in thinking there could be some custom image uses of touch /var/lib/cloud/data/no-net to prevent the network datasource from being detected for images which mandate that init-local detection is valid.

On further reflection, I think this undocumented magic file ends up being a really big hammer that "turns off" all of init-network stage operations including any config modules that should be run in that stage in an attempt to limp along a semi-configured system that should have failed early due to network config being absent.

Given this, I can defend dropping this. The original scenario where this was instrumented (trusty/upstart) was to catch when blocking on the network configuration timedout so network was assumed as not up. Cloud-init at the time wanted to get as much of the system up as possible to ensure it was "accessible" despite the fact that desired network configuration was inoperable. I think our perspective on the project has changed in recent years as we now want cloud-init to lean toward more strict handling of instance configuration, raising errors earlier and being as conspicuous about those errors as possible to reduce hidden or overlooked misconfiguration of an instance.

@blackboxsw
Copy link
Copy Markdown
Collaborator Author

Just to double check, note as well that Google Container optimized OS is running a systemd init system and has cloud-init 21.4 as of this writing.

$ systemd-analyze
Startup finished in 1.433s (kernel) + 10.793s (userspace) = 12.227s 
multi-user.target reached after 10.776s in userspace
/usr/lib/python-exec/python3.6/cloud-init 21.4

Copy link
Copy Markdown
Contributor

@TheRealFalcon TheRealFalcon left a comment

Choose a reason for hiding this comment

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

Yeet!

@TheRealFalcon TheRealFalcon merged commit 23a1575 into canonical:main May 10, 2022
aciba90 pushed a commit to aciba90/cloud-init that referenced this pull request May 10, 2022
upstream cloud-init not longer publishes to distribution
versions which support upstart.

Trusty has not been receiving cloud-init updates since
0.7.5 and Xenial stopped getting updates as version 21.1.

Even though Ubuntu Xenial's default init system is systemd
there was still an option for folks to launch amd maintain
images which relied on upstart. Now that Xenial no longer has
updates from upstream cloud-init we can drop all upstart
support.

Old Fedora and RHEL releases which use upstart are also not
receiving cloud-init updates from tip of main.
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.

2 participants