2021-06-20 10:34:31 +00:00
|
|
|
"""
|
|
|
|
This file should only contain constants used for the EKS tests.
|
|
|
|
"""
|
2024-03-21 20:17:29 +00:00
|
|
|
|
2021-06-20 10:34:31 +00:00
|
|
|
import re
|
|
|
|
from enum import Enum
|
|
|
|
|
|
|
|
from boto3 import Session
|
|
|
|
|
2022-08-13 09:49:43 +00:00
|
|
|
from moto.core import DEFAULT_ACCOUNT_ID as ACCOUNT_ID
|
2021-06-20 10:34:31 +00:00
|
|
|
|
|
|
|
DEFAULT_ENCODING = "utf-8"
|
|
|
|
DEFAULT_HTTP_HEADERS = {"Content-type": "application/json"}
|
2021-08-19 05:44:56 +00:00
|
|
|
DEFAULT_NAMESPACE = "namespace_1"
|
2021-06-20 10:34:31 +00:00
|
|
|
FROZEN_TIME = "2013-11-27T01:42:00Z"
|
2021-08-19 05:44:56 +00:00
|
|
|
MAX_FARGATE_LABELS = 5
|
2021-06-20 10:34:31 +00:00
|
|
|
PARTITIONS = Session().get_available_partitions()
|
2024-01-07 12:03:33 +00:00
|
|
|
REGION = "us-east-1"
|
2021-06-20 10:34:31 +00:00
|
|
|
SERVICE = "eks"
|
|
|
|
SUBNET_IDS = ["subnet-12345ab", "subnet-67890cd"]
|
|
|
|
|
|
|
|
|
|
|
|
AMI_TYPE_KEY = "amiType"
|
|
|
|
AMI_TYPE_VALUE = "AL2_x86_64"
|
|
|
|
|
|
|
|
CLIENT_REQUEST_TOKEN_KEY = "clientRequestToken"
|
|
|
|
CLIENT_REQUEST_TOKEN_VALUE = "test_request_token"
|
|
|
|
|
|
|
|
DISK_SIZE_KEY = "diskSize"
|
|
|
|
DISK_SIZE_VALUE = 30
|
|
|
|
|
|
|
|
ENCRYPTION_CONFIG_KEY = "encryptionConfig"
|
|
|
|
ENCRYPTION_CONFIG_VALUE = [
|
|
|
|
{"resources": ["secrets"], "provider": {"keyArn": "arn:of:the:key"}}
|
|
|
|
]
|
|
|
|
|
|
|
|
INSTANCE_TYPES_KEY = "instanceTypes"
|
|
|
|
INSTANCE_TYPES_VALUE = ["t3.medium"]
|
|
|
|
|
|
|
|
KUBERNETES_NETWORK_CONFIG_KEY = "kubernetesNetworkConfig"
|
|
|
|
KUBERNETES_NETWORK_CONFIG_VALUE = {"serviceIpv4Cidr": "172.20.0.0/16"}
|
|
|
|
|
|
|
|
LABELS_KEY = "labels"
|
|
|
|
LABELS_VALUE = {"purpose": "example"}
|
|
|
|
|
|
|
|
LAUNCH_TEMPLATE_KEY = "launchTemplate"
|
|
|
|
LAUNCH_TEMPLATE_VALUE = {"name": "myTemplate", "version": "2", "id": "123456"}
|
|
|
|
|
|
|
|
LOGGING_KEY = "logging"
|
|
|
|
LOGGING_VALUE = {"clusterLogging": [{"types": ["api"], "enabled": True}]}
|
|
|
|
|
|
|
|
NODEROLE_ARN_KEY = "nodeRole"
|
2021-08-19 05:44:56 +00:00
|
|
|
NODEROLE_ARN_VALUE = "arn:aws:iam::" + str(ACCOUNT_ID) + ":role/role_name"
|
|
|
|
|
|
|
|
POD_EXECUTION_ROLE_ARN_KEY = "podExecutionRoleArn"
|
|
|
|
POD_EXECUTION_ROLE_ARN_VALUE = "arn:aws:iam::" + str(ACCOUNT_ID) + ":role/role_name"
|
2021-06-20 10:34:31 +00:00
|
|
|
|
|
|
|
REMOTE_ACCESS_KEY = "remoteAccess"
|
|
|
|
REMOTE_ACCESS_VALUE = {"ec2SshKey": "eksKeypair"}
|
|
|
|
|
|
|
|
RESOURCES_VPC_CONFIG_KEY = "resourcesVpcConfig"
|
|
|
|
RESOURCES_VPC_CONFIG_VALUE = {
|
|
|
|
"subnetIds": SUBNET_IDS,
|
|
|
|
"endpointPublicAccess": True,
|
|
|
|
"endpointPrivateAccess": False,
|
|
|
|
}
|
|
|
|
|
|
|
|
ROLE_ARN_KEY = "roleArn"
|
2021-08-19 05:44:56 +00:00
|
|
|
ROLE_ARN_VALUE = "arn:aws:iam::" + str(ACCOUNT_ID) + ":role/role_name"
|
2021-06-20 10:34:31 +00:00
|
|
|
|
|
|
|
SCALING_CONFIG_KEY = "scalingConfig"
|
|
|
|
SCALING_CONFIG_VALUE = {"minSize": 2, "maxSize": 3, "desiredSize": 2}
|
|
|
|
|
2021-08-19 05:44:56 +00:00
|
|
|
SELECTORS_KEY = "selectors"
|
|
|
|
SELECTORS_VALUE = [{"namespace": "profile-namespace"}]
|
|
|
|
|
2021-06-20 10:34:31 +00:00
|
|
|
STATUS_KEY = "status"
|
|
|
|
STATUS_VALUE = "ACTIVE"
|
|
|
|
|
|
|
|
SUBNETS_KEY = "subnets"
|
|
|
|
SUBNETS_VALUE = SUBNET_IDS
|
|
|
|
|
|
|
|
TAGS_KEY = "tags"
|
|
|
|
TAGS_VALUE = {"hello": "world"}
|
|
|
|
|
|
|
|
VERSION_KEY = "version"
|
|
|
|
VERSION_VALUE = "1"
|
|
|
|
|
|
|
|
AMI_TYPE = (AMI_TYPE_KEY, AMI_TYPE_VALUE)
|
|
|
|
CLIENT_REQUEST_TOKEN = (CLIENT_REQUEST_TOKEN_KEY, CLIENT_REQUEST_TOKEN_VALUE)
|
|
|
|
DISK_SIZE = (DISK_SIZE_KEY, DISK_SIZE_VALUE)
|
|
|
|
ENCRYPTION_CONFIG = (ENCRYPTION_CONFIG_KEY, ENCRYPTION_CONFIG_VALUE)
|
|
|
|
INSTANCE_TYPES = (INSTANCE_TYPES_KEY, INSTANCE_TYPES_VALUE)
|
|
|
|
KUBERNETES_NETWORK_CONFIG = (
|
|
|
|
KUBERNETES_NETWORK_CONFIG_KEY,
|
|
|
|
KUBERNETES_NETWORK_CONFIG_VALUE,
|
|
|
|
)
|
|
|
|
LABELS = (LABELS_KEY, LABELS_VALUE)
|
|
|
|
LAUNCH_TEMPLATE = (LAUNCH_TEMPLATE_KEY, LAUNCH_TEMPLATE_VALUE)
|
|
|
|
LOGGING = (LOGGING_KEY, LOGGING_VALUE)
|
|
|
|
NODEROLE_ARN = (NODEROLE_ARN_KEY, NODEROLE_ARN_VALUE)
|
2021-08-19 05:44:56 +00:00
|
|
|
POD_EXECUTION_ROLE_ARN = (POD_EXECUTION_ROLE_ARN_KEY, POD_EXECUTION_ROLE_ARN_VALUE)
|
2021-06-20 10:34:31 +00:00
|
|
|
REMOTE_ACCESS = (REMOTE_ACCESS_KEY, REMOTE_ACCESS_VALUE)
|
|
|
|
RESOURCES_VPC_CONFIG = (RESOURCES_VPC_CONFIG_KEY, RESOURCES_VPC_CONFIG_VALUE)
|
|
|
|
ROLE_ARN = (ROLE_ARN_KEY, ROLE_ARN_VALUE)
|
|
|
|
SCALING_CONFIG = (SCALING_CONFIG_KEY, SCALING_CONFIG_VALUE)
|
2021-08-19 05:44:56 +00:00
|
|
|
SELECTORS = (SELECTORS_KEY, SELECTORS_VALUE)
|
2021-06-20 10:34:31 +00:00
|
|
|
STATUS = (STATUS_KEY, STATUS_VALUE)
|
|
|
|
SUBNETS = (SUBNETS_KEY, SUBNETS_VALUE)
|
|
|
|
TAGS = (TAGS_KEY, TAGS_VALUE)
|
|
|
|
VERSION = (VERSION_KEY, VERSION_VALUE)
|
|
|
|
|
|
|
|
|
|
|
|
class ResponseAttributes:
|
|
|
|
CLUSTER = "cluster"
|
|
|
|
CLUSTERS = "clusters"
|
2021-08-19 05:44:56 +00:00
|
|
|
FARGATE_PROFILE_NAMES = "fargateProfileNames"
|
|
|
|
FARGATE_PROFILE = "fargateProfile"
|
2021-06-20 10:34:31 +00:00
|
|
|
MESSAGE = "message"
|
|
|
|
NEXT_TOKEN = "nextToken"
|
|
|
|
NODEGROUP = "nodegroup"
|
|
|
|
NODEGROUPS = "nodegroups"
|
|
|
|
|
|
|
|
|
|
|
|
class ErrorAttributes:
|
|
|
|
CODE = "Code"
|
|
|
|
ERROR = "Error"
|
|
|
|
MESSAGE = "Message"
|
|
|
|
|
|
|
|
|
|
|
|
class ClusterInputs:
|
|
|
|
REQUIRED = [ROLE_ARN, RESOURCES_VPC_CONFIG]
|
|
|
|
OPTIONAL = [
|
|
|
|
CLIENT_REQUEST_TOKEN,
|
|
|
|
ENCRYPTION_CONFIG,
|
|
|
|
LOGGING,
|
|
|
|
KUBERNETES_NETWORK_CONFIG,
|
|
|
|
TAGS,
|
|
|
|
VERSION,
|
|
|
|
]
|
|
|
|
|
|
|
|
|
2021-08-19 05:44:56 +00:00
|
|
|
class FargateProfileInputs:
|
|
|
|
REQUIRED = [POD_EXECUTION_ROLE_ARN, SELECTORS]
|
|
|
|
OPTIONAL = [SUBNETS, TAGS]
|
|
|
|
|
|
|
|
|
2021-06-20 10:34:31 +00:00
|
|
|
class NodegroupInputs:
|
|
|
|
REQUIRED = [NODEROLE_ARN, SUBNETS]
|
|
|
|
OPTIONAL = [
|
|
|
|
AMI_TYPE,
|
|
|
|
DISK_SIZE,
|
|
|
|
INSTANCE_TYPES,
|
|
|
|
LABELS,
|
|
|
|
REMOTE_ACCESS,
|
|
|
|
SCALING_CONFIG,
|
|
|
|
TAGS,
|
|
|
|
]
|
|
|
|
|
|
|
|
|
|
|
|
class PossibleTestResults(Enum):
|
|
|
|
SUCCESS = "SUCCESS"
|
|
|
|
FAILURE = "FAILURE"
|
|
|
|
|
|
|
|
|
|
|
|
class AddonAttributes:
|
|
|
|
ADDON_NAME = "addonName"
|
|
|
|
|
|
|
|
|
|
|
|
class ClusterAttributes:
|
|
|
|
ARN = "arn"
|
|
|
|
CLUSTER_NAME = "clusterName"
|
|
|
|
CREATED_AT = "createdAt"
|
|
|
|
ENDPOINT = "endpoint"
|
|
|
|
IDENTITY = "identity"
|
|
|
|
ISSUER = "issuer"
|
|
|
|
NAME = "name"
|
|
|
|
OIDC = "oidc"
|
2022-03-29 22:40:23 +00:00
|
|
|
ENCRYPTION_CONFIG = "encryptionConfig"
|
2021-06-20 10:34:31 +00:00
|
|
|
|
|
|
|
|
2021-08-19 05:44:56 +00:00
|
|
|
class FargateProfileAttributes:
|
|
|
|
ARN = "fargateProfileArn"
|
|
|
|
CREATED_AT = "createdAt"
|
|
|
|
FARGATE_PROFILE_NAME = "fargateProfileName"
|
|
|
|
LABELS = "labels"
|
|
|
|
NAMESPACE = "namespace"
|
|
|
|
SELECTORS = "selectors"
|
2021-06-20 10:34:31 +00:00
|
|
|
|
|
|
|
|
|
|
|
class NodegroupAttributes:
|
|
|
|
ARN = "nodegroupArn"
|
|
|
|
AUTOSCALING_GROUPS = "autoScalingGroups"
|
|
|
|
CREATED_AT = "createdAt"
|
|
|
|
MODIFIED_AT = "modifiedAt"
|
|
|
|
NAME = "name"
|
|
|
|
NODEGROUP_NAME = "nodegroupName"
|
|
|
|
REMOTE_ACCESS_SG = "remoteAccessSecurityGroup"
|
|
|
|
RESOURCES = "resources"
|
|
|
|
|
|
|
|
|
|
|
|
class BatchCountSize:
|
|
|
|
SINGLE = 1
|
|
|
|
SMALL = 10
|
|
|
|
MEDIUM = 20
|
|
|
|
LARGE = 200
|
|
|
|
|
|
|
|
|
|
|
|
class PageCount:
|
|
|
|
SMALL = 3
|
|
|
|
LARGE = 10
|
|
|
|
|
|
|
|
|
2021-08-19 05:44:56 +00:00
|
|
|
FARGATE_PROFILE_UUID_PATTERN = "(?P<fargate_uuid>[-0-9a-z]{8}-[-0-9a-z]{4}-[-0-9a-z]{4}-[-0-9a-z]{4}-[-0-9a-z]{12})"
|
2021-06-20 10:34:31 +00:00
|
|
|
NODEGROUP_UUID_PATTERN = "(?P<nodegroup_uuid>[-0-9a-z]{8}-[-0-9a-z]{4}-[-0-9a-z]{4}-[-0-9a-z]{4}-[-0-9a-z]{12})"
|
|
|
|
|
|
|
|
|
|
|
|
class RegExTemplates:
|
|
|
|
CLUSTER_ARN = re.compile(
|
|
|
|
"arn:"
|
|
|
|
+ "(?P<partition>.+):"
|
|
|
|
+ "eks:"
|
|
|
|
+ "(?P<region>[-0-9a-zA-Z]+):"
|
|
|
|
+ "(?P<account_id>[0-9]{12}):"
|
|
|
|
+ "cluster/"
|
|
|
|
+ "(?P<cluster_name>.+)"
|
|
|
|
)
|
2021-08-19 05:44:56 +00:00
|
|
|
FARGATE_PROFILE_ARN = re.compile(
|
|
|
|
"arn:"
|
|
|
|
+ "(?P<partition>.+):"
|
|
|
|
+ "eks:"
|
|
|
|
+ "(?P<region>[-0-9a-zA-Z]+):"
|
|
|
|
+ "(?P<account_id>[0-9]{12}):"
|
|
|
|
+ "fargateprofile/"
|
|
|
|
+ "(?P<cluster_name>.+)/"
|
|
|
|
+ "(?P<fargate_name>.+)/"
|
|
|
|
+ FARGATE_PROFILE_UUID_PATTERN
|
|
|
|
)
|
2021-06-20 10:34:31 +00:00
|
|
|
ISO8601_FORMAT = re.compile(
|
|
|
|
r"^(-?(?:[1-9][0-9]*)?[0-9]{4})-(1[0-2]|0[1-9])-(3[01]|0[1-9]|[12][0-9])T(2[0-3]|[01][0-9]):([0-5][0-9]):([0-5][0-9])(\.[0-9]+)?(Z|[+-](?:2[0-3]|[01][0-9]):[0-5][0-9])?$"
|
|
|
|
)
|
|
|
|
NODEGROUP_ARN = re.compile(
|
|
|
|
"arn:"
|
|
|
|
+ "(?P<partition>.+):"
|
|
|
|
+ "eks:"
|
|
|
|
+ "(?P<region>[-0-9a-zA-Z]+):"
|
|
|
|
+ "(?P<account_id>[0-9]{12}):"
|
|
|
|
+ "nodegroup/"
|
|
|
|
+ "(?P<cluster_name>.+)/"
|
|
|
|
+ "(?P<nodegroup_name>.+)/"
|
|
|
|
+ NODEGROUP_UUID_PATTERN
|
|
|
|
)
|
|
|
|
NODEGROUP_ASG_NAME_PATTERN = re.compile("eks-" + NODEGROUP_UUID_PATTERN)
|
|
|
|
NODEGROUP_SECURITY_GROUP_NAME_PATTERN = re.compile("sg-" + "([-0-9a-z]{17})")
|
|
|
|
|
|
|
|
|
|
|
|
class Endpoints:
|
|
|
|
CREATE_CLUSTER = "/clusters"
|
|
|
|
CREATE_NODEGROUP = "/clusters/{clusterName}/node-groups"
|
|
|
|
DESCRIBE_CLUSTER = "/clusters/{clusterName}"
|
|
|
|
DESCRIBE_NODEGROUP = "/clusters/{clusterName}/node-groups/{nodegroupName}"
|
|
|
|
DELETE_CLUSTER = "/clusters/{clusterName}"
|
|
|
|
DELETE_NODEGROUP = "/clusters/{clusterName}/node-groups/{nodegroupName}"
|
|
|
|
LIST_CLUSTERS = "/clusters?maxResults={maxResults}&nextToken={nextToken}"
|
|
|
|
LIST_NODEGROUPS = "/clusters/{clusterName}/node-groups?maxResults={maxResults}&nextToken={nextToken}"
|
|
|
|
|
|
|
|
|
|
|
|
class StatusCodes:
|
|
|
|
OK = 200
|
|
|
|
|
|
|
|
|
|
|
|
class HttpHeaders:
|
|
|
|
ErrorType = "x-amzn-ErrorType"
|