Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 828120eb13 | |||
| 2b47de98c7 |
@@ -1,11 +1,3 @@
|
||||
# terraform-artifactapi
|
||||
|
||||
Terraform configuration for managing ArtifactAPI remote, local, and virtual repositories.
|
||||
|
||||
Repositories are declared as YAML files under `config/<kind>/<name>.yaml`, where the
|
||||
filename is the repository name. `make plan` / `make apply` (via Terragrunt) reconcile
|
||||
them against the ArtifactAPI instance.
|
||||
|
||||
Kinds: `remote_*` (caching proxies of an upstream), `local_*` (real registries hosted
|
||||
directly — `local_docker`, `local_pypi`, `local_rpm`, `local_terraform`), and `virtual`
|
||||
(merged views over members of one package type).
|
||||
Terraform configuration for managing ArtifactAPI remote and virtual repositories
|
||||
@@ -57,11 +57,6 @@ locals {
|
||||
trimsuffix(basename(file_path), ".yaml") => content
|
||||
if startswith(file_path, "local_rpm/")
|
||||
}
|
||||
local_docker = {
|
||||
for file_path, content in local.all_configs :
|
||||
trimsuffix(basename(file_path), ".yaml") => content
|
||||
if startswith(file_path, "local_docker/")
|
||||
}
|
||||
virtual = {
|
||||
for file_path, content in local.all_configs :
|
||||
trimsuffix(basename(file_path), ".yaml") => content
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
description: "Internal container image registry"
|
||||
@@ -1 +0,0 @@
|
||||
description: "Internal RPM packages for Enterprise Linux 10 (RHEL/AlmaLinux/Rocky 10)"
|
||||
@@ -1 +0,0 @@
|
||||
description: "Internal RPM packages for Enterprise Linux 8 (RHEL/AlmaLinux/Rocky 8)"
|
||||
@@ -1 +0,0 @@
|
||||
description: "Internal RPM packages for Enterprise Linux 9 (RHEL/AlmaLinux/Rocky 9)"
|
||||
@@ -1 +0,0 @@
|
||||
description: "Internal RPM packages for Fedora 42"
|
||||
@@ -1 +0,0 @@
|
||||
description: "Internal RPM packages for Fedora 43"
|
||||
@@ -1 +0,0 @@
|
||||
description: "Internal RPM packages for Fedora 44"
|
||||
@@ -1 +1 @@
|
||||
description: "Internal RPM packages (distribution-agnostic)"
|
||||
description: "Internal RPM packages"
|
||||
|
||||
@@ -3,9 +3,7 @@ description: Docker Hub registry
|
||||
immutable_ttl: 0
|
||||
mutable_ttl: 300
|
||||
patterns:
|
||||
- "^alpine/"
|
||||
- "^library/almalinux"
|
||||
- "^library/alpine"
|
||||
- "^library/busybox"
|
||||
- "^library/debian"
|
||||
- "^library/fedora"
|
||||
@@ -18,15 +16,10 @@ patterns:
|
||||
- "^emberstack/kubernetes-reflector"
|
||||
- "^hashicorp/consul"
|
||||
- "^hashicorp/vault"
|
||||
- "^intel/"
|
||||
- "^internetsystemsconsortium/bind9"
|
||||
- "^jfrog/"
|
||||
- "^jpgouin/"
|
||||
- "^kanidm/"
|
||||
- "^osixia/"
|
||||
- "^rancher/"
|
||||
- "^rspamd/rspamd"
|
||||
- "^tiredofit/"
|
||||
- "^tozd/postfix"
|
||||
- "^traefik/"
|
||||
- "^valkey/valkey"
|
||||
|
||||
@@ -1,6 +0,0 @@
|
||||
base_url: https://public.ecr.aws
|
||||
description: Amazon ECR Public registry
|
||||
immutable_ttl: 0
|
||||
mutable_ttl: 300
|
||||
patterns:
|
||||
- "^docker/library/"
|
||||
@@ -3,18 +3,10 @@ description: GitHub Container Registry
|
||||
immutable_ttl: 0
|
||||
mutable_ttl: 300
|
||||
patterns:
|
||||
- "^cloudnative-pg/"
|
||||
- "^dexidp/"
|
||||
- "^cloudnative-pg/cloudnative-pg"
|
||||
- "^emberstack/helm-charts"
|
||||
- "^fallenbagel/"
|
||||
- "^goauthentik/"
|
||||
- "^home-operations/"
|
||||
- "^jellyfin/"
|
||||
- "^onedr0p/"
|
||||
- "^open-webui/open-webui"
|
||||
- "^openvoxproject/"
|
||||
- "^paperclipai/"
|
||||
- "^plexguide/"
|
||||
- "^stakater/reloader"
|
||||
- "^stalwartlabs/stalwart"
|
||||
- "^voxpupuli/puppetboard"
|
||||
|
||||
@@ -1,6 +0,0 @@
|
||||
base_url: https://docker.litellm.ai
|
||||
description: LiteLLM container registry
|
||||
immutable_ttl: 0
|
||||
mutable_ttl: 300
|
||||
patterns:
|
||||
- "^berriai/"
|
||||
@@ -3,7 +3,6 @@ description: Quay.io container registry
|
||||
immutable_ttl: 0
|
||||
mutable_ttl: 300
|
||||
patterns:
|
||||
- "^argoproj/"
|
||||
- "^brancz/kube-rbac-proxy"
|
||||
- "^cephcsi/cephcsi"
|
||||
- "^jetstack/cert-manager-"
|
||||
|
||||
@@ -4,6 +4,5 @@ immutable_ttl: 0
|
||||
mutable_ttl: 7200
|
||||
patterns:
|
||||
- "argoproj/argo-cd/.*.yaml$"
|
||||
- "datreeio/CRDs-catalog/main/.*.json$"
|
||||
- "kubernetes/kubernetes/.*.json$"
|
||||
- "yannh/kubernetes-json-schema/master/.*.json$"
|
||||
- "datreeio/CRDs-catalog/main/.*.json$"
|
||||
@@ -1,7 +0,0 @@
|
||||
base_url: https://charts.goauthentik.io
|
||||
description: Authentik Charts
|
||||
immutable_ttl: 0
|
||||
mutable_ttl: 3600
|
||||
check_mutable: true
|
||||
immutable_patterns:
|
||||
- "\\.tgz$"
|
||||
@@ -1,7 +0,0 @@
|
||||
base_url: https://grafana.github.io/helm-charts
|
||||
description: Grafana Helm charts
|
||||
immutable_ttl: 0
|
||||
mutable_ttl: 3600
|
||||
check_mutable: true
|
||||
immutable_patterns:
|
||||
- "\\.tgz$"
|
||||
@@ -1,6 +0,0 @@
|
||||
base_url: "https://downloads.claude.ai/claude-code/rpm/stable"
|
||||
description: "Claude Code RPM repository"
|
||||
immutable_patterns:
|
||||
- ".*/x86_64/.*\\.rpm$"
|
||||
- ".*/noarch/.*\\.rpm$"
|
||||
- ".*/repodata/.*\\.xml.*$"
|
||||
@@ -1,12 +1,10 @@
|
||||
package_type: helm
|
||||
description: "Virtual repository merging all helm remotes — member order is priority order for duplicate chart+version"
|
||||
members:
|
||||
- authentik
|
||||
- ceph-csi
|
||||
- cnpg
|
||||
- elastic-helm
|
||||
- external-dns
|
||||
- grafana
|
||||
- hashicorp-helm
|
||||
- intel-helm
|
||||
- jetstack
|
||||
|
||||
+1
-2
@@ -13,7 +13,7 @@ locals {
|
||||
}
|
||||
|
||||
terraform {
|
||||
source = "../../modules/artifactapi"
|
||||
source = "../../../modules/artifactapi"
|
||||
}
|
||||
|
||||
inputs = {
|
||||
@@ -27,6 +27,5 @@ inputs = {
|
||||
local_terraform = local.config.local_terraform
|
||||
local_pypi = local.config.local_pypi
|
||||
local_rpm = local.config.local_rpm
|
||||
local_docker = local.config.local_docker
|
||||
virtual = local.config.virtual
|
||||
}
|
||||
@@ -3,7 +3,7 @@ generate "backend" {
|
||||
if_exists = "overwrite"
|
||||
contents = <<EOF
|
||||
provider "artifactapi" {
|
||||
endpoint = "https://${path_relative_to_include()}"
|
||||
endpoint = "https://artifactapi.k8s.syd1.au.unkin.net"
|
||||
}
|
||||
|
||||
terraform {
|
||||
@@ -15,6 +15,12 @@ terraform {
|
||||
ca_file = "/etc/pki/tls/certs/ca-bundle.crt"
|
||||
}
|
||||
required_version = ">= 1.10"
|
||||
required_providers {
|
||||
artifactapi = {
|
||||
source = "git.unkin.net/unkin/artifactapi"
|
||||
version = "0.0.1"
|
||||
}
|
||||
}
|
||||
}
|
||||
EOF
|
||||
}
|
||||
|
||||
@@ -110,13 +110,6 @@ resource "artifactapi_local_rpm" "this" {
|
||||
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
|
||||
|
||||
|
||||
@@ -96,6 +96,14 @@ variable "remote_pypi" {
|
||||
default = {}
|
||||
}
|
||||
|
||||
variable "local_terraform" {
|
||||
description = "Map of local Terraform registry repositories"
|
||||
type = map(object({
|
||||
description = optional(string, "")
|
||||
}))
|
||||
default = {}
|
||||
}
|
||||
|
||||
variable "local_pypi" {
|
||||
description = "Map of local PyPI repositories"
|
||||
type = map(object({
|
||||
@@ -112,22 +120,6 @@ variable "local_rpm" {
|
||||
default = {}
|
||||
}
|
||||
|
||||
variable "local_terraform" {
|
||||
description = "Map of local Terraform repositories"
|
||||
type = map(object({
|
||||
description = optional(string, "")
|
||||
}))
|
||||
default = {}
|
||||
}
|
||||
|
||||
variable "local_docker" {
|
||||
description = "Map of local Docker repositories (real container registries)"
|
||||
type = map(object({
|
||||
description = optional(string, "")
|
||||
}))
|
||||
default = {}
|
||||
}
|
||||
|
||||
variable "virtual" {
|
||||
description = "Map of virtual repositories"
|
||||
type = map(object({
|
||||
|
||||
@@ -1,9 +0,0 @@
|
||||
terraform {
|
||||
required_version = ">= 1.10"
|
||||
required_providers {
|
||||
artifactapi = {
|
||||
source = "artifactapi.k8s.syd1.au.unkin.net/terraform-unkin/artifactapi"
|
||||
version = ">= 0.1.2"
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user