You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When a Java SDK program applies a manifest containing a custom resource (e.g. using ConfigGroup v2), the resultant resources output should contain an instance of com.pulumi.kubernetes.apiextensions.CustomResource, but doesn't. Well-known kinds like ConfigMap work as expected, but it appears that the SDK is unaware of the possibility of using CustomResource as a fallback. As a result, the resources array has incomplete information.
The relevant code snippet in pulumi-java is here. The code appears to scan the classpath for resource classes marked with the @ResourceType annotation.
Observe that com.pulumi.kubernetes.apiextensions.CustomResource does have a @ResourceType annotation, with an apparently useless value, given that no actual resource is of type kubernetes:apiextensions:CustomResource. When I authored CustomResource, I didn't know enough about the purpose of ResourceType.
This issue is about how resource references are hydrated by the Pulumi Java SDK. Basically the SDK expects to find (on the classpath) a resource class for the given type token. But is that a reasonable expectation (that you have an SDK type for all resource types that you may encounter), especially when crossing a component boundary?
In this example, a program is basically applying a Kubernetes manifest, and this causes a sub-graph of resources from the Kubernetes provider, but the provider doesn't provide an SDK type for all possible kinds.
When a Java SDK program applies a manifest containing a custom resource (e.g. using ConfigGroup v2), the resultant
resources
output should contain an instance ofcom.pulumi.kubernetes.apiextensions.CustomResource
, but doesn't. Well-known kinds likeConfigMap
work as expected, but it appears that the SDK is unaware of the possibility of usingCustomResource
as a fallback. As a result, theresources
array has incomplete information.Example program snippet:
Debug logs show:
The relevant code snippet in pulumi-java is here. The code appears to scan the classpath for resource classes marked with the
@ResourceType
annotation.Observe that
com.pulumi.kubernetes.apiextensions.CustomResource
does have a@ResourceType
annotation, with an apparently useless value, given that no actual resource is of typekubernetes:apiextensions:CustomResource
. When I authoredCustomResource
, I didn't know enough about the purpose ofResourceType
.I would suggest as a possible fix that the Java SDK allow for a given resource to be marked as the default, e.g.
The text was updated successfully, but these errors were encountered: