generated from kurtosis-tech/package-template-repo
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.star
53 lines (47 loc) · 1.32 KB
/
main.star
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
NAME_ARG = "name"
USER_ARG = "user"
PASSWORD_ARG = "password"
IMAGE_ARG = "image"
ENV_VARS_ARG = "env_vars"
PORT_NAME = "mongodb"
PORT_NUMBER = 27017
PROTOCOL_NAME = "mongodb"
def run(plan, args):
service_name = args.get(NAME_ARG, "mongodb")
image = args.get(IMAGE_ARG, "mongo:6.0.5")
user = args.get(USER_ARG, "root")
password = args.get(PASSWORD_ARG, "password")
env_var_overrides = args.get(ENV_VARS_ARG, {})
env_vars = {
"MONGO_INITDB_ROOT_USERNAME": user,
"MONGO_INITDB_ROOT_PASSWORD": password,
}
env_vars |= env_var_overrides
# Add the server
service = plan.add_service(
name=service_name,
config=ServiceConfig(
image=image,
files = {
"/data/db": Directory(persistent_key="mongodb-data"),
},
ports={
PORT_NAME: PortSpec(
number=PORT_NUMBER,
application_protocol=PROTOCOL_NAME
),
},
env_vars=env_vars,
),
)
url = "{protocol}://{user}:{password}@{hostname}:{port}/".format(
protocol = PROTOCOL_NAME,
user = user,
password = password,
hostname = service.hostname,
port = PORT_NUMBER,
)
return struct(
service=service,
url=url,
)