Skip to content
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

Further Parameterize Inputs to Node Groups for the AWS EKS module #17

Merged
merged 9 commits into from
Mar 15, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions .github/workflows/smoke_tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,9 @@ on:
MCP_VENUE_DEV_AIRFLOW_ENDPOINT:
description: "Base URL for the Airflow endpoint in MCP Venue Dev (i.e. http://abc.def.ghi:port-number)"
type: string
MCP_VENUE_TEST_AIRFLOW_ENDPOINT:
description: "Base URL for the Airflow endpoint in MCP Venue Test (i.e. http://abc.def.ghi:port-number)"
type: string
MCP_VENUE_SBG_DEV_AIRFLOW_ENDPOINT:
description: "Base URL for the Airflow endpoint in MCP Venue SBG Dev (i.e. http://abc.def.ghi:port-number)"
type: string
Expand Down Expand Up @@ -37,6 +40,16 @@ jobs:
pytest -vv --gherkin-terminal-reporter \
unity-test/system/smoke \
--airflow-endpoint=${{ github.event.inputs.MCP_VENUE_DEV_AIRFLOW_ENDPOINT || vars.MCP_VENUE_DEV_AIRFLOW_ENDPOINT }}

- name: MCP Venue Test - Smoke tests
env:
AIRFLOW_WEBSERVER_PASSWORD: ${{ secrets.MCP_VENUE_TEST_AIRFLOW_WEBSERVER_PASSWORD }}
continue-on-error: true
run: |
pytest -vv --gherkin-terminal-reporter \
unity-test/system/smoke \
--airflow-endpoint=${{ github.event.inputs.MCP_VENUE_TEST_AIRFLOW_ENDPOINT || vars.MCP_VENUE_TEST_AIRFLOW_ENDPOINT }}

- name: MCP Venue SBG Dev - Smoke tests
env:
AIRFLOW_WEBSERVER_PASSWORD: ${{ secrets.MCP_VENUE_SBG_DEV_AIRFLOW_WEBSERVER_PASSWORD }}
Expand Down
26 changes: 13 additions & 13 deletions terraform-unity/modules/terraform-eks-cluster/.terraform.lock.hcl

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 1 addition & 2 deletions terraform-unity/modules/terraform-eks-cluster/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,9 +39,8 @@
|------|-------------|------|---------|:--------:|
| <a name="input_counter"></a> [counter](#input\_counter) | Identifier used to uniquely distinguish resources. This is used in the naming convention of the resource. If left empty, a random hexadecimal value will be generated and used instead. | `string` | n/a | yes |
| <a name="input_deployment_name"></a> [deployment\_name](#input\_deployment\_name) | The name of the deployment. | `string` | n/a | yes |
| <a name="input_nodegroups"></a> [nodegroups](#input\_nodegroups) | A map of node group configurations | <pre>map(object({<br> create_iam_role = optional(bool)<br> iam_role_arn = optional(string)<br> ami_id = optional(string)<br> min_size = optional(number)<br> max_size = optional(number)<br> desired_size = optional(number)<br> instance_types = optional(list(string))<br> capacity_type = optional(string)<br> enable_bootstrap_user_data = optional(bool)<br> metadata_options = optional(map(any))<br> }))</pre> | <pre>{<br> "defaultGroup": {<br> "desired_size": 1,<br> "instance_types": [<br> "m5.xlarge"<br> ],<br> "max_size": 1,<br> "metadata_options": {<br> "http_endpoint": "enabled",<br> "http_put_response_hop_limit": 3<br> },<br> "min_size": 1<br> }<br>}</pre> | no |
| <a name="input_nodegroups"></a> [nodegroups](#input\_nodegroups) | A map of node group configurations | <pre>map(object({<br> create_iam_role = optional(bool)<br> iam_role_arn = optional(string)<br> ami_id = optional(string)<br> min_size = optional(number)<br> max_size = optional(number)<br> desired_size = optional(number)<br> instance_types = optional(list(string))<br> capacity_type = optional(string)<br> enable_bootstrap_user_data = optional(bool)<br> metadata_options = optional(map(any))<br> block_device_mappings = optional(map(object({<br> device_name = string<br> ebs = object({<br> volume_size = number<br> volume_type = string<br> encrypted = bool<br> delete_on_termination = bool<br> })<br> })))<br> }))</pre> | <pre>{<br> "defaultGroup": {<br> "block_device_mappings": {<br> "xvda": {<br> "device_name": "/dev/xvda",<br> "ebs": {<br> "delete_on_termination": true,<br> "encrypted": true,<br> "volume_size": 100,<br> "volume_type": "gp2"<br> }<br> }<br> },<br> "desired_size": 2,<br> "instance_types": [<br> "r6a.xlarge"<br> ],<br> "max_size": 3,<br> "metadata_options": {<br> "http_endpoint": "enabled",<br> "http_put_response_hop_limit": 3<br> },<br> "min_size": 1<br> }<br>}</pre> | no |
| <a name="input_project"></a> [project](#input\_project) | The project or mission deploying Unity SPS | `string` | `"unity"` | no |
| <a name="input_release"></a> [release](#input\_release) | The software release version. | `string` | n/a | yes |
| <a name="input_service_area"></a> [service\_area](#input\_service\_area) | The service area owner of the resources being deployed | `string` | `"sps"` | no |
| <a name="input_venue"></a> [venue](#input\_venue) | The MCP venue in which the cluster will be deployed (dev, test, prod) | `string` | n/a | yes |

Expand Down
12 changes: 0 additions & 12 deletions terraform-unity/modules/terraform-eks-cluster/locals.tf
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,4 @@ locals {
counter = var.counter != "" ? var.counter : random_id.counter.hex
resource_name_prefix = join("-", compact([var.project, var.venue, var.service_area, "%s", var.deployment_name, local.counter]))
cluster_name = format(local.resource_name_prefix, "eks")
common_tags = {
Name = ""
Venue = var.venue
Proj = var.project
ServiceArea = var.service_area
CapVersion = var.release
Component = ""
CreatedBy = var.service_area
Env = var.venue
mission = var.project
Stack = ""
}
}
31 changes: 23 additions & 8 deletions terraform-unity/modules/terraform-eks-cluster/variables.tf
Original file line number Diff line number Diff line change
Expand Up @@ -25,11 +25,6 @@ variable "counter" {
type = string
}

variable "release" {
description = "The software release version."
type = string
}

variable "nodegroups" {
description = "A map of node group configurations"
type = map(object({
Expand All @@ -43,17 +38,37 @@ variable "nodegroups" {
capacity_type = optional(string)
enable_bootstrap_user_data = optional(bool)
metadata_options = optional(map(any))
block_device_mappings = optional(map(object({
device_name = string
ebs = object({
volume_size = number
volume_type = string
encrypted = bool
delete_on_termination = bool
})
})))
}))
default = {
defaultGroup = {
instance_types = ["m5.xlarge"]
instance_types = ["r6a.xlarge"]
min_size = 1
max_size = 1
desired_size = 1
max_size = 3
desired_size = 2
metadata_options = {
"http_endpoint" : "enabled",
"http_put_response_hop_limit" : 3,
}
block_device_mappings = {
xvda = {
device_name = "/dev/xvda"
ebs = {
volume_size = 100
volume_type = "gp2"
encrypted = true
delete_on_termination = true
}
}
}
}
}
}
Loading