additional_env_vars |
Additional environment variables to add to the task definition |
map(string) |
{} |
no |
additional_env_vars_from_config_maps |
Additional environment variables to add to the container from the following config maps |
object({ items : optional(list(string), []), prefix : optional(string, ""), }) |
{ "items": [], "prefix": "" } |
no |
additional_env_vars_from_secrets |
Additional environment variables to add to the container from the following secrets |
object({ items : optional(list(string), []), prefix : optional(string, ""), }) |
{ "items": [], "prefix": "" } |
no |
additional_pod_labels |
Additional labels to add to the pods. |
map(string) |
{} |
no |
additional_volumes_from_config_maps |
Additional volumes to add to the container from the following config maps |
object({ items : optional(list(string), []), }) |
{ "items": [] } |
no |
additional_volumes_from_secrets |
Additional volumes to add to the container from the following secrets |
object({ items : optional(list(string), []), base_dir : optional(string, "/var"), }) |
{ "base_dir": "/var", "items": [] } |
no |
app_name |
The happy application name |
string |
n/a |
yes |
args |
Args to pass to the command |
list(string) |
[] |
no |
aws_iam |
The AWS IAM service account or policy JSON to give to the pod. Only one of these should be set. |
object({ service_account_name : optional(string, null), policy_json : optional(string, ""), }) |
{} |
no |
cache_volume_mount_dir |
Path to mount the shared cache volume to |
string |
"/var/shared/cache" |
no |
certificate_arn |
ACM certificate ARN to attach to the load balancer listener |
string |
n/a |
yes |
cloud_env |
Typically data.terraform_remote_state.cloud-env.outputs |
object({ public_subnets : list(string), private_subnets : list(string), database_subnets : list(string), database_subnet_group : string, vpc_id : string, vpc_cidr_block : string, }) |
n/a |
yes |
cmd |
Command to run |
list(string) |
[] |
no |
container_name |
The name of the container |
string |
n/a |
yes |
cpu |
CPU shares (1cpu=1000m) per pod |
string |
"100m" |
no |
cpu_requests |
CPU shares (1cpu=1000m) requested per pod |
string |
"10m" |
no |
deployment_stage |
The name of the deployment stage of the Application |
string |
"dev" |
no |
desired_count |
How many instances of this task should we run across our cluster? |
number |
2 |
no |
eks_cluster |
eks-cluster module output |
object({ cluster_id : string, cluster_arn : string, cluster_endpoint : string, cluster_ca : string, cluster_oidc_issuer_url : string, cluster_version : string, worker_iam_role_name : string, worker_security_group : string, oidc_provider_arn : string, }) |
n/a |
yes |
emptydir_volumes |
define any emptyDir volumes to make available to the pod |
list(object({ name : string, parameters : object({ size_limit : optional(string, "500mi"), }) })) |
[] |
no |
gpu |
Number of GPUs per pod, 0 allocates all available GPUs |
number |
null |
no |
gpu_requests |
Number of GPUs requested per pod, 0 allocates all available GPUs |
number |
null |
no |
health_check_command |
Health check command to run for CLI services |
list(string) |
[] |
no |
health_check_path |
path to use for health checks |
string |
"/" |
no |
image_pull_policy |
The image pull policy to use |
string |
"IfNotPresent" |
no |
image_tag |
The image tag to deploy |
string |
n/a |
yes |
image_uri |
The image URI to deploy |
string |
"" |
no |
ingress_security_groups |
A list of security groups that should be allowed to communicate with the ALB ingress. Currently only used when the service_type is VPC. |
list(string) |
[] |
no |
init_containers |
Map of init containers to bootstrap the service |
map(object({ image : string tag : string cmd : optional(list(string), []) })) |
{} |
no |
initial_delay_seconds |
The initial delay in seconds for the liveness and readiness probes. |
number |
30 |
no |
k8s_namespace |
K8S namespace for this service |
string |
n/a |
yes |
linkerd_additional_skip_ports |
Additional ports to skip protocol analysis on for outbound traffic. Defaults include [25, 587, 3306, 4444, 4567, 4568, 5432, 6379, 9300, 11211] |
set(number) |
[] |
no |
liveness_timeout_seconds |
Timeout for liveness probe. |
number |
30 |
no |
max_count |
The maximum number of instances of this task that should be running across our cluster |
number |
2 |
no |
max_unavailable_count |
The maximum number or percentage of pods that can be unavailable during a rolling update. For example: 1 or 20% |
string |
"1" |
no |
memory |
Memory in megabits per pod |
string |
"100Mi" |
no |
memory_requests |
Memory requests per pod |
string |
"10Mi" |
no |
period_seconds |
The period in seconds used for the liveness and readiness probes. |
number |
3 |
no |
platform_architecture |
The platform to deploy to (valid values: amd64 , arm64 ). Defaults to amd64 . |
string |
"amd64" |
no |
progress_deadline_seconds |
The maximum time in seconds for a deployment to make progress before it is considered to be failed. Defaults to 600 seconds. |
number |
600 |
no |
readiness_timeout_seconds |
Readiness probe timeout seconds |
number |
30 |
no |
regional_wafv2_arn |
A WAF to protect the EKS Ingress if needed |
string |
null |
no |
routing |
Routing configuration for the ingress |
object({ method : optional(string, "DOMAIN") host_match : string additional_hostnames : optional(set(string), []) group_name : string alb : optional(object({ name : string, listener_port : number, }), null) priority : number path : optional(string, "/*") service_name : string port : number service_port : number alb_idle_timeout : optional(number, 60) // in seconds service_scheme : optional(string, "HTTP") scheme : optional(string, "HTTP") success_codes : optional(string, "200-499") service_type : string service_mesh : bool allow_k6_operator : optional(bool, false) allow_mesh_services : optional(list(object({ service : optional(string, null), stack : optional(string, null), service_account_name : optional(string, null), })), null) oidc_config : optional(object({ issuer : string authorizationEndpoint : string tokenEndpoint : string userInfoEndpoint : string secretName : string }), { issuer = "" authorizationEndpoint = "" tokenEndpoint = "" userInfoEndpoint = "" secretName = "" }) bypasses : optional(map(object({ paths = optional(set(string), []) methods = optional(set(string), []) deny_action = optional(object({ deny = optional(bool, false) deny_status_code = optional(string, "403") deny_message_body = optional(string, "Denied") }), {}) }))) sticky_sessions = optional(object({ enabled = optional(bool, false), duration_seconds = optional(number, 600), cookie_name = optional(string, "happy_sticky_session"), cookie_samesite = optional(string, "Lax"), }), {}) }) |
n/a |
yes |
scaling_cpu_threshold_percentage |
The CPU threshold percentage at which we should scale up |
number |
80 |
no |
scan_on_push |
Whether to enable image scan on push, disabled by default. |
bool |
false |
no |
service_endpoints |
Service endpoints to be injected for service discovery |
map(string) |
{} |
no |
sidecars |
Map of sidecar containers to be deployed alongside the service |
map(object({ image : string tag : string cmd : optional(list(string), []) args : optional(list(string), []) port : optional(number, 80) scheme : optional(string, "HTTP") memory : optional(string, "100Mi") cpu : optional(string, "100m") image_pull_policy : optional(string, "IfNotPresent") health_check_path : optional(string, "/") initial_delay_seconds : optional(number, 30) period_seconds : optional(number, 3) liveness_timeout_seconds : optional(number, 30) readiness_timeout_seconds : optional(number, 30) })) |
{} |
no |
stack_name |
Happy Path stack name |
string |
n/a |
yes |
tag_mutability |
Whether to allow tag mutability or not. When set to true tags can be overwritten (default). When set to false tags are immutable. |
bool |
true |
no |
tags |
Standard tags to attach to all happy services |
object({ env : string, owner : string, project : string, service : string, managedBy : string, }) |
{ "env": "ADDTAGS", "managedBy": "ADDTAGS", "owner": "ADDTAGS", "project": "ADDTAGS", "service": "ADDTAGS" } |
no |
wait_for_steady_state |
Whether Terraform should block until the service is in a steady state before exiting |
bool |
true |
no |