41 Commits

Author SHA1 Message Date
unkin-agent e4741dede2 Add autobackup-operator local docker registry
ci/woodpecker/pr/plan Pipeline was successful
ci/woodpecker/pr/pre-commit Pipeline was successful
The autobackup-operator project needs a place to push its container
image in the artifactapi local docker registry during CI releases.

Add config/local_docker/autobackup-operator.yaml declaring the local
docker repo (description only, matching sibling convention).
2026-08-13 23:31:47 +10:00
benvin 2c3f52181a Merge pull request 'artifactapi module: plumb mirror_strategy on rpm/apk remotes' (#26) from benvin/mirror-strategy-config into main
ci/woodpecker/push/apply Pipeline was successful
Reviewed-on: #26
2026-08-13 20:10:50 +10:00
unkin-agent b8ee0ed385 artifactapi module: plumb mirror_strategy on rpm/apk(alpine) remotes
ci/woodpecker/pr/pre-commit Pipeline was successful
ci/woodpecker/pr/plan Pipeline was successful
Expose the provider v0.5.1 mirror_strategy field through the config module
so rpm and alpine(apk) remotes can select how upstream mirrors are chosen
(round_robin | least_conn) across base_url + mirrorlist. Completes the
mirror IaC surface started in #24.

- remote_rpm / remote_alpine object vars gain mirror_strategy = optional(string, null)
- pass mirror_strategy through to the corresponding remote resources
- provider constraint stays ~> 0.5 (already resolves v0.5.1, which adds the attr)

Additive and optional; no real remote config changes.
2026-08-13 20:06:15 +10:00
benvin a335dc75f8 Merge pull request 'add ghcr.io container remote (for ghp image pull-through)' (#25) from benvin/ghcr-remote into main
ci/woodpecker/push/apply Pipeline was successful
Reviewed-on: #25
2026-08-13 20:02:33 +10:00
benvin 6c4b37ff17 Merge pull request 'artifactapi module: support mirrorlist on rpm/apk(alpine) remotes' (#24) from benvin/mirrorlist-config into main
ci/woodpecker/push/apply Pipeline was successful
Reviewed-on: #24
2026-08-13 19:54:02 +10:00
unkin-agent 62d5e2fb14 ghcr remote: allow goodtune/ghp for pull-through
ci/woodpecker/pr/plan Pipeline was successful
ci/woodpecker/pr/pre-commit Pipeline was successful
2026-08-13 19:31:01 +10:00
unkin-agent c21beda154 artifactapi module: support mirrorlist on rpm/apk(alpine) remotes
ci/woodpecker/pr/plan Pipeline was successful
ci/woodpecker/pr/pre-commit Pipeline was successful
Expose the provider v0.5.0 mirrorlist field through the config module so
rpm and alpine(apk) remotes can declare extra upstream mirror base URLs
(load-balanced with failover across base_url + mirrorlist).

- remote_rpm / remote_alpine object vars gain mirrorlist = optional(list(string), [])
- pass mirrorlist through to the corresponding remote resources
- bump artifactapi provider constraint to ~> 0.5

Additive and optional; no real remote config changes (deferred follow-up).
2026-08-13 17:39:25 +10:00
benvin 2ce7478b5e Merge pull request 'fedora remote: switch base_url to syd.mirror.rackspace.com (fast AU mirror w/ F44)' (#23) from benvin/fedora-mirror-unistuttgart into main
ci/woodpecker/push/apply Pipeline was successful
Reviewed-on: #23
2026-08-13 07:02:05 +10:00
unkin-agent 1f12b513ea fedora remote: switch base_url to syd.mirror.rackspace.com
ci/woodpecker/pr/plan Pipeline was successful
ci/woodpecker/pr/pre-commit Pipeline was successful
2026-08-13 06:42:27 +10:00
unkin-agent e0236b0584 fedora remote: switch base_url to ftp.uni-stuttgart.de
ci/woodpecker/pr/plan Pipeline was successful
ci/woodpecker/pr/pre-commit Pipeline was successful
dl.fedoraproject.org is the throttled master, causing F44 cold-fetch
timeouts. uni-stuttgart is a fast tier-1 mirror carrying the full
releases+updates tree.
2026-08-13 00:47:19 +10:00
benvin 950a228fdc Merge pull request 'fedora remote: point base_url at dl.fedoraproject.org' (#22) from benvin/fedora-mirror-dl into main
ci/woodpecker/push/apply Pipeline was successful
Reviewed-on: #22
2026-08-12 23:13:51 +10:00
unkin-agent 983cff4876 fedora remote: point base_url at dl.fedoraproject.org
ci/woodpecker/pr/plan Pipeline was successful
ci/woodpecker/pr/pre-commit Pipeline was successful
The fcix micromirror (gsl-syd.mm.fcix.net) does not carry F44, so dnf
gets HTTP 404 for releases/44/Everything/x86_64/os/repodata/repomd.xml.
dl.fedoraproject.org is the canonical always-current Fedora source.
2026-08-12 22:42:45 +10:00
benvin 734f1026e2 Merge pull request 'Bump artifactapi provider to v0.2.0' (#21) from benvin/provider-v0.2.0 into main
ci/woodpecker/push/apply Pipeline was successful
Reviewed-on: #21
2026-08-10 23:32:51 +10:00
benvin f1f6d699e5 Bump artifactapi provider to v0.2.0
ci/woodpecker/pr/plan Pipeline was successful
ci/woodpecker/pr/pre-commit Pipeline was successful
Pin the artifactapi Terraform provider to v0.2.0, which adds the artifactapi_remote_github_rpm resource (GitHub releases served as a yum repo). Verified v0.2.0 resolves and installs from the terraform-unkin registry.
2026-08-10 23:28:07 +10:00
benvin 0031eda691 Merge pull request 'Add kubernetes rpm remote (pkgs.k8s.io, any stable minor)' (#20) from benvin/kubernetes-rpm-remote into main
ci/woodpecker/push/apply Pipeline was successful
Reviewed-on: #20
2026-07-30 21:24:50 +10:00
unkinben 83e4dbd00d fix: quote base_url (trailing colon broke yaml parse)
ci/woodpecker/pr/plan Pipeline was successful
ci/woodpecker/pr/pre-commit Pipeline was successful
Claude-Session: https://claude.ai/code/session_015ur3i7D2azsMAWTSVABApv
2026-07-30 21:16:01 +10:00
unkinben df74a5d02a Add kubernetes rpm remote (pkgs.k8s.io, any stable minor)
ci/woodpecker/pr/plan Pipeline failed
ci/woodpecker/pr/pre-commit Pipeline failed
Claude-Session: https://claude.ai/code/session_015ur3i7D2azsMAWTSVABApv
2026-07-30 21:10:59 +10:00
benvin 1da1a1ae40 Merge pull request 'Add local_generic rootfs-images repo (bootapi images)' (#18) from benvin/local-generic-rootfs into main
ci/woodpecker/push/apply Pipeline was successful
Reviewed-on: #18
2026-07-30 00:14:06 +10:00
unkinben 8ecf5f11da ci: re-run plan with provider v0.1.4 released
ci/woodpecker/pr/plan Pipeline was successful
ci/woodpecker/pr/pre-commit Pipeline was successful
Claude-Session: https://claude.ai/code/session_015ur3i7D2azsMAWTSVABApv
2026-07-29 23:56:23 +10:00
benvin 4386c7ea16 Merge pull request 'Allow the Gitea image through the dockerhub remote' (#19) from benvin/gitea-images into main
ci/woodpecker/push/apply Pipeline was successful
Reviewed-on: #19
2026-07-29 23:56:06 +10:00
unkinben fd3bd37ba0 Allow the Gitea image through the dockerhub remote
ci/woodpecker/pr/plan Pipeline was successful
ci/woodpecker/pr/pre-commit Pipeline was successful
The k8s Gitea deployment pulls gitea/gitea (rootless) from Docker Hub via the
artifactapi mirror. Add it to the dockerhub allowlist.

- add "^gitea/gitea" to config/remote_docker/dockerhub.yaml patterns

Claude-Session: https://claude.ai/code/session_015ur3i7D2azsMAWTSVABApv
2026-07-29 22:02:09 +10:00
unkinben 36568ca53e Add local_generic rootfs-images repository
ci/woodpecker/pr/plan Pipeline failed
ci/woodpecker/pr/pre-commit Pipeline failed
Declares a local generic (raw-file) repo for bootapi's node rootfs tarballs and
wires the local_generic kind through the module. Depends on
terraform-provider-artifactapi #12 releasing v0.1.4 (adds artifactapi_local_generic);
the provider version pin is bumped to 0.1.4, so plan/validate stay red until that
release is available.

- config/local_generic/rootfs-images.yaml (new repo).
- local_generic wiring: config.hcl, module variables.tf + main.tf, env
  terragrunt.hcl inputs; provider pin 0.1.3 -> 0.1.4.

Claude-Session: https://claude.ai/code/session_015ur3i7D2azsMAWTSVABApv
2026-07-29 21:51:10 +10:00
benvin 3a0b328a6f Merge pull request 'Allow the NetBox image through the ghcr remote' (#17) from benvin/netbox-ghcr-allowlist into main
ci/woodpecker/push/apply Pipeline was successful
Reviewed-on: #17
2026-07-28 17:28:21 +10:00
unkinben 0d4fd7a3f5 Allow the NetBox image through the ghcr remote
ci/woodpecker/pr/plan Pipeline was successful
ci/woodpecker/pr/pre-commit Pipeline was successful
NetBox is being deployed to k8s (argocd-apps) as the source of truth for
host/interface/IPAM data. Its image is ghcr.io/netbox-community/netbox, pulled
through the artifactapi ghcr mirror, so add the ^netbox-community/ pattern to
the ghcr remote allowlist.

Claude-Session: https://claude.ai/code/session_015ur3i7D2azsMAWTSVABApv
2026-07-28 16:44:52 +10:00
benvin 69218547d9 Merge pull request 'Allow logging-stack images through the dockerhub remote' (#16) from benvin/logging-stack-docker-remotes into main
ci/woodpecker/push/apply Pipeline was successful
Reviewed-on: #16
2026-07-27 21:46:50 +10:00
unkinben fbc6f6129d Allow logging-stack images through the dockerhub remote
ci/woodpecker/pr/plan Pipeline was successful
ci/woodpecker/pr/pre-commit Pipeline was successful
The centralized logging stack (argocd-apps ClickHouse + Vector + NATS
JetStream) pulls all container images through artifactapi instead of directly
from upstream. Add the Docker Hub repositories it needs to the dockerhub remote
allowlist.

- add ^altinity/ (clickhouse-operator + metrics-exporter)
- add ^clickhouse/ (clickhouse-server)
- add ^library/nats (NATS server)
- add ^natsio/ (nats-box, nats-server-config-reloader)
- add ^timberio/vector (vector agent/aggregator/archiver/vm-ingest + CI)

Claude-Session: https://claude.ai/code/session_015ur3i7D2azsMAWTSVABApv
2026-07-27 21:15:47 +10:00
benvin 67d9296e09 Merge pull request 'Add distribution-agnostic rpm-vendor local repo' (#15) from benvin/rpm-vendor-general into main
ci/woodpecker/push/apply Pipeline was successful
Reviewed-on: #15
2026-07-26 23:14:15 +10:00
unkinben cf2b7ef19c Add distribution-agnostic rpm-vendor local repo
ci/woodpecker/pr/plan Pipeline was successful
ci/woodpecker/pr/pre-commit Pipeline was successful
The puppet AlmaLinux hosts now consume a general rpm-vendor repo (alongside
the per-distro rpm-vendor-elN repos), mirroring the rpm-internal split. Add
the backing local rpm repo so the baseurl resolves.

- add config/local_rpm/rpm-vendor.yaml

Claude-Session: https://claude.ai/code/session_015ur3i7D2azsMAWTSVABApv
2026-07-26 23:08:48 +10:00
benvin fd22d192f3 Merge pull request 'Allow VPA CRD manifest through the github remote' (#14) from benvin/vpa-crd-pattern into main
ci/woodpecker/push/apply Pipeline was successful
Reviewed-on: #14
2026-07-25 17:48:20 +10:00
unkinben e59e654fd2 Allow VPA CRD manifest through the github remote
ci/woodpecker/pr/plan Pipeline was successful
ci/woodpecker/pr/pre-commit Pipeline was successful
2026-07-25 17:32:57 +10:00
benvin a6819e2232 Merge pull request 'Add autoscaling/vpa-* pattern to k8s-registry docker remote' (#13) from benvin/vpa-remotes into main
ci/woodpecker/push/apply Pipeline was successful
Reviewed-on: #13
2026-07-25 17:21:31 +10:00
unkinben 55d4757553 Add autoscaling/vpa-* pattern to k8s-registry docker remote
ci/woodpecker/pr/plan Pipeline was successful
ci/woodpecker/pr/pre-commit Pipeline was successful
The VerticalPodAutoscaler rollout pulls registry.k8s.io/autoscaling/vpa-recommender.
Serve it through the existing k8s-registry pull-through cache, consistent with how
external-dns and sig-storage images from registry.k8s.io are already gated.
2026-07-25 17:04:45 +10:00
benvin bdbe26a6f3 Merge pull request 'Add fedora-archive remote for EOL releases (F42)' (#12) from benvin/fedora-archive into main
ci/woodpecker/push/apply Pipeline was successful
Reviewed-on: #12
2026-07-25 16:43:51 +10:00
unkinben 449fff0ab3 Add fedora-archive remote for EOL releases (F42)
ci/woodpecker/pr/pre-commit Pipeline was successful
ci/woodpecker/pr/plan Pipeline was successful
2026-07-25 16:20:56 +10:00
benvin 897d7b5c8f Merge pull request 'ci: fetch vault from artifactapi instead of dnf install' (#11) from benvin/ci-vault-install-speedup into main
ci/woodpecker/push/apply Pipeline was successful
Reviewed-on: #11
2026-07-25 09:46:47 +10:00
unkinben 71f431abfd Escape VAULT_VERSION for woodpecker YAML substitution ($$ -> shell)
ci/woodpecker/pr/plan Pipeline was successful
ci/woodpecker/pr/pre-commit Pipeline was successful
2026-07-25 00:32:21 +10:00
benvin 014a79ddee ci: fetch vault from artifactapi instead of dnf install
ci/woodpecker/pr/plan Pipeline failed
ci/woodpecker/pr/pre-commit Pipeline was successful
CI installed vault by shelling out to `dnf install vault -y`, which reads
metadata for every enabled repo (appstream/baseos/crb/epel/ha) and downloads
the 169MB vendored vault RPM from the unkin repo on every pipeline run
(~39s per plan/apply job).

- Replace the dnf install with a pinned curl of the upstream vault zip from
  the artifactapi hashicorp-releases remote proxy, extracted with python3 to
  /usr/local/bin/vault.
- Pin the version via a VAULT_VERSION env var (1.20.0).
2026-07-25 00:27:21 +10:00
benvin 70caa416d7 Merge pull request 'Allowlist the iplocate DB patterns' (#10) from benvin/iplocate-patterns-allowlist into main
ci/woodpecker/push/apply Pipeline was successful
Reviewed-on: #10
2026-07-24 00:15:35 +10:00
benvin dd48e7a8e0 Allowlist the iplocate DB patterns (add to patterns, not just mutable_patterns)
ci/woodpecker/pr/pre-commit Pipeline was successful
ci/woodpecker/pr/plan Pipeline was successful
The iplocate patterns were added to mutable_patterns only, which tags TTL but
does not allowlist — requests 403'd 'access denied'. Verified: existing
mutable_patterns-only paths (branch archives, webadmin) also 403, while patterns
entries (uv) return 200. Add the iplocate patterns to patterns (the allowlist),
keeping them in mutable_patterns so the daily-updated DB stays mutable.
2026-07-24 00:13:36 +10:00
benvin 71b0918b54 Merge pull request 'Proxy iplocate IP databases via the github remote' (#9) from benvin/add-iplocate-remote into main
ci/woodpecker/push/apply Pipeline was successful
Reviewed-on: #9
2026-07-22 00:52:20 +10:00
benvin 36e23e9a2b Proxy iplocate IP databases via the existing github remote
ci/woodpecker/pr/pre-commit Pipeline was successful
ci/woodpecker/pr/plan Pipeline was successful
Add patterns to the github.com generic remote for the iplocate ip-to-asn /
ip-to-country databases rather than standing up a new remote. The files are
Git-LFS, so the /raw/ path redirects to media.githubusercontent.com; the github
remote already follows github's cross-host redirects (as it does for release
assets), and the raw path returns the real bytes (verified: 12MB zip / 78MB mmdb).
Marked mutable (branch content).
2026-07-21 22:33:01 +10:00
17 changed files with 71 additions and 4 deletions
+2 -1
View File
@@ -7,8 +7,9 @@ steps:
image: git.unkin.net/unkin/almalinux9-opentofu:20260606
environment:
VAULT_AUTH_METHOD: kubernetes
VAULT_VERSION: "1.20.0"
commands:
- dnf install vault -y
- curl -fsSL -o /tmp/vault.zip "https://artifactapi.k8s.syd1.au.unkin.net/api/v1/remote/hashicorp-releases/vault/$${VAULT_VERSION}/vault_$${VAULT_VERSION}_linux_amd64.zip" && python3 -m zipfile -e /tmp/vault.zip /tmp/ && install -m0755 /tmp/vault /usr/local/bin/vault && rm -f /tmp/vault.zip /tmp/vault /tmp/LICENSE.txt
- make plan
- make apply
backend_options:
+2 -1
View File
@@ -6,8 +6,9 @@ steps:
image: git.unkin.net/unkin/almalinux9-opentofu:20260606
environment:
VAULT_AUTH_METHOD: kubernetes
VAULT_VERSION: "1.20.0"
commands:
- dnf install vault -y
- curl -fsSL -o /tmp/vault.zip "https://artifactapi.k8s.syd1.au.unkin.net/api/v1/remote/hashicorp-releases/vault/$${VAULT_VERSION}/vault_$${VAULT_VERSION}_linux_amd64.zip" && python3 -m zipfile -e /tmp/vault.zip /tmp/ && install -m0755 /tmp/vault /usr/local/bin/vault && rm -f /tmp/vault.zip /tmp/vault /tmp/LICENSE.txt
- make plan
backend_options:
kubernetes:
+5
View File
@@ -62,6 +62,11 @@ locals {
trimsuffix(basename(file_path), ".yaml") => content
if startswith(file_path, "local_docker/")
}
local_generic = {
for file_path, content in local.all_configs :
trimsuffix(basename(file_path), ".yaml") => content
if startswith(file_path, "local_generic/")
}
virtual = {
for file_path, content in local.all_configs :
trimsuffix(basename(file_path), ".yaml") => content
@@ -0,0 +1 @@
description: "Local container image registry for the autobackup-operator image"
+2
View File
@@ -0,0 +1,2 @@
---
description: "Prebuilt node rootfs tarballs for bootapi image-based provisioning (almalinux9-node-*.tar.zst)"
+1
View File
@@ -0,0 +1 @@
description: "Vendored third-party RPM packages (distribution-agnostic)"
+6
View File
@@ -4,18 +4,22 @@ immutable_ttl: 0
mutable_ttl: 300
patterns:
- "^alpine/"
- "^altinity/"
- "^library/almalinux"
- "^library/alpine"
- "^library/busybox"
- "^library/debian"
- "^library/fedora"
- "^library/nats"
- "^library/nginx"
- "^library/postgres"
- "^library/redis"
- "^beats/filebeat"
- "^bitnami/"
- "^clickhouse/"
- "^curlimages/curl"
- "^emberstack/kubernetes-reflector"
- "^gitea/gitea"
- "^grafana/"
- "^hashicorp/consul"
- "^hashicorp/vault"
@@ -24,10 +28,12 @@ patterns:
- "^jfrog/"
- "^jpgouin/"
- "^kanidm/"
- "^natsio/"
- "^osixia/"
- "^rancher/"
- "^rspamd/rspamd"
- "^tiredofit/"
- "^timberio/vector"
- "^tozd/postfix"
- "^traefik/"
- "^valkey/valkey"
+2
View File
@@ -8,8 +8,10 @@ patterns:
- "^emberstack/helm-charts"
- "^fallenbagel/"
- "^goauthentik/"
- "^goodtune/ghp"
- "^home-operations/"
- "^jellyfin/"
- "^netbox-community/"
- "^onedr0p/"
- "^open-webui/open-webui"
- "^openvoxproject/"
+1
View File
@@ -3,5 +3,6 @@ description: Kubernetes container registry
immutable_ttl: 0
mutable_ttl: 300
patterns:
- "^autoscaling/vpa-"
- "^external-dns/external-dns"
- "^sig-storage/"
+8
View File
@@ -5,6 +5,9 @@ mutable_ttl: 7200
mutable_patterns:
- ".*/archive/refs/heads/.*.tar.gz$"
- "stalwartlabs/webadmin/releases/latest/download/webadmin.zip$"
# iplocate IP databases (Git-LFS; the /raw/ path redirects to the LFS media host).
- "iplocate/ip-address-databases/raw/.*/ip-to-asn/.*"
- "iplocate/ip-address-databases/raw/.*/ip-to-country/.*"
patterns:
- ".*/archive/refs/tags/.*.tar.gz$"
- "ahmetb/kubectx/.*/kubectx_.*_linux_x86_64.tar.gz$"
@@ -25,10 +28,15 @@ patterns:
- "hadolint/hadolint/.*/hadolint-linux-x86_64$"
- "helmfile/helmfile/.*/helmfile_.*_linux_amd64.tar.gz$"
- "helmfile/vals/.*/vals_.*_linux_amd64.tar.gz$"
# iplocate IP databases (also in mutable_patterns so the daily-updated branch
# content is re-checked rather than cached immutably).
- "iplocate/ip-address-databases/raw/.*/ip-to-asn/.*"
- "iplocate/ip-address-databases/raw/.*/ip-to-country/.*"
- "jesseduffield/lazydocker/.*/lazydocker_.*_Linux_x86_64.tar.gz$"
- "kubecolor/kubecolor/.*/kubecolor_.*_linux_amd64.tar.gz$"
- "kubernetes-sigs/gateway-api/.*/standard-install.yaml$"
- "kubernetes-sigs/kustomize/.*/kustomize_.*_linux_amd64.tar.gz$"
- "kubernetes/autoscaler/raw/.*/vertical-pod-autoscaler/deploy/vpa-v1-crd-gen.yaml$"
- "lxc/incus/.*.tar.gz$"
- "mikefarah/yq/.*/yq_linux_amd64$"
- "neovim/neovim-releases/.*/nvim-linux-x86_64.tar.gz$"
+8
View File
@@ -0,0 +1,8 @@
base_url: https://archive.fedoraproject.org/pub/archive/fedora/linux
description: Fedora Linux archive mirror for EOL releases (e.g. F42); content is frozen upstream
immutable_ttl: 0
mutable_ttl: 86400
immutable_patterns:
- "releases/.*/Everything/x86_64/.*\\.rpm$"
- "updates/.*/Everything/x86_64/.*\\.rpm$"
- ".*/noarch/.*\\.rpm$"
+1 -1
View File
@@ -1,4 +1,4 @@
base_url: https://gsl-syd.mm.fcix.net/fedora/linux
base_url: https://syd.mirror.rackspace.com/fedora
description: Fedora Linux RPM package repository
immutable_ttl: 0
mutable_ttl: 7200
+7
View File
@@ -0,0 +1,7 @@
base_url: "https://pkgs.k8s.io/core:/stable:"
description: Kubernetes upstream RPMs (kubectl/kubeadm/kubelet); version-agnostic, consumers pick the minor via path (e.g. v1.33/rpm)
immutable_ttl: 0
mutable_ttl: 7200
immutable_patterns:
- ".*\\.rpm$"
- "repodata/[a-f0-9]{16,}-.*$"
@@ -28,5 +28,6 @@ inputs = {
local_pypi = local.config.local_pypi
local_rpm = local.config.local_rpm
local_docker = local.config.local_docker
local_generic = local.config.local_generic
virtual = local.config.virtual
}
+11
View File
@@ -9,6 +9,8 @@ resource "artifactapi_remote_alpine" "this" {
immutable_patterns = each.value.immutable_patterns
mutable_patterns = each.value.mutable_patterns
stale_on_error = each.value.stale_on_error
mirrorlist = each.value.mirrorlist
mirror_strategy = each.value.mirror_strategy
}
resource "artifactapi_remote_docker" "this" {
@@ -74,6 +76,8 @@ resource "artifactapi_remote_rpm" "this" {
immutable_patterns = each.value.immutable_patterns
mutable_patterns = each.value.mutable_patterns
stale_on_error = each.value.stale_on_error
mirrorlist = each.value.mirrorlist
mirror_strategy = each.value.mirror_strategy
}
resource "artifactapi_remote_pypi" "this" {
@@ -117,6 +121,13 @@ resource "artifactapi_local_docker" "this" {
description = each.value.description
}
resource "artifactapi_local_generic" "this" {
for_each = var.local_generic
name = each.key
description = each.value.description
}
resource "artifactapi_virtual" "this" {
for_each = var.virtual
+12
View File
@@ -8,6 +8,8 @@ variable "remote_alpine" {
immutable_patterns = optional(list(string), [])
mutable_patterns = optional(list(string), [])
stale_on_error = optional(bool, true)
mirrorlist = optional(list(string), [])
mirror_strategy = optional(string, null)
}))
default = {}
}
@@ -78,6 +80,8 @@ variable "remote_rpm" {
immutable_patterns = optional(list(string), [])
mutable_patterns = optional(list(string), [])
stale_on_error = optional(bool, true)
mirrorlist = optional(list(string), [])
mirror_strategy = optional(string, null)
}))
default = {}
}
@@ -112,6 +116,14 @@ variable "local_rpm" {
default = {}
}
variable "local_generic" {
description = "Map of local generic (raw-file) repositories"
type = map(object({
description = optional(string, "")
}))
default = {}
}
variable "local_terraform" {
description = "Map of local Terraform repositories"
type = map(object({
+1 -1
View File
@@ -3,7 +3,7 @@ terraform {
required_providers {
artifactapi = {
source = "artifactapi.k8s.syd1.au.unkin.net/terraform-unkin/artifactapi"
version = "0.1.3"
version = "~> 0.5"
}
}
}