resource_remote: add mirror_strategy attribute
The provider exposed mirrorlist but not mirror_strategy, so the API's mirror load-balancing strategy (round_robin/least_conn) was unreachable via Terraform. Add mirror_strategy the same way mirrorlist was added, scoped to rpm/deb/alpine remotes. - schema: optional string mirror_strategy on the remote resource - ValidateConfig: reject on non-rpm/deb/alpine types and validate the round_robin/least_conn enum at plan time - wire model + modelToAPI/apiToModel (empty->null to avoid perpetual diff) - datasource (computed) + README + rpm example - unit tests: modelToAPI/apiToModel round-trip and ValidateConfig matrix
This commit is contained in:
@@ -92,12 +92,13 @@ Available resource types:
|
||||
|
||||
#### rpm / deb / alpine-specific Attributes
|
||||
|
||||
| Attribute | Default | Description |
|
||||
|--------------|---------|-------------------------------------------------------------------------------------------------|
|
||||
| `mirrorlist` | | Extra upstream mirror base URLs. Requests are load-balanced with failover across `base_url` + `mirrorlist`. |
|
||||
| Attribute | Default | Description |
|
||||
|-------------------|---------------|-------------------------------------------------------------------------------------------------|
|
||||
| `mirrorlist` | | Extra upstream mirror base URLs. Requests are load-balanced with failover across `base_url` + `mirrorlist`. |
|
||||
| `mirror_strategy` | `round_robin` | Mirror load-balancing strategy across `base_url` + `mirrorlist`. One of `round_robin` or `least_conn`. |
|
||||
|
||||
Only valid on the `artifactapi_remote_rpm`, `artifactapi_remote_deb`, and
|
||||
`artifactapi_remote_alpine` resources. Setting it on any other remote type is
|
||||
`artifactapi_remote_alpine` resources. Setting either on any other remote type is
|
||||
rejected at plan time.
|
||||
|
||||
```hcl
|
||||
@@ -108,6 +109,7 @@ resource "artifactapi_remote_rpm" "epel" {
|
||||
"https://mirror-a.example.net/epel/9/Everything/x86_64",
|
||||
"https://mirror-b.example.org/epel/9/Everything/x86_64",
|
||||
]
|
||||
mirror_strategy = "least_conn"
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
Reference in New Issue
Block a user