coder / coder/terraform-provider-coder

Conflict when adding `coder_metadata` with duplicate `resource_id`s

Open
#305 7 comments 0 reactions 0 assignees View on GitHub
Dominant language
Go
Stars
60
Forks
27
Avg merge
1d 21h
Merged PRs (30d)
2

Description

**Problem Description**

1. While adding `coder_metadata` blocks inside a module we need to pass the resource_id to link the metadata to. The issue arises when the `resource_id` of the instance is linked to an existing `coder_metadata` block in the main template, which causes a conflict and the template fails to build.

2. Attempting to use an alternative identifier, such as `agent_id`, doesn't show metadata on the workspace page.

**Steps to Reproduce**
1. Add a `coder_metadata` block to a module and link it to the `resource_id` of an instance.
2. Add another `coder_metadata` block in the main template referencing the same `resource_id`.
3. Observe the conflict in the failed build.
4. Attempt to use `agent_id` instead 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_metadata` to avoid conflicts between module-level and main template declarations when sharing the same `resource_id`. One possible solution is to merge and append the new [`item`](https://registry.terraform.io/providers/coder/coder/latest/docs/resources/metadata#nestedblock--item) entries when we detect a conflict in `resource_id`.
- Investigate why the `agent_id` does not work with `coder_metadata`.

> [!Note]
> We did allow adding multiple `coder_metadata` with the same `resource_id`. See coder/coder#6517.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.