Skip to content

Aws eks PodIdentity Addon cannot be tagged #1924

@elonazoulay

Description

@elonazoulay

Describe what happened

We attempted to tag the pod identity aws eks Addon via the ProviderDefaultTags and the tags in the AddonArgs.Builder.
Neither worked.

It seems related to the tags function in the AddonArgs.Builder passing a json list of map instead of a map.

Is this a known issue?

I attempted with the lates pulumi java artifacts.

Let me know what information I can provide.

Sample program

In pulumi java, the following 3 snippets both fail to tag, note that we have aws provider default tags and they are not passed either:
Assume tags is a HashMap:

var tags = Map.of("key1", "value", "key2", "value")
// Provider default tags only
new Addon("%s-eks-pod-identity-agent".formatted(name), AddonArgs.builder()
                .cluster(cluster)
                .addonName("eks-pod-identity-agent")
                .build(),
                ComponentResourceOptions.builder()
                        .parent(this)
                        .provider(awsProvider)
                        .dependsOn(dependencies)
                        .build());
// Pass the tags as a Map<String, String>
new Addon("%s-eks-pod-identity-agent".formatted(name), AddonArgs.builder()
                .cluster(cluster)
                .addonName("eks-pod-identity-agent")
                .tags(tags)
                .build(),
                ComponentResourceOptions.builder()
                        .parent(this)
                        .provider(awsProvider)
                        .dependsOn(dependencies)
                        .build());
// Pass a List<Map<String, String>> to avoid the unchecked generics warning in java
new Addon("%s-eks-pod-identity-agent".formatted(name), AddonArgs.builder()
                .cluster(cluster)
                .addonName("eks-pod-identity-agent")
                .tags(ImmutableList.of(tags))
                .build(),
                ComponentResourceOptions.builder()
                        .parent(this)
                        .provider(awsProvider)
                        .dependsOn(dependencies)
                        .build());

Log output

Update succeeds.

Affected Resource(s)

The eks pod identity Addon.

Output of pulumi about

 pulumi about
CLI
Version      3.193.0
Go Version   go1.25.1
Go Compiler  gc

Plugins
KIND      NAME  VERSION
language  java  1.16.1

Host
OS       darwin
Version  15.6.1
Arch     arm64

This project is written in java: executable='/Users/elon/.jenv/shims/java' version='openjdk 24.0.2 2025-07-15
OpenJDK Runtime Environment Temurin-24.0.2+12 (build 24.0.2+12)
OpenJDK 64-Bit Server VM Temurin-24.0.2+12 (build 24.0.2+12, mixed mode, sharing)' gradle='8.14.3' java='/Users/XXX/.jenv/shims/java' javac='24.0.2' maven='Apache Maven 3.9.9 (8e8579a9e76f7d015ee5ec7bfcdc97d260186937)'

Current Stack: XXX/YYY/eloncluster1

Found no resources associated with XXX/eloncluster1

Found no pending operations associated with XXX/eloncluster1

Backend
Name           pulumi.com
URL            https://app.pulumi.com/eloniceguard
User           XXX
Organizations  XXX, XXX
Token type     personal

