Skip to content
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

Make Deploy/TearDown Provision methods asynchronous #64

Merged
merged 11 commits into from
Dec 11, 2024

Conversation

markgoddard
Copy link
Contributor

@markgoddard markgoddard commented Dec 6, 2024

  • Make Deploy/TearDown asynchronous in Provision interface
    Status is now reported back via Status messages sent into a channel
    returned by these methods.

    This removes user interface interaction from the provision plugin,
    allowing it to be performed by a remote (gRPC) plugin.

  • Refactor HelmSPIREProvider methods to be synchronous
    The high-level Execute* methods now use a provided status channel rather
    than returning one, and execute synchronously. This simplifies the code
    and allows us to use the main status channel in the SpireHelm provision
    plugin.

  • Add StatusBuilder to simplify status reporting

  • Remove last Printf calls from helm package
    It should no longer be providing any direct UI interaction.

  • Export SpireHelm methods to allow provision plugins to reuse them

    Another provision plugin can now delegate certain actions to the
    SpireHelm provision plugin.

    A ProviderFactory interface allows for customising the HelmSPIREProvider
    construction.

  • Add Helm provider interface and a spirehelm unit test

This is another step towards #56.

Status is now reported back via Status messages sent into a channel
returned by these methods.

This removes user interface interaction from the provision plugin,
allowing it to be performed by a remote (gRPC) plugin.
The high-level Execute* methods now use a provided status channel rather
than returning one, and execute synchronously. This simplifies the code
and allows us to use the main status channel in the SpireHelm provision
plugin.
It should no longer be providing any direct UI interaction.
@markgoddard markgoddard self-assigned this Dec 6, 2024
@markgoddard markgoddard changed the base branch from main to provision-interface December 6, 2024 10:53
@markgoddard markgoddard added this to the release-0.7.0 milestone Dec 6, 2024
Base automatically changed from provision-interface to main December 6, 2024 11:43
@markgoddard markgoddard marked this pull request as draft December 6, 2024 15:56
Now that HelmSPIREProvider methods are synchronous, and multiple
operations can be sent over a single status channel, we need to adapt
the error handling to use a more traditional error return value.
Another provision plugin can now delegate certain actions to the
SpireHelm provision plugin.

A ProviderFactory interface allows for customising the HelmSPIREProvider
construction.
@markgoddard markgoddard marked this pull request as ready for review December 10, 2024 15:00
@markgoddard markgoddard merged commit f0be6f2 into main Dec 11, 2024
5 checks passed
@markgoddard markgoddard deleted the async-provision branch December 11, 2024 11:58
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