Conflict when adding `coder_metadata` with duplicate `resource_id`s
Problem Description
-
While adding
coder_metadatablocks inside a module we need to pass the resource_id to link the metadata to. The issue arises when theresource_idof the instance is linked to an existingcoder_metadatablock in the main template, which causes a conflict and the template fails to build. -
Attempting to use an alternative identifier, such as
agent_id, doesn't show metadata on the workspace page.
Steps to Reproduce
- Add a
coder_metadatablock to a module and link it to theresource_idof an instance. - Add another
coder_metadatablock in the main template referencing the sameresource_id. - Observe the conflict in the failed build.
- Attempt to use
agent_idinstead in the module and note the absence of display metadata.
Impact
- Limits the flexibility of the coder modules because of possible conflicts.
Next Steps
- Update the handling of
coder_metadatato avoid conflicts between module-level and main template declarations when sharing the sameresource_id. One possible solution is to merge and append the newitementries when we detect a conflict inresource_id. - Investigate why the
agent_iddoes not work withcoder_metadata.
[!Note] We did allow adding multiple
coder_metadatawith the sameresource_id. See coder/coder#6517.
I was able to use your build with success. It was with the Kubernetes (Devcontainer) template (fixing the module code-server of course) and switching the locals to use the image:
locals {
#devcontainer_builder_image = data.coder_parameter.devcontainer_builder.value
devcontainer_builder_image = "ghcr.io/derektamsen/envbuilder-preview:latest"
}
Not sure why this hasn't been reviewed and merge. Includes tests and valid code. Nice work!