Dependencies:
NAME                                                         VERSION
io.iceguard:actors
com.amazonaws:aws-lambda-java-core
com.google.guava:guava
com.google.guava:failureaccess
com.google.errorprone:error_prone_annotations
com.google.j2objc:j2objc-annotations
com.google.inject:guice
aopalliance:aopalliance
io.airlift:bootstrap
jakarta.annotation:jakarta.annotation-api
io.airlift:configuration
net.bytebuddy:byte-buddy
org.hibernate.validator:hibernate-validator
org.jboss.logging:jboss-logging
com.fasterxml:classmate
org.tomlj:tomlj
org.antlr:antlr4-runtime
io.airlift:json
com.fasterxml.jackson.core:jackson-annotations
com.fasterxml.jackson.core:jackson-core
com.fasterxml.jackson.core:jackson-databind
com.fasterxml.jackson.datatype:jackson-datatype-guava
com.fasterxml.jackson.datatype:jackson-datatype-jdk8
com.fasterxml.jackson.datatype:jackson-datatype-joda
com.fasterxml.jackson.datatype:jackson-datatype-jsr310
com.fasterxml.jackson.module:jackson-module-parameter-names
io.airlift:log
jakarta.inject:jakarta.inject-api
jakarta.validation:jakarta.validation-api
org.jdbi:jdbi3-core
org.slf4j:slf4j-api
io.leangen.geantyref:geantyref
org.jdbi:jdbi3-postgres
software.amazon.awssdk:auth
software.amazon.awssdk:annotations
software.amazon.awssdk:utils
software.amazon.awssdk:identity-spi
software.amazon.awssdk:profiles
software.amazon.awssdk:http-client-spi
software.amazon.awssdk:json-utils
software.amazon.awssdk:http-auth-aws
software.amazon.awssdk:http-auth-aws-eventstream
software.amazon.awssdk:http-auth
software.amazon.awssdk:http-auth-spi
software.amazon.eventstream:eventstream
software.amazon.awssdk:aws-core
software.amazon.awssdk:metrics-spi
software.amazon.awssdk:endpoints-spi
software.amazon.awssdk:retries-spi
software.amazon.awssdk:retries
software.amazon.awssdk:rds
software.amazon.awssdk:aws-query-protocol
software.amazon.awssdk:protocol-core
software.amazon.awssdk:apache-client
org.apache.httpcomponents:httpclient
org.apache.httpcomponents:httpcore
commons-codec:commons-codec
software.amazon.awssdk:netty-nio-client
io.netty:netty-codec-http
io.netty:netty-codec-base
io.netty:netty-codec-compression
io.netty:netty-codec-http2
io.netty:netty-codec
io.netty:netty-codec-protobuf
io.netty:netty-codec-marshalling
io.netty:netty-transport
io.netty:netty-common
io.netty:netty-buffer
io.netty:netty-handler
io.netty:netty-transport-native-unix-common
io.netty:netty-transport-classes-epoll
io.netty:netty-resolver
software.amazon.awssdk:regions
software.amazon.awssdk:s3
software.amazon.awssdk:aws-xml-protocol
software.amazon.awssdk:arns
software.amazon.awssdk:crt-core
software.amazon.awssdk:checksums
software.amazon.awssdk:checksums-spi
software.amazon.awssdk:sdk-core
org.reactivestreams:reactive-streams
software.amazon.awssdk:secretsmanager
software.amazon.awssdk:aws-json-protocol
software.amazon.awssdk:sts
io.airlift:concurrent
io.airlift:units
io.airlift:log-manager
io.opentelemetry:opentelemetry-api
io.opentelemetry:opentelemetry-context
io.opentelemetry:opentelemetry-common
org.weakref:jmxutils
org.apache.logging.log4j:log4j-to-slf4j
org.apache.logging.log4j:log4j-api
org.slf4j:jcl-over-slf4j
org.slf4j:log4j-over-slf4j
org.slf4j:slf4j-jdk14
io.airlift:secrets-spi
org.postgresql:postgresql
org.checkerframework:checker-qual
software.amazon.awssdk:sso
software.amazon.awssdk:ssooidc
software.amazon.awssdk:third-party-jackson-core
org.assertj:assertj-core
org.junit.jupiter:junit-jupiter-api
org.opentest4j:opentest4j
org.junit.platform:junit-platform-commons
org.apiguardian:apiguardian-api
org.junit.jupiter:junit-jupiter-engine
org.junit.platform:junit-platform-engine
org.junit.jupiter:junit-jupiter-params
io.airlift:launcher
io.airlift:launcher

Pulumi locates its logs in /var/folders/by/XXX/T/ by default

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    awaiting-feedbackBlocked on input from the authorkind/bugSome behavior is incorrect or out of specneeds-reproNeeds repro steps before it can be triaged or fixed

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions