Add main.tf
Some checks are pending
Deploy Moodle to STACKIT Cloud Foundry / deploy (push) Waiting to run
Some checks are pending
Deploy Moodle to STACKIT Cloud Foundry / deploy (push) Waiting to run
This commit is contained in:
parent
60d35c7ad7
commit
3365312c32
1 changed files with 104 additions and 0 deletions
104
main.tf
Normal file
104
main.tf
Normal file
|
|
@ -0,0 +1,104 @@
|
|||
# =========== STACKIT Ressourcen ===========
|
||||
data "stackit_dns_zone" "zone" {
|
||||
project_id = var.stackit_project_id
|
||||
name = trimsuffix(var.moodle_domain, ".")
|
||||
}
|
||||
|
||||
resource "stackit_dns_record_set" "moodle_cname" {
|
||||
project_id = var.stackit_project_id
|
||||
zone_id = data.stackit_dns_zone.zone.id
|
||||
name = var.moodle_domain
|
||||
type = "CNAME"
|
||||
ttl = 300
|
||||
records = ["console.apps.01.cf.eu01.stackit.cloud."]
|
||||
}
|
||||
|
||||
resource "stackit_object_storage_bucket" "moodle_bucket" {
|
||||
project_id = var.stackit_project_id
|
||||
name = var.s3_bucket_name
|
||||
}
|
||||
|
||||
resource "stackit_object_storage_credential" "s3_credentials" {
|
||||
project_id = var.stackit_project_id
|
||||
}
|
||||
|
||||
# =========== Cloud Foundry Ressourcen ===========
|
||||
resource "cloudfoundry_org" "org" {
|
||||
name = var.cf_org_name
|
||||
}
|
||||
|
||||
resource "cloudfoundry_space" "space" {
|
||||
name = var.cf_space_name
|
||||
org = cloudfoundry_org.org.id
|
||||
}
|
||||
|
||||
data "cloudfoundry_service" "mariadb" {
|
||||
name = "appcloud-mariadb1011"
|
||||
}
|
||||
|
||||
resource "cloudfoundry_service_instance" "db" {
|
||||
name = "moodle-db"
|
||||
space = cloudfoundry_space.space.id
|
||||
service_plan = data.cloudfoundry_service.mariadb.service_plans["mariadb-1.4.10-single"]
|
||||
}
|
||||
|
||||
data "cloudfoundry_service" "redis" {
|
||||
name = "appcloud-redis7"
|
||||
}
|
||||
|
||||
resource "cloudfoundry_service_instance" "redis_cache" {
|
||||
name = "moodle-redis"
|
||||
space = cloudfoundry_space.space.id
|
||||
service_plan = data.cloudfoundry_service.redis.service_plans["redis-4.16.100-replica"]
|
||||
}
|
||||
|
||||
resource "cloudfoundry_user_provided_service_instance" "s3_cups" {
|
||||
name = "moodle-s3-credentials"
|
||||
space = cloudfoundry_space.space.id
|
||||
credentials = jsonencode({
|
||||
access_key = stackit_object_storage_credential.s3_credentials.access_key
|
||||
secret_key = stackit_object_storage_credential.s3_credentials.secret_key
|
||||
bucket = stackit_object_storage_bucket.moodle_bucket.name
|
||||
endpoint = "https://object.storage.eu01.onstackit.cloud/"
|
||||
})
|
||||
}
|
||||
|
||||
# =========== Dynamische config.php Erstellung ===========
|
||||
resource "local_file" "config_php" {
|
||||
content = templatefile("${path.module}/config.php.tpl", {
|
||||
use_cdn = var.use_cdn
|
||||
wwwroot = var.use_cdn ? "https://${var.moodle_domain}" : "https://${var.moodle_internal_host}.${trimsuffix(var.moodle_domain, ".")}"
|
||||
db_service_name = data.cloudfoundry_service.mariadb.name
|
||||
redis_service_name = data.cloudfoundry_service.redis.name
|
||||
s3_cups_name = cloudfoundry_user_provided_service_instance.s3_cups.name
|
||||
cdn_proxy_ip = var.cdn_proxy_ip
|
||||
moodle_domain = var.moodle_domain
|
||||
})
|
||||
filename = "${path.module}/moodle/config.php"
|
||||
}
|
||||
|
||||
# =========== Cloud Foundry Applikation (cf push) ===========
|
||||
resource "cloudfoundry_app" "moodle_app" {
|
||||
name = "moodle"
|
||||
space = cloudfoundry_space.space.id
|
||||
path = "./moodle"
|
||||
memory = "2G"
|
||||
disk_quota = "2G"
|
||||
instances = 2
|
||||
buildpack = "https://github.com/cloudfoundry/php-buildpack.git"
|
||||
|
||||
service_binding { service_instance = cloudfoundry_service_instance.db.id }
|
||||
service_binding { service_instance = cloudfoundry_service_instance.redis_cache.id }
|
||||
service_binding { service_instance = cloudfoundry_user_provided_service_instance.s3_cups.id }
|
||||
|
||||
routes {
|
||||
route = "${var.moodle_internal_host}.${trimsuffix(var.moodle_domain, ".")}"
|
||||
}
|
||||
routes {
|
||||
route = var.moodle_domain
|
||||
}
|
||||
|
||||
depends_on = [
|
||||
local_file.config_php
|
||||
]
|
||||
}
|
||||
Loading…
Reference in a new issue