Skip to content

Commit b90bc7c

Browse files
authored
feat: use cloud secret for DNS token in scaletest TF (#19466)
Removes the requirement to obtain a Cloudflare DNS token from our scaletest/terraform/action builds. Instead, by default, we pull the token from Google Secrets Manager and use the `scaletest.dev` DNS domain. Removes cloudflare_email as this was unneeded. Removes the cloudflare_zone_id and instead pulls it from a data source via the Cloudflare API. closes coder/internal#839
1 parent a71e5cc commit b90bc7c

File tree

3 files changed

+16
-11
lines changed

3 files changed

+16
-11
lines changed

scaletest/terraform/action/cf_dns.tf

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
1+
data "cloudflare_zone" "domain" {
2+
name = var.cloudflare_domain
3+
}
4+
15
resource "cloudflare_record" "coder" {
26
for_each = local.deployments
3-
zone_id = var.cloudflare_zone_id
7+
zone_id = data.cloudflare_zone.domain.zone_id
48
name = each.value.subdomain
59
content = google_compute_address.coder[each.key].address
610
type = "A"

scaletest/terraform/action/main.tf

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,13 @@ terraform {
4646
provider "google" {
4747
}
4848

49+
data "google_secret_manager_secret_version_access" "cloudflare_api_token_dns" {
50+
secret = "cloudflare-api-token-dns"
51+
project = var.project_id
52+
}
53+
4954
provider "cloudflare" {
50-
api_token = var.cloudflare_api_token
55+
api_token = coalesce(var.cloudflare_api_token, data.google_secret_manager_secret_version_access.cloudflare_api_token_dns.secret_data)
5156
}
5257

5358
provider "kubernetes" {

scaletest/terraform/action/vars.tf

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ variable "scenario" {
1313
// GCP
1414
variable "project_id" {
1515
description = "The project in which to provision resources"
16+
default = "coder-scaletest"
1617
}
1718

1819
variable "k8s_version" {
@@ -24,19 +25,14 @@ variable "k8s_version" {
2425
variable "cloudflare_api_token" {
2526
description = "Cloudflare API token."
2627
sensitive = true
27-
}
28-
29-
variable "cloudflare_email" {
30-
description = "Cloudflare email address."
31-
sensitive = true
28+
# only override if you want to change the cloudflare_domain; pulls the token for scaletest.dev from Google Secrets
29+
# Manager if null.
30+
default = null
3231
}
3332

3433
variable "cloudflare_domain" {
3534
description = "Cloudflare coder domain."
36-
}
37-
38-
variable "cloudflare_zone_id" {
39-
description = "Cloudflare zone ID."
35+
default = "scaletest.dev"
4036
}
4137

4238
// Coder

0 commit comments

Comments
 (0)