Skip to content

deseretdigital/terraform-kubernetes-ddm-platform-deployment

Repository files navigation

Requirements

Name Version
google ~> 4.81
kubernetes ~> 2.23

Providers

Name Version
kubernetes ~> 2.23

Modules

Name Source Version
deployment_workload_identity terraform-google-modules/kubernetes-engine/google//modules/workload-identity n/a

Resources

Name Type
kubernetes_deployment.platform_deployment resource
kubernetes_horizontal_pod_autoscaler_v2.deployment_hpa resource
kubernetes_secret.kubernetes_secrets resource
kubernetes_service.web_servce resource
kubernetes_namespace.deployment_namespace data source

Inputs

Name Description Type Default Required
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

Outputs

Name Description
name The name of the deployment

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages