forked from acorn-io/redis-cloud
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathAcornfile
104 lines (89 loc) · 2.17 KB
/
Acornfile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
name: "Redis Cloud Acorn"
description: "Acorn providing Redis cloud cluster"
readme: "./README.md"
info: localData.info
icon: "./icon.png"
args: {
// Name of the database to create
dbName: "mydb"
// Cloud provider the cluster will be created in
provider: "AWS"
// Region within the cloud provider
region: "us-east-1"
// Plan related args (only the following are currently accepted)
planType: "fixed"
planName: "Standard 30MB"
// Admin's password
adminPassword: ""
}
services: redis: generated: job: "create-resources"
jobs: "create-resources": {
build: context: "."
env: {
API_URL: "https://api.redislabs.com/v1"
ACCOUNT_KEY: "secret://redis-cloud-creds/account_key"
SECRET_KEY: "secret://redis-cloud-creds/secret_key"
DB_PASS: std.ifelse(args.adminPassword != "", args.adminPassword, "secret://admin/token")
DB_NAME: args.dbName
PROVIDER: args.provider
REGION: args.region
}
events: ["create"]
}
jobs: "delete-resources": {
build: {
context: "."
buildArgs: {
action: "delete"
}
}
env: {
API_URL: "https://api.redislabs.com/v1"
ACCOUNT_KEY: "secret://redis-cloud-creds/account_key"
SECRET_KEY: "secret://redis-cloud-creds/secret_key"
SUBSCRIPTION_ID: "secret://resources/subscription_id"
DATABASE_ID: "secret://resources/database_id"
}
events: ["delete"]
}
secrets: {
"admin": {
name: "password to be used for the admin user"
type: "token"
params: {
length: 16
characters: "abcdedfhifj01234567890"
}
data: token: ""
}
}
secrets: {
"resources": {
type: "generated"
params: job: "create-resources"
}
}
secrets: {
"redis-cloud-creds": {
external: "redis-cloud-creds"
type: "opaque"
data: {
account_key: "REDIS_CLOUD_ACCOUNT_KEY"
secret_key: "REDIS_CLOUD_SECRET_KEY"
}
}
}
localData: info: """
## Usage
services: db: {
external: "ghcr.io/lucj/acorn-redis-cloud:v#.#.#"
}
containers: app: {
image: "app-image"
env: {
DB_HOST: "@{@{service.}db.address}"
DB_PORT: "@{@{service.}db.data.port}"
DB_PASS: "@{@{service.}db.secrets.admin.token}"
}
}
"""