Azure / azure-init

A minimal provisioning agent designed for Azure Linux VMs.
MIT License
10 stars 11 forks source link

[RFE] consumable library for integration with other provisioning agents #33

Open t-lo opened 8 months ago

t-lo commented 8 months ago

Current situation

The provisioning agent implements all features in a single application.

Impact

Re-using the agent's functionality from other agents like e.g. Afterburn is challenging. This impacts adoption of the agent by the larger Linux ecosystem and hinders its mission of being a reference implementation for a minimal Azure provisioning guest agent.

Ideal future situation

Follow-up tasks

anhvoms commented 8 months ago

This sounds great. A few comments: 1) We should produce a library which has all the core functionality and the main application that consumes it so that anyone can just use the whole agent as-is and other agents who are interested only in the functionality can consume the library. 2) We should think about making some of the functionality configurable. As an example: mounting the ISO to retrieve ovf file requires enabling UDF driver in the image, which might not be desirable for some users, especially if he/she does not have a need to provision the VM with password through Azure control plane. By making it configurable, the user can minimally customize the functionality of the agent/binary depending on his/her need

dongsupark commented 7 months ago

I have been looking into this issue.

For separate structure of a common library and a binary that depends on the lib, one approach would be to introduce workspace. So we can move all libs (distro, goalstate, imds, etc.) to a subdirectory, keeping only src/main.rs in the current form, to combine bin and lib in a top-level Cargo.toml. ue-rs already has a similar workspace structure.

dongsupark commented 7 months ago

Created a WIP PR https://github.com/Azure/azure-provisioning-agent/pull/39.

t-lo commented 7 months ago

[heart] Thilo Fromm reacted to your message:


From: Dongsu Park @.> Sent: Wednesday, February 21, 2024 4:35:18 PM To: Azure/azure-provisioning-agent @.> Cc: Thilo Fromm @.>; Author @.> Subject: Re: [Azure/azure-provisioning-agent] [RFE] consumable library for integration with other provisioning agents (Issue #33)

Created a WIP PR #39https://github.com/Azure/azure-provisioning-agent/pull/39.

— Reply to this email directly, view it on GitHubhttps://github.com/Azure/azure-provisioning-agent/issues/33#issuecomment-1957225824, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AAARRUGGG7D4X6CDUQV23S3YUYO4NAVCNFSM6AAAAABCS63T6WVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSNJXGIZDKOBSGQ. You are receiving this because you authored the thread.Message ID: @.***>

dongsupark commented 7 months ago

Published v0.1.1 of libazureinit and azure-init. The 2nd one, The library is built and tested in CI, versioned releases are published regularly is done.