Skip to content

Commit 675b5e1

Browse files
committed
feat: Updating so bridge image is deployed rather than administrator image.
1 parent 8a308ff commit 675b5e1

11 files changed

Lines changed: 41 additions & 44 deletions

File tree

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
name: Administrator Docker Image
1+
name: Bridge Docker Image
22

33
on:
44
push:
@@ -8,7 +8,7 @@ on:
88
- 'pkg/**'
99
- 'cmd/**'
1010
- 'api/**'
11-
- 'services/administrator/Dockerfile'
11+
- 'Dockerfile'
1212
- 'go.mod'
1313
- 'go.sum'
1414
tags:
@@ -20,7 +20,7 @@ permissions:
2020

2121
env:
2222
REGISTRY: ghcr.io
23-
IMAGE_NAME: ${{ github.repository_owner }}/administrator
23+
IMAGE_NAME: ${{ github.repository_owner }}/bridge
2424

2525
jobs:
2626
build-and-push:
@@ -53,7 +53,7 @@ jobs:
5353
uses: docker/build-push-action@v6
5454
with:
5555
context: .
56-
file: services/administrator/Dockerfile
56+
file: Dockerfile
5757
push: true
5858
platforms: linux/amd64,linux/arm64
5959
tags: ${{ steps.version.outputs.tags }}
Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,4 +24,3 @@ RUN apk add --no-cache ca-certificates
2424
COPY --from=builder /bridge /usr/local/bin/bridge
2525

2626
ENTRYPOINT ["bridge"]
27-
CMD ["administrator"]

deploy/k8s/administrator.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ spec:
6161
serviceAccountName: administrator
6262
containers:
6363
- name: administrator
64-
image: "{{ADMINISTRATOR_IMAGE}}"
64+
image: "{{BRIDGE_IMAGE}}"
6565
imagePullPolicy: Always
6666
command: ["bridge", "administrator"]
6767
env:
@@ -70,7 +70,7 @@ spec:
7070
- name: SERVICE_ACCOUNT_NAME
7171
value: administrator
7272
- name: BRIDGE_PROXY_IMAGE
73-
value: "{{PROXY_IMAGE}}"
73+
value: "{{BRIDGE_IMAGE}}"
7474
ports:
7575
- name: grpc
7676
containerPort: 9090

deploy/main.go

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -43,20 +43,20 @@ func main() {
4343
}
4444

4545
// Push images use the host-accessible registry; pull images use the in-cluster name.
46-
adminPushImage := pushRegistry + "/administrator:latest"
47-
adminPullImage := pullRegistry + "/administrator:latest"
46+
bridgePushImage := pushRegistry + "/bridge:latest"
47+
bridgePullImage := pullRegistry + "/bridge:latest"
4848
userservicePushImage := pushRegistry + "/userservice:latest"
4949
userservicePullImage := pullRegistry + "/userservice:latest"
5050

5151
// 1. Build and push images.
52-
log.Println("Building administrator image...")
53-
dockerBuild(root, filepath.Join("services", "administrator", "Dockerfile"), adminPushImage)
52+
log.Println("Building bridge image...")
53+
dockerBuild(root, "Dockerfile", bridgePushImage)
5454

5555
log.Println("Building userservice image...")
5656
dockerBuild(filepath.Join(root, "e2e", "testserver"), "Dockerfile", userservicePushImage)
5757

5858
log.Println("Pushing images to registry...")
59-
run("docker", "push", adminPushImage)
59+
run("docker", "push", bridgePushImage)
6060
run("docker", "push", userservicePushImage)
6161

6262
// 2. Connect to the cluster and apply manifests.
@@ -67,8 +67,7 @@ func main() {
6767

6868
log.Println("Applying administrator manifests...")
6969
if err := manifests.Apply(ctx, restCfg, filepath.Join(root, "deploy", "k8s", "administrator.yaml"), map[string]string{
70-
"{{ADMINISTRATOR_IMAGE}}": adminPullImage,
71-
"{{PROXY_IMAGE}}": adminPullImage,
70+
"{{BRIDGE_IMAGE}}": bridgePullImage,
7271
}); err != nil {
7372
log.Fatalf("Failed to apply administrator manifests: %v", err)
7473
}

e2e/build.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -65,17 +65,17 @@ func CleanupBuild() {
6565
}
6666
}
6767

