Compare commits

...

2 commits

Author SHA1 Message Date
e2aebe77af
Update the docs 2025-09-11 11:33:14 +02:00
812d3e69f5
Add stackit dns 2025-09-11 11:25:13 +02:00
5 changed files with 35 additions and 4 deletions

View file

@ -57,6 +57,10 @@ Please refer to official STACKIT [documentation](https://docs.stackit.cloud/stac
### Prerequisites
As for now, the Cloud Foundry organization and the Stage you deploy into have to be created beforehand.
You will also need to create an organization manager in order to use STACKIT or custom domains.
This can be done via STACKIT [API](https://docs.api.stackit.cloud/documentation/scf/version/v1).
If you want to use the org manager inside a Cloud Foundry space, you will need to assign the `SpaceDeveloper` role. This can also be done via [API](https://docs.api.stackit.cloud/documentation/scf/version/v1#tag/Space-Roles/operation/createSpaceRole).
In order to create Cloud Foundry resources automatically, you will need a service account and service key. Please refer to the [docs](https://docs.stackit.cloud/stackit/en/how-to-create-cloud-foundry-service-accounts-67772133.html#HowtoCreateCloudFoundryServiceAccounts-StepBySteptotheServiceAccount).
### Deployment

View file

@ -9,3 +9,4 @@ docker_password = "<DOCKER-PASSWORD>"
cf_app_name = "<NAME-OFF-YOUR-APP>"
cf_org_name = "<NAME-OF-YOUR-CLOUD-FOUNDRY-ORGANIZATION>"
cf_space_name = "<NAME-OF-YOUR-CLOUD-FOUNDRY-SPACE>"
app_domain = "<YOUR-APP-DOMAIN>"

14
terraform/dns.tf Normal file
View file

@ -0,0 +1,14 @@
resource "stackit_dns_zone" "cloudfoundry-tf" {
dns_name = "cloudfoundry-tf.stackit.gg"
name = "cloudfoundry-tf"
project_id = var.project_id
}
resource "stackit_dns_record_set" "versatiles" {
name = var.app_domain
type = "ALIAS"
project_id = var.project_id
zone_id = stackit_dns_zone.cloudfoundry-tf.zone_id
# the alias record must point to cf api url
records = ["console.apps.01.cf.eu01.stackit.cloud."]
}

View file

@ -7,6 +7,11 @@ data "cloudfoundry_space" "space" {
org = data.cloudfoundry_org.org.id
}
resource "cloudfoundry_domain" "versatiles" {
name = var.app_domain
org = data.cloudfoundry_org.org.id
}
resource "cloudfoundry_app" "versatiles" {
name = var.cf_app_name
space_name = data.cloudfoundry_space.space.name
@ -18,8 +23,10 @@ resource "cloudfoundry_app" "versatiles" {
health_check_type = "http"
health_check_http_endpoint = "/"
docker_image = var.docker_image
random_route = true
strategy = "rolling"
routes = [{
route = cloudfoundry_domain.versatiles.name
}]
strategy = "rolling"
docker_credentials = {
username = var.docker_username
password = var.docker_password

View file

@ -37,6 +37,11 @@ variable "cf_app_name" {
default = "versatiles"
}
variable "app_domain" {
type = string
description = "FQDN for the versatiles app."
}
variable "tiles_url" {
type = string
description = "The url of the tiles file."