Skip to content

Commit a279e0f

Browse files
committed
Allow increasing ephemeral storage on Fargate services.
1 parent 14432d7 commit a279e0f

5 files changed

Lines changed: 30 additions & 1 deletion

File tree

spec/unit/infra/root/main.tf

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@ module "ecs_service" {
7070
use_fargate = var.use_fargate
7171
service_task_cpu = var.service_task_cpu
7272
service_task_memory = var.service_task_memory
73+
service_task_ephemeral_storage = var.service_task_ephemeral_storage
7374
service_task_operating_system_family = var.service_task_operating_system_family
7475
service_task_cpu_architecture = var.service_task_cpu_architecture
7576

spec/unit/infra/root/variables.tf

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -158,6 +158,11 @@ variable "service_task_memory" {
158158
default = null
159159
}
160160

161+
variable "service_task_ephemeral_storage" {
162+
type = number
163+
default = null
164+
}
165+
161166
variable "service_task_operating_system_family" {
162167
type = string
163168
default = null

spec/unit/task_definition_spec.rb

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -224,6 +224,7 @@
224224
vars.use_fargate = true
225225
vars.service_task_cpu = '1234'
226226
vars.service_task_memory = '4567'
227+
vars.service_task_ephemeral_storage = 100
227228
vars.service_task_operating_system_family = 'WINDOWS_SERVER_2019_FULL'
228229
vars.service_task_cpu_architecture = 'ARM64'
229230
end
@@ -247,14 +248,23 @@
247248
.with_attribute_value(:memory, '4567'))
248249
end
249250

251+
it 'uses the provided memory value' do
252+
expect(@plan)
253+
.to(include_resource_creation(type: 'aws_ecs_task_definition')
254+
.with_attribute_value(
255+
:ephemeral_storage, [{
256+
size_in_gib: 100
257+
}]
258+
))
259+
end
260+
250261
it 'uses the provided cpu and OS values' do
251262
expect(@plan)
252263
.to(include_resource_creation(type: 'aws_ecs_task_definition')
253264
.with_attribute_value(
254265
:runtime_platform, [{
255266
cpu_architecture: 'ARM64',
256267
operating_system_family: 'WINDOWS_SERVER_2019_FULL'
257-
258268
}]
259269
))
260270
end

task_definition.tf

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,13 @@ resource "aws_ecs_task_definition" "service" {
8585
cpu_architecture = var.use_fargate ? var.service_task_cpu_architecture : null
8686
}
8787

88+
dynamic "ephemeral_storage" {
89+
for_each = var.use_fargate && var.service_task_ephemeral_storage != null ? [var.service_task_ephemeral_storage] : []
90+
content {
91+
size_in_gib = ephemeral_storage.value
92+
}
93+
}
94+
8895
dynamic "volume" {
8996
for_each = var.service_volumes
9097
content {

variables.tf

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -277,6 +277,12 @@ variable "service_task_memory" {
277277
nullable = false
278278
}
279279

280+
variable "service_task_ephemeral_storage" {
281+
description = "The total amount of ephemeral storage (in GiB) to set for the service task when deployed using Fargate."
282+
type = number
283+
default = null
284+
}
285+
280286
variable "service_task_operating_system_family" {
281287
description = "The operating system family to use for the service task when deployed using Fargate."
282288
type = string

0 commit comments

Comments
 (0)