68-
// BuildAdministratorImage builds the administrator Docker image from the
69-
// project's services/administrator/Dockerfile. The build context is the
70-
// project root so that go.mod, cmd/, pkg/, etc. are all available.
71-
func BuildAdministratorImage(ctx context.Context, tag string) error {
68+
// BuildBridgeImage builds the bridge Docker image from the project's root
69+
// Dockerfile. The build context is the project root so that go.mod, cmd/,
70+
// pkg/, etc. are all available.
71+
func BuildBridgeImage(ctx context.Context, tag string) error {
7272
projectRoot, err := findProjectRoot()
7373
if err != nil {
7474
return fmt.Errorf("find project root: %w", err)
7575
}
7676

77-
dockerfile := filepath.Join("services", "administrator", "Dockerfile")
78-
slog.Info("Building administrator image", "tag", tag, "dockerfile", dockerfile)
77+
dockerfile := "Dockerfile"
78+
slog.Info("Building bridge image", "tag", tag, "dockerfile", dockerfile)
7979

8080
cmd := exec.CommandContext(ctx, "docker", "build",
8181
"-t", tag,

e2e/create_test.go

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -99,12 +99,12 @@ func (s *CreateSuite) SetupSuite() {
9999
require.NoError(s.T(), err, "failed to setup cluster")
100100

101101
// 2. Build and push images.
102-
adminTag := "administrator:test"
103-
err = testutil.BuildAdministratorImage(s.ctx, adminTag)
104-
require.NoError(s.T(), err, "failed to build administrator image")
102+
bridgeTag := "bridge:test"
103+
err = testutil.BuildBridgeImage(s.ctx, bridgeTag)
104+
require.NoError(s.T(), err, "failed to build bridge image")
105105

106-
s.administratorRef, err = s.cluster.PushImage(s.ctx, adminTag, adminTag)
107-
require.NoError(s.T(), err, "failed to push administrator image")
106+
s.administratorRef, err = s.cluster.PushImage(s.ctx, bridgeTag, bridgeTag)
107+
require.NoError(s.T(), err, "failed to push bridge image")
108108

109109
userserviceTag := "userservice:test"
110110
err = testutil.BuildUserserviceImage(s.ctx, userserviceTag)
@@ -113,8 +113,8 @@ func (s *CreateSuite) SetupSuite() {
113113
s.userserviceRef, err = s.cluster.PushImage(s.ctx, userserviceTag, userserviceTag)
114114
require.NoError(s.T(), err, "failed to push test server image")
115115

116-
// 3. Deploy administrator (same image for admin and proxy — same binary).
117-
adminPod, err := testutil.DeployAdministrator(s.ctx, s.cluster.RestConfig, s.cluster.Clientset, s.administratorRef, s.administratorRef)
116+
// 3. Deploy administrator.
117+
adminPod, err := testutil.DeployAdministrator(s.ctx, s.cluster.RestConfig, s.cluster.Clientset, s.administratorRef)
118118
require.NoError(s.T(), err, "failed to deploy administrator")
119119
s.adminPod = *adminPod
120120
slog.Info("Administrator pod", "name", s.adminPod.Name)

e2e/intercept_test.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -187,7 +187,7 @@ func (s *InterceptSuite) TestIntercept() {
187187
t.Log("testserver started")
188188

189189
// 2. Start proxy container on BOTH networks.
190-
_, proxyIP := s.startProxy(t, []string{"bridge", "server", "--addr", ":9090"})
190+
_, proxyIP := s.startProxy(t, []string{"bridge", "--log-path", "stderr", "server", "--addr", ":9090"})
191191
t.Log("proxy container started")
192192

193193
// 3. Start intercept container on the bridge network only (privileged for iptables).
@@ -198,7 +198,7 @@ func (s *InterceptSuite) TestIntercept() {
198198
serverAddr := proxyIP + ":9090"
199199
exitCode, reader, err := interceptC.Exec(s.ctx, []string{
200200
"sh", "-c",
201-
fmt.Sprintf(`bridge intercept --server-addr %s --forward-domains "*" > /tmp/bridge.log 2>&1 &`, serverAddr),
201+
fmt.Sprintf(`bridge --log-path stderr intercept --server-addr %s --forward-domains "*" > /tmp/bridge.log 2>&1 &`, serverAddr),
202202
})
203203
require.NoError(t, err, "failed to exec bridge intercept")
204204
io.Copy(io.Discard, reader)
@@ -247,7 +247,7 @@ func (s *InterceptSuite) TestIngress() {
247247
t := s.T()
248248

249249
// 1. Start proxy with --listen-ports 8080/tcp on BOTH networks.
250-
proxyC, proxyIP := s.startProxy(t, []string{"bridge", "server", "--addr", ":9090", "-l", "8080/tcp"})
250+
proxyC, proxyIP := s.startProxy(t, []string{"bridge", "--log-path", "stderr", "server", "--addr", ":9090", "-l", "8080/tcp"})
251251
t.Log("proxy container started with ingress listener on :8080")
252252

253253
// 2. Start intercept container on the bridge network only.
@@ -270,7 +270,7 @@ func (s *InterceptSuite) TestIngress() {
270270
serverAddr := proxyIP + ":9090"
271271
exitCode, reader, err = interceptC.Exec(s.ctx, []string{
272272
"sh", "-c",
273-
fmt.Sprintf(`bridge intercept --server-addr %s --app-port 8080 > /tmp/bridge.log 2>&1 &`, serverAddr),
273+
fmt.Sprintf(`bridge --log-path stderr intercept --server-addr %s --app-port 8080 > /tmp/bridge.log 2>&1 &`, serverAddr),
274274
})
275275
require.NoError(t, err, "failed to exec bridge intercept")
276276
io.Copy(io.Discard, reader)

e2e/testutil/build.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -76,17 +76,17 @@ func CleanupBuild() {
7676
}
7777
}
7878

79-
// BuildAdministratorImage builds the administrator Docker image from the
80-
// project's services/administrator/Dockerfile. The build context is the
81-
// project root so that go.mod, cmd/, pkg/, etc. are all available.
82-
func BuildAdministratorImage(ctx context.Context, tag string) error {
79+
// BuildBridgeImage builds the bridge Docker image from the project's root
80+
// Dockerfile. The build context is the project root so that go.mod, cmd/,
81+
// pkg/, etc. are all available.
82+
func BuildBridgeImage(ctx context.Context, tag string) error {
8383
projectRoot, err := FindProjectRoot()
8484
if err != nil {
8585
return fmt.Errorf("find project root: %w", err)
8686
}
8787

88-
dockerfile := filepath.Join("services", "administrator", "Dockerfile")
89-
slog.Info("Building administrator image", "tag", tag, "dockerfile", dockerfile)
88+
dockerfile := "Dockerfile"
89+
slog.Info("Building bridge image", "tag", tag, "dockerfile", dockerfile)
9090

9191
cmd := exec.CommandContext(ctx, "docker", "build",
9292
"-t", tag,

e2e/testutil/cluster.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -228,9 +228,9 @@ func (c *Cluster) TearDown(ctx context.Context) {
228228
}
229229

230230
// PushImage tags a local image for the test registry and pushes it.
231-
// localRef should be a locally available image (e.g. "administrator:test").
232-
// remoteName is the name:tag used in the registry (e.g. "administrator:test").
233-
// Returns the full cluster-internal reference (e.g. "registry.test:5000/administrator:test").
231+
// localRef should be a locally available image (e.g. "bridge:test").
232+
// remoteName is the name:tag used in the registry (e.g. "bridge:test").
233+
// Returns the full cluster-internal reference (e.g. "registry.test:5000/bridge:test").
234234
func (c *Cluster) PushImage(ctx context.Context, localRef, remoteName string) (string, error) {
235235
clusterRef := fmt.Sprintf("%s/%s", c.RegistryClusterAddress, remoteName)
236236
hostRef := fmt.Sprintf("%s/%s", c.RegistryAddress, remoteName)

e2e/testutil/deploy.go

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,16 +35,15 @@ const (
3535

3636
// DeployAdministrator applies the administrator manifests and waits for the
3737
// pod to be ready. The image must already be pushed to the test registry.
38-
func DeployAdministrator(ctx context.Context, cfg *rest.Config, clientset kubernetes.Interface, imageRef, proxyImageRef string) (*corev1.Pod, error) {
38+
func DeployAdministrator(ctx context.Context, cfg *rest.Config, clientset kubernetes.Interface, imageRef string) (*corev1.Pod, error) {
3939
projectRoot, err := FindProjectRoot()
4040
if err != nil {
4141
return nil, err
4242
}
4343

4444
manifestPath := filepath.Join(projectRoot, "deploy", "k8s", "administrator.yaml")
4545
if err := manifests.Apply(ctx, cfg, manifestPath, map[string]string{
46-
"{{ADMINISTRATOR_IMAGE}}": imageRef,
47-
"{{PROXY_IMAGE}}": proxyImageRef,
46+
"{{BRIDGE_IMAGE}}": imageRef,
4847
}); err != nil {
4948
return nil, fmt.Errorf("apply administrator manifests: %w", err)
5049
}

0 commit comments

Comments
 (0)