canonical / canonical/cloud-init

[enhancement]: compiled language wishlist

Open
#5,552 0 comments 1 reaction 0 assignees View on GitHub
enhancement
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.