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,7 +57,11 @@ 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.
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).
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

@ -8,4 +8,5 @@ docker_username = "<DOCKER-USERNAME>"
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>"
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."