pulumi / pulumi/pulumi-java

Wrong package in kubernetes and java pulumi

Open
#1,240 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

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

Description

What happened?

When I create a simple EKS cluster, I get the following package error:

java.util.concurrent.CompletionException: java.lang.NoClassDefFoundError: com/pulumi/kubernetes/core_v1/ConfigMap
        at java.base/java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:315)
        at java.base/java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:320)
        at java.base/java.util.concurrent.CompletableFuture$UniApply.tryFire(CompletableFuture.java:649)
        at java.base/java.util.concurrent.CompletableFuture$Completion.exec(CompletableFuture.java:483)
        at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:387)
        at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1312)
        at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1843)
        at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1808)
        at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:188)
    Caused by: java.lang.NoClassDefFoundError: com/pulumi/kubernetes/core_v1/ConfigMap
        at java.base/java.lang.Class.getDeclaredMethods0(Native Method)
        at java.base/java.lang.Class.privateGetDeclaredMethods(Class.java:3578)
        at java.base/java.lang.Class.getDeclaredMethods(Class.java:2676)
        at com.pulumi.serialization.internal.Converter.processSetters(Converter.java:851)
        at com.pulumi.serialization.internal.Converter.collectSetters(Converter.java:847)
        at com.pulumi.serialization.internal.Converter.checkTargetType(Converter.java:829)
        at com.pulumi.serialization.internal.Converter.checkTargetType(Converter.java:675)
        at com.pulumi.serialization.internal.Converter.convertValue(Converter.java:78)
        at com.pulumi.core.internal.OutputCompletionSource.setValue(OutputCompletionSource.java:95)
        at com.pulumi.deployment.internal.DeploymentImpl$ReadOrRegisterResourceInternal.lambda$completeResourceAsync$0(DeploymentImpl.java:1187)
        at java.base/java.util.concurrent.CompletableFuture$UniApply.tryFire(CompletableFuture.java:646)
        ... 6 more
    Caused by: java.lang.ClassNotFoundException: com.pulumi.kubernetes.core_v1.ConfigMap
        at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:445)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:593)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:526)
        ... 17 more

The right package from com.pulumi:kubernetes 4.3.0 is com.pulumi.kubernetes.core.v1.ConfigMap with a . and not a _

Example
import com.pulumi.eks.Cluster;
import com.pulumi.eks.ClusterArgs;

public class EKS {

public Cluster createEKS(Network network, Context ctx) {
 Role role = getClusterRole();

 var cluster = new Cluster("pulumi-cluster", ClusterArgs.builder()
   .minSize(2)
   .maxSize(5)
   .desiredCapacity(2)
   .vpcId(network.vpc().id())
   .version("1.27")
   .instanceType("t2.small")
   .publicSubnetIds(network.subnetsEksId())
   .privateSubnetIds(network.subnetsEksId())
   .serviceRole(role)
   .build());
}

    private Role getClusterRole() {
        var role = new Role("pulumi-eks-role", RoleArgs.builder()
                .assumeRolePolicy(
                        """
                                {
                                    "Version": "2012-10-17",
                                    "Statement": [
                                        {
                                            "Effect": "Allow",
                                            "Principal": {
                                                "Service": "eks.amazonaws.com"
                                            },
                                            "Action": "sts:AssumeRole"
                                        }
                                    ]
                                }
                                """).build());

        new RolePolicyAttachment("pulumi-eks-policy-attachment",
                RolePolicyAttachmentArgs.builder()
                        .policyArn("arn:aws:iam::aws:policy/AmazonEKSClusterPolicy")
                        .role(role.id()).build());
        return role;
    }
}
Output of pulumi about

CLI
Version 3.84.0
Go Version go1.21.1
Go Compiler gc

Plugins
NAME VERSION
aws 6.3.0
eks 1.0.3
java unknown
kubernetes 4.3.0

Host
OS darwin
Version 12.4
Arch x86_64

