busy-island-31180
01/18/2022, 10:42 PMmyService.metadata.name
in order to pass information around. I’ve found that this ends up creating dependencies, and in some cases, deadlock situations.
In this example, a service will not become “healthy” until there are pods registered to it. Yet, when I’m using something like ArgoRollouts, there’s a pointer back to my service name:
strategy:
# Blue-green update strategy
blueGreen:
# Reference to service that the rollout modifies as the active service.
# Required.
activeService: active-service
So, because of this, the pulumi wants to deploy the service first, and rollout second. But the service never becomes healthy, as it’s waiting on the rollout.
The workaround is to define a variable and pass the value of that to all places that need the service name.
I was also thinking of a way to tell Pulumi to not block other resources from being created while this one becomes healthy? The data is available regardless of health state.
For k8s resources, I feel like, a lot of the data is static, and yet it’s treated as dynamic, thus I can’t easily make these references. (I coming from Jsonnet, which makes this quite easy).
Has anyone else run into these types of problems? Do you have any patterns or practices that makes the code feel “refactor proof”?
What about the case when you don’t know the service name? (maybe it’s being returned as part of higher-level function)bored-table-20691
01/18/2022, 10:43 PM"<http://pulumi.com/skipAwait|pulumi.com/skipAwait>": pulumi.String("true"),
busy-island-31180
01/18/2022, 10:52 PMbored-table-20691
01/18/2022, 10:55 PMbusy-island-31180
01/18/2022, 10:56 PMbored-table-20691
01/18/2022, 10:59 PMbusy-island-31180
01/18/2022, 11:49 PMbored-table-20691
01/19/2022, 1:12 AM