2 Commits

Author SHA1 Message Date
unkinben 828120eb13 feat: add local pypi/rpm repos, remote pypi, and virtual pypi
ci/woodpecker/pr/pre-commit Pipeline failed
ci/woodpecker/pr/plan Pipeline failed
Add terraform resources and configs for:
- artifactapi_local_pypi (pypi-internal)
- artifactapi_local_rpm (rpm-internal)
- artifactapi_local_terraform (terraform-unkin, was missing from module)
- artifactapi_remote_pypi (pypi.org upstream)
- artifactapi_virtual pypi merging pypi-internal + pypi remote

Wire up config.hcl, variables, and terragrunt inputs for all new types.
2026-06-23 23:18:25 +10:00
unkinben 2b47de98c7 feat: initial commit
ci/woodpecker/pr/pre-commit Pipeline failed
ci/woodpecker/pr/plan Pipeline failed
- add modules
- add config
- add environments
- add .gitignore
- add makefile
2026-06-20 11:35:05 +10:00
21 changed files with 19 additions and 79 deletions
-1
View File
@@ -1 +0,0 @@
description: "Internal RPM packages for Enterprise Linux 10 (RHEL/AlmaLinux/Rocky 10)"
-1
View File
@@ -1 +0,0 @@
description: "Internal RPM packages for Enterprise Linux 8 (RHEL/AlmaLinux/Rocky 8)"
-1
View File
@@ -1 +0,0 @@
description: "Internal RPM packages for Enterprise Linux 9 (RHEL/AlmaLinux/Rocky 9)"
-1
View File
@@ -1 +0,0 @@
description: "Internal RPM packages for Fedora 42"
-1
View File
@@ -1 +0,0 @@
description: "Internal RPM packages for Fedora 43"
-1
View File
@@ -1 +0,0 @@
description: "Internal RPM packages for Fedora 44"
+1 -1
View File
@@ -1 +1 @@
description: "Internal RPM packages (distribution-agnostic)" description: "Internal RPM packages"
-7
View File
@@ -3,9 +3,7 @@ description: Docker Hub registry
immutable_ttl: 0 immutable_ttl: 0
mutable_ttl: 300 mutable_ttl: 300
patterns: patterns:
- "^alpine/"
- "^library/almalinux" - "^library/almalinux"
- "^library/alpine"
- "^library/busybox" - "^library/busybox"
- "^library/debian" - "^library/debian"
- "^library/fedora" - "^library/fedora"
@@ -18,15 +16,10 @@ patterns:
- "^emberstack/kubernetes-reflector" - "^emberstack/kubernetes-reflector"
- "^hashicorp/consul" - "^hashicorp/consul"
- "^hashicorp/vault" - "^hashicorp/vault"
- "^intel/"
- "^internetsystemsconsortium/bind9"
- "^jfrog/" - "^jfrog/"
- "^jpgouin/"
- "^kanidm/" - "^kanidm/"
- "^osixia/"
- "^rancher/" - "^rancher/"
- "^rspamd/rspamd" - "^rspamd/rspamd"
- "^tiredofit/"
- "^tozd/postfix" - "^tozd/postfix"
- "^traefik/" - "^traefik/"
- "^valkey/valkey" - "^valkey/valkey"
-6
View File
@@ -1,6 +0,0 @@
base_url: https://public.ecr.aws
description: Amazon ECR Public registry
immutable_ttl: 0
mutable_ttl: 300
patterns:
- "^docker/library/"
+1 -9
View File
@@ -3,18 +3,10 @@ description: GitHub Container Registry
immutable_ttl: 0 immutable_ttl: 0
mutable_ttl: 300 mutable_ttl: 300
patterns: patterns:
- "^cloudnative-pg/" - "^cloudnative-pg/cloudnative-pg"
- "^dexidp/"
- "^emberstack/helm-charts" - "^emberstack/helm-charts"
- "^fallenbagel/"
- "^goauthentik/"
- "^home-operations/"
- "^jellyfin/"
- "^onedr0p/"
- "^open-webui/open-webui" - "^open-webui/open-webui"
- "^openvoxproject/" - "^openvoxproject/"
- "^paperclipai/"
- "^plexguide/"
- "^stakater/reloader" - "^stakater/reloader"
- "^stalwartlabs/stalwart" - "^stalwartlabs/stalwart"
- "^voxpupuli/puppetboard" - "^voxpupuli/puppetboard"
-6
View File
@@ -1,6 +0,0 @@
base_url: https://docker.litellm.ai
description: LiteLLM container registry
immutable_ttl: 0
mutable_ttl: 300
patterns:
- "^berriai/"
-1
View File
@@ -3,7 +3,6 @@ description: Quay.io container registry
immutable_ttl: 0 immutable_ttl: 0
mutable_ttl: 300 mutable_ttl: 300
patterns: patterns:
- "^argoproj/"
- "^brancz/kube-rbac-proxy" - "^brancz/kube-rbac-proxy"
- "^cephcsi/cephcsi" - "^cephcsi/cephcsi"
- "^jetstack/cert-manager-" - "^jetstack/cert-manager-"
@@ -4,6 +4,5 @@ immutable_ttl: 0
mutable_ttl: 7200 mutable_ttl: 7200
patterns: patterns:
- "argoproj/argo-cd/.*.yaml$" - "argoproj/argo-cd/.*.yaml$"
- "datreeio/CRDs-catalog/main/.*.json$"
- "kubernetes/kubernetes/.*.json$"
- "yannh/kubernetes-json-schema/master/.*.json$" - "yannh/kubernetes-json-schema/master/.*.json$"
- "datreeio/CRDs-catalog/main/.*.json$"
-7
View File
@@ -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$"
-7
View File
@@ -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$"
-6
View File
@@ -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.*$"
-2
View File
@@ -1,12 +1,10 @@
package_type: helm package_type: helm
description: "Virtual repository merging all helm remotes — member order is priority order for duplicate chart+version" description: "Virtual repository merging all helm remotes — member order is priority order for duplicate chart+version"
members: members:
- authentik
- ceph-csi - ceph-csi
- cnpg - cnpg
- elastic-helm - elastic-helm
- external-dns - external-dns
- grafana
- hashicorp-helm - hashicorp-helm
- intel-helm - intel-helm
- jetstack - jetstack
@@ -13,7 +13,7 @@ locals {
} }
terraform { terraform {
source = "../../modules/artifactapi" source = "../../../modules/artifactapi"
} }
inputs = { inputs = {
+7 -1
View File
@@ -3,7 +3,7 @@ generate "backend" {
if_exists = "overwrite" if_exists = "overwrite"
contents = <<EOF contents = <<EOF
provider "artifactapi" { provider "artifactapi" {
endpoint = "https://${path_relative_to_include()}" endpoint = "https://artifactapi.k8s.syd1.au.unkin.net"
} }
terraform { terraform {
@@ -15,6 +15,12 @@ terraform {
ca_file = "/etc/pki/tls/certs/ca-bundle.crt" ca_file = "/etc/pki/tls/certs/ca-bundle.crt"
} }
required_version = ">= 1.10" required_version = ">= 1.10"
required_providers {
artifactapi = {
source = "git.unkin.net/unkin/artifactapi"
version = "0.0.1"
}
}
} }
EOF EOF
} }
+8 -8
View File
@@ -96,6 +96,14 @@ variable "remote_pypi" {
default = {} default = {}
} }
variable "local_terraform" {
description = "Map of local Terraform registry repositories"
type = map(object({
description = optional(string, "")
}))
default = {}
}
variable "local_pypi" { variable "local_pypi" {
description = "Map of local PyPI repositories" description = "Map of local PyPI repositories"
type = map(object({ type = map(object({
@@ -112,14 +120,6 @@ variable "local_rpm" {
default = {} default = {}
} }
variable "local_terraform" {
description = "Map of local Terraform repositories"
type = map(object({
description = optional(string, "")
}))
default = {}
}
variable "virtual" { variable "virtual" {
description = "Map of virtual repositories" description = "Map of virtual repositories"
type = map(object({ type = map(object({
-9
View File
@@ -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"
}
}
}