This project is written in java: executable='/usr/bin/java' version='java 21 2023-09-19 LTS
Java(TM) SE Runtime Environment (build 21+35-LTS-2513)
Java HotSpot(TM) 64-Bit Server VM (build 21+35-LTS-2513, mixed mode, sharing)' maven='Apache Maven 3.9.4 (dfbb324ad4a7c8fb0bf182e6d91b0ae20e3d2dd9)' java='/usr/bin/java' javac='21'

Current Stack: organization/poc-pulumi/dev

TYPE URN
pulumi:pulumi:Stack urn:pulumi:dev::poc-pulumi::pulumi:pulumi:Stack::poc-pulumi-dev
pulumi:providers:aws urn:pulumi:dev::poc-pulumi::pulumi:providers:aws::default_6_3_0
aws:ec2/vpc:Vpc urn:pulumi:dev::poc-pulumi::aws:ec2/vpc:Vpc::pulumi
aws:iam/role:Role urn:pulumi:dev::poc-pulumi::aws:iam/role:Role::pulumi-eks-node-role
aws:iam/group:Group urn:pulumi:dev::poc-pulumi::aws:iam/group:Group::pulumi-eks-group
aws:ec2/internetGateway:InternetGateway urn:pulumi:dev::poc-pulumi::aws:ec2/internetGateway:InternetGateway::pulumi-gw
aws:iam/policy:Policy urn:pulumi:dev::poc-pulumi::aws:iam/policy:Policy::pulumi-eks-admin-policy
aws:iam/role:Role urn:pulumi:dev::poc-pulumi::aws:iam/role:Role::pulumi-eks-role
aws:ec2/routeTable:RouteTable urn:pulumi:dev::poc-pulumi::aws:ec2/routeTable:RouteTable::pulumi-rt
aws:ec2/subnet:Subnet urn:pulumi:dev::poc-pulumi::aws:ec2/subnet:Subnet::pulumi-subnet-eks-a
aws:ec2/subnet:Subnet urn:pulumi:dev::poc-pulumi::aws:ec2/subnet:Subnet::pulumi-subnet-ec2
aws:ec2/subnet:Subnet urn:pulumi:dev::poc-pulumi::aws:ec2/subnet:Subnet::pulumi-subnet-rds-a
aws:iam/rolePolicyAttachment:RolePolicyAttachment urn:pulumi:dev::poc-pulumi::aws:iam/rolePolicyAttachment:RolePolicyAttachment::pulumi-eks-policy-node-attachment-1
aws:ec2/subnet:Subnet urn:pulumi:dev::poc-pulumi::aws:ec2/subnet:Subnet::pulumi-subnet-rds-b
aws:ec2/defaultSecurityGroup:DefaultSecurityGroup urn:pulumi:dev::poc-pulumi::aws:ec2/defaultSecurityGroup:DefaultSecurityGroup::pulumi-sg
aws:ec2/subnet:Subnet urn:pulumi:dev::poc-pulumi::aws:ec2/subnet:Subnet::pulumi-subnet-eks-b
aws:iam/rolePolicyAttachment:RolePolicyAttachment urn:pulumi:dev::poc-pulumi::aws:iam/rolePolicyAttachment:RolePolicyAttachment::pulumi-eks-policy-node-attachment-2
aws:iam/groupPolicyAttachment:GroupPolicyAttachment urn:pulumi:dev::poc-pulumi::aws:iam/groupPolicyAttachment:GroupPolicyAttachment::pulumi-eks-group-attachment
aws:ec2/internetGatewayAttachment:InternetGatewayAttachment urn:pulumi:dev::poc-pulumi::aws:ec2/internetGatewayAttachment:InternetGatewayAttachment::pulumi-gw-attachment
aws:iam/rolePolicyAttachment:RolePolicyAttachment urn:pulumi:dev::poc-pulumi::aws:iam/rolePolicyAttachment:RolePolicyAttachment::pulumi-eks-policy-attachment
aws:ec2/route:Route urn:pulumi:dev::poc-pulumi::aws:ec2/route:Route::pulumi-route
aws:ec2/routeTableAssociation:RouteTableAssociation urn:pulumi:dev::poc-pulumi::aws:ec2/routeTableAssociation:RouteTableAssociation::pulumi-rt-association-1
aws:ec2/routeTableAssociation:RouteTableAssociation urn:pulumi:dev::poc-pulumi::aws:ec2/routeTableAssociation:RouteTableAssociation::pulumi-rt-association-2
aws:ec2/routeTableAssociation:RouteTableAssociation urn:pulumi:dev::poc-pulumi::aws:ec2/routeTableAssociation:RouteTableAssociation::pulumi-rt-association-5
aws:ec2/routeTableAssociation:RouteTableAssociation urn:pulumi:dev::poc-pulumi::aws:ec2/routeTableAssociation:RouteTableAssociation::pulumi-rt-association-3
aws:ec2/routeTableAssociation:RouteTableAssociation urn:pulumi:dev::poc-pulumi::aws:ec2/routeTableAssociation:RouteTableAssociation::pulumi-rt-association-4
pulumi:providers:eks urn:pulumi:dev::poc-pulumi::pulumi:providers:eks::default_2_0_0_alpha_2_4accbaf2
pulumi:providers:pulumi urn:pulumi:dev::poc-pulumi::pulumi:providers:pulumi::default
pulumi:providers:aws urn:pulumi:dev::poc-pulumi::pulumi:providers:aws::default_6_0_4
eks:index:Cluster urn:pulumi:dev::poc-pulumi::eks:index:Cluster::pulumi-cluster
eks:index:ServiceRole urn:pulumi:dev::poc-pulumi::eks:index:Cluster$eks:index:ServiceRole::pulumi-cluster-instanceRole
pulumi:providers:eks urn:pulumi:dev::poc-pulumi::pulumi:providers:eks::default
eks:index:RandomSuffix urn:pulumi:dev::poc-pulumi::eks:index:Cluster$eks:index:RandomSuffix::pulumi-cluster-cfnStackName
aws:iam/role:Role urn:pulumi:dev::poc-pulumi::eks:index:Cluster$eks:index:ServiceRole$aws:iam/role:Role::pulumi-cluster-instanceRole-role
aws:ec2/securityGroup:SecurityGroup urn:pulumi:dev::poc-pulumi::eks:index:Cluster$aws:ec2/securityGroup:SecurityGroup::pulumi-cluster-eksClusterSecurityGroup
aws:iam/rolePolicyAttachment:RolePolicyAttachment urn:pulumi:dev::poc-pulumi::eks:index:Cluster$eks:index:ServiceRole$aws:iam/rolePolicyAttachment:RolePolicyAttachment::pulumi-cluster-instanceRole-03516f97
aws:iam/rolePolicyAttachment:RolePolicyAttachment urn:pulumi:dev::poc-pulumi::eks:index:Cluster$eks:index:ServiceRole$aws:iam/rolePolicyAttachment:RolePolicyAttachment::pulumi-cluster-instanceRole-3eb088f2
aws:ec2/securityGroupRule:SecurityGroupRule urn:pulumi:dev::poc-pulumi::eks:index:Cluster$aws:ec2/securityGroupRule:SecurityGroupRule::pulumi-cluster-eksClusterInternetEgressRule
aws:iam/rolePolicyAttachment:RolePolicyAttachment urn:pulumi:dev::poc-pulumi::eks:index:Cluster$eks:index:ServiceRole$aws:iam/rolePolicyAttachment:RolePolicyAttachment::pulumi-cluster-instanceRole-e1b295bd
aws:iam/instanceProfile:InstanceProfile urn:pulumi:dev::poc-pulumi::eks:index:Cluster$aws:iam/instanceProfile:InstanceProfile::pulumi-cluster-instanceProfile
aws:eks/cluster:Cluster urn:pulumi:dev::poc-pulumi::eks:index:Cluster$aws:eks/cluster:Cluster::pulumi-cluster-eksCluster
pulumi:providers:kubernetes urn:pulumi:dev::poc-pulumi::eks:index:Cluster$pulumi:providers:kubernetes::pulumi-cluster-eks-k8s
aws:ec2/securityGroup:SecurityGroup urn:pulumi:dev::poc-pulumi::eks:index:Cluster$aws:ec2/securityGroup:SecurityGroup::pulumi-cluster-nodeSecurityGroup
kubernetes:core/v1:ConfigMap urn:pulumi:dev::poc-pulumi::eks:index:Cluster$kubernetes:core/v1:ConfigMap::pulumi-cluster-nodeAccess
aws:ec2/securityGroupRule:SecurityGroupRule urn:pulumi:dev::poc-pulumi::eks:index:Cluster$aws:ec2/securityGroupRule:SecurityGroupRule::pulumi-cluster-eksClusterIngressRule
aws:ec2/securityGroupRule:SecurityGroupRule urn:pulumi:dev::poc-pulumi::eks:index:Cluster$aws:ec2/securityGroupRule:SecurityGroupRule::pulumi-cluster-eksNodeIngressRule
aws:ec2/securityGroupRule:SecurityGroupRule urn:pulumi:dev::poc-pulumi::eks:index:Cluster$aws:ec2/securityGroupRule:SecurityGroupRule::pulumi-cluster-eksNodeInternetEgressRule
eks:index:VpcCni urn:pulumi:dev::poc-pulumi::eks:index:Cluster$eks:index:VpcCni::pulumi-cluster-vpc-cni
aws:ec2/securityGroupRule:SecurityGroupRule urn:pulumi:dev::poc-pulumi::eks:index:Cluster$aws:ec2/securityGroupRule:SecurityGroupRule::pulumi-cluster-eksExtApiServerClusterIngressRule
aws:ec2/launchConfiguration:LaunchConfiguration urn:pulumi:dev::poc-pulumi::eks:index:Cluster$aws:ec2/launchConfiguration:LaunchConfiguration::pulumi-cluster-nodeLaunchConfiguration
aws:ec2/securityGroupRule:SecurityGroupRule urn:pulumi:dev::poc-pulumi::eks:index:Cluster$aws:ec2/securityGroupRule:SecurityGroupRule::pulumi-cluster-eksNodeClusterIngressRule
aws:cloudformation/stack:Stack urn:pulumi:dev::poc-pulumi::eks:index:Cluster$aws:cloudformation/stack:Stack::pulumi-cluster-nodes
pulumi:providers:kubernetes urn:pulumi:dev::poc-pulumi::eks:index:Cluster$pulumi:providers:kubernetes::pulumi-cluster-provider
aws:eks/cluster:Cluster urn:pulumi:dev::poc-pulumi::aws:eks/cluster:Cluster::pulumi-cluster
aws:eks/addon:Addon urn:pulumi:dev::poc-pulumi::aws:eks/addon:Addon::vpc-cni
aws:eks/addon:Addon urn:pulumi:dev::poc-pulumi::aws:eks/addon:Addon::kube-proxy
aws:eks/addon:Addon urn:pulumi:dev::poc-pulumi::aws:eks/addon:Addon::coredns
aws:eks/nodeGroup:NodeGroup urn:pulumi:dev::poc-pulumi::aws:eks/nodeGroup:NodeGroup::pulumi-ng-default

Found no pending operations associated with dev

Backend
Name romainnv-W0XGR
URL file://~
User romainnv
Organizations

No dependencies found

Pulumi locates its logs in /var/folders/yw/crxbgmnx2kz0bd_t1cg3b7f40000gn/T/ by default
warning: A new version of Pulumi is available. To upgrade from version '3.84.0' to '3.87.0', run
$ brew update && brew upgrade pulumi
or visit https://pulumi.com/docs/install/ for manual instructions and release notes.

Additional context

No response

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 by reproducing the EKS example with the listed Pulumi CLI, EKS, and Kubernetes versions, then inspect how the Java Kubernetes package exposes ConfigMap. Compare the failing com.pulumi.kubernetes.core_v1.ConfigMap reference with the expected com.pulumi.kubernetes.core.v1.ConfigMap name; done when the example runs without NoClassDefFoundError.

Written by the indexing model from the issue text.

Assessment

Tech stack
java, kubernetes
Domain
devtools
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 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.