| terraform | ||
| .gitignore | ||
| Dockerfile | ||
| LICENSE | ||
| manifest.yaml | ||
| README.md | ||
Cloud Foundry: Sample Versatiles App
This repository contains the sample code to deploy a versatiles app to STACKIT Cloud Foundry as a docker container. It is based on the bundled front-end image, please refer to versatiles documentation for further information.
NOTE: The project contains a dockerfile, which is merely a wrapper around the public versatiles image. It can be uploaded to a private project in STACKIT Container Registry to demonstrate the usage of private images in Cloud Foundry. You can also use any other registry, public or private.
Preparation
Please install and configure s3cmd in advance.
Object Storage
Create a bucket: s3cmd mb s3://<BUCKET_NAME>.
Make bucket public applying following policy:
{
"Statement":[
{
"Sid": "MakePublicReadable",
"Effect":"Allow",
"Principal":"*",
"Action":"s3:GetObject",
"Resource":"urn:sgws:s3:::<BUCKET_NAME>/*"
}
]
}
s3cmd setpolicy <PATH-TO-POLICY-JSON> s3://<BUCKET_NAME>
Download the tiles file: wget -c "https://download.versatiles.org/osm.versatiles".
NOTE: the whole world map is about 65GB.
Upload tile file to the bucket:
s3cmd put <FILE_NAME> s3://<BUCKET_NAME>
Deploy the app with Cloud Foundry
Prepare a vars.yaml file containing the variables used in the manifest.
Push the app: CF_DOCKER_PASSWORD=<YOUR_PASSWORD> cf push --vars-file <PATH-TO-VARS-FILE>.
Custom Domains
Please refer to official STACKIT documentation.
Terraform
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.
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.
In order to create Cloud Foundry resources automatically, you will need a service account and service key. Please refer to the docs.
Deployment
Change to the terraform directory.
Create a .tfvars file and insert the required terraform variables, see .tfvars.example:
Call terraform apply --var-file=<PATH-TO-TFVARS-FILE>.