[layers v2] Handle adding AVM resources
- Dominant language
- Go
- Stars
- 569
- Forks
- 364
- Avg merge
- 2d 19h
- Merged PRs (30d)
- 136
Description
Part of #9765.
We can add a provisioning provider for AVMs, allowing you to use a new type of `infra` entry:
```yaml
# in either existing or layered mode
infra:
- name: avm-1
provider: avm
config:
path: br/public:avm/res/service-bus/namespace:0.17.0
```
> We should be able to do this without requiring all the other work to be done for `azd add`, as this is its own independent piece.
Similar to micro-templates, let's see if we can have two modes — one where we vendor the module (i.e., clone the entire AVM, added into the `infra/` folder) and one where we just reference the module and let the user pass us the equivalent of bicepparams, perhaps in config.
If you vendor it, it just flips to `provider: bicep` (or terraform). Otherwise, it uses our custom provider instead.
Contributor guide
Research direction
Read the parent issue #9765 and inspect the existing micro-template provisioning flow. Define how the `infra` entry selects vendored versus referenced AVM resources and how configuration is passed to the custom provider. Done means an AVM entry works independently of `azd add` in both existing and layered modes.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- azure, go, terraform
- Domain
- cloud, infrastructure
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100