boundless-telephone-98269
02/10/2022, 5:57 PMboundless-telephone-98269
02/10/2022, 5:58 PMbored-table-20691
02/10/2022, 5:59 PMApplyT
would even make sense.quiet-wolf-18467
ripe-shampoo-80285
02/12/2022, 5:38 PMboundless-telephone-98269
02/12/2022, 10:43 PMclusterIP := chart.GetResource("v1/Service", "onepassword-connect", Namespace).ApplyT(
func(r interface{}) (pulumi.StringPtrOutput, error) {
return r.(*corev1.Service).Spec.ClusterIP(), nil
},
)
boundless-telephone-98269
02/12/2022, 10:44 PMclusterIP
is of the type pulumi.AnyOutput
. Is there anyway I can get it to be of type pulumi.StringPtrOutput
so I can feed it into something else? Casting doesn't work.boundless-telephone-98269
02/12/2022, 10:51 PMboundless-telephone-98269
02/12/2022, 11:09 PMpulumi.AnyOutput
-> pulumi.StringPtrOutput
by:
output := chart.GetResource("v1/Service", "onepassword-connect", Namespace).ApplyT(
func(r interface{}) (pulumi.StringPtrOutput, error) {
return r.(*corev1.Service).Spec.ClusterIP(), nil
},
).(pulumi.AnyOutput)
clusterIP := pulumi.StringPtrOutput{OutputState: output.OutputState} // <-------
bored-table-20691
02/13/2022, 5:27 AMboundless-telephone-98269
02/13/2022, 5:07 PMchart, err := helm.NewChart(ctx, ResourceName, helm.ChartArgs{
Namespace: pulumi.String(Namespace),
Chart: pulumi.String(Chart),
Version: pulumi.String(ChartVersion),
FetchArgs: helm.FetchArgs{
Repo: pulumi.String(Repository),
},
Values: pulumi.Map{
"connect": pulumi.Map{
"serviceType": pulumi.String("ClusterIP"),
"credentials": cfg.RequireSecret("CONNECT_CREDENTIALS"),
},
},
}
boundless-telephone-98269
02/13/2022, 5:08 PMclusterIP
to be of type pulumi.StringPtrOutput
instead of pulumi.AnyOutput
is because I'm passing it on into the environment variable of a kubernetes pod.boundless-telephone-98269
02/13/2022, 5:09 PMContainers: corev1.ContainerArray{
corev1.ContainerArgs{
Name: pulumi.String(...),
Image: pulumi.String(Image),
Env: corev1.EnvVarArray{
corev1.EnvVarArgs{
Name: pulumi.String("DEST_IP"),
Value: clusterIP, // <-----
},
},
},
},
bored-table-20691
02/13/2022, 7:19 PMastonishing-solstice-53645
02/13/2022, 7:45 PMboundless-telephone-98269
02/13/2022, 7:54 PMoutput := chart.GetResource("v1/Service", "onepassword-connect", Namespace).ApplyT(
func(r interface{}) (pulumi.StringPtrOutput, error) {
return r.(*corev1.Service).Spec.ClusterIP(), nil
},
).(pulumi.AnyOutput)
clusterIP := pulumi.StringPtrOutput{OutputState: output.OutputState}
bored-table-20691
02/13/2022, 7:57 PMboundless-telephone-98269
02/13/2022, 8:01 PMclusterIP := chart.GetResource("v1/Service", "onepassword-connect", Namespace).ApplyT(
func(r interface{}) (pulumi.StringPtrOutput, error) {
return r.(*corev1.Service).Spec.ClusterIP(), nil
},
).(pulumi.StringPtrOutput)
boundless-telephone-98269
02/13/2022, 8:01 PMpanic: interface conversion: pulumi.Output is pulumi.AnyOutput, not pulumi.StringPtrOutput
boundless-telephone-98269
02/13/2022, 8:04 PMAnyOutput
because the return type of my applier function is an output type pulumi.StringPtrOutput
instead of something like string
boundless-telephone-98269
02/13/2022, 8:04 PMr.(*corev1.Service).Spec.ClusterIP()
is of type pulumi.StringPtrOutput
and what I wantbored-table-20691
02/13/2022, 8:05 PMboundless-telephone-98269
02/13/2022, 8:05 PMpulumi.AnyOutput
boundless-telephone-98269
02/13/2022, 8:05 PMboundless-telephone-98269
02/13/2022, 8:05 PMfunc (c *Chart) GetResource(gvk, name, namespace string) pulumi.AnyOutput {
id := name
if len(namespace) > 0 && namespace != "default" {
id = fmt.Sprintf("%s/%s", namespace, name)
}
key := fmt.Sprintf("%s::%s", gvk, id)
return c.Resources.ApplyT(func(x interface{}) interface{} {
resources := x.(map[string]pulumi.Resource)
return resources[key]
}).(pulumi.AnyOutput)
}
boundless-telephone-98269
02/13/2022, 8:06 PMtype AnyOutput struct{ *OutputState }
boundless-telephone-98269
02/13/2022, 8:20 PMAnyOutput
and how to work with itboundless-telephone-98269
02/13/2022, 8:20 PMpulumi.StringPtrOutput{OutputState: output.OutputState}
but I'm okay with it since it's a one liner but this might be the recommended methodbored-table-20691
02/13/2022, 8:22 PMbored-table-20691
02/13/2022, 8:22 PM