Skip to content

Commit 2fb3313

Browse files
authored
feat: add owner-creds to graphql bootstrap (#18)
1 parent d18ec2f commit 2fb3313

File tree

7 files changed

+81
-14
lines changed

7 files changed

+81
-14
lines changed

bootstrap/feature/creds.tf

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
resource "kubernetes_secret" "dbcreds" {
2+
metadata {
3+
namespace = var.namespace
4+
name = var.dbcreds_secret_name
5+
}
6+
7+
data = {
8+
username = var.dbcreds.username
9+
password = var.dbcreds.password
10+
}
11+
12+
type = "Opaque"
13+
}
14+
15+
resource "kubernetes_secret" "ownercreds" {
16+
metadata {
17+
namespace = var.namespace
18+
name = var.ownercreds_secret_name
19+
}
20+
21+
data = {
22+
username = var.ownercreds.username
23+
password = var.ownercreds.password
24+
}
25+
26+
type = "Opaque"
27+
}

bootstrap/feature/dbcreds.tf

Lines changed: 0 additions & 13 deletions
This file was deleted.

bootstrap/feature/main.tf

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,23 @@ variable "dbcreds" {
2121
})
2222
}
2323

24+
variable "ownercreds" {
25+
type = object({
26+
username = string
27+
password = string
28+
})
29+
}
30+
2431
variable "dbcreds_secret_name" {
2532
type = string
2633
default = "scrolls-dbcreds"
2734
}
2835

36+
variable "ownercreds_secret_name" {
37+
type = string
38+
default = "scrolls-ownercreds"
39+
}
40+
2941
variable "metrics_delay" {
3042
description = "The inverval for polling metrics data (in seconds)"
3143
default = "30"

bootstrap/instance/instance.tf

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,14 @@ resource "kubernetes_deployment_v1" "scrolls" {
4949
image = "${var.image}:${var.image_tag}"
5050
image_pull_policy = "IfNotPresent"
5151

52+
args = [
53+
"--schema",
54+
"collections",
55+
"--watch",
56+
"--owner-connection",
57+
"postgres://$(POSTGRES_OWNER_USER):$(POSTGRES_OWNER_PASSWORD)@$(POSTGRES_HOST):5432/${var.postgres_database}"
58+
]
59+
5260
resources {
5361
limits = {
5462
cpu = var.resources.limits.cpu
@@ -86,6 +94,26 @@ resource "kubernetes_deployment_v1" "scrolls" {
8694
}
8795
}
8896

97+
env {
98+
name = "POSTGRES_OWNER_USER"
99+
value_from {
100+
secret_key_ref {
101+
key = "username"
102+
name = var.ownercreds_secret_name
103+
}
104+
}
105+
}
106+
107+
env {
108+
name = "POSTGRES_OWNER_PASSWORD"
109+
value_from {
110+
secret_key_ref {
111+
key = "password"
112+
name = var.ownercreds_secret_name
113+
}
114+
}
115+
}
116+
89117
env {
90118
name = "POSTGRES_HOST"
91119
value = var.postgres_host

bootstrap/instance/main.tf

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,11 @@ variable "dbcreds_secret_name" {
3030
default = "scrolls-dbcreds"
3131
}
3232

33+
variable "ownercreds_secret_name" {
34+
type = string
35+
default = "scrolls-ownercreds"
36+
}
37+
3338
variable "port" {
3439
type = number
3540
default = 8000

bootstrap/main.tf

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ module "scrolls_v1_feature" {
1818
source = "./feature"
1919
namespace = var.namespace
2020
dbcreds = var.dbcreds
21+
ownercreds = var.ownercreds
2122
operator_image_tag = var.operator_image_tag
2223
metrics_delay = var.metrics_delay
2324
dns_zone = var.dns_zone
@@ -51,7 +52,7 @@ module "scrolls_instances" {
5152
network = each.value.network
5253
port = var.scrolls_port
5354
postgres_host = each.value.postgres_host
54-
postgres_database = "collections-cardano-${each.value.network}"
55+
postgres_database = "cardano-${each.value.network}"
5556
replicas = coalesce(each.value.replicas, 1)
5657
resources = coalesce(each.value.resources, {
5758
limits : {

bootstrap/variables.tf

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,13 @@ variable "dbcreds" {
3434
})
3535
}
3636

37+
variable "ownercreds" {
38+
type = object({
39+
username = string
40+
password = string
41+
})
42+
}
43+
3744
// Operator
3845
variable "operator_image_tag" {
3946
type = string

0 commit comments

Comments
 (0)