Skip to content

StatCan/terraform-statcan-kubernetes-core-platform

Repository files navigation

terraform-statcan-kubernetes-core-platform

Requirements

Name Version
helm >= 2.0.0
kubernetes >= 2.0.0

Providers

Name Version
helm >= 2.0.0
kubernetes >= 2.0.0
random n/a

Modules

Name Source Version
aad_pod_identity git::https://gitlab.k8s.cloud.statcan.ca/cloudnative/terraform/modules/terraform-kubernetes-aad-pod-identity.git v3.0.0
cert_manager git::https://gitlab.k8s.cloud.statcan.ca/cloudnative/terraform/modules/terraform-kubernetes-cert-manager.git v5.5.0
cert_manager_identity git::https://gitlab.k8s.cloud.statcan.ca/cloudnative/terraform/modules/terraform-kubernetes-aad-pod-identity-template.git v2.x
cert_manager_letsencrypt git::https://gitlab.k8s.cloud.statcan.ca/cloudnative/terraform/modules/terraform-kubernetes-cert-manager-issuer.git v1.3.0
cert_manager_letsencrypt_staging git::https://gitlab.k8s.cloud.statcan.ca/cloudnative/terraform/modules/terraform-kubernetes-cert-manager-issuer.git v1.3.0
fluentd git::https://gitlab.k8s.cloud.statcan.ca/cloudnative/terraform/modules/terraform-kubernetes-fluentd.git v3.0.1
gatekeeper git::https://gitlab.k8s.cloud.statcan.ca/cloudnative/terraform/modules/terraform-kubernetes-open-policy-agent.git v4.3.0
kubecost git::https://gitlab.k8s.cloud.statcan.ca/cloudnative/terraform/modules/terraform-kubernetes-kubecost.git v3.2.0
namespace_aad_pod_identity_system git::https://gitlab.k8s.cloud.statcan.ca/cloudnative/terraform/modules/terraform-kubernetes-namespace.git v2.2.0
namespace_cert_manager_system git::https://gitlab.k8s.cloud.statcan.ca/cloudnative/terraform/modules/terraform-kubernetes-namespace.git v2.2.0
namespace_event_logging_system git::https://gitlab.k8s.cloud.statcan.ca/cloudnative/terraform/modules/terraform-kubernetes-namespace.git v2.10.1
namespace_fluentd_system git::https://gitlab.k8s.cloud.statcan.ca/cloudnative/terraform/modules/terraform-kubernetes-namespace.git v2.2.0
namespace_gatekeeper_system git::https://gitlab.k8s.cloud.statcan.ca/cloudnative/terraform/modules/terraform-kubernetes-namespace.git v2.2.0
namespace_kubecost_system git::https://gitlab.k8s.cloud.statcan.ca/cloudnative/terraform/modules/terraform-kubernetes-namespace.git v2.2.0
namespace_prometheus_system git::https://gitlab.k8s.cloud.statcan.ca/cloudnative/terraform/modules/terraform-kubernetes-namespace.git v2.2.0
namespace_statcan_system git::https://gitlab.k8s.cloud.statcan.ca/cloudnative/terraform/modules/terraform-kubernetes-namespace.git v2.2.0
namespace_vault_agent_system git::https://gitlab.k8s.cloud.statcan.ca/cloudnative/terraform/modules/terraform-kubernetes-namespace.git v2.2.0
namespace_velero_system git::https://gitlab.k8s.cloud.statcan.ca/cloudnative/terraform/modules/terraform-kubernetes-namespace.git v2.2.0
prometheus git::https://gitlab.k8s.cloud.statcan.ca/cloudnative/terraform/modules/terraform-kubernetes-kube-prometheus-stack v3.8.3
vault_agent git::http://gitlab.k8s.cloud.statcan.ca/cloudnative/terraform/modules/terraform-kubernetes-vault-agent.git v1.0.1
velero git::https://gitlab.k8s.cloud.statcan.ca/cloudnative/terraform/modules/terraform-kubernetes-velero.git v5.2.1
velero_identity git::https://gitlab.k8s.cloud.statcan.ca/cloudnative/terraform/modules/terraform-kubernetes-aad-pod-identity-template.git v2.x

Inputs

