Skip to content

Commit 617cb73

Browse files
SahilWadhwaSahil
andauthored
Enable AWS KMS For LocalStack 0.10.8 (#2812)
Co-authored-by: Sahil <[email protected]>
1 parent e94e13e commit 617cb73

File tree

2 files changed

+24
-5
lines changed

2 files changed

+24
-5
lines changed

modules/localstack/src/main/java/org/testcontainers/containers/localstack/LocalStackContainer.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -252,7 +252,8 @@ public enum Service {
252252
STEPFUNCTIONS("stepfunctions", 4585),
253253
CLOUDWATCHLOGS("logs", 4586),
254254
STS("sts", 4592),
255-
IAM("iam", 4593);
255+
IAM("iam", 4593),
256+
KMS("kms", 4599);
256257

257258
String localStackName;
258259

modules/localstack/src/test/java/org/testcontainers/containers/localstack/LocalstackContainerTest.java

Lines changed: 22 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,11 @@
11
package org.testcontainers.containers.localstack;
22

33

4+
import com.amazonaws.services.kms.AWSKMS;
5+
import com.amazonaws.services.kms.AWSKMSClientBuilder;
6+
import com.amazonaws.services.kms.model.CreateKeyRequest;
7+
import com.amazonaws.services.kms.model.CreateKeyResult;
8+
import com.amazonaws.services.kms.model.Tag;
49
import com.amazonaws.services.logs.AWSLogs;
510
import com.amazonaws.services.logs.AWSLogsClientBuilder;
611
import com.amazonaws.services.logs.model.CreateLogGroupRequest;
@@ -38,9 +43,7 @@
3843
import static org.rnorth.visibleassertions.VisibleAssertions.assertEquals;
3944
import static org.rnorth.visibleassertions.VisibleAssertions.assertThat;
4045
import static org.rnorth.visibleassertions.VisibleAssertions.assertTrue;
41-
import static org.testcontainers.containers.localstack.LocalStackContainer.Service.S3;
42-
import static org.testcontainers.containers.localstack.LocalStackContainer.Service.SQS;
43-
import static org.testcontainers.containers.localstack.LocalStackContainer.Service.CLOUDWATCHLOGS;
46+
import static org.testcontainers.containers.localstack.LocalStackContainer.Service.*;
4447

4548
/**
4649
* Tests for Localstack Container, used both in bridge network (exposed to host) and docker network modes.
@@ -58,7 +61,7 @@ public static class WithoutNetwork {
5861
// without_network {
5962
@ClassRule
6063
public static LocalStackContainer localstack = new LocalStackContainer()
61-
.withServices(S3, SQS, CLOUDWATCHLOGS);
64+
.withServices(S3, SQS, CLOUDWATCHLOGS, KMS);
6265
// }
6366

6467
@Test
@@ -135,6 +138,21 @@ public void cloudWatchLogsTestOverBridgeNetwork() {
135138
assertEquals("One log group should be created", 1, groups.size());
136139
assertEquals("Name of created log group is [foo]", "foo", groups.get(0).getLogGroupName());
137140
}
141+
142+
@Test
143+
public void kmsKeyCreationTest() {
144+
AWSKMS awskms = AWSKMSClientBuilder.standard()
145+
.withEndpointConfiguration(localstack.getEndpointConfiguration(KMS))
146+
.withCredentials(localstack.getDefaultCredentialsProvider())
147+
.build();
148+
149+
String desc = String.format("AWS CMK Description");
150+
Tag createdByTag = new Tag().withTagKey("CreatedBy").withTagValue("StorageService");
151+
CreateKeyRequest req = new CreateKeyRequest().withDescription(desc).withTags(createdByTag);
152+
CreateKeyResult key = awskms.createKey(req);
153+
154+
assertEquals("AWS KMS Customer Managed Key should be created ", key.getKeyMetadata().getDescription(), desc);
155+
}
138156
}
139157

140158
public static class WithNetwork {

0 commit comments

Comments
 (0)