@here I am trying to create mapping type custom re...
# kubernetes
f
@here I am trying to create mapping type custom resource using pulumi v2 k8 SDK, below is the code snippet , but when i see debug logs of pulumi i see Spec object going as empty, not able to figure out whats goiing on, please help #kubernetes #golang #pulumi-kubernetes-operator
Copy code
func CreateCustomResource(ctx *pulumi.Context, applicationName string, apiKey string, urlPrefix string, apiVersion string, kind string, labels pulumi.StringMap, timeout int64,k8sProvider *k8s.Provider,serviceAccount *v1.ServiceAccount)(*k8sApiExt.CustomResource, error){


   type SpecType struct {
      Prefix pulumi.String
      Service pulumi.String
      Headers pulumi.StringMap
      TimeOut <http://pulumi.Int|pulumi.Int>
   }

   //headersData := pulumi.StringMap{"x-api-key":pulumi.String(apiKey)}

   spec := SpecType{
      Prefix:  pulumi.String(fmt.Sprintf("/%s/",urlPrefix)),
      Service: pulumi.String(applicationName),
      TimeOut: <http://pulumi.Int|pulumi.Int>(timeout),
   }

   var otherfields k8s.UntypedArgs
   otherfields = make(k8s.UntypedArgs, 1)
   otherfields["Spec"] = spec


   customResourceDefnArgs := k8sApiExt.CustomResourceArgs{
      ApiVersion: pulumi.String(apiVersion),
      Kind:       pulumi.String(kind),
      Metadata:   metav1.ObjectMetaArgs{
         Labels:                     labels,
         Name:                       pulumi.String(applicationName),
         Namespace:                  pulumi.String(applicationName),

      },

      OtherFields: otherfields,

   }
   data, err := json.Marshal(customResourceDefnArgs)
   if(err == nil){
      logger.Infof("datataa= %s-%s",data,apiKey)
   }

   return k8sApiExt.NewCustomResource(ctx,GetResourceName(applicationName,"mapping"),&customResourceDefnArgs,pulumi.DependsOn([]pulumi.Resource{serviceAccount}),pulumi.Provider(k8sProvider))


}
logs:
Copy code
I0928 13:20:32.675242   48629 rpc.go:72] Marshaling property for RPC[ResourceMonitor.RegisterResource(kubernetes:core/v1:ServiceAccount,sa-gtp-config-api)]: name={sa-token-lbjk9}
I0928 13:20:32.676074   48629 source_eval.go:519] parseProviderRequest(kubernetes): semver version is the empty string
I0928 13:20:32.676103   48629 rpc.go:249] Unmarshaling property for RPC[ResourceMonitor.RegisterResource(kubernetes:<http://getambassador.io/v2:Mapping,mapping-gtp-config-api|getambassador.io/v2:Mapping,mapping-gtp-config-api>)]: Spec={map[]}
I0928 13:20:32.676122   48629 rpc.go:249] Unmarshaling property for RPC[ResourceMonitor.RegisterResource(kubernetes:<http://getambassador.io/v2:Mapping,mapping-gtp-config-api|getambassador.io/v2:Mapping,mapping-gtp-config-api>)]: apiVersion={<http://getambassador.io/v2|getambassador.io/v2>}
I0928 13:20:32.676134   48629 rpc.go:249] Unmarshaling property for RPC[ResourceMonitor.RegisterResource(kubernetes:<http://getambassador.io/v2:Mapping,mapping-gtp-config-api|getambassador.io/v2:Mapping,mapping-gtp-config-api>)]: kind={Mapping}
I0928 13:20:32.676146   48629 rpc.go:249] Unmarshaling property for RPC[ResourceMonitor.RegisterResource(kubernetes:<http://getambassador.io/v2:Mapping,mapping-gtp-config-api|getambassador.io/v2:Mapping,mapping-gtp-config-api>)]: component={gtp-config-api}
I0928 13:20:32.676157   48629 rpc.go:249] Unmarshaling property for RPC[ResourceMonitor.RegisterResource(kubernetes:<http://getambassador.io/v2:Mapping,mapping-gtp-config-api|getambassador.io/v2:Mapping,mapping-gtp-config-api>)]: team={gtp}
I0928 13:20:32.676170   48629 rpc.go:249] Unmarshaling property for RPC[ResourceMonitor.RegisterResource(kubernetes:<http://getambassador.io/v2:Mapping,mapping-gtp-config-api|getambassador.io/v2:Mapping,mapping-gtp-config-api>)]: labels={map[component:{gtp-config-api} team:{gtp}]}
I0928 13:20:32.676184   48629 rpc.go:249] Unmarshaling property for RPC[ResourceMonitor.RegisterResource(kubernetes:<http://getambassador.io/v2:Mapping,mapping-gtp-config-api|getambassador.io/v2:Mapping,mapping-gtp-config-api>)]: name={gtp-config-api}
I0928 13:20:32.676195   48629 rpc.go:249] Unmarshaling property for RPC[ResourceMonitor.RegisterResource(kubernetes:<http://getambassador.io/v2:Mapping,mapping-gtp-config-api|getambassador.io/v2:Mapping,mapping-gtp-config-api>)]: namespace={gtp-config-api}
I0928 13:20:32.676208   48629 rpc.go:249] Unmarshaling property for RPC[ResourceMonitor.RegisterResource(kubernetes:<http://getambassador.io/v2:Mapping,mapping-gtp-config-api|getambassador.io/v2:Mapping,mapping-gtp-config-api>)]: metadata={map[labels:{map[component:{gtp-config-api} team:{gtp}]} name:{gtp-config-api} namespace:{gtp-config-api}]}
I0928 13:20:32.676231   48629 source_eval.go:968] ResourceMonitor.RegisterResource received: t=kubernetes:<http://getambassador.io/v2:Mapping|getambassador.io/v2:Mapping>, name=mapping-gtp-config-api, custom=true, #props=4, parent=urn:pulumi:dev-configapi::gtp-config-api::pulumi:pulumi:Stack::gtp-config-api-dev-configapi, protect=false, provider=urn:pulumi:dev-configapi::gtp-config-api::pulumi:providers:kubernetes::k8::ccb1ae84-6cb0-4508-a017-ee4642ed1e8c, deps=[urn:pulumi:dev-configapi::gtp-config-api::kubernetes:core/v1:ServiceAccount::sa-gtp-config-api], deleteBeforeReplace=<nil>, ignoreChanges=[], aliases=[], customTimeouts={0 0 0}, providers=map[], replaceOnChanges=[]
I0928 13:20:32.676262   48629 source_eval.go:163] EvalSourceIterator produced a registration: t=kubernetes:<http://getambassador.io/v2:Mapping,name=mapping-gtp-config-api,#props=4|getambassador.io/v2:Mapping,name=mapping-gtp-config-api,#props=4>
I0928 1