application_name |
The name of the deployment |
string |
n/a |
yes |
application_version |
The version of the deployment. Ideally this is an Autotagged Semver, but we could use the Github run id. |
string |
n/a |
yes |
autoscaler |
Configuration for the autoscaler |
object({ cpu_utilization = optional(number) memory_utilization = optional(number) # External Metrics. Example: Google Pubsub external_metric = optional(object({ metric_name = string target_value = string selector_labels = optional(map(string)) })) }) |
{ "cpu_utilization": 80 } |
no |
container_image |
The container image to deploy |
string |
n/a |
yes |
container_port |
The port the container exposes |
number |
8080 |
no |
deployment_service_type |
The type of service to create for the deployment |
string |
"ClusterIP" |
no |
env_vars |
List of environment variables for the deployment |
list(object({ name = string value = string })) |
[] |
no |
expose_as_web_service |
Indicates if the deployment should be exposed as a web service |
bool |
true |
no |
gke_cluster_name |
The name of the GKE cluster where the resources will be deployed |
string |
"ddm-platform-us-west3" |
no |
labels |
The labels to apply to the deployment |
map(string) |
n/a |
yes |
liveness_probe |
Configuration for liveness probe |
object({ path = optional(string) port = optional(number) initial_delay_seconds = optional(number) period_seconds = optional(number) timeout_seconds = optional(number) failure_threshold = optional(number) success_threshold = optional(number) }) |
{ "failure_threshold": 3, "initial_delay_seconds": 10, "path": "/livez", "period_seconds": 10, "port": 8080, "success_threshold": 1, "timeout_seconds": 2 } |
no |
max_replicas |
Maximum number of replicas for the deployment |
number |
1 |
no |
min_replicas |
Minimum number of replicas for the deployment |
number |
1 |
no |
namespace |
The Kubernetes namespace where the deployment will be created |
string |
"internal" |
no |
project |
The default project. |
string |
"ddm-platform" |
no |
readiness_probe |
Configuration for readiness probe |
object({ path = optional(string) port = optional(number) initial_delay_seconds = optional(number) period_seconds = optional(number) timeout_seconds = optional(number) failure_threshold = optional(number) success_threshold = optional(number) }) |
{ "failure_threshold": 3, "initial_delay_seconds": 10, "path": "/readyz", "period_seconds": 10, "port": 8080, "success_threshold": 1, "timeout_seconds": 2 } |
no |
resources |
Resource requests and limits |
object({ requests = object({ cpu = string memory = string }) limits = object({ cpu = string memory = string }) }) |
{ "limits": { "cpu": "500m", "memory": "128Mi" }, "requests": { "cpu": "250m", "memory": "64Mi" } } |
no |
roles |
The roles to apply to the service account for the deployment |
list(string) |
[ "roles/secretmanager.secretAccessor" ] |
no |
secret_env_vars |
List of environment that are set as secret variables for the deployment. These are stored in K8s and not in GSM |
list(object({ name = string value = string })) |
[] |
no |
team |
The team that owns the deployment |
string |
n/a |
yes |