prehistoric-coat-10166
03/16/2021, 2:30 PMpulumi-kubernetes
package I figured to try here first.
I'm trying to write some unit tests in C# for my stacks and I'm having trouble with a stack which contains a Helm.V3.Chart
.
The problem can be produced by having the following stack:
public class FailingHelmStack : Pulumi.Stack
{
public FailingHelmStack()
{
var chart = new Pulumi.Kubernetes.Helm.V3.Chart("chart"
, new Pulumi.Kubernetes.Helm.ChartArgs()
{
Chart = "ingress-nginx",
Namespace = "kube-system",
FetchOptions = new Pulumi.Kubernetes.Helm.ChartFetchArgs
{
Repo = "<https://kubernetes.github.io/ingress-nginx>",
},
});
}
}
Using Deployment.TestAsync
with this stack results in the following exception being thrown.
Pulumi.RunException : Running program '<path>\bin\Debug\net5.0\testhost.dll' failed with an unhandled exception:
System.NullReferenceException: Object reference not set to an instance of an object.
at System.Collections.Immutable.ImmutableArray.CreateRange[TSource,TResult](ImmutableArray`1 items, Func`2 selector)
at Pulumi.Extensions.SelectAsArray[TItem,TResult](ImmutableArray`1 items, Func`2 map)
at Pulumi.InputList`1.op_Implicit(ImmutableArray`1 values)
at Pulumi.Kubernetes.Helm.V3.Chart.<>c__DisplayClass3_0.<ParseTemplate>b__0(ImmutableArray`1 objs)
at Pulumi.Output`1.ApplyHelperAsync[U](Task`1 dataTask, Func`2 func)
at Pulumi.Output`1.ApplyHelperAsync[U](Task`1 dataTask, Func`2 func)
at Pulumi.Output`1.Pulumi.IOutput.GetDataAsync()
at Pulumi.Serialization.Serializer.SerializeAsync(String ctx, Object prop, Boolean keepResources)
at Pulumi.Deployment.SerializeFilteredPropertiesAsync(String label, IDictionary`2 args, Predicate`1 acceptKey, Boolean keepResources)
at Pulumi.Deployment.SerializeAllPropertiesAsync(String label, IDictionary`2 args, Boolean keepResources)
at Pulumi.Deployment.RegisterResourceOutputsAsync(Resource resource, Output`1 outputs)
at Pulumi.Deployment.Runner.<>c__DisplayClass9_0.<<WhileRunningAsync>g__HandleCompletion|0>d.MoveNext()
--- End of stack trace from previous location ---
at Pulumi.Deployment.Runner.WhileRunningAsync()
Stack Trace:
at Pulumi.Deployment.TestAsync(IMocks mocks, Func`2 runAsync, TestOptions options)
<snip>
--- End of stack trace from previous location ---
I think I might be able to workaround this problem by mocking some necessary outputs perhaps. But
I'm having trouble figuring out what exactly is required.
Any help or suggestions would be greatly appreciated.