Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Wrong package in kubernetes and java pulumi #1240

Open
alk-rniveau opened this issue Oct 9, 2023 · 1 comment
Open

Wrong package in kubernetes and java pulumi #1240

alk-rniveau opened this issue Oct 9, 2023 · 1 comment
Labels
area/codegen kind/bug Some behavior is incorrect or out of spec

Comments

@alk-rniveau
Copy link

alk-rniveau commented Oct 9, 2023

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).

@alk-rniveau alk-rniveau added kind/bug Some behavior is incorrect or out of spec needs-triage Needs attention from the triage team labels Oct 9, 2023
@mikhailshilkov
Copy link
Member

Thank you for reporting this!

This sounds like a Java codegen issue. We reference the type here: https://github.com/pulumi/pulumi-eks/blob/c882b6f9d6e8f7551a4e2b06811a2a41294f30ce/provider/cmd/pulumi-gen-eks/main.go#L980

@mikhailshilkov mikhailshilkov transferred this issue from pulumi/pulumi-eks Oct 9, 2023
@justinvp justinvp added area/codegen and removed needs-triage Needs attention from the triage team labels Oct 11, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/codegen kind/bug Some behavior is incorrect or out of spec
Projects
None yet
Development

No branches or pull requests

3 participants