Skip to content

[DX-4048] support dynamic host port mapping for ChIP Ingress and Router #2564

Merged
Tofel merged 2 commits intomainfrom
dx-4048-fix-cre-flakes-ci
May 6, 2026
Merged

[DX-4048] support dynamic host port mapping for ChIP Ingress and Router #2564
Tofel merged 2 commits intomainfrom
dx-4048-fix-cre-flakes-ci

Conversation

@Tofel
Copy link
Copy Markdown
Contributor

@Tofel Tofel commented May 6, 2026

why? to solve CI port collisions like:

Error: failed to start environment: failed to setup test environment: failed to start chip router: start container: container start: Error response from daemon: failed to set up container networking: driver failed programming external connectivity on endpoint chip-router-0f2f3 (f1100fb23598a5f9d398ba758663cc4f25d53872e3c7ce1552bca37eedd18e6a): failed to bind host port for 0.0.0.0:50050:172.18.0.2:50050/tcp: address already in use

@Tofel Tofel requested a review from a team as a code owner May 6, 2026 09:57
Copilot AI review requested due to automatic review settings May 6, 2026 09:57
@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 6, 2026

👋 Tofel, thanks for creating this pull request!

To help reviewers, please consider creating future PRs as drafts first. This allows you to self-review and make any final changes before notifying the team.

Once you're ready, you can mark it as "Ready for review" to request feedback. Thanks!

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR aims to eliminate CI port-collision failures by allowing Chip Ingress (docker-compose stack) and Chip Router (testcontainers container) to use dynamically allocated host ports, while also updating related examples and CI workflows.

Changes:

  • Add dynamic host-port allocation for Chip Ingress gRPC and Chip Router gRPC/admin endpoints.
  • Rename Chip Ingress image/port environment variables toward a CTF_ prefix and adjust wait/health behavior.
  • Add/adjust smoke examples and GitHub Actions workflows to exercise the updated components.

Reviewed changes

Copilot reviewed 14 out of 16 changed files in this pull request and generated 12 comments.

Show a summary per file
File Description
framework/observability/compose/docker-compose.yaml Updates cadvisor image/version and volume mount options in the observability compose stack.
framework/observability.go Skips copying local dashboards when the dashboards directory does not exist.
framework/examples/chip_rotuer/smoke_chip_router.toml Adds a minimal Chip Router example config.
framework/examples/chip_rotuer/smoke_chip_router_test.go Adds Chip Router smoke tests for dynamic and static port behavior.
framework/examples/chip_rotuer/go.mod Introduces a standalone example module for the Chip Router example.
framework/examples/chip_rotuer/go.sum Adds module sums for the Chip Router example module.
framework/examples/chip_rotuer/.tool-versions Pins the Go toolchain version for the Chip Router example module.
framework/examples/chip_ingress/smoke_chip_ingress.toml Adds a Chip Ingress example config pointing at the Chip Ingress compose file.
framework/examples/chip_ingress/smoke_chip_ingress_test.go Updates env-var checks to use exported constants for Chip Ingress images.
framework/components/dockercompose/chip_ingress_set/docker-compose.yml Switches image env vars to CTF_... and makes Chip Ingress gRPC host port default to 0 (dynamic).
framework/components/dockercompose/chip_ingress_set/chip_ingress.go Implements dynamic host-port resolution via mapped ports and updates compose wait conditions and env-var handling.
framework/components/dockercompose/.changeset/v0.1.22.md Adds a changeset describing the Chip Ingress dockercompose changes.
framework/components/chiprouter/chiprouter.go Implements dynamic host-port behavior when ports are set to 0, plus an env var image override.
framework/components/chiprouter/.changeset/v1.0.3.md Adds a changeset describing Chip Router dynamic port allocation support.
.github/workflows/framework-golden-tests-private.yml Updates Chainlink image to a public ECR image and adds a public ECR login step.
.github/workflows/framework-dockercompose-tests.yml Extends dockercompose CI to run per-example directories via matrix and adds a Chip Router matrix entry.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread framework/components/chiprouter/chiprouter.go
Comment thread framework/components/chiprouter/chiprouter.go Outdated
Comment thread framework/components/dockercompose/chip_ingress_set/chip_ingress.go
Comment thread framework/components/dockercompose/chip_ingress_set/chip_ingress.go
Comment thread framework/components/dockercompose/chip_ingress_set/chip_ingress.go
Comment thread framework/examples/chip_rotuer/smoke_chip_router_test.go Outdated
Comment thread framework/examples/chip_router/go.mod
Comment thread framework/components/dockercompose/.changeset/v0.1.22.md Outdated
Comment thread framework/observability/compose/docker-compose.yaml Outdated
Comment thread framework/examples/chip_rotuer/smoke_chip_router_test.go Outdated
@Tofel Tofel force-pushed the dx-4048-fix-cre-flakes-ci branch 3 times, most recently from 3eeb606 to b8d2af7 Compare May 6, 2026 11:29
@Tofel Tofel force-pushed the dx-4048-fix-cre-flakes-ci branch from b8d2af7 to 2c8b6d1 Compare May 6, 2026 11:30
@Tofel Tofel enabled auto-merge (squash) May 6, 2026 11:42
@Tofel Tofel merged commit f3b9568 into main May 6, 2026
77 checks passed
@Tofel Tofel deleted the dx-4048-fix-cre-flakes-ci branch May 6, 2026 12:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants