Skip to content

cookielab/terraform-kubernetes-cluster-apps

Repository files navigation

Requirements

Name Version
terraform >= 1.9, < 2.0
aws ~> 5.27
helm ~> 2.14
kubernetes ~> 2.30

Providers

Name Version
kubernetes ~> 2.30

Modules

Name Source Version
alloy ./modules/alloy n/a
cert_manager ./modules/cert-manager n/a
external_secrets ./modules/external-secrets n/a
karpenter ./modules/karpenter n/a
kyverno ./modules/kyverno n/a
metrics_server ./modules/metrics-server n/a

Resources

Name Type
kubernetes_namespace_v1.this resource

Inputs

Name Description Type Default Required
alloy grafana alloy configuration
object({
enabled = optional(bool, true)
loki = optional(
object({
url = string
username = optional(string, null)
password = optional(string, null)
}),
{
url = null
username = null
password = null
}
)
loki_scrape_global = optional(bool, true)
loki_collect_self_logs_enabled = optional(bool, false)
prometheus = optional(
object({
url = string
username = optional(string, null)
password = optional(string, null)
}),
{
url = null
username = null
password = null
}
)
tenant_id = optional(string, "default")
node_template_file_path = optional(string, null)
cluster_template_file_path = optional(string, null)
})
n/a yes
cert_manager cert manager configuration
object({
enabled = optional(bool, false)
node_selector = optional(map(string), null)
tolerations = optional(list(object({
key = string
operator = string
value = optional(string, null)
effect = optional(string, null)
})), null)
})
n/a yes
cluster_name name of the EKS cluster string n/a yes
external_secrets external secrets configuration
object({
enabled = optional(bool, true)
repository = optional(string, "oci.external-secrets.io/external-secrets/external-secrets")
node_selector = optional(map(string), null)
tolerations = optional(list(object({
key = string
operator = string
value = optional(string, null)
effect = optional(string, null)
})), null)
})
{} no
karpenter karperter configuration
object({
enabled = optional(bool, true)
repository = optional(string, "public.ecr.aws/karpenter/controller")
node_selector = optional(map(string), null)
tolerations = optional(list(object({
key = string
operator = string
value = optional(string, null)
effect = optional(string, null)
})), null)
replicas = optional(number, 2)
tag_key = optional(string, "eks:eks-cluster-name")
enable_disruption = optional(bool, true)
batch_max_duration = optional(string, "10s")
batch_idle_duration = optional(string, "1s")
spot_to_spot_consolidation = optional(bool, false)
pod_annotations = optional(map(string), {})
node_role_arn = optional(string, null)
})
{} no
kyverno kyverno configuration
object({
enabled = optional(bool, false)
registry = optional(string, "ghcr.io")
docker_hub_registry = optional(string, "docker.io")
node_selector = optional(map(string), null)
tolerations = optional(list(object({
key = string
operator = string
value = optional(string, null)
effect = optional(string, null)
})), null)
admission_controller = optional(
object(
{
replicas = optional(number, 2)
container = optional(object(
{
resources = object({
requests = object({
cpu = optional(string, "300m")
memory = optional(string, "384Mi")
}),
limits = object({
memory = optional(string, "384Mi")
})
})
}
),
{
resources = {
requests = {
cpu = "300m"
memory = "384Mi"
}
limits = {
memory = "384Mi"
}
}
}
)
}
),
{
replicas = 2
container = {
resources = {
requests = {
cpu = "300m"
memory = "384Mi"
}
limits = {
memory = "384Mi"
}
}
}
}
)
})
{} no
metrics_server metrics server configuration
object({
enabled = optional(bool, true)
repository = optional(string, "registry.k8s.io/metrics-server/metrics-server")
node_selector = optional(map(string), null)
tolerations = optional(list(object({
key = string
operator = string
value = optional(string, null)
effect = optional(string, null)
})), null)
})
{} no
namespace value of the namespace to deploy cluster apps
object({
name = string
create = bool
})
{
"create": true,
"name": "cluster-apps"
}
no
node_selector node selector to deploy cluster apps map(string)
{
"node.kubernetes.io/pool": "critical"
}
no
project n/a string "project name" no
tolerations tolerations to deploy cluster apps
list(object({
key = string
operator = string
value = optional(string, null)
effect = optional(string, null)
}))
[
{
"effect": "NoSchedule",
"key": "CriticalAddonsOnly",
"operator": "Exists"
}
]
no

Outputs

Name Description
namespace n/a

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages