Feature: CDN custom domain resource and data source (#801)

* Feature: CDN custom domain resource and data source

* stabilize acceptance tests

* add guide

* review changes

---------

Co-authored-by: Malte Ehrlen <malte.ehrlen@freiheit.com>
This commit is contained in:
Malte Ehrlen 2025-05-05 14:10:43 +03:00 committed by GitHub
parent 0a86417cbb
commit 2d757a93fd
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
13 changed files with 914 additions and 19 deletions

View file

@ -0,0 +1,60 @@
---
page_title: "Using STACKIT CDN with your own domain"
---
# Using STACKIT CDN with your own domain
## Overview
This guide outlines the process of creating a STACKIT CDN distribution and configuring it to make use of an existing domain using STACKIT DNS.
## Steps
1. **Create a STACKIT CDN and DNS Zone**
Create the CDN distribution and the DNS zone.
```terraform
resource "stackit_cdn_distribution" "example_distribution" {
project_id = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
config = {
backend = {
type = "http"
origin_url = "mybackend.onstackit.cloud"
}
regions = ["EU", "US", "ASIA", "AF", "SA"]
}
}
resource "stackit_dns_zone" "example_zone" {
project_id = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
name = "My DNS zone"
dns_name = "myapp.runs.onstackit.cloud"
contact_email = "aa@bb.ccc"
type = "primary"
}
```
2. **Add CNAME record to your DNS zone**
If you want to redirect your entire domain to the CDN, you can instead use an A record.
```terraform
resource "stackit_dns_record_set" "example" {
project_id = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
zone_id = stackit_dns_zone.example_zone.zone_id
name = "cdn"
type = "CNAME"
records = ["${stackit_cdn_distribution.domains[0].name}."]
}
```
3. **Create a STACKIT CDN Custom Domain**
```terraform
# Create a CDN custom domain
resource "stackit_cdn_custom_domain" "example" {
project_id = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
distribution_id = stackit_cdn_distribution.example_distribution.distribution_id
name = "${stackit_dns_record_set.example.name}.${stackit_dns_zone.dns_name}"
}
```
Now, you can access your content on the url `cdn.myapp.runs.onstackit.cloud`.