kriti-sc opened a new pull request, #3658:
URL: https://github.com/apache/iggy/pull/3658

   Closes #3614 
   
   ## Rationale
   Dynamically inject plugins to the `apache/iggy-connect` image to reduce 
friction for testing out connectors.
   
   ## What changed?
   
   This change publishes the image in two flavors:
   
   Fat (edge, x.y.z, latest): the runtime plus every connector plugin baked 
into /usr/local/lib, which is already on the runtime's plugin search path. A 
config can load a bundled plugin by file name with no path. This is the new 
default.
   Slim (edge-slim, x.y.z-slim, latest-slim): the runtime binary only, i.e. 
today's image, for deployments that bring their own plugins.
   
   To this end:
   1. Single source of truth for the plugin set. 
scripts/ci/connector-plugins.sh derives the plugin list from cargo metadata 
(every cdylib under core/connectors/). The edge tarball build, the Docker fat 
stage, the license gate, and the release notes all consume it, so a newly added 
connector is picked up everywhere with no hand-edited list.
   2. Dockerfile. The planner derives the plugin set; cook and build compile 
the plugin cdylibs alongside the runtime; a new runtime-fat stage copies the 
.so files in. The slim runtime stage is unchanged.
   3. Publish pipeline. The docker-buildx action gained a target input, and 
components can declare flavors in publish.yml. Each flavor keeps its own 
per-arch digest artifacts so the manifest step never merges flavors into one 
image, and only the default flavor creates the git release tag.
   4. Licensing. The third-party license gate now validates the runtime plus 
every plugin dependency closure (derived list), so a new connector is 
license-validated on the PR that adds it. The fat image ships a 
LICENSE-binary-fat covering the plugins; slim keeps the runtime-only manifest.
   5. Edge gate. The connectors image now refreshes :edge on any change under 
core/connectors/.
   6. Docs. Connectors README documents the flavors and zero-config plugin 
loading with a docker run quickstart; edge release notes derive the plugin list.
   
   ## Local Execution
   
   - Built images locally. The fat image is 357 MB, and the build took 20 mins 
on a 4 CPU/12 GB Docker VM. Slim image is 163 MB. This validates that image 
will build comfortably on Github CI runners which are 4 CPU/16 GB.
   - Pre-commit hooks ran.
   
   
   ## AI Usage
   
   1. Which tools? (e.g., GitHub Copilot, Claude, ChatGPT) Claude
   2. Scope of usage? (e.g., autocomplete, generated functions, entire 
implementation) First developed the design and pass criteria. Then, generated 
functions and debugging with Claude.
   3. How did you verify the generated code works correctly? Built the image 
locally and checked if all plugins present in the image.
   4. Can you explain every line of the code if asked? Yes.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to