Name Description Type Default Required
administrative_groups List of groups who have administrative access to system namespaces. list(string) n/a yes
backup_resource_group_name n/a any n/a yes
cert_manager_hosted_zone_name n/a any n/a yes
cert_manager_identity_client_id Client ID associated with the Azure Managed Identity for cert-manager any n/a yes
cert_manager_identity_id ID of the Azure Managed Identity for cert-manager any n/a yes
cert_manager_resource_group_name n/a any n/a yes
cert_manager_subscription_id n/a any n/a yes
cluster_name Name of the cluster any n/a yes
cluster_node_resource_group_name n/a any n/a yes
cluster_resource_group_name n/a any n/a yes
grafana_client_id n/a any n/a yes
grafana_client_secret n/a any n/a yes
ingress_domain n/a any n/a yes
kubecost_client_id n/a any n/a yes
kubecost_client_secret n/a any n/a yes
kubecost_cluster_profile n/a any n/a yes
kubecost_product_key n/a any n/a yes
kubecost_shared_namespaces n/a any n/a yes
kubecost_slack_token n/a any n/a yes
kubecost_storage_access_key n/a any n/a yes
kubecost_storage_account n/a any n/a yes
kubecost_storage_container n/a any n/a yes
kubecost_token n/a any n/a yes
logging_elasticsearch_url URL to elasticsearch for logging any n/a yes
subscription_id n/a any n/a yes
tenant_id n/a any n/a yes
vault_address n/a any n/a yes
velero_identity_client_id n/a any n/a yes
velero_identity_id n/a any n/a yes
velero_storage_account n/a any n/a yes
velero_storage_bucket n/a any n/a yes
additional_alertmanagers List of additional Alertmanager target URLs for the Platform Prometheus list(string) [] no
ci_service_account_name Name of the CI service account. string "ci" no
gk_audit_limits_cpu max cpu allocated for gatekeeper audit pods string "1000m" no
gk_audit_limits_memory max mem allocated for gatekeeper audit pods string "1528Mi" no
gk_audit_requests_cpu min cpu allocated for gatekeeper controller pods string "100m" no
gk_audit_requests_memory min cpu allocated for gatekeeper audit pods string "1024Mi" no
gk_limits_cpu max cpu allocated for gatekeeper controller pods string "1000m" no
gk_limits_memory max cpu allocated for gatekeeper controller pods string "1528Mi" no
gk_replicas The number of replicas of gatekeeper controller pods string "3" no
gk_requests_cpu min cpu allocated for gatekeeper controller pods string "100m" no
gk_requests_memory min cpu allocated for gatekeeper audit pods string "1024Mi" no
global_fluentd_config Global Fluentd config, usually used to define the default plugin string "<plugin default>\n @type null\n</plugin>\n" no
ingress_class_name The name of the IngressClass cluster resource string "ingress-istio-controller" no
kubecost_additional_alert_config Additional alerts for kubecost to pick up. Default should never trigger string "- type: budget\n threshold: 100000000000000\n window: 1d\n aggregation: namespace\n filter: default\n" no
kubecost_alert_slack_webhook_url Kubecost global url for reporting alerts string "https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX" no
kubecost_prometheus_node_selector The nodeSelector to apply to the Prometheus instance backing Kubecost. map(string) {} no
logging_elasticsearch_password Elasticsearch password for logging string "" no
logging_elasticsearch_username Elasticsearch username for logging string "" no
platform_helm_repositories n/a map(string) {} no
platform_helm_repository_password The password of the repository where the Helm chart is stored string "" no
platform_helm_repository_username The username of the repository where the Helm chart is stored string "" no
platform_image_bases Overwrite base image location (MUST contain a trailing slash) map(string) {} no
platform_image_repository n/a string "docker.io" no
platform_image_repository_auth n/a string "" no
platform_image_repository_credentials_enable n/a bool false no
platform_image_repository_email The email for the repository where the image is stored string "" no
platform_image_repository_password The password for the repository where the image is stored string "" no
platform_image_repository_username The username for the repository where the image is stored string "" no
prometheus_additional_scrape_config Default additional scrape configuration for prometheus string "- job_name: kubecost\n honor_labels: true\n scrape_interval: 1m\n scrape_timeout: 10s\n metrics_path: /metrics\n scheme: http\n dns_sd_configs:\n - names:\n - kubecost-cost-analyzer.kubecost-system\n type: 'A'\n port: 9003\n" no
prometheus_disk_size n/a string "80Gi" no
prometheus_resources The limits and requests to set on the Prometheus pod.
object({
limits = map(string),
requests = map(string),
})
{
"limits": {},
"requests": {}
}
no

Outputs

Name Description
grafana_url The URL for Grafana.
kube_prometheus_stack_namespace_name The name of the namespace where the kube-prometheus-stack is deployed.
kube_prometheus_stack_release_name The name of the release of the kube-prometheus-stack.

About

Terraform module for Statistics Canada Core Kubernetes Platform

Resources

License

Security policy

Stars

Watchers

Forks

Packages

No packages published

Languages