Files
azure-ki-infrastruktur/beispiel-terraform/beispiel-k8s-cluster-afc/outputs.tf
T

113 lines
4.5 KiB
Terraform

output "resource_group_name" {
description = "Name of the resource group"
value = data.azurerm_resource_group.main.name
}
output "aks_cluster_name" {
description = "Name of the AKS cluster"
value = data.azurerm_kubernetes_cluster.main.name
}
output "postgresql_service_name" {
description = "Name of the PostgreSQL service (in-cluster)"
value = kubernetes_service.postgresql.metadata[0].name
}
output "postgresql_service_fqdn" {
description = "Internal FQDN of the PostgreSQL service (in-cluster)"
value = "postgresql.${kubernetes_namespace.app.metadata[0].name}.svc.cluster.local"
}
output "postgresql_database_name" {
description = "Name of the PostgreSQL database"
value = local.postgresql_db_name
}
output "postgresql_admin_username" {
description = "Administrator username for PostgreSQL"
value = var.postgresql_admin_username
sensitive = true
}
output "postgresql_connection_string" {
description = "PostgreSQL connection string (from within cluster)"
value = "postgresql://${var.postgresql_admin_username}:${nonsensitive(local.postgresql_admin_pass)}@postgresql.${kubernetes_namespace.app.metadata[0].name}.svc.cluster.local:5432/${local.postgresql_db_name}"
sensitive = true
}
output "app_namespace" {
description = "Kubernetes namespace for the application"
value = kubernetes_namespace.app.metadata[0].name
}
output "app_service_name" {
description = "Kubernetes service name for the application"
value = kubernetes_service.app.metadata[0].name
}
output "ingress_enabled" {
description = "Whether ingress is enabled"
value = var.ingress_enabled
}
output "ingress_ip" {
description = "IP address of the ingress controller load balancer"
value = var.ingress_enabled ? try(data.kubernetes_service.ingress_nginx[0].status[0].load_balancer[0].ingress[0].ip, "pending") : "not enabled"
}
output "app_url" {
description = "URL of the Laravel application"
value = var.ingress_enabled ? (var.ingress_host != "" ? "https://${var.ingress_host}" : "http://${try(data.kubernetes_service.ingress_nginx[0].status[0].load_balancer[0].ingress[0].ip, "pending")}") : "ingress not enabled"
}
output "ssl_enabled" {
description = "Whether SSL/TLS is enabled"
value = var.ssl_enabled
}
output "db_restore_info" {
description = "Database restore information"
value = "Database restore disabled in Terraform. Use manual restore via kubectl (see db-restore.tf for instructions)"
}
output "deployment_instructions" {
description = "Next steps after deployment"
value = <<-EOT
========================================
Deployment Complete!
========================================
1. Get kubectl credentials:
az aks get-credentials --resource-group ${data.azurerm_resource_group.main.name} --name ${data.azurerm_kubernetes_cluster.main.name}
2. Check application status:
kubectl get pods -n ${kubernetes_namespace.app.metadata[0].name}
kubectl get svc -n ${kubernetes_namespace.app.metadata[0].name}
kubectl get ingress -n ${kubernetes_namespace.app.metadata[0].name}
3. Check database restore job (if enabled):
kubectl get jobs -n ${kubernetes_namespace.app.metadata[0].name}
kubectl logs -n ${kubernetes_namespace.app.metadata[0].name} -l job-type=database-restore
4. Access the application:
${var.ingress_enabled ? (var.ingress_host != "" ? "https://${var.ingress_host}" : "http://${try(data.kubernetes_service.ingress_nginx[0].status[0].load_balancer[0].ingress[0].ip, "pending")}") : "ingress not enabled - use port-forward"}
5. Port-forward (if ingress not ready):
kubectl port-forward -n ${kubernetes_namespace.app.metadata[0].name} svc/${kubernetes_service.app.metadata[0].name} 8080:80
6. View logs:
kubectl logs -n ${kubernetes_namespace.app.metadata[0].name} -l app=${var.app_name} -f
7. Database connection details (in-cluster):
Host: postgresql.${kubernetes_namespace.app.metadata[0].name}.svc.cluster.local
Database: ${local.postgresql_db_name}
Username: ${var.postgresql_admin_username}
8. Restore database manually:
kubectl cp ../backups/backup_backend_20251203_101741.dump ${kubernetes_namespace.app.metadata[0].name}/postgresql-0:/tmp/backup.dump
kubectl exec -it -n ${kubernetes_namespace.app.metadata[0].name} postgresql-0 -- pg_restore -U ${var.postgresql_admin_username} -d ${local.postgresql_db_name} --clean --if-exists /tmp/backup.dump
========================================
EOT
}