Skip to content

Commit 40822c8

Browse files
committed
chore(mise): add mise config
1 parent 002772a commit 40822c8

File tree

3 files changed

+91
-9
lines changed

3 files changed

+91
-9
lines changed

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
.DS_Store
22
.local/
33

4+
build/
5+
46
melange.rsa*
57
cosign.key
68
cosign.pub

dagger/src/ggbridge/main.py

Lines changed: 21 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -254,7 +254,7 @@ async def client(
254254
server: Annotated[str, Doc("Server address")],
255255
ca: Annotated[dagger.File | None, Doc("Certificate authority")] = None,
256256
cert: Annotated[dagger.File | None, Doc("Client certificate")] = None,
257-
key: Annotated[dagger.File | None, Doc("Client certificate key")] = None,
257+
key: Annotated[dagger.Secret | None, Doc("Client certificate key")] = None,
258258
tunnel_health_port: Annotated[int, Doc("Health tunnel port")] = 9081,
259259
) -> dagger.Container:
260260
"""Return the ggbridge client container"""
@@ -273,9 +273,15 @@ async def client(
273273
)
274274
if tls_enabled:
275275
container = (
276-
container.with_mounted_file("/etc/ggbridge/tls/ca.crt", source=ca)
277-
.with_mounted_file("/etc/ggbridge/tls/client.crt", source=cert)
278-
.with_mounted_file("/etc/ggbridge/tls/client.key", source=key)
276+
container.with_mounted_file(
277+
"/etc/ggbridge/tls/ca.crt", source=ca, owner="nonroot"
278+
)
279+
.with_mounted_file(
280+
"/etc/ggbridge/tls/client.crt", source=cert, owner="nonroot"
281+
)
282+
.with_mounted_secret(
283+
"/etc/ggbridge/tls/client.key", source=key, owner="nonroot"
284+
)
279285
)
280286
return container
281287

@@ -284,7 +290,7 @@ async def server(
284290
self,
285291
ca: Annotated[dagger.File | None, Doc("Certificate authority")] = None,
286292
cert: Annotated[dagger.File | None, Doc("Client certificate")] = None,
287-
key: Annotated[dagger.File | None, Doc("Client certificate key")] = None,
293+
key: Annotated[dagger.Secret | None, Doc("Client certificate key")] = None,
288294
port: Annotated[int, Doc("Server port")] = 9000,
289295
tunnel_health_port: Annotated[int, Doc("Health port")] = 9081,
290296
tunnel_socks_port: Annotated[int, Doc("Socks port")] = 9180,
@@ -318,9 +324,15 @@ async def server(
318324
)
319325
if tls_enabled:
320326
container = (
321-
container.with_mounted_file("/etc/ggbridge/tls/ca.crt", source=ca)
322-
.with_mounted_file("/etc/ggbridge/tls/server.crt", source=cert)
323-
.with_mounted_file("/etc/ggbridge/tls/server.key", source=key)
327+
container.with_mounted_file(
328+
"/etc/ggbridge/tls/ca.crt", source=ca, owner="nonroot"
329+
)
330+
.with_mounted_file(
331+
"/etc/ggbridge/tls/server.crt", source=cert, owner="nonroot"
332+
)
333+
.with_mounted_secret(
334+
"/etc/ggbridge/tls/server.key", source=key, owner="nonroot"
335+
)
324336
)
325337
return container
326338

@@ -360,7 +372,7 @@ async def scan(
360372
output_format: Annotated[str, Doc("Report output formatter")] = "table",
361373
) -> dagger.File:
362374
"""Scan the ggbridge image using grype"""
363-
return self.image().scan(
375+
return await self.image().scan(
364376
variant=variant, severity=severity, output_format=output_format
365377
)
366378

mise.toml

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
[tools]
2+
"aqua:dagger/dagger" = { version = "0.18.11" }
3+
"aqua:helm" = { version = "3.18.3"}
4+
"aqua:norwoodj/helm-docs" = { version = "1.14.2"}
5+
"pipx:ggshield" = { version = "1.41.0", uvx_args = "--python-preference=system" }
6+
"pipx:pre-commit" = { version = "4.2.0", uvx_args = "--python-preference=system" }
7+
8+
[tasks.build]
9+
description = "Build ggbridge (images + chart)"
10+
run = "dagger call build $@ export --path={{ config_root }}/build"
11+
12+
[tasks.scan]
13+
description = "Scan ggbridge Docker image"
14+
usage = '''
15+
flag "--variant <variant>" help="the variant to build" default="prod"
16+
'''
17+
run = 'dagger call scan --variant={{flag(name="variant")}} $@ contents'
18+
19+
[tasks.publish]
20+
description = "Publish ggbridge (images + chart) on ttl.sh"
21+
usage = '''
22+
flag "-v --version <version>" help="ggbridge version" default="0.1.0"
23+
'''
24+
run = 'dagger call publish --version={{flag(name="version")}} $@'
25+
26+
[tasks.build-chart]
27+
description = "Build ggbridge Helm chart"
28+
usage = '''
29+
flag "-v --version <version>" help="ggbridge version" default="0.1.0"
30+
'''
31+
run = 'dagger call chart build --version={{flag(name="version")}} $@ export --path={{ config_root }}/build/chart/ggbridge-{{arg(name="version")}}.tgz'
32+
33+
[tasks.build-image]
34+
description = "Build ggbridge Docker image"
35+
usage = '''
36+
flag "--variant <variant>" help="the variant to build" default="prod"
37+
'''
38+
run = 'dagger call image build --variant={{flag(name="variant")}} export --path={{ config_root }}/build/image/{{flag(name="variant")}}'
39+
40+
[tasks.terminal]
41+
description = "Build ggbridge shell variant Docker image and open a terminal"
42+
run = "dagger call container $@ terminal"
43+
44+
[tasks.client]
45+
description = "Run ggbridge client"
46+
usage = '''
47+
flag "--server <server>" help="the server address"
48+
flag "--ca <ca>" help="the CA cert"
49+
flag "--cert <cert>" help="the client cert"
50+
flag "--key <key>" help="the client private key"
51+
'''
52+
run = 'dagger call client --server={{flag(name="server")}} --ca={{flag(name="ca")}} --cert={{flag(name="cert")}} --key={{flag(name="key")}} up'
53+
54+
[tasks.lint]
55+
description = "Lint ggbridge Helm chart"
56+
run = "helm lint --strict helm/ggbridge"
57+
58+
[tasks.test]
59+
description = "Test ggbridge and print the report"
60+
run = "dagger call test $@ contents"
61+
62+
[tasks.cleanup]
63+
description = "Cleanup ggbridge"
64+
run = "rm -rf {{ config_root }}/build"
65+
66+
[tasks.prune]
67+
description = "Prune dagger engine cache"
68+
run = "dagger core engine local-cache prune"

0 commit comments

Comments
 (0)