Skip to content

bug(render/v2.3.0): function docker network is overwritten and crossplane container always start in temporary network #75

Description

@nkzk

What happened?

Since v2.3.0, crossplane render uses crossplane's engine to render the compositions. By default this is done by starting up crossplane as its own container in a temporary network, and overwriting the docker-network annotation on all functions to join it.

This new default behavior has two problems we have encountered:

  1. This doesnt support starting/stopping functions yourself so that you can run multiple renders without starting/stopping the functions on each run.
    Since the temporary crossplane-render network and crossplane-container is created on each render-run you'd need to connect the containers to this new network, for every render.

  2. Running crossplane render in a devcontainer / docker-in-docker / podman-in-podman
    If you run crossplane-render inside a container, you need to ensure that containers started by crossplane-render run in the same network as the container you are in (or in a connected network).
    Previously you could control this with the docker-network annotation, either with -a or as annotation in the functions-file, but since the crossplane-container always starts up in a temporary network, there's no connectivity to the crossplane-container. If function-containers already run, i'm unsure if the annotation overwriting has any effect.
    Circumventing this would require a bit of hacking.

How can we reproduce it?

Run crossplane-render in ci (DinD) or devcontainer.

What environment did it happen in?

  • Crossplane CLI version: v2.3.1
  • Platform (e.g., linux/amd64): linux/amd64

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions