-
Notifications
You must be signed in to change notification settings - Fork 3.9k
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
(aws_opensearchservice): i4g instances say they need EBS #31764
Comments
Hi @kensentor , thanks for reaching out. I tried to repro the issue with this minimal sample code - const opensearchDomain = new opensearch.Domain(this, 'OpenSearchDomain', {
version: opensearch.EngineVersion.ELASTICSEARCH_7_10,
capacity: {
masterNodes: 1,
dataNodes: 1,
dataNodeInstanceType: 'i4g.2xlarge.search',
},
}); and it successfully synthesized into this template with these properties - {
"Resources": {
"OpenSearchDomain85D65221": {
"Type": "AWS::OpenSearchService::Domain",
"Properties": {
"ClusterConfig": {
"DedicatedMasterCount": 1,
"DedicatedMasterEnabled": true,
"DedicatedMasterType": "r5.large.search",
"InstanceCount": 1,
"InstanceType": "i4g.2xlarge.search",
"MultiAZWithStandbyEnabled": true,
"ZoneAwarenessEnabled": false
},
"DomainEndpointOptions": {
"EnforceHTTPS": false,
"TLSSecurityPolicy": "Policy-Min-TLS-1-0-2019-07"
},
"EBSOptions": {
"EBSEnabled": true,
"VolumeSize": 10,
"VolumeType": "gp2"
},
"EncryptionAtRestOptions": {
"Enabled": false
},
"EngineVersion": "Elasticsearch_7.10",
"LogPublishingOptions": {},
"NodeToNodeEncryptionOptions": {
"Enabled": false
}
},
"UpdateReplacePolicy": "Retain",
"DeletionPolicy": "Retain",
"Metadata": {
"aws:cdk:path": "EbsissueStack/OpenSearchDomain/Resource"
}
I am also trying to repro it using alternate of creating capacityConfig object and then passing it . will share my findings soon |
Hi @khushail - I've found no difference with using the capacity={
"data_nodes":8,
"data_node_instance_type":"i4g.2xlarge.search",
"master_node_instance_type":"m5.large.search",
"master_nodes":3,
"multi_az_with_standby_enabled":False,
}
In order to replicate it, I believe you need to add an ebs_options = opensearch.EbsOptions(enabled=False) and then pass that to the domain's That will fail with |
It seems that the new i4g & i4i instances are not yet supported and the validation checks only for previous i3 instance types. |
@kensentor , yes that was the condition to repro the scenario. I changed the boolean variable - However keeping the same flag value but changing the |
The rootcause for this is in the code -
// Only R3, I3, R6GD, and IM4GN support instance storage, per
// https://aws.amazon.com/opensearch-service/pricing/
if (!ebsEnabled && !isEveryDatanodeInstanceType('r3', 'i3', 'r6gd', 'im4gn')) {
throw new Error('EBS volumes are required when using instance types other than R3, I3, R6GD, or IM4GN.');
} AWS Docs also mention the support of i4g instaces -https://aws.amazon.com/opensearch-service/pricing/ Marking this as P2 as it won't be immediately addressed by the core team but would be on their radar. Also contributions from the community are welcome. |
@aymen-chetoui I see that one of our core team members is already reviewing it. Thanks for submitting the PR. Let me know if any other help is needed. |
Comments on closed issues and PRs are hard for our team to see. |
1 similar comment
Comments on closed issues and PRs are hard for our team to see. |
Describe the bug
Attempting to build an
opensearch.Domain
object with anopensearch.CapacityConfig
object which specifiesig4.2xlarge
as itsdata_node_instance_type
parameter yields an error withcdk synth
, indicating thatig4.2xlarge
instance types require EBS storage.Regression Issue
Last Known Working CDK Version
No response
Expected Behavior
I expect to be able to create an Opensearch cluster using i4g instances without using EBS.
Current Behavior
An error is thrown:
Reproduction Steps
Possible Solution
The list of instance types that does not use EBS appears to be outdated. i4i and i4g both don't use EBS according to https://docs.aws.amazon.com/opensearch-service/latest/developerguide/supported-instance-types.html
Additional Information/Context
No response
CDK CLI Version
2.162.1 (build 10aa526)
Framework Version
No response
Node.js Version
20.11.1
OS
MacOS 14.6.1
Language
Python
Language Version
Python (3.12)
Other information
No response
The text was updated successfully, but these errors were encountered: