From 33eea3f7f2e832d63dc2c1823c56f5e235c80076 Mon Sep 17 00:00:00 2001 From: mazyu36 Date: Wed, 18 Sep 2024 00:25:39 +0900 Subject: [PATCH] feat(opensearch): support OpenSearch version 2.15 (#31398) ### Issue # (if applicable) N/A ### Reason for this change Amazon OpenSearch Service supports OpenSearch version 2.15. Ref: https://aws.amazon.com/about-aws/whats-new/2024/09/amazon-opensearch-service-version-2-15/ ```sh % aws opensearch list-versions --region us-east-1 { "Versions": [ "OpenSearch_2.15", "OpenSearch_2.13", "OpenSearch_2.11", // omit ``` ### Description of changes Add ver 2.15 enum ### Description of how you validated changes Add unit test and integ test ### Checklist - [x] My code adheres to the [CONTRIBUTING GUIDE](https://github.com/aws/aws-cdk/blob/main/CONTRIBUTING.md) and [DESIGN GUIDELINES](https://github.com/aws/aws-cdk/blob/main/docs/DESIGN_GUIDELINES.md) ---- *By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license* --- ...n => cdk-integ-opensearch-min.assets.json} | 8 +- ...=> cdk-integ-opensearch-min.template.json} | 35 +++++++- .../integ.opensearch.min.js.snapshot/cdk.out | 2 +- .../integ.json | 10 +-- ...faultTestDeployAssert0EB58658.assets.json} | 4 +- ...ultTestDeployAssert0EB58658.template.json} | 0 .../manifest.json | 50 ++++++----- .../tree.json | 83 +++++++++++++++---- .../test/integ.opensearch.min.ts | 29 ++++--- .../aws-opensearchservice/lib/version.ts | 3 + .../aws-opensearchservice/test/domain.test.ts | 2 + 11 files changed, 161 insertions(+), 65 deletions(-) rename packages/@aws-cdk-testing/framework-integ/test/aws-opensearchservice/test/integ.opensearch.min.js.snapshot/{cdk-integ-opensearch.assets.json => cdk-integ-opensearch-min.assets.json} (62%) rename packages/@aws-cdk-testing/framework-integ/test/aws-opensearchservice/test/integ.opensearch.min.js.snapshot/{cdk-integ-opensearch.template.json => cdk-integ-opensearch-min.template.json} (65%) rename packages/@aws-cdk-testing/framework-integ/test/aws-opensearchservice/test/integ.opensearch.min.js.snapshot/{IntegDefaultTestDeployAssert4E6713E1.assets.json => integopenseachminDefaultTestDeployAssert0EB58658.assets.json} (84%) rename packages/@aws-cdk-testing/framework-integ/test/aws-opensearchservice/test/integ.opensearch.min.js.snapshot/{IntegDefaultTestDeployAssert4E6713E1.template.json => integopenseachminDefaultTestDeployAssert0EB58658.template.json} (100%) diff --git a/packages/@aws-cdk-testing/framework-integ/test/aws-opensearchservice/test/integ.opensearch.min.js.snapshot/cdk-integ-opensearch.assets.json b/packages/@aws-cdk-testing/framework-integ/test/aws-opensearchservice/test/integ.opensearch.min.js.snapshot/cdk-integ-opensearch-min.assets.json similarity index 62% rename from packages/@aws-cdk-testing/framework-integ/test/aws-opensearchservice/test/integ.opensearch.min.js.snapshot/cdk-integ-opensearch.assets.json rename to packages/@aws-cdk-testing/framework-integ/test/aws-opensearchservice/test/integ.opensearch.min.js.snapshot/cdk-integ-opensearch-min.assets.json index f81b264dc54ab..1cec4f1cb8e0b 100644 --- a/packages/@aws-cdk-testing/framework-integ/test/aws-opensearchservice/test/integ.opensearch.min.js.snapshot/cdk-integ-opensearch.assets.json +++ b/packages/@aws-cdk-testing/framework-integ/test/aws-opensearchservice/test/integ.opensearch.min.js.snapshot/cdk-integ-opensearch-min.assets.json @@ -1,15 +1,15 @@ { - "version": "35.0.0", + "version": "36.0.5", "files": { - "ec8121bfd58ee4336b54eadf549ef20f883de211e6e775d5465a52ea693d70bb": { + "1255c7b5b61b498b41414039e46e2ac24d67f3f62d55fc817ef805f24fb4cccd": { "source": { - "path": "cdk-integ-opensearch.template.json", + "path": "cdk-integ-opensearch-min.template.json", "packaging": "file" }, "destinations": { "current_account-current_region": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "ec8121bfd58ee4336b54eadf549ef20f883de211e6e775d5465a52ea693d70bb.json", + "objectKey": "1255c7b5b61b498b41414039e46e2ac24d67f3f62d55fc817ef805f24fb4cccd.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/packages/@aws-cdk-testing/framework-integ/test/aws-opensearchservice/test/integ.opensearch.min.js.snapshot/cdk-integ-opensearch.template.json b/packages/@aws-cdk-testing/framework-integ/test/aws-opensearchservice/test/integ.opensearch.min.js.snapshot/cdk-integ-opensearch-min.template.json similarity index 65% rename from packages/@aws-cdk-testing/framework-integ/test/aws-opensearchservice/test/integ.opensearch.min.js.snapshot/cdk-integ-opensearch.template.json rename to packages/@aws-cdk-testing/framework-integ/test/aws-opensearchservice/test/integ.opensearch.min.js.snapshot/cdk-integ-opensearch-min.template.json index f54bc8f909197..d432e084b1001 100644 --- a/packages/@aws-cdk-testing/framework-integ/test/aws-opensearchservice/test/integ.opensearch.min.js.snapshot/cdk-integ-opensearch.template.json +++ b/packages/@aws-cdk-testing/framework-integ/test/aws-opensearchservice/test/integ.opensearch.min.js.snapshot/cdk-integ-opensearch-min.template.json @@ -1,6 +1,6 @@ { "Resources": { - "Domain66AC69E0": { + "OpenSearch213B37A164B": { "Type": "AWS::OpenSearchService::Domain", "Properties": { "ClusterConfig": { @@ -30,6 +30,37 @@ }, "UpdateReplacePolicy": "Delete", "DeletionPolicy": "Delete" + }, + "OpenSearch21566632C3A": { + "Type": "AWS::OpenSearchService::Domain", + "Properties": { + "ClusterConfig": { + "DedicatedMasterEnabled": false, + "InstanceCount": 1, + "InstanceType": "r5.large.search", + "MultiAZWithStandbyEnabled": false, + "ZoneAwarenessEnabled": false + }, + "DomainEndpointOptions": { + "EnforceHTTPS": false, + "TLSSecurityPolicy": "Policy-Min-TLS-1-0-2019-07" + }, + "EBSOptions": { + "EBSEnabled": true, + "VolumeSize": 10, + "VolumeType": "gp2" + }, + "EncryptionAtRestOptions": { + "Enabled": false + }, + "EngineVersion": "OpenSearch_2.15", + "LogPublishingOptions": {}, + "NodeToNodeEncryptionOptions": { + "Enabled": false + } + }, + "UpdateReplacePolicy": "Delete", + "DeletionPolicy": "Delete" } }, "Parameters": { @@ -66,4 +97,4 @@ ] } } -} +} \ No newline at end of file diff --git a/packages/@aws-cdk-testing/framework-integ/test/aws-opensearchservice/test/integ.opensearch.min.js.snapshot/cdk.out b/packages/@aws-cdk-testing/framework-integ/test/aws-opensearchservice/test/integ.opensearch.min.js.snapshot/cdk.out index c5cb2e5de6344..bd5311dc372de 100644 --- a/packages/@aws-cdk-testing/framework-integ/test/aws-opensearchservice/test/integ.opensearch.min.js.snapshot/cdk.out +++ b/packages/@aws-cdk-testing/framework-integ/test/aws-opensearchservice/test/integ.opensearch.min.js.snapshot/cdk.out @@ -1 +1 @@ -{"version":"35.0.0"} \ No newline at end of file +{"version":"36.0.5"} \ No newline at end of file diff --git a/packages/@aws-cdk-testing/framework-integ/test/aws-opensearchservice/test/integ.opensearch.min.js.snapshot/integ.json b/packages/@aws-cdk-testing/framework-integ/test/aws-opensearchservice/test/integ.opensearch.min.js.snapshot/integ.json index 213aa21a0fa35..dd0a795a8eeac 100644 --- a/packages/@aws-cdk-testing/framework-integ/test/aws-opensearchservice/test/integ.opensearch.min.js.snapshot/integ.json +++ b/packages/@aws-cdk-testing/framework-integ/test/aws-opensearchservice/test/integ.opensearch.min.js.snapshot/integ.json @@ -1,12 +1,12 @@ { - "version": "35.0.0", + "version": "36.0.5", "testCases": { - "Integ/DefaultTest": { + "integ-openseach-min/DefaultTest": { "stacks": [ - "cdk-integ-opensearch" + "cdk-integ-opensearch-min" ], - "assertionStack": "Integ/DefaultTest/DeployAssert", - "assertionStackName": "IntegDefaultTestDeployAssert4E6713E1" + "assertionStack": "integ-openseach-min/DefaultTest/DeployAssert", + "assertionStackName": "integopenseachminDefaultTestDeployAssert0EB58658" } } } \ No newline at end of file diff --git a/packages/@aws-cdk-testing/framework-integ/test/aws-opensearchservice/test/integ.opensearch.min.js.snapshot/IntegDefaultTestDeployAssert4E6713E1.assets.json b/packages/@aws-cdk-testing/framework-integ/test/aws-opensearchservice/test/integ.opensearch.min.js.snapshot/integopenseachminDefaultTestDeployAssert0EB58658.assets.json similarity index 84% rename from packages/@aws-cdk-testing/framework-integ/test/aws-opensearchservice/test/integ.opensearch.min.js.snapshot/IntegDefaultTestDeployAssert4E6713E1.assets.json rename to packages/@aws-cdk-testing/framework-integ/test/aws-opensearchservice/test/integ.opensearch.min.js.snapshot/integopenseachminDefaultTestDeployAssert0EB58658.assets.json index 23e5a2ce21170..400ae1dfbb9cc 100644 --- a/packages/@aws-cdk-testing/framework-integ/test/aws-opensearchservice/test/integ.opensearch.min.js.snapshot/IntegDefaultTestDeployAssert4E6713E1.assets.json +++ b/packages/@aws-cdk-testing/framework-integ/test/aws-opensearchservice/test/integ.opensearch.min.js.snapshot/integopenseachminDefaultTestDeployAssert0EB58658.assets.json @@ -1,9 +1,9 @@ { - "version": "35.0.0", + "version": "36.0.5", "files": { "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { "source": { - "path": "IntegDefaultTestDeployAssert4E6713E1.template.json", + "path": "integopenseachminDefaultTestDeployAssert0EB58658.template.json", "packaging": "file" }, "destinations": { diff --git a/packages/@aws-cdk-testing/framework-integ/test/aws-opensearchservice/test/integ.opensearch.min.js.snapshot/IntegDefaultTestDeployAssert4E6713E1.template.json b/packages/@aws-cdk-testing/framework-integ/test/aws-opensearchservice/test/integ.opensearch.min.js.snapshot/integopenseachminDefaultTestDeployAssert0EB58658.template.json similarity index 100% rename from packages/@aws-cdk-testing/framework-integ/test/aws-opensearchservice/test/integ.opensearch.min.js.snapshot/IntegDefaultTestDeployAssert4E6713E1.template.json rename to packages/@aws-cdk-testing/framework-integ/test/aws-opensearchservice/test/integ.opensearch.min.js.snapshot/integopenseachminDefaultTestDeployAssert0EB58658.template.json diff --git a/packages/@aws-cdk-testing/framework-integ/test/aws-opensearchservice/test/integ.opensearch.min.js.snapshot/manifest.json b/packages/@aws-cdk-testing/framework-integ/test/aws-opensearchservice/test/integ.opensearch.min.js.snapshot/manifest.json index 8e68657360f52..afd7651b2df69 100644 --- a/packages/@aws-cdk-testing/framework-integ/test/aws-opensearchservice/test/integ.opensearch.min.js.snapshot/manifest.json +++ b/packages/@aws-cdk-testing/framework-integ/test/aws-opensearchservice/test/integ.opensearch.min.js.snapshot/manifest.json @@ -1,28 +1,28 @@ { - "version": "35.0.0", + "version": "36.0.5", "artifacts": { - "cdk-integ-opensearch.assets": { + "cdk-integ-opensearch-min.assets": { "type": "cdk:asset-manifest", "properties": { - "file": "cdk-integ-opensearch.assets.json", + "file": "cdk-integ-opensearch-min.assets.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version" } }, - "cdk-integ-opensearch": { + "cdk-integ-opensearch-min": { "type": "aws:cloudformation:stack", "environment": "aws://unknown-account/unknown-region", "properties": { - "templateFile": "cdk-integ-opensearch.template.json", + "templateFile": "cdk-integ-opensearch-min.template.json", "terminationProtection": false, "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/ec8121bfd58ee4336b54eadf549ef20f883de211e6e775d5465a52ea693d70bb.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/1255c7b5b61b498b41414039e46e2ac24d67f3f62d55fc817ef805f24fb4cccd.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ - "cdk-integ-opensearch.assets" + "cdk-integ-opensearch-min.assets" ], "lookupRole": { "arn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-lookup-role-${AWS::AccountId}-${AWS::Region}", @@ -31,43 +31,49 @@ } }, "dependencies": [ - "cdk-integ-opensearch.assets" + "cdk-integ-opensearch-min.assets" ], "metadata": { - "/cdk-integ-opensearch/Domain/Resource": [ + "/cdk-integ-opensearch-min/OpenSearch_2.13/Resource": [ { "type": "aws:cdk:logicalId", - "data": "Domain66AC69E0" + "data": "OpenSearch213B37A164B" } ], - "/cdk-integ-opensearch/BootstrapVersion": [ + "/cdk-integ-opensearch-min/OpenSearch_2.15/Resource": [ + { + "type": "aws:cdk:logicalId", + "data": "OpenSearch21566632C3A" + } + ], + "/cdk-integ-opensearch-min/BootstrapVersion": [ { "type": "aws:cdk:logicalId", "data": "BootstrapVersion" } ], - "/cdk-integ-opensearch/CheckBootstrapVersion": [ + "/cdk-integ-opensearch-min/CheckBootstrapVersion": [ { "type": "aws:cdk:logicalId", "data": "CheckBootstrapVersion" } ] }, - "displayName": "cdk-integ-opensearch" + "displayName": "cdk-integ-opensearch-min" }, - "IntegDefaultTestDeployAssert4E6713E1.assets": { + "integopenseachminDefaultTestDeployAssert0EB58658.assets": { "type": "cdk:asset-manifest", "properties": { - "file": "IntegDefaultTestDeployAssert4E6713E1.assets.json", + "file": "integopenseachminDefaultTestDeployAssert0EB58658.assets.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version" } }, - "IntegDefaultTestDeployAssert4E6713E1": { + "integopenseachminDefaultTestDeployAssert0EB58658": { "type": "aws:cloudformation:stack", "environment": "aws://unknown-account/unknown-region", "properties": { - "templateFile": "IntegDefaultTestDeployAssert4E6713E1.template.json", + "templateFile": "integopenseachminDefaultTestDeployAssert0EB58658.template.json", "terminationProtection": false, "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", @@ -76,7 +82,7 @@ "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ - "IntegDefaultTestDeployAssert4E6713E1.assets" + "integopenseachminDefaultTestDeployAssert0EB58658.assets" ], "lookupRole": { "arn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-lookup-role-${AWS::AccountId}-${AWS::Region}", @@ -85,23 +91,23 @@ } }, "dependencies": [ - "IntegDefaultTestDeployAssert4E6713E1.assets" + "integopenseachminDefaultTestDeployAssert0EB58658.assets" ], "metadata": { - "/Integ/DefaultTest/DeployAssert/BootstrapVersion": [ + "/integ-openseach-min/DefaultTest/DeployAssert/BootstrapVersion": [ { "type": "aws:cdk:logicalId", "data": "BootstrapVersion" } ], - "/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion": [ + "/integ-openseach-min/DefaultTest/DeployAssert/CheckBootstrapVersion": [ { "type": "aws:cdk:logicalId", "data": "CheckBootstrapVersion" } ] }, - "displayName": "Integ/DefaultTest/DeployAssert" + "displayName": "integ-openseach-min/DefaultTest/DeployAssert" }, "Tree": { "type": "cdk:tree", diff --git a/packages/@aws-cdk-testing/framework-integ/test/aws-opensearchservice/test/integ.opensearch.min.js.snapshot/tree.json b/packages/@aws-cdk-testing/framework-integ/test/aws-opensearchservice/test/integ.opensearch.min.js.snapshot/tree.json index deef8bfd8e7ed..7e6411c8151b4 100644 --- a/packages/@aws-cdk-testing/framework-integ/test/aws-opensearchservice/test/integ.opensearch.min.js.snapshot/tree.json +++ b/packages/@aws-cdk-testing/framework-integ/test/aws-opensearchservice/test/integ.opensearch.min.js.snapshot/tree.json @@ -4,17 +4,17 @@ "id": "App", "path": "", "children": { - "cdk-integ-opensearch": { - "id": "cdk-integ-opensearch", - "path": "cdk-integ-opensearch", + "cdk-integ-opensearch-min": { + "id": "cdk-integ-opensearch-min", + "path": "cdk-integ-opensearch-min", "children": { - "Domain": { - "id": "Domain", - "path": "cdk-integ-opensearch/Domain", + "OpenSearch_2.13": { + "id": "OpenSearch_2.13", + "path": "cdk-integ-opensearch-min/OpenSearch_2.13", "children": { "Resource": { "id": "Resource", - "path": "cdk-integ-opensearch/Domain/Resource", + "path": "cdk-integ-opensearch-min/OpenSearch_2.13/Resource", "attributes": { "aws:cdk:cloudformation:type": "AWS::OpenSearchService::Domain", "aws:cdk:cloudformation:props": { @@ -55,9 +55,56 @@ "version": "0.0.0" } }, + "OpenSearch_2.15": { + "id": "OpenSearch_2.15", + "path": "cdk-integ-opensearch-min/OpenSearch_2.15", + "children": { + "Resource": { + "id": "Resource", + "path": "cdk-integ-opensearch-min/OpenSearch_2.15/Resource", + "attributes": { + "aws:cdk:cloudformation:type": "AWS::OpenSearchService::Domain", + "aws:cdk:cloudformation:props": { + "clusterConfig": { + "dedicatedMasterEnabled": false, + "instanceCount": 1, + "instanceType": "r5.large.search", + "multiAzWithStandbyEnabled": false, + "zoneAwarenessEnabled": false + }, + "domainEndpointOptions": { + "enforceHttps": false, + "tlsSecurityPolicy": "Policy-Min-TLS-1-0-2019-07" + }, + "ebsOptions": { + "ebsEnabled": true, + "volumeSize": 10, + "volumeType": "gp2" + }, + "encryptionAtRestOptions": { + "enabled": false + }, + "engineVersion": "OpenSearch_2.15", + "logPublishingOptions": {}, + "nodeToNodeEncryptionOptions": { + "enabled": false + } + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.aws_opensearchservice.CfnDomain", + "version": "0.0.0" + } + } + }, + "constructInfo": { + "fqn": "aws-cdk-lib.aws_opensearchservice.Domain", + "version": "0.0.0" + } + }, "BootstrapVersion": { "id": "BootstrapVersion", - "path": "cdk-integ-opensearch/BootstrapVersion", + "path": "cdk-integ-opensearch-min/BootstrapVersion", "constructInfo": { "fqn": "aws-cdk-lib.CfnParameter", "version": "0.0.0" @@ -65,7 +112,7 @@ }, "CheckBootstrapVersion": { "id": "CheckBootstrapVersion", - "path": "cdk-integ-opensearch/CheckBootstrapVersion", + "path": "cdk-integ-opensearch-min/CheckBootstrapVersion", "constructInfo": { "fqn": "aws-cdk-lib.CfnRule", "version": "0.0.0" @@ -77,17 +124,17 @@ "version": "0.0.0" } }, - "Integ": { - "id": "Integ", - "path": "Integ", + "integ-openseach-min": { + "id": "integ-openseach-min", + "path": "integ-openseach-min", "children": { "DefaultTest": { "id": "DefaultTest", - "path": "Integ/DefaultTest", + "path": "integ-openseach-min/DefaultTest", "children": { "Default": { "id": "Default", - "path": "Integ/DefaultTest/Default", + "path": "integ-openseach-min/DefaultTest/Default", "constructInfo": { "fqn": "constructs.Construct", "version": "10.3.0" @@ -95,11 +142,11 @@ }, "DeployAssert": { "id": "DeployAssert", - "path": "Integ/DefaultTest/DeployAssert", + "path": "integ-openseach-min/DefaultTest/DeployAssert", "children": { "BootstrapVersion": { "id": "BootstrapVersion", - "path": "Integ/DefaultTest/DeployAssert/BootstrapVersion", + "path": "integ-openseach-min/DefaultTest/DeployAssert/BootstrapVersion", "constructInfo": { "fqn": "aws-cdk-lib.CfnParameter", "version": "0.0.0" @@ -107,7 +154,7 @@ }, "CheckBootstrapVersion": { "id": "CheckBootstrapVersion", - "path": "Integ/DefaultTest/DeployAssert/CheckBootstrapVersion", + "path": "integ-openseach-min/DefaultTest/DeployAssert/CheckBootstrapVersion", "constructInfo": { "fqn": "aws-cdk-lib.CfnRule", "version": "0.0.0" @@ -145,4 +192,4 @@ "version": "0.0.0" } } -} +} \ No newline at end of file diff --git a/packages/@aws-cdk-testing/framework-integ/test/aws-opensearchservice/test/integ.opensearch.min.ts b/packages/@aws-cdk-testing/framework-integ/test/aws-opensearchservice/test/integ.opensearch.min.ts index b0cd6aa86e523..79813d35d5d75 100644 --- a/packages/@aws-cdk-testing/framework-integ/test/aws-opensearchservice/test/integ.opensearch.min.ts +++ b/packages/@aws-cdk-testing/framework-integ/test/aws-opensearchservice/test/integ.opensearch.min.ts @@ -7,20 +7,27 @@ class TestStack extends Stack { constructor(scope: Construct, id: string, props?: StackProps) { super(scope, id, props); - // deploy the latest opensearch domain with minimal configuration - const domainProps: opensearch.DomainProps = { - version: opensearch.EngineVersion.OPENSEARCH_2_13, - removalPolicy: RemovalPolicy.DESTROY, - capacity: { - multiAzWithStandbyEnabled: false, - }, - }; + const versions = [ + opensearch.EngineVersion.OPENSEARCH_2_13, + opensearch.EngineVersion.OPENSEARCH_2_15, + ]; - new opensearch.Domain(this, 'Domain', domainProps); + // deploy opensearch domain with minimal configuration + versions.forEach((version) => { + const domainProps: opensearch.DomainProps = { + version, + removalPolicy: RemovalPolicy.DESTROY, + capacity: { + multiAzWithStandbyEnabled: false, + }, + }; + + new opensearch.Domain(this, version.version, domainProps); + }); } } const app = new App(); -const stack = new TestStack(app, 'cdk-integ-opensearch'); +const stack = new TestStack(app, 'cdk-integ-opensearch-min'); -new IntegTest(app, 'Integ', { testCases: [stack] }); +new IntegTest(app, 'integ-openseach-min', { testCases: [stack] }); diff --git a/packages/aws-cdk-lib/aws-opensearchservice/lib/version.ts b/packages/aws-cdk-lib/aws-opensearchservice/lib/version.ts index 513aae1b950cf..68b508559daa7 100644 --- a/packages/aws-cdk-lib/aws-opensearchservice/lib/version.ts +++ b/packages/aws-cdk-lib/aws-opensearchservice/lib/version.ts @@ -102,6 +102,9 @@ export class EngineVersion { /** AWS OpenSearch 2.13 */ public static readonly OPENSEARCH_2_13 = EngineVersion.openSearch('2.13'); + /** AWS OpenSearch 2.15 */ + public static readonly OPENSEARCH_2_15 = EngineVersion.openSearch('2.15'); + /** * Custom ElasticSearch version * @param version custom version number diff --git a/packages/aws-cdk-lib/aws-opensearchservice/test/domain.test.ts b/packages/aws-cdk-lib/aws-opensearchservice/test/domain.test.ts index abde6c1fb499c..55d6e7f325eef 100644 --- a/packages/aws-cdk-lib/aws-opensearchservice/test/domain.test.ts +++ b/packages/aws-cdk-lib/aws-opensearchservice/test/domain.test.ts @@ -43,6 +43,7 @@ const testedOpenSearchVersions = [ EngineVersion.OPENSEARCH_2_10, EngineVersion.OPENSEARCH_2_11, EngineVersion.OPENSEARCH_2_13, + EngineVersion.OPENSEARCH_2_15, ]; each(testedOpenSearchVersions).test('connections throws if domain is not placed inside a vpc', (engineVersion) => { @@ -209,6 +210,7 @@ each([ [EngineVersion.OPENSEARCH_2_10, 'OpenSearch_2.10'], [EngineVersion.OPENSEARCH_2_11, 'OpenSearch_2.11'], [EngineVersion.OPENSEARCH_2_13, 'OpenSearch_2.13'], + [EngineVersion.OPENSEARCH_2_15, 'OpenSearch_2.15'], ]).test('minimal example renders correctly', (engineVersion, expectedCfVersion) => { new Domain(stack, 'Domain', { version: engineVersion });