canonical / canonical/cloud-init
[enhancement]: compiled language wishlist
- Dominant language
- Python
- Stars
- 3.8k
- Forks
- 1.1k
- Avg merge
- 2d 23h
- Merged PRs (30d)
- 18
Description
# Enhancement
Python has the benefits of expressive syntax, a strong ecosystem, a strong community, and wide platform support.
A major downside of Python is that it is slow to initialize. This makes it ill-suited for performance-critical operations. Where performance-critical code is required, cloud-init uses POSIX shell, which enjoys broad platform support however leaves much to desire in terms of syntax and maintainability.
A wishlist of components that would be desirable to write in a compiled language:
- ds-identify: this crucial tool is used by cloud-init to identify which platform it is running on. This tool [must read / write YAML](https://github.com/canonical/cloud-init/issues/4796) and do various local filesystem operations and systemd runs it as a generator to enable cloud-init.
- socket protocol: this protocol enables running cloud-init as a single process, but requires a shim services to send and receive from a unix socket [in order to propagate return codes to the individual services](https://github.com/canonical/cloud-init/pull/5489#discussion_r1691132694)
Contributor guide
Assessment
This issue has not been assessed yet.