Files
terraform-artifactapi/modules/artifactapi/main.tf
T
unkinben 502053abef
ci/woodpecker/pr/pre-commit Pipeline failed
ci/woodpecker/pr/plan Pipeline failed
feat: manage local docker registries
ArtifactAPI now serves local docker repos as real container registries and the
provider exposes an artifactapi_local_docker resource, but this config had no
way to declare one.

- Add a local_docker variable, module resource, config loader wiring, and
  terragrunt input, mirroring the other local_* kinds.
- Declare a docker-internal registry.
- Expand the README to cover the local_* and virtual kinds.

Depends on a terraform-provider-artifactapi release exposing
artifactapi_local_docker (and a matching .terraform.lock.hcl bump) before apply.
2026-07-04 22:41:12 +10:00

128 lines
3.7 KiB
Terraform

resource "artifactapi_remote_alpine" "this" {
for_each = var.remote_alpine
name = each.key
base_url = each.value.base_url
description = each.value.description
immutable_ttl = each.value.immutable_ttl
mutable_ttl = each.value.mutable_ttl
immutable_patterns = each.value.immutable_patterns
mutable_patterns = each.value.mutable_patterns
stale_on_error = each.value.stale_on_error
}
resource "artifactapi_remote_docker" "this" {
for_each = var.remote_docker
name = each.key
base_url = each.value.base_url
description = each.value.description
immutable_ttl = each.value.immutable_ttl
mutable_ttl = each.value.mutable_ttl
patterns = each.value.patterns
mutable_patterns = each.value.mutable_patterns
stale_on_error = each.value.stale_on_error
ban_tags_enabled = each.value.ban_tags_enabled
ban_tags = each.value.ban_tags
}
resource "artifactapi_remote_generic" "this" {
for_each = var.remote_generic
name = each.key
base_url = each.value.base_url
description = each.value.description
immutable_ttl = each.value.immutable_ttl
mutable_ttl = each.value.mutable_ttl
patterns = each.value.patterns
mutable_patterns = each.value.mutable_patterns
stale_on_error = each.value.stale_on_error
}
resource "artifactapi_remote_goproxy" "this" {
for_each = var.remote_goproxy
name = each.key
base_url = each.value.base_url
description = each.value.description
immutable_ttl = each.value.immutable_ttl
mutable_ttl = each.value.mutable_ttl
stale_on_error = each.value.stale_on_error
}
resource "artifactapi_remote_helm" "this" {
for_each = var.remote_helm
name = each.key
base_url = each.value.base_url
description = each.value.description
immutable_ttl = each.value.immutable_ttl
mutable_ttl = each.value.mutable_ttl
check_mutable = each.value.check_mutable
immutable_patterns = each.value.immutable_patterns
stale_on_error = each.value.stale_on_error
}
resource "artifactapi_remote_rpm" "this" {
for_each = var.remote_rpm
name = each.key
base_url = each.value.base_url
description = each.value.description
immutable_ttl = each.value.immutable_ttl
mutable_ttl = each.value.mutable_ttl
immutable_patterns = each.value.immutable_patterns
mutable_patterns = each.value.mutable_patterns
stale_on_error = each.value.stale_on_error
}
resource "artifactapi_remote_pypi" "this" {
for_each = var.remote_pypi
name = each.key
base_url = each.value.base_url
description = each.value.description
immutable_ttl = each.value.immutable_ttl
mutable_ttl = each.value.mutable_ttl
patterns = each.value.patterns
mutable_patterns = each.value.mutable_patterns
stale_on_error = each.value.stale_on_error
}
resource "artifactapi_local_terraform" "this" {
for_each = var.local_terraform
name = each.key
description = each.value.description
}
resource "artifactapi_local_pypi" "this" {
for_each = var.local_pypi
name = each.key
description = each.value.description
}
resource "artifactapi_local_rpm" "this" {
for_each = var.local_rpm
name = each.key
description = each.value.description
}
resource "artifactapi_local_docker" "this" {
for_each = var.local_docker
name = each.key
description = each.value.description
}
resource "artifactapi_virtual" "this" {
for_each = var.virtual
name = each.key
package_type = each.value.package_type
description = each.value.description
members = each.value.members
}