Add artifactapi_remote_vcs resource #35
@@ -0,0 +1,30 @@
|
||||
# `artifactapi_remote_vcs`
|
||||
|
||||
Caches GitHub (`base_url = "https://github.com"`) or Gitea source archives and release assets. Tag, commit and release-download paths are immutable; branch archives redirect to the archive of the branch's current commit, re-resolved after `mutable_ttl`. Paths: [vcs remote](https://git.unkin.net/unkin/artifactapi/src/branch/master/docs/vcs/remote.md).
|
||||
|
||||
## Common Attributes
|
||||
|
||||
| Attribute | Required | Default | Description |
|
||||
|----------------------|----------|---------|-------------------------------------------------------------------|
|
||||
| `name` | Yes | | Unique name (forces replacement on change) |
|
||||
| `base_url` | Yes | | Upstream repository URL |
|
||||
| `description` | No | `""` | Human-readable description |
|
||||
| `username` | No | `""` | Upstream auth username (sensitive) |
|
||||
| `password` | No | `""` | Upstream auth password (sensitive) |
|
||||
| `immutable_ttl` | No | `0` | TTL in seconds for immutable artifacts (0 = cache forever) |
|
||||
| `mutable_ttl` | No | `3600` | TTL in seconds for mutable artifacts |
|
||||
| `check_mutable` | No | `true` | Enable conditional revalidation for mutable artifacts |
|
||||
| `patterns` | No | | Allowlist of path patterns to proxy (empty = all) |
|
||||
| `blocklist` | No | | Paths to always deny (checked before patterns) |
|
||||
| `mutable_patterns` | No | | Override: treat matching paths as mutable |
|
||||
| `immutable_patterns` | No | | Override: treat matching paths as immutable |
|
||||
| `quarantine_enabled` | No | `false` | Enable quarantine for new artifacts |
|
||||
| `quarantine_days` | No | `3` | Days to quarantine new artifacts |
|
||||
| `stale_on_error` | No | `true` | Serve stale cache when upstream is unreachable |
|
||||
| `upstream_dial_timeout` | No | `0` | Upstream TCP connect timeout in seconds (0 = server default) |
|
||||
| `upstream_tls_timeout` | No | `0` | Upstream TLS handshake timeout in seconds (0 = server default) |
|
||||
| `upstream_response_header_timeout` | No | `0` | Upstream response-header timeout in seconds (0 = server default) |
|
||||
|
||||
## Example
|
||||
|
||||
See `examples/resources/artifactapi_remote_vcs/main.tf`.
|
||||
@@ -0,0 +1,26 @@
|
||||
terraform {
|
||||
required_providers {
|
||||
artifactapi = {
|
||||
source = "artifactapi.example.com/terraform-unkin/artifactapi"
|
||||
version = "0.0.1"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
provider "artifactapi" {
|
||||
endpoint = "https://artifactapi.example.com"
|
||||
}
|
||||
|
||||
# VCS remote caches GitHub/Gitea source archives and release assets.
|
||||
# Tag, commit and release paths are immutable; branch archives redirect to
|
||||
# the archive of the branch's current commit, re-resolved after mutable_ttl.
|
||||
resource "artifactapi_remote_vcs" "github" {
|
||||
name = "github-vcs"
|
||||
base_url = "https://github.com"
|
||||
description = "GitHub source archives and release assets"
|
||||
|
||||
immutable_ttl = 0
|
||||
mutable_ttl = 600
|
||||
|
||||
patterns = ["^cli/cli/", "^psf/requests/"]
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
package provider
|
||||
|
||||
func init() { registerResource(newRemoteResource("vcs")) }
|
||||
Reference in New Issue
Block a user