pulumi / pulumi/pulumi-java

Using `EksFunctions.getCluster` in java throws an error

Open
#1,689 2 comments 2 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

area/sdks kind/bug
Dominant language
Java
Stars
85
Forks
26
Avg merge
11h 49m
Merged PRs (30d)
22

Description

What happened?

When getting a cluster by it's name, the pulumi program throws an error

Example

EksFunctions.getCluster( GetClusterArgs.builder().name(clusterName).build() )
throws

 error: Running program [PID: 125](/opt/java/openjdk/bin/java -jar ../../app/classpath/installer.jar) failed with an unhandled exception:
2025-02-18T16:24:29.864957006Z     java.lang.UnsupportedOperationException: Convert [aws-native:eks:getCluster result]: Error converting 'com.google.common.collect.RegularImmutableMap' to 'TypeShape{type=class com.pulumi.awsnative.eks.outputs.GetClusterResult, parameters=[]}'. Expected type 'com.pulumi.awsnative.eks.outputs.GetClusterResult' (annotated with 'com.pulumi.core.annotations.CustomType') to have a setter annotated with @com.pulumi.core.annotations.CustomType$Setter("encryptionConfig"), got: storageConfig,computeConfig,zonalShiftConfig,version,tags,upgradePolicy,clusterSecurityGroupId,endpoint,resourcesVpcConfig,openIdConnectIssuerUrl,accessConfig,logging,certificateAuthorityData,id,arn,encryptionConfigKeyArn,kubernetesNetworkConfig
2025-02-18T16:24:29.864967798Z     	at com.pulumi.serialization.internal.Converter.convertObjectUntyped(Converter.java:119)
2025-02-18T16:24:29.864969465Z     	at com.pulumi.serialization.internal.Converter.convertValue(Converter.java:86)
2025-02-18T16:24:29.864971631Z     	at com.pulumi.deployment.internal.DeploymentImpl$Invoke.parseInvokeResponse(DeploymentImpl.java:596)
2025-02-18T16:24:29.864973173Z     	at com.pulumi.deployment.internal.DeploymentImpl$Invoke.lambda$invoke$2(DeploymentImpl.java:535)
2025-02-18T16:24:29.864974673Z     	at java.base/java.util.concurrent.CompletableFuture$UniApply.tryFire(Unknown Source)
2025-02-18T16:24:29.864976131Z     	at java.base/java.util.concurrent.CompletableFuture.postComplete(Unknown Source)
2025-02-18T16:24:29.864977590Z     	at java.base/java.util.concurrent.CompletableFuture.complete(Unknown Source)
2025-02-18T16:24:29.864979090Z     	at net.javacrumbs.futureconverter.guavacommon.GuavaFutureUtils$ListenableFutureBackedValueSourceFuture$1.onSuccess(GuavaFutureUtils.java:139)
2025-02-18T16:24:29.864980673Z     	at com.google.common.util.concurrent.Futures$CallbackListener.run(Futures.java:1133)
2025-02-18T16:24:29.864982090Z     	at com.google.common.util.concurrent.DirectExecutor.execute(DirectExecutor.java:31)
2025-02-18T16:24:29.864983548Z     	at com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:1286)
2025-02-18T16:24:29.864985006Z     	at com.google.common.util.concurrent.AbstractFuture.complete(AbstractFuture.java:1055)
2025-02-18T16:24:29.864986465Z     	at com.google.common.util.concurrent.AbstractFuture.set(AbstractFuture.java:782)
2025-02-18T16:24:29.864987881Z     	at io.grpc.stub.ClientCalls$GrpcFuture.set(ClientCalls.java:573)
2025-02-18T16:24:29.864989298Z     	at io.grpc.stub.ClientCalls$UnaryStreamToFuture.onClose(ClientCalls.java:546)
2025-02-18T16:24:29.864990756Z     	at io.grpc.internal.ClientCallImpl.closeObserver(ClientCallImpl.java:567)
2025-02-18T16:24:29.864992173Z     	at io.grpc.internal.ClientCallImpl.access$300(ClientCallImpl.java:71)
2025-02-18T16:24:29.864993715Z     	at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1StreamClosed.runInternal(ClientCallImpl.java:735)
2025-02-18T16:24:29.864995256Z     	at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1StreamClosed.runInContext(ClientCallImpl.java:716)
2025-02-18T16:24:29.864996756Z     	at io.grpc.internal.ContextRunnable.run(ContextRunnable.java:37)
2025-02-18T16:24:29.864998215Z     	at io.grpc.internal.SerializingExecutor.run(SerializingExecutor.java:133)
2025-02-18T16:24:29.864999631Z     	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
2025-02-18T16:24:29.865002381Z     	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
2025-02-18T16:24:29.865003840Z     	at java.base/java.lang.Thread.run(Unknown Source)
2025-02-18T16:24:29.865005715Z     Caused by: java.lang.IllegalArgumentException: Expected type 'com.pulumi.awsnative.eks.outputs.GetClusterResult' (annotated with 'com.pulumi.core.annotations.CustomType') to have a setter annotated with @com.pulumi.core.annotations.CustomType$Setter("encryptionConfig"), got: storageConfig,computeConfig,zonalShiftConfig,version,tags,upgradePolicy,clusterSecurityGroupId,endpoint,resourcesVpcConfig,openIdConnectIssuerUrl,accessConfig,logging,certificateAuthorityData,id,arn,encryptionConfigKeyArn,kubernetesNetworkConfig
2025-02-18T16:24:29.865008048Z     	at com.pulumi.serialization.internal.Converter.lambda$tryConvertObjectInner$5(Converter.java:315)
2025-02-18T16:24:29.865009590Z     	at java.base/java.util.HashMap.forEach(Unknown Source)
2025-02-18T16:24:29.865010965Z     	at com.pulumi.serialization.internal.Converter.tryConvertObjectInner(Converter.java:313)
2025-02-18T16:24:29.865012423Z     	at com.pulumi.serialization.internal.Converter.convertObjectUntyped(Converter.java:115)
2025-02-18T16:24:29.865013840Z     	... 23 more
2025-02-18T16:24:29.865015256Z     error: an unhandled error occurred: '/opt/java/openjdk/bin/java -jar ../../app/classpath/installer.jar' exited with non-zero exit code: 32
Output of pulumi about
CLI          
2025-02-18T16:38:56.540849463Z Version      3.149.0
2025-02-18T16:38:56.540855171Z Go Version   go1.23.6
2025-02-18T16:38:56.540858130Z Go Compiler  gc
2025-02-18T16:38:56.540860796Z 
2025-02-18T16:38:56.540863338Z Plugins
2025-02-18T16:38:56.540865755Z KIND      NAME        VERSION
2025-02-18T16:38:56.540868338Z resource  aws-native  1.25.0
2025-02-18T16:38:56.540870755Z language  java        1.2.0
2025-02-18T16:38:56.540873171Z resource  kubernetes  4.21.1
2025-02-18T16:38:56.540875713Z 
2025-02-18T16:38:56.540878046Z Host     
2025-02-18T16:38:56.540880546Z OS       redhat
2025-02-18T16:38:56.540882921Z Version  9.5
2025-02-18T16:38:56.540885338Z Arch     aarch64
2025-02-18T16:38:56.540887796Z 
2025-02-18T16:38:56.540890255Z This project is written in java: executable='/opt/java/openjdk/bin/java' version='openjdk 21.0.5 2024-10-15 LTS
2025-02-18T16:38:56.540893755Z OpenJDK Runtime Environment Temurin-21.0.5+11 (build 21.0.5+11-LTS)
2025-02-18T16:38:56.540896630Z OpenJDK 64-Bit Server VM Temurin-21.0.5+11 (build 21.0.5+11-LTS, mixed mode, sharing)' java='/opt/java/openjdk/bin/java' javac='unknown'
2025-02-18T16:38:56.540917630Z 
Additional context

I am migrating from aws to aws-native and am trying to map the functionality 1 to 1

Contributing

Vote on this issue by adding a 👍 reaction.
To contribute a fix for this issue, leave a comment (and link to your pull request, if you've opened one already).

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with EksFunctions.getCluster and GetClusterArgs, then trace the Converter.java failure shown in the stack trace for the encryptionConfig field. Compare the returned fields with GetClusterResult and run a reproduction using the provided Pulumi versions; done means the call converts successfully without the UnsupportedOperationException.

Written by the indexing model from the issue text.

Assessment

Tech stack
aws, java
Domain
devtools
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.