crossplane-contrib / provider-helm

Crossplane Helm Provider
Apache License 2.0
102 stars 65 forks source link

Asynchronous deployment of helm releases #63

Open turkenh opened 3 years ago

turkenh commented 3 years ago

What problem are you facing?

Currently, install and upgrade calls using helm go client is blocking which means, reconcile loop is being blocked until deployment is done. Since we don't set wait (related), this is fine if chart does not contain hooks. However, with hooks we encounter problems like this.

How could Crossplane help solve your problem?

We need to make this action asynchronous somehow.

turkenh commented 3 years ago

Related: https://github.com/helm/helm/issues/5891

jbw976 commented 2 years ago

Are you still working on this @turkenh, or would it be available for someone else to take on?

turkenh commented 2 years ago

@jbw976 not really. Just unassigned from myself and available for anyone interested.

turkenh commented 2 years ago

For posterity, I believe this could be implemented by following a similar approach used in Terrajet: https://github.com/crossplane/terrajet/blob/6142eefbcf5b4e6490a4a39f8ceffa8810911d5f/pkg/terraform/workspace.go#L106

We might even consider to have a cli execution library (sync/async) as a reusable piece of code, e.g. in crossplane-runtime. Not sure if this worths the amount of work required though.