The artifactapi server gains a github_rpm remote type that exposes a GitHub
repo's releases as a metadata-only yum repository (synthesized repodata, no
precache, downloads redirected to a backend remote). Surface it through the
provider so these remotes are declarable as code alongside the other types.
- Register the github_rpm remote resource (artifactapi_remote_github_rpm),
reusing the shared remoteResource plumbing; add the NewRemoteGitHubRPM
constructor to match its siblings.
- Generalize the releases_remote attribute description: it now names the
backend remote that serves download bytes for both the terraform remote
(URL rewriting) and the github_rpm remote (302 redirect of .rpm downloads).
- Document the type and add an example wiring a github_rpm remote to a generic
github.com releases_remote.
Tests cover the resource metadata type name, the constructor, and mapping of
package_type/base_url/releases_remote/patterns through the API model; the
resource-count and expected-types assertions are updated.
Depends on the github_rpm API surface in artifactapi (separate PR). Cut a
minor release (make minor) once merged.
Adds a local generic (raw-file) repository resource so arbitrary binaries -- the
bootapi node rootfs tarballs -- can be hosted on artifactapi and managed in
Terraform. The backend already serves generic locals; only the provider surface
was missing.
- resource_local_generic.go: local repo with package_type=generic (mirrors
local_rpm), registered in the provider.
- Tests + example.
Claude-Session: https://claude.ai/code/session_015ur3i7D2azsMAWTSVABApv
The artifactapi server now serves local docker repos as real container
registries, but the provider had no resource to declare one — only remote
docker proxies and local terraform/pypi/rpm repos.
- Add the artifactapi_local_docker resource (package_type=docker,
repo_type=local), mirroring the other local resources: name + description,
managed via /api/v2/remotes.
- Register it in the provider and update the resource-count/type tests.
- Add unit tests, an example, and a Local Resources section to the README.
Give the build/lint/test CI steps the same serviceAccount + resource
requests/limits as the pre-commit and release steps, so every step on the k8s
woodpecker backend is scheduled with bounded resources.
Match terraform-provider-litellmvaultsecret's release flow so both providers
publish the same way.
- Point the upload at the reachable artifactapi host
(artifactapi.k8s.syd1.au.unkin.net) instead of the unresolvable artifactapi3
- Add kubernetes backend options (serviceAccount + resource requests/limits) to
the package and upload steps
- Make the upload step explicitly depend_on the package step
Add upstream_dial_timeout, upstream_tls_timeout and
upstream_response_header_timeout (seconds; 0 = server default) to the
remote resource and data source, matching the artifactapi server. Wire
them through the API model, schema, create/read/update mapping, docs and
unit tests.
Woodpecker interpolates ${VERSION} as a CI variable (empty) before the
shell sees it. Use $$ escaping so the shell assignment and references
survive YAML interpolation.
New resource for creating local terraform registries in ArtifactAPI
(repo_type=local, package_type=terraform). These repos host providers
directly rather than proxying an upstream registry.
Schema is minimal: just name and description — no upstream-specific
fields like base_url, caching TTLs, or auth.
The API returns null for empty arrays, but OpenTofu requires that the
state match the plan exactly — an empty list [] in the plan must remain
[] in the state, not become null. This caused "inconsistent result after
apply" errors on every resource with empty optional list fields like
mutable_patterns and ban_tags.
- Add README.md with provider docs, resource/data-source reference, and
development instructions
- Reorganize examples into per-resource-type subdirectories following
Terraform provider conventions, add missing pypi/npm/puppet examples
- Add unit tests for helpers, HTTP client, model conversions, and
provider registration
- Add Woodpecker CI pipelines for lint, test, and build
- Add pre-commit config with standard and Go-specific hooks