-
-
Notifications
You must be signed in to change notification settings - Fork 242
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
CPU limit is not optional #150
Labels
bug
🐛 An issue with the system
Comments
@aairey How are you producing this? I've supplied region = "us-east-2"
namespace = "eg"
stage = "test"
name = "container-definition"
container_name = "app"
container_image = "cloudposse/geodesic"
container_memory = 256
container_memory_reservation = 128
#container_cpu = 256
container_cpu = null
essential = true
readonly_root_filesystem = false
container_environment = [
{
name = "string_var"
value = "I am a string"
},
{
name = "true_boolean_var"
value = true
},
{
name = "false_boolean_var"
value = false
},
{
name = "integer_var"
value = 42
}
]
port_mappings = [
{
containerPort = 8080
hostPort = 80
protocol = "tcp"
},
{
containerPort = 8081
hostPort = 443
protocol = "udp"
}
]
log_configuration = {
logDriver = "json-file"
options = {
"max-size" = "10m"
"max-file" = "3"
}
secretOptions = null
}
privileged = false
extra_hosts = [{
ipAddress = "127.0.0.1"
hostname = "app.local"
},
]
hostname = "hostname"
pseudo_terminal = true
interactive = true Terraform 0.13.7examples/complete $ terraform plan -var-file fixtures.us-east-2.tfvarsTerraform used the selected providers to generate the following execution plan. Resource actions are indicated with the following symbols:
+ create
Terraform will perform the following actions:
# aws_ecs_task_definition.task will be created
+ resource "aws_ecs_task_definition" "task" {
+ arn = (known after apply)
+ container_definitions = jsonencode(
[
+ {
+ environment = [
+ {
+ name = "false_boolean_var"
+ value = "false"
},
+ {
+ name = "integer_var"
+ value = "42"
},
+ {
+ name = "string_var"
+ value = "I am a string"
},
+ {
+ name = "true_boolean_var"
+ value = "true"
},
]
+ essential = true
+ extraHosts = [
+ {
+ hostname = "app.local"
+ ipAddress = "127.0.0.1"
},
]
+ hostname = "hostname"
+ image = "cloudposse/geodesic"
+ interactive = true
+ logConfiguration = {
+ logDriver = "json-file"
+ options = {
+ max-file = "3"
+ max-size = "10m"
}
}
+ memory = 256
+ memoryReservation = 128
+ mountPoints = []
+ name = "app"
+ portMappings = [
+ {
+ containerPort = 8080
+ hostPort = 80
+ protocol = "tcp"
},
+ {
+ containerPort = 8081
+ hostPort = 443
+ protocol = "udp"
},
]
+ privileged = false
+ pseudoTerminal = true
+ readonlyRootFilesystem = false
+ volumesFrom = []
},
]
)
+ family = "eg-test-container-definition"
+ id = (known after apply)
+ network_mode = (known after apply)
+ revision = (known after apply)
+ skip_destroy = false
+ tags = {
+ "Name" = "eg-test-container-definition"
+ "Namespace" = "eg"
+ "Stage" = "test"
}
+ tags_all = {
+ "Name" = "eg-test-container-definition"
+ "Namespace" = "eg"
+ "Stage" = "test"
}
}
Plan: 1 to add, 0 to change, 0 to destroy.
Changes to Outputs:
+ json_map_encoded = jsonencode(
{
+ environment = [
+ {
+ name = "false_boolean_var"
+ value = "false"
},
+ {
+ name = "integer_var"
+ value = "42"
},
+ {
+ name = "string_var"
+ value = "I am a string"
},
+ {
+ name = "true_boolean_var"
+ value = "true"
},
]
+ essential = true
+ extraHosts = [
+ {
+ hostname = "app.local"
+ ipAddress = "127.0.0.1"
},
]
+ hostname = "hostname"
+ image = "cloudposse/geodesic"
+ interactive = true
+ logConfiguration = {
+ logDriver = "json-file"
+ options = {
+ max-file = "3"
+ max-size = "10m"
}
}
+ memory = 256
+ memoryReservation = 128
+ mountPoints = []
+ name = "app"
+ portMappings = [
+ {
+ containerPort = 8080
+ hostPort = 80
+ protocol = "tcp"
},
+ {
+ containerPort = 8081
+ hostPort = 443
+ protocol = "udp"
},
]
+ privileged = false
+ pseudoTerminal = true
+ readonlyRootFilesystem = false
+ volumesFrom = []
}
)
+ json_map_encoded_list = jsonencode(
[
+ {
+ environment = [
+ {
+ name = "false_boolean_var"
+ value = "false"
},
+ {
+ name = "integer_var"
+ value = "42"
},
+ {
+ name = "string_var"
+ value = "I am a string"
},
+ {
+ name = "true_boolean_var"
+ value = "true"
},
]
+ essential = true
+ extraHosts = [
+ {
+ hostname = "app.local"
+ ipAddress = "127.0.0.1"
},
]
+ hostname = "hostname"
+ image = "cloudposse/geodesic"
+ interactive = true
+ logConfiguration = {
+ logDriver = "json-file"
+ options = {
+ max-file = "3"
+ max-size = "10m"
}
}
+ memory = 256
+ memoryReservation = 128
+ mountPoints = []
+ name = "app"
+ portMappings = [
+ {
+ containerPort = 8080
+ hostPort = 80
+ protocol = "tcp"
},
+ {
+ containerPort = 8081
+ hostPort = 443
+ protocol = "udp"
},
]
+ privileged = false
+ pseudoTerminal = true
+ readonlyRootFilesystem = false
+ volumesFrom = []
},
]
)
+ json_map_object = {
+ environment = [
+ {
+ name = "false_boolean_var"
+ value = "false"
},
+ {
+ name = "integer_var"
+ value = "42"
},
+ {
+ name = "string_var"
+ value = "I am a string"
},
+ {
+ name = "true_boolean_var"
+ value = "true"
},
]
+ essential = true
+ extraHosts = [
+ {
+ hostname = "app.local"
+ ipAddress = "127.0.0.1"
},
]
+ hostname = "hostname"
+ image = "cloudposse/geodesic"
+ interactive = true
+ logConfiguration = {
+ logDriver = "json-file"
+ options = {
+ max-file = "3"
+ max-size = "10m"
}
}
+ memory = 256
+ memoryReservation = 128
+ mountPoints = []
+ name = "app"
+ portMappings = [
+ {
+ containerPort = 8080
+ hostPort = 80
+ protocol = "tcp"
},
+ {
+ containerPort = 8081
+ hostPort = 443
+ protocol = "udp"
},
]
+ privileged = false
+ pseudoTerminal = true
+ readonlyRootFilesystem = false
+ volumesFrom = []
}
+ task_definition_container_definition = {
+ environment = [
+ {
+ name = "false_boolean_var"
+ value = "false"
},
+ {
+ name = "integer_var"
+ value = "42"
},
+ {
+ name = "string_var"
+ value = "I am a string"
},
+ {
+ name = "true_boolean_var"
+ value = "true"
},
]
+ essential = true
+ extraHosts = [
+ {
+ hostname = "app.local"
+ ipAddress = "127.0.0.1"
},
]
+ hostname = "hostname"
+ image = "cloudposse/geodesic"
+ interactive = true
+ logConfiguration = {
+ logDriver = "json-file"
+ options = {
+ max-file = "3"
+ max-size = "10m"
}
}
+ memory = 256
+ memoryReservation = 128
+ mountPoints = []
+ name = "app"
+ portMappings = [
+ {
+ containerPort = 8080
+ hostPort = 80
+ protocol = "tcp"
},
+ {
+ containerPort = 8081
+ hostPort = 443
+ protocol = "udp"
},
]
+ privileged = false
+ pseudoTerminal = true
+ readonlyRootFilesystem = false
+ volumesFrom = []
}
───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Note: You didn't use the -out option to save this plan, so Terraform can't guarantee to take exactly these actions if you run "terraform apply" now. Terraform 1.1.2examples/complete $ terraform plan -var-file fixtures.us-east-2.tfvarsRefreshing Terraform state in-memory prior to plan...
The refreshed state will be used to calculate this plan, but will not be
persisted to local or remote state storage.
------------------------------------------------------------------------
An execution plan has been generated and is shown below.
Resource actions are indicated with the following symbols:
+ create
Terraform will perform the following actions:
# aws_ecs_task_definition.task will be created
+ resource "aws_ecs_task_definition" "task" {
+ arn = (known after apply)
+ container_definitions = jsonencode(
[
+ {
+ environment = [
+ {
+ name = "false_boolean_var"
+ value = "false"
},
+ {
+ name = "integer_var"
+ value = "42"
},
+ {
+ name = "string_var"
+ value = "I am a string"
},
+ {
+ name = "true_boolean_var"
+ value = "true"
},
]
+ essential = true
+ extraHosts = [
+ {
+ hostname = "app.local"
+ ipAddress = "127.0.0.1"
},
]
+ hostname = "hostname"
+ image = "cloudposse/geodesic"
+ interactive = true
+ logConfiguration = {
+ logDriver = "json-file"
+ options = {
+ max-file = "3"
+ max-size = "10m"
}
}
+ memory = 256
+ memoryReservation = 128
+ mountPoints = []
+ name = "app"
+ portMappings = [
+ {
+ containerPort = 8080
+ hostPort = 80
+ protocol = "tcp"
},
+ {
+ containerPort = 8081
+ hostPort = 443
+ protocol = "udp"
},
]
+ privileged = false
+ pseudoTerminal = true
+ readonlyRootFilesystem = false
+ volumesFrom = []
},
]
)
+ family = "eg-test-container-definition"
+ id = (known after apply)
+ network_mode = (known after apply)
+ revision = (known after apply)
+ skip_destroy = false
+ tags = {
+ "Name" = "eg-test-container-definition"
+ "Namespace" = "eg"
+ "Stage" = "test"
}
+ tags_all = {
+ "Name" = "eg-test-container-definition"
+ "Namespace" = "eg"
+ "Stage" = "test"
}
}
Plan: 1 to add, 0 to change, 0 to destroy.
------------------------------------------------------------------------
Note: You didn't specify an "-out" parameter to save this plan, so Terraform
can't guarantee that exactly these actions will be performed if
"terraform apply" is subsequently run.
That additional information that's useful for bug reports such as these is included in our issue template... looks like you didn't use it. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
The variable defaults to 0, but it is allowed to leave it unset.
https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/ecs_task_definition#cpu
https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html
IMHO, we should allow to pass
null
to this module.The text was updated successfully, but these errors were encountered: