From 06f8a0888e5a11b35bf17547f97f5b420e9e407b Mon Sep 17 00:00:00 2001 From: Ben Vincent Date: Thu, 30 Apr 2026 23:56:35 +1000 Subject: [PATCH] feat: split artifactapi config into conf.d and update to v2.7.1 Split monolithic remotes.yaml into per-type-package files under resources/conf.d/ to align with artifactapi v2.7.1 directory loading. Updated schema: virtuals/locals use dedicated top-level keys, type field removed. Added helm remotes for all kustomize helmCharts repos and OCI patterns to docker remotes. CONFIG_PATH now points to the directory. --- .../artifactapi/artifactapi-deployment.yaml | 5 +- apps/base/artifactapi/configmap.yaml | 2 +- apps/base/artifactapi/kustomization.yaml | 9 +- .../artifactapi/resources/conf.d/config.yaml | 3 + .../resources/conf.d/local-generic.yaml | 7 + .../resources/conf.d/remote-alpine.yaml | 10 + .../resources/conf.d/remote-docker.yaml | 92 ++++ .../resources/conf.d/remote-generic.yaml | 126 ++++++ .../resources/conf.d/remote-helm.yaml | 121 +++++ .../resources/conf.d/remote-rpm.yaml | 154 +++++++ .../resources/conf.d/virtual-helm.yaml | 16 + apps/base/artifactapi/resources/remotes.yaml | 413 ------------------ 12 files changed, 540 insertions(+), 418 deletions(-) create mode 100644 apps/base/artifactapi/resources/conf.d/config.yaml create mode 100644 apps/base/artifactapi/resources/conf.d/local-generic.yaml create mode 100644 apps/base/artifactapi/resources/conf.d/remote-alpine.yaml create mode 100644 apps/base/artifactapi/resources/conf.d/remote-docker.yaml create mode 100644 apps/base/artifactapi/resources/conf.d/remote-generic.yaml create mode 100644 apps/base/artifactapi/resources/conf.d/remote-helm.yaml create mode 100644 apps/base/artifactapi/resources/conf.d/remote-rpm.yaml create mode 100644 apps/base/artifactapi/resources/conf.d/virtual-helm.yaml delete mode 100644 apps/base/artifactapi/resources/remotes.yaml diff --git a/apps/base/artifactapi/artifactapi-deployment.yaml b/apps/base/artifactapi/artifactapi-deployment.yaml index fd427bd..8ca473c 100644 --- a/apps/base/artifactapi/artifactapi-deployment.yaml +++ b/apps/base/artifactapi/artifactapi-deployment.yaml @@ -19,7 +19,7 @@ spec: automountServiceAccountToken: true containers: - name: artifactapi - image: git.unkin.net/unkin/artifactapi:v2.3.0 + image: git.unkin.net/unkin/artifactapi:v2.7.1 imagePullPolicy: IfNotPresent ports: - containerPort: 8000 @@ -60,10 +60,9 @@ spec: cpu: 100m memory: 256Mi volumeMounts: - - mountPath: /app/remotes.yaml + - mountPath: /etc/artifactapi/conf.d mountPropagation: None name: remotes-config - subPath: remotes.yaml restartPolicy: Always volumes: - configMap: diff --git a/apps/base/artifactapi/configmap.yaml b/apps/base/artifactapi/configmap.yaml index 68c3468..ddbfd7d 100644 --- a/apps/base/artifactapi/configmap.yaml +++ b/apps/base/artifactapi/configmap.yaml @@ -5,7 +5,7 @@ metadata: name: artifactapi-env namespace: artifactapi data: - CONFIG_PATH: /app/remotes.yaml + CONFIG_PATH: /etc/artifactapi/conf.d/ DBHOST: postgres-service DBNAME: artifacts DBPORT: "5432" diff --git a/apps/base/artifactapi/kustomization.yaml b/apps/base/artifactapi/kustomization.yaml index 8182269..3b70681 100644 --- a/apps/base/artifactapi/kustomization.yaml +++ b/apps/base/artifactapi/kustomization.yaml @@ -18,6 +18,13 @@ resources: configMapGenerator: - name: remotes-config files: - - resources/remotes.yaml + - resources/conf.d/config.yaml + - resources/conf.d/local-generic.yaml + - resources/conf.d/remote-generic.yaml + - resources/conf.d/remote-alpine.yaml + - resources/conf.d/remote-rpm.yaml + - resources/conf.d/remote-docker.yaml + - resources/conf.d/remote-helm.yaml + - resources/conf.d/virtual-helm.yaml options: disableNameSuffixHash: true diff --git a/apps/base/artifactapi/resources/conf.d/config.yaml b/apps/base/artifactapi/resources/conf.d/config.yaml new file mode 100644 index 0000000..167e954 --- /dev/null +++ b/apps/base/artifactapi/resources/conf.d/config.yaml @@ -0,0 +1,3 @@ +# Global artifactapi configuration. +# S3, Redis, and database connection settings are injected via environment variables. +# Add any top-level overrides here if needed. diff --git a/apps/base/artifactapi/resources/conf.d/local-generic.yaml b/apps/base/artifactapi/resources/conf.d/local-generic.yaml new file mode 100644 index 0000000..2bc3928 --- /dev/null +++ b/apps/base/artifactapi/resources/conf.d/local-generic.yaml @@ -0,0 +1,7 @@ +locals: + local-generic: + package: "generic" + description: "Local generic file repository" + cache: + immutable_ttl: 0 + mutable_ttl: 0 diff --git a/apps/base/artifactapi/resources/conf.d/remote-alpine.yaml b/apps/base/artifactapi/resources/conf.d/remote-alpine.yaml new file mode 100644 index 0000000..55f8c65 --- /dev/null +++ b/apps/base/artifactapi/resources/conf.d/remote-alpine.yaml @@ -0,0 +1,10 @@ +remotes: + alpine: + base_url: "https://dl-cdn.alpinelinux.org" + package: "alpine" + description: "Alpine Linux APK package repository" + immutable_patterns: + - ".*/x86_64/.*\\.apk$" + cache: + immutable_ttl: 0 + mutable_ttl: 7200 diff --git a/apps/base/artifactapi/resources/conf.d/remote-docker.yaml b/apps/base/artifactapi/resources/conf.d/remote-docker.yaml new file mode 100644 index 0000000..8dfa11d --- /dev/null +++ b/apps/base/artifactapi/resources/conf.d/remote-docker.yaml @@ -0,0 +1,92 @@ +remotes: + ghcr: + base_url: "https://ghcr.io" + package: "docker" + description: "GitHub Container Registry" + immutable_patterns: + - "^cloudnative-pg/cloudnative-pg" + - "^emberstack/helm-charts" + - "^openvoxproject/" + - "^stakater/reloader" + - "^voxpupuli/puppetboard" + - "^woodpecker-ci/helm" + cache: + immutable_ttl: 0 + mutable_ttl: 300 + + dockerhub: + base_url: "https://registry-1.docker.io" + package: "docker" + description: "Docker Hub registry" + immutable_patterns: + - "^library/busybox" + - "^library/nginx" + - "^library/postgres" + - "^library/redis" + - "^beats/filebeat" + - "^bitnami/" + - "^curlimages/curl" + - "^emberstack/kubernetes-reflector" + - "^hashicorp/vault-secrets-operator" + - "^jfrog/" + - "^rancher/" + - "^ubi9/ubi-minimal" + - "^victoriametrics/" + - "^woodpeckerci/" + cache: + immutable_ttl: 0 + mutable_ttl: 300 + + quay: + base_url: "https://quay.io" + package: "docker" + description: "Quay.io container registry" + immutable_patterns: + - "^brancz/kube-rbac-proxy" + - "^cephcsi/cephcsi" + - "^jetstack/cert-manager-" + cache: + immutable_ttl: 0 + mutable_ttl: 300 + + k8s-registry: + base_url: "https://registry.k8s.io" + package: "docker" + description: "Kubernetes container registry" + immutable_patterns: + - "^external-dns/external-dns" + - "^sig-storage/" + cache: + immutable_ttl: 0 + mutable_ttl: 300 + + gitlab: + base_url: "https://registry.gitlab.com" + package: "docker" + description: "GitLab container registry" + immutable_patterns: + - "^purelb/purelb" + cache: + immutable_ttl: 0 + mutable_ttl: 300 + + elastic: + base_url: "https://docker.elastic.co" + package: "docker" + description: "Elastic container registry" + immutable_patterns: + - "^eck/eck-operator" + cache: + immutable_ttl: 0 + mutable_ttl: 300 + + gcr: + base_url: "https://gcr.io" + package: "docker" + description: "Google Container Registry" + immutable_patterns: + - "^k8s-staging-nfd/charts" + - "^k8s-staging-nfd/node-feature-discovery" + cache: + immutable_ttl: 0 + mutable_ttl: 300 diff --git a/apps/base/artifactapi/resources/conf.d/remote-generic.yaml b/apps/base/artifactapi/resources/conf.d/remote-generic.yaml new file mode 100644 index 0000000..4497bbd --- /dev/null +++ b/apps/base/artifactapi/resources/conf.d/remote-generic.yaml @@ -0,0 +1,126 @@ +remotes: + github: + base_url: "https://github.com" + package: "generic" + description: "GitHub releases and files" + mutable_patterns: + - ".*/archive/refs/heads/.*.tar.gz$" + immutable_patterns: + - ".*/archive/refs/tags/.*.tar.gz$" + - "ahmetb/kubectx/.*/kubectx_.*_linux_x86_64.tar.gz$" + - "ahmetb/kubectx/.*/kubens_.*_linux_x86_64.tar.gz$" + - "apple/foundationdb/.*/libfdb_c.x86_64.so$" + - "astral-sh/ruff/.*/ruff-x86_64-unknown-linux-gnu.tar.gz$" + - "astral-sh/uv/.*/uv-x86_64-unknown-linux-gnu.tar.gz$" + - "camptocamp/prometheus-puppetdb-exporter/.*/prometheus-puppetdb-exporter-.*.linux-amd64.tar.gz$" + - "coder/code-server/.*/code-server-.*-amd64.rpm$" + - "containernetworking/plugins/.*/cni-plugins-linux-amd64-.*.tgz" + - "dandavison/delta/.*/delta-.*-x86_64-unknown-linux-musl.tar.gz$" + - "ducaale/xh/.*/xh-.*-x86_64-unknown-linux-musl.tar.gz$" + - "etcd-io/etcd/.*/etcd-.*-linux-amd64.tar.gz$" + - "getsops/sops/.*/sops-v.*\\.linux\\.amd64$" + - "grafana/jsonnet-language-server/.*/jsonnet-language-server_.*_linux_amd64$" + - "gruntwork-io/boilerplate/.*/boilerplate_linux_amd64$" + - "gruntwork-io/terragrunt/.*terragrunt_linux_amd64.*" + - "hadolint/hadolint/.*/hadolint-linux-x86_64$" + - "helmfile/helmfile/.*/helmfile_.*_linux_amd64.tar.gz$" + - "helmfile/vals/.*/vals_.*_linux_amd64.tar.gz$" + - "jesseduffield/lazydocker/.*/lazydocker_.*_Linux_x86_64.tar.gz$" + - "lxc/incus/.*.tar.gz$" + - "mikefarah/yq/.*/yq_linux_amd64$" + - "neovim/neovim-releases/.*/nvim-linux-x86_64.tar.gz$" + - "neovim/neovim/.*/nvim-linux-x86_64.tar.gz$" + - "nzbgetcom/nzbget/.*/nzbget-.*.x86_64.rpm$" + - "onedr0p/exportarr/.*/exportarr_.*_linux_amd64.tar.gz$" + - "openbao/openbao-plugins/.*/openbao-plugin-secrets-consul_linux_amd64_.*.tar.gz$" + - "openbao/openbao-plugins/.*/openbao-plugin-secrets-nomad_linux_amd64_.*.tar.gz$" + - "prometheus-community/bind_exporter/.*/bind_exporter-.*.linux-amd64.tar.gz$" + - "prometheus-community/pgbouncer_exporter/.*/pgbouncer_exporter-.*.linux-amd64.tar.gz$" + - "prometheus-community/postgres_exporter/.*/postgres_exporter-.*.linux-amd64.tar.gz$" + - "prometheus/node_exporter/.*/node_exporter-.*.linux-amd64.tar.gz$" + - "rancher/rke2/.*/rke2-images.linux-amd64.tar.zst$" + - "stalwartlabs/stalwart/.*/stalwart-cli-x86_64-unknown-linux-gnu.tar.gz$" + - "stalwartlabs/stalwart/.*/stalwart-foundationdb-x86_64-unknown-linux-gnu.tar.gz$" + - "stalwartlabs/stalwart/.*/stalwart-x86_64-unknown-linux-gnu.tar.gz$" + - "starship/starship/.*/starship-x86_64-unknown-linux-musl.tar.gz$" + - "stern/stern/.*/stern_.*_linux_amd64.tar.gz$" + - "terraform-linters/tflint/.*/tflint_linux_amd64.zip$" + - "tynany/frr_exporter/.*/frr_exporter-.*.linux-amd64.tar.gz$" + - "VictoriaMetrics/VictoriaLogs/.*/victoria-logs-linux-amd64-.*.tar.gz$" + - "VictoriaMetrics/VictoriaLogs/.*/vlutils-linux-amd64-.*.tar.gz$" + - "VictoriaMetrics/VictoriaMetrics/.*/victoria-logs-linux-amd64-.*.tar.gz$" + - "VictoriaMetrics/VictoriaMetrics/.*/victoria-metrics-linux-amd64-.*-cluster.tar.gz$" + - "VictoriaMetrics/VictoriaMetrics/.*/vlutils-linux-amd64-.*.tar.gz$" + - "VictoriaMetrics/VictoriaMetrics/.*/vmutils-linux-amd64-.*.tar.gz$" + - "xorpaul/g10k/.*/g10k-.*-linux-amd64.zip$" + cache: + immutable_ttl: 0 + mutable_ttl: 7200 + + github_user: + base_url: "https://raw.githubusercontent.com" + package: "generic" + description: "GitHub User Content" + immutable_patterns: + - "argoproj/argo-cd/.*.yaml$" + - "yannh/kubernetes-json-schema/master/.*.json$" + - "datreeio/CRDs-catalog/main/.*.json$" + cache: + immutable_ttl: 0 + mutable_ttl: 7200 + + gitea-dl: + base_url: "https://dl.gitea.com" + package: "generic" + description: "Gitea download site" + immutable_patterns: + - "act_runner/.*/act_runner-.*-linux-amd64$" + - "tea/.*/tea-.*-linux-amd64$" + cache: + immutable_ttl: 0 + mutable_ttl: 7200 + + hashicorp-releases: + base_url: "https://releases.hashicorp.com" + package: "generic" + description: "HashiCorp product releases" + immutable_patterns: + - "terraform/.*terraform_.*_linux_amd64\\.zip$" + - "terraform/.*terraform_.*_windows_amd64\\.zip$" + - "terraform/.*terraform_.*_darwin_amd64\\.zip$" + - "vault/.*vault_.*_linux_amd64\\.zip$" + - "vault/.*vault_.*_windows_amd64\\.zip$" + - "vault/.*vault_.*_darwin_amd64\\.zip$" + - "consul-cni/.*/consul-cni_.*_linux_amd64\\.zip$" + - "consul/.*/consul_.*_linux_amd64\\.zip$" + - "nomad-autoscaler/.*/nomad-autoscaler_.*_linux_amd64\\.zip$" + - "nomad/.*/nomad_.*_linux_amd64\\.zip$" + - "packer/.*/packer_.*_linux_amd64\\.zip$" + cache: + immutable_ttl: 0 + mutable_ttl: 7200 + + rarlab: + base_url: "https://www.rarlab.com" + package: "generic" + description: "RARLab" + immutable_patterns: + - "rar/rarlinux-x64-.*.tar.gz" + cache: + immutable_ttl: 0 + mutable_ttl: 7200 + + claude-ai: + base_url: "https://downloads.claude.ai" + package: "generic" + description: "Anthropic Claude Code binary releases" + mutable_patterns: + - "claude-code-releases/.*/manifest.json$" + immutable_patterns: + - "claude-code-releases/.*/linux-x64/claude$" + - "claude-code-releases/.*/linux-arm64/claude$" + - "claude-code-releases/.*/linux-x64-musl/claude$" + - "claude-code-releases/.*/linux-arm64-musl/claude$" + cache: + immutable_ttl: 0 + mutable_ttl: 7200 diff --git a/apps/base/artifactapi/resources/conf.d/remote-helm.yaml b/apps/base/artifactapi/resources/conf.d/remote-helm.yaml new file mode 100644 index 0000000..eb34dab --- /dev/null +++ b/apps/base/artifactapi/resources/conf.d/remote-helm.yaml @@ -0,0 +1,121 @@ +remotes: + ceph-csi: + base_url: "https://ceph.github.io/csi-charts" + package: "helm" + description: "Ceph CSI driver Helm charts" + check_mutable_updates: true + immutable_patterns: + - "\\.tgz$" + cache: + immutable_ttl: 0 + mutable_ttl: 3600 + + cnpg: + base_url: "https://cloudnative-pg.github.io/charts" + package: "helm" + description: "CloudNativePG operator Helm charts" + check_mutable_updates: true + immutable_patterns: + - "\\.tgz$" + cache: + immutable_ttl: 0 + mutable_ttl: 3600 + + elastic-helm: + base_url: "https://helm.elastic.co" + package: "helm" + description: "Elastic stack Helm charts" + check_mutable_updates: true + immutable_patterns: + - "\\.tgz$" + cache: + immutable_ttl: 0 + mutable_ttl: 3600 + + external-dns: + base_url: "https://kubernetes-sigs.github.io/external-dns/" + package: "helm" + description: "ExternalDNS Helm charts" + check_mutable_updates: true + immutable_patterns: + - "\\.tgz$" + cache: + immutable_ttl: 0 + mutable_ttl: 3600 + + hashicorp-helm: + base_url: "https://helm.releases.hashicorp.com" + package: "helm" + description: "HashiCorp Helm charts (Vault Secrets Operator, etc.)" + check_mutable_updates: true + immutable_patterns: + - "\\.tgz$" + cache: + immutable_ttl: 0 + mutable_ttl: 3600 + + intel-helm: + base_url: "https://intel.github.io/helm-charts/" + package: "helm" + description: "Intel Helm charts (device plugins)" + check_mutable_updates: true + immutable_patterns: + - "\\.tgz$" + cache: + immutable_ttl: 0 + mutable_ttl: 3600 + + jetstack: + base_url: "https://charts.jetstack.io" + package: "helm" + description: "Jetstack Helm charts (cert-manager)" + check_mutable_updates: true + immutable_patterns: + - "\\.tgz$" + cache: + immutable_ttl: 0 + mutable_ttl: 3600 + + purelb: + base_url: "https://gitlab.com/api/v4/projects/20400619/packages/helm/stable" + package: "helm" + description: "PureLB load balancer Helm charts" + check_mutable_updates: true + immutable_patterns: + - "\\.tgz$" + cache: + immutable_ttl: 0 + mutable_ttl: 3600 + + rancher-stable: + base_url: "https://releases.rancher.com/server-charts/stable" + package: "helm" + description: "Rancher stable Helm charts" + check_mutable_updates: true + immutable_patterns: + - "\\.tgz$" + cache: + immutable_ttl: 0 + mutable_ttl: 3600 + + stakater: + base_url: "https://stakater.github.io/stakater-charts" + package: "helm" + description: "Stakater Helm charts (Reloader)" + check_mutable_updates: true + immutable_patterns: + - "\\.tgz$" + cache: + immutable_ttl: 0 + mutable_ttl: 3600 + + victoriametrics: + base_url: "https://victoriametrics.github.io/helm-charts/" + package: "helm" + description: "VictoriaMetrics observability Helm charts" + check_mutable_updates: true + immutable_patterns: + - "\\.tgz$" + cache: + immutable_ttl: 0 + mutable_ttl: 3600 diff --git a/apps/base/artifactapi/resources/conf.d/remote-rpm.yaml b/apps/base/artifactapi/resources/conf.d/remote-rpm.yaml new file mode 100644 index 0000000..0338902 --- /dev/null +++ b/apps/base/artifactapi/resources/conf.d/remote-rpm.yaml @@ -0,0 +1,154 @@ +remotes: + almalinux: + base_url: "https://gsl-syd.mm.fcix.net/almalinux" + package: "rpm" + description: "AlmaLinux RPM package repository" + immutable_patterns: + - ".*/x86_64/.*\\.rpm$" + - ".*/noarch/.*\\.rpm$" + - ".*/repodata/.*\\.sqlite.*$" + - ".*/repodata/.*\\.xml.*$" + - ".*/repodata/.*\\.yaml.*$" + - ".*/install.img" + - ".*/squashfs.img" + - ".*/updates.img" + - ".*/RPM-GPG-KEY-.*$" + cache: + immutable_ttl: 0 + mutable_ttl: 7200 + + ceph-reef: + base_url: "https://download.ceph.com/rpm-reef/" + package: "rpm" + description: "Ceph Reef 18" + immutable_patterns: + - ".*/x86_64/.*\\.rpm$" + - ".*/noarch/.*\\.rpm$" + - ".*/repodata/.*\\.xml.*$" + cache: + immutable_ttl: 0 + mutable_ttl: 7200 + + ceph-squid: + base_url: "https://download.ceph.com/rpm-squid/" + package: "rpm" + description: "Ceph Squid 19" + immutable_patterns: + - ".*/x86_64/.*\\.rpm$" + - ".*/noarch/.*\\.rpm$" + - ".*/repodata/.*\\.xml.*$" + cache: + immutable_ttl: 0 + mutable_ttl: 7200 + + ceph-tentacle: + base_url: "https://download.ceph.com/rpm-tentacle/" + package: "rpm" + description: "Ceph Tentacle 20" + immutable_patterns: + - ".*/x86_64/.*\\.rpm$" + - ".*/noarch/.*\\.rpm$" + - ".*/repodata/.*\\.xml.*$" + cache: + immutable_ttl: 0 + mutable_ttl: 7200 + + epel: + base_url: "https://gsl-syd.mm.fcix.net/epel" + package: "rpm" + description: "EPEL (Extra Packages for Enterprise Linux)" + immutable_patterns: + - ".*/Everything/x86_64/.*\\.rpm$" + - ".*/noarch/.*\\.rpm$" + - ".*/repodata/.*\\.sqlite.*$" + - ".*/repodata/.*\\.xml.*$" + - ".*/repodata/.*\\.yaml.*$" + - "RPM-GPG-KEY-.*$" + cache: + immutable_ttl: 0 + mutable_ttl: 7200 + + fedora: + base_url: "https://gsl-syd.mm.fcix.net/fedora/linux" + package: "rpm" + description: "Fedora Linux RPM package repository" + immutable_patterns: + - "releases/.*/Everything/x86_64/.*\\.rpm$" + - "updates/.*/Everything/x86_64/.*\\.rpm$" + - "development/.*/Everything/x86_64/.*\\.rpm$" + - ".*/noarch/.*\\.rpm$" + - ".*/repodata/.*\\.xml.*$" + cache: + immutable_ttl: 0 + mutable_ttl: 7200 + + frr: + base_url: "https://rpm.frrouting.org/repo" + package: "rpm" + description: "FRR RPM package repository" + immutable_patterns: + - ".*\\.rpm$" + - ".*/repodata/.*\\.xml.*$" + cache: + immutable_ttl: 0 + mutable_ttl: 7200 + + mariadb: + base_url: "http://mariadb.mirror.digitalpacific.com.au/yum" + package: "rpm" + description: "MariaDB RPM package repository" + immutable_patterns: + - ".*\\.rpm$" + - ".*/repodata/.*\\.xml.*$" + - ".*/RPM-GPG-KEY-.*$" + cache: + immutable_ttl: 0 + mutable_ttl: 7200 + + openvox: + base_url: "https://yum.voxpupuli.org" + package: "rpm" + description: "OpenVox RPM package repository" + immutable_patterns: + - ".*\\.rpm$" + - ".*/repodata/.*\\.xml.*$" + - "GPG-KEY-.*$" + cache: + immutable_ttl: 0 + mutable_ttl: 7200 + + postgresql: + base_url: "https://download.postgresql.org/pub/repos/yum" + package: "rpm" + description: "PostgreSQL RPM package repository" + immutable_patterns: + - ".*\\.rpm$" + - ".*/repodata/.*\\.xml.*$" + - ".*/RPM-GPG-KEY-.*$" + - ".*/PGDG-RPM-GPG-KEY-.*$" + cache: + immutable_ttl: 0 + mutable_ttl: 7200 + + rke2: + base_url: "https://rpm.rancher.io" + package: "rpm" + description: "RKE2 RPM package repository" + immutable_patterns: + - ".*\\.rpm$" + - ".*/repodata/.*\\.xml.*$" + - "public.key$" + cache: + immutable_ttl: 0 + mutable_ttl: 7200 + + zfs: + base_url: "http://download.zfsonlinux.org" + package: "rpm" + description: "ZFS RPM package repository" + immutable_patterns: + - ".*\\.rpm$" + - ".*/repodata/.*\\.xml.*$" + cache: + immutable_ttl: 0 + mutable_ttl: 7200 diff --git a/apps/base/artifactapi/resources/conf.d/virtual-helm.yaml b/apps/base/artifactapi/resources/conf.d/virtual-helm.yaml new file mode 100644 index 0000000..845b45c --- /dev/null +++ b/apps/base/artifactapi/resources/conf.d/virtual-helm.yaml @@ -0,0 +1,16 @@ +virtuals: + helm: + package: "helm" + description: "Virtual repository merging all helm remotes — member order is priority order for duplicate chart+version" + members: + - ceph-csi + - cnpg + - elastic-helm + - external-dns + - hashicorp-helm + - intel-helm + - jetstack + - purelb + - rancher-stable + - stakater + - victoriametrics diff --git a/apps/base/artifactapi/resources/remotes.yaml b/apps/base/artifactapi/resources/remotes.yaml deleted file mode 100644 index a1727ed..0000000 --- a/apps/base/artifactapi/resources/remotes.yaml +++ /dev/null @@ -1,413 +0,0 @@ -remotes: - github: - base_url: "https://github.com" - type: "remote" - package: "generic" - description: "GitHub releases and files" - mutable_patterns: - - ".*/archive/refs/heads/.*.tar.gz$" - immutable_patterns: - - ".*/archive/refs/tags/.*.tar.gz$" - - "ahmetb/kubectx/.*/kubectx_.*_linux_x86_64.tar.gz$" - - "ahmetb/kubectx/.*/kubens_.*_linux_x86_64.tar.gz$" - - "apple/foundationdb/.*/libfdb_c.x86_64.so$" - - "astral-sh/ruff/.*/ruff-x86_64-unknown-linux-gnu.tar.gz$" - - "astral-sh/uv/.*/uv-x86_64-unknown-linux-gnu.tar.gz$" - - "camptocamp/prometheus-puppetdb-exporter/.*/prometheus-puppetdb-exporter-.*.linux-amd64.tar.gz$" - - "coder/code-server/.*/code-server-.*-amd64.rpm$" - - "containernetworking/plugins/.*/cni-plugins-linux-amd64-.*.tgz" - - "dandavison/delta/.*/delta-.*-x86_64-unknown-linux-musl.tar.gz$" - - "ducaale/xh/.*/xh-.*-x86_64-unknown-linux-musl.tar.gz$" - - "etcd-io/etcd/.*/etcd-.*-linux-amd64.tar.gz$" - - "getsops/sops/.*/sops-v.*\\.linux\\.amd64$" - - "grafana/jsonnet-language-server/.*/jsonnet-language-server_.*_linux_amd64$" - - "gruntwork-io/boilerplate/.*/boilerplate_linux_amd64$" - - "gruntwork-io/terragrunt/.*terragrunt_linux_amd64.*" - - "hadolint/hadolint/.*/hadolint-linux-x86_64$" - - "helmfile/helmfile/.*/helmfile_.*_linux_amd64.tar.gz$" - - "helmfile/vals/.*/vals_.*_linux_amd64.tar.gz$" - - "jesseduffield/lazydocker/.*/lazydocker_.*_Linux_x86_64.tar.gz$" - - "lxc/incus/.*.tar.gz$" - - "mikefarah/yq/.*/yq_linux_amd64$" - - "neovim/neovim-releases/.*/nvim-linux-x86_64.tar.gz$" - - "neovim/neovim/.*/nvim-linux-x86_64.tar.gz$" - - "nzbgetcom/nzbget/.*/nzbget-.*.x86_64.rpm$" - - "onedr0p/exportarr/.*/exportarr_.*_linux_amd64.tar.gz$" - - "openbao/openbao-plugins/.*/openbao-plugin-secrets-consul_linux_amd64_.*.tar.gz$" - - "openbao/openbao-plugins/.*/openbao-plugin-secrets-nomad_linux_amd64_.*.tar.gz$" - - "prometheus-community/bind_exporter/.*/bind_exporter-.*.linux-amd64.tar.gz$" - - "prometheus-community/pgbouncer_exporter/.*/pgbouncer_exporter-.*.linux-amd64.tar.gz$" - - "prometheus-community/postgres_exporter/.*/postgres_exporter-.*.linux-amd64.tar.gz$" - - "prometheus/node_exporter/.*/node_exporter-.*.linux-amd64.tar.gz$" - - "rancher/rke2/.*/rke2-images.linux-amd64.tar.zst$" - - "stalwartlabs/stalwart/.*/stalwart-cli-x86_64-unknown-linux-gnu.tar.gz$" - - "stalwartlabs/stalwart/.*/stalwart-foundationdb-x86_64-unknown-linux-gnu.tar.gz$" - - "stalwartlabs/stalwart/.*/stalwart-x86_64-unknown-linux-gnu.tar.gz$" - - "starship/starship/.*/starship-x86_64-unknown-linux-musl.tar.gz$" - - "stern/stern/.*/stern_.*_linux_amd64.tar.gz$" - - "terraform-linters/tflint/.*/tflint_linux_amd64.zip$" - - "tynany/frr_exporter/.*/frr_exporter-.*.linux-amd64.tar.gz$" - - "VictoriaMetrics/VictoriaLogs/.*/victoria-logs-linux-amd64-.*.tar.gz$" - - "VictoriaMetrics/VictoriaLogs/.*/vlutils-linux-amd64-.*.tar.gz$" - - "VictoriaMetrics/VictoriaMetrics/.*/victoria-logs-linux-amd64-.*.tar.gz$" - - "VictoriaMetrics/VictoriaMetrics/.*/victoria-metrics-linux-amd64-.*-cluster.tar.gz$" - - "VictoriaMetrics/VictoriaMetrics/.*/vlutils-linux-amd64-.*.tar.gz$" - - "VictoriaMetrics/VictoriaMetrics/.*/vmutils-linux-amd64-.*.tar.gz$" - - "xorpaul/g10k/.*/g10k-.*-linux-amd64.zip$" - cache: - immutable_ttl: 0 - mutable_ttl: 7200 - - github_user: - base_url: "https://raw.githubusercontent.com" - type: "remote" - package: "generic" - description: "GitHub User Content" - immutable_patterns: - - "argoproj/argo-cd/.*.yaml$" - - "yannh/kubernetes-json-schema/master/.*.json$" - - "datreeio/CRDs-catalog/main/.*.json$" - cache: - immutable_ttl: 0 - mutable_ttl: 7200 - - gitea-dl: - base_url: "https://dl.gitea.com" - type: "remote" - package: "generic" - description: "Gitea download site" - immutable_patterns: - - "act_runner/.*/act_runner-.*-linux-amd64$" - - "tea/.*/tea-.*-linux-amd64$" - cache: - immutable_ttl: 0 - mutable_ttl: 7200 - - hashicorp-releases: - base_url: "https://releases.hashicorp.com" - type: "remote" - package: "generic" - description: "HashiCorp product releases" - immutable_patterns: - - "terraform/.*terraform_.*_linux_amd64\\.zip$" - - "terraform/.*terraform_.*_windows_amd64\\.zip$" - - "terraform/.*terraform_.*_darwin_amd64\\.zip$" - - "vault/.*vault_.*_linux_amd64\\.zip$" - - "vault/.*vault_.*_windows_amd64\\.zip$" - - "vault/.*vault_.*_darwin_amd64\\.zip$" - - "consul-cni/.*/consul-cni_.*_linux_amd64\\.zip$" - - "consul/.*/consul_.*_linux_amd64\\.zip$" - - "nomad-autoscaler/.*/nomad-autoscaler_.*_linux_amd64\\.zip$" - - "nomad/.*/nomad_.*_linux_amd64\\.zip$" - - "packer/.*/packer_.*_linux_amd64\\.zip$" - cache: - immutable_ttl: 0 - mutable_ttl: 7200 - - rarlab: - base_url: "https://www.rarlab.com" - type: "remote" - package: "generic" - description: "RARLab" - immutable_patterns: - - "rar/rarlinux-x64-.*.tar.gz" - cache: - immutable_ttl: 0 - mutable_ttl: 7200 - - alpine: - base_url: "https://dl-cdn.alpinelinux.org" - type: "remote" - package: "alpine" - description: "Alpine Linux APK package repository" - immutable_patterns: - - ".*/x86_64/.*\\.apk$" - cache: - immutable_ttl: 0 - mutable_ttl: 7200 - - almalinux: - base_url: "https://gsl-syd.mm.fcix.net/almalinux" - type: "remote" - package: "rpm" - description: "AlmaLinux RPM package repository" - immutable_patterns: - - ".*/x86_64/.*\\.rpm$" - - ".*/noarch/.*\\.rpm$" - - ".*/repodata/.*\\.sqlite.*$" - - ".*/repodata/.*\\.xml.*$" - - ".*/repodata/.*\\.yaml.*$" - - ".*/install.img" - - ".*/squashfs.img" - - ".*/updates.img" - - ".*/RPM-GPG-KEY-.*$" - cache: - immutable_ttl: 0 - mutable_ttl: 7200 - - ceph-reef: - base_url: "https://download.ceph.com/rpm-reef/" - type: "remote" - package: "rpm" - description: "Ceph Reef 18" - immutable_patterns: - - ".*/x86_64/.*\\.rpm$" - - ".*/noarch/.*\\.rpm$" - - ".*/repodata/.*\\.xml.*$" - cache: - immutable_ttl: 0 - mutable_ttl: 7200 - - ceph-squid: - base_url: "https://download.ceph.com/rpm-squid/" - type: "remote" - package: "rpm" - description: "Ceph Squid 19" - immutable_patterns: - - ".*/x86_64/.*\\.rpm$" - - ".*/noarch/.*\\.rpm$" - - ".*/repodata/.*\\.xml.*$" - cache: - immutable_ttl: 0 - mutable_ttl: 7200 - - ceph-tentacle: - base_url: "https://download.ceph.com/rpm-tentacle/" - type: "remote" - package: "rpm" - description: "Ceph Tentacle 20" - immutable_patterns: - - ".*/x86_64/.*\\.rpm$" - - ".*/noarch/.*\\.rpm$" - - ".*/repodata/.*\\.xml.*$" - cache: - immutable_ttl: 0 - mutable_ttl: 7200 - - epel: - base_url: "https://gsl-syd.mm.fcix.net/epel" - type: "remote" - package: "rpm" - description: "EPEL (Extra Packages for Enterprise Linux)" - immutable_patterns: - - ".*/Everything/x86_64/.*\\.rpm$" - - ".*/noarch/.*\\.rpm$" - - ".*/repodata/.*\\.sqlite.*$" - - ".*/repodata/.*\\.xml.*$" - - ".*/repodata/.*\\.yaml.*$" - - "RPM-GPG-KEY-.*$" - cache: - immutable_ttl: 0 - mutable_ttl: 7200 - - fedora: - base_url: "https://gsl-syd.mm.fcix.net/fedora/linux" - type: "remote" - package: "rpm" - description: "Fedora Linux RPM package repository" - immutable_patterns: - - "releases/.*/Everything/x86_64/.*\\.rpm$" - - "updates/.*/Everything/x86_64/.*\\.rpm$" - - "development/.*/Everything/x86_64/.*\\.rpm$" - - ".*/noarch/.*\\.rpm$" - - ".*/repodata/.*\\.xml.*$" - cache: - immutable_ttl: 0 - mutable_ttl: 7200 - - frr: - base_url: "https://rpm.frrouting.org/repo" - type: "remote" - package: "rpm" - description: "FRR RPM package repository" - immutable_patterns: - - ".*\\.rpm$" - - ".*/repodata/.*\\.xml.*$" - cache: - immutable_ttl: 0 - mutable_ttl: 7200 - - mariadb: - base_url: "http://mariadb.mirror.digitalpacific.com.au/yum" - type: "remote" - package: "rpm" - description: "MariaDB RPM package repository" - immutable_patterns: - - ".*\\.rpm$" - - ".*/repodata/.*\\.xml.*$" - - ".*/RPM-GPG-KEY-.*$" - cache: - immutable_ttl: 0 - mutable_ttl: 7200 - - openvox: - base_url: "https://yum.voxpupuli.org" - type: "remote" - package: "rpm" - description: "OpenVox RPM package repository" - immutable_patterns: - - ".*\\.rpm$" - - ".*/repodata/.*\\.xml.*$" - - "GPG-KEY-.*$" - cache: - immutable_ttl: 0 - mutable_ttl: 7200 - - postgresql: - base_url: "https://download.postgresql.org/pub/repos/yum" - type: "remote" - package: "rpm" - description: "PostgreSQL RPM package repository" - immutable_patterns: - - ".*\\.rpm$" - - ".*/repodata/.*\\.xml.*$" - - ".*/RPM-GPG-KEY-.*$" - - ".*/PGDG-RPM-GPG-KEY-.*$" - cache: - immutable_ttl: 0 - mutable_ttl: 7200 - - rke2: - base_url: "https://rpm.rancher.io" - type: "remote" - package: "rpm" - description: "RKE2 RPM package repository" - immutable_patterns: - - ".*\\.rpm$" - - ".*/repodata/.*\\.xml.*$" - - "public.key$" - cache: - immutable_ttl: 0 - mutable_ttl: 7200 - - zfs: - base_url: "http://download.zfsonlinux.org" - type: "remote" - package: "rpm" - description: "ZFS RPM package repository" - immutable_patterns: - - ".*\\.rpm$" - - ".*/repodata/.*\\.xml.*$" - cache: - immutable_ttl: 0 - mutable_ttl: 7200 - - claude-ai: - base_url: "https://downloads.claude.ai" - type: "remote" - package: "generic" - description: "Anthropic Claude Code binary releases" - mutable_patterns: - - "claude-code-releases/.*/manifest.json$" - immutable_patterns: - - "claude-code-releases/.*/linux-x64/claude$" - - "claude-code-releases/.*/linux-arm64/claude$" - - "claude-code-releases/.*/linux-x64-musl/claude$" - - "claude-code-releases/.*/linux-arm64-musl/claude$" - cache: - immutable_ttl: 0 - mutable_ttl: 7200 - - local-generic: - type: "local" - package: "generic" - description: "Local generic file repository" - cache: - immutable_ttl: 0 - mutable_ttl: 0 - - ghcr: - base_url: "https://ghcr.io" - type: "remote" - package: "docker" - description: "GitHub Container Registry" - immutable_patterns: - - "^cloudnative-pg/cloudnative-pg" - - "^openvoxproject/" - - "^stakater/reloader" - - "^voxpupuli/puppetboard" - cache: - immutable_ttl: 0 - mutable_ttl: 300 - - dockerhub: - base_url: "https://registry-1.docker.io" - type: "remote" - package: "docker" - description: "Docker Hub registry" - immutable_patterns: - - "^library/busybox" - - "^library/nginx" - - "^library/postgres" - - "^library/redis" - - "^beats/filebeat" - - "^bitnami/" - - "^curlimages/curl" - - "^emberstack/kubernetes-reflector" - - "^hashicorp/vault-secrets-operator" - - "^jfrog/" - - "^rancher/" - - "^ubi9/ubi-minimal" - - "^victoriametrics/" - - "^woodpeckerci/" - cache: - immutable_ttl: 0 - mutable_ttl: 300 - - quay: - base_url: "https://quay.io" - type: "remote" - package: "docker" - description: "Quay.io container registry" - immutable_patterns: - - "^brancz/kube-rbac-proxy" - - "^cephcsi/cephcsi" - - "^jetstack/cert-manager-" - cache: - immutable_ttl: 0 - mutable_ttl: 300 - - k8s-registry: - base_url: "https://registry.k8s.io" - type: "remote" - package: "docker" - description: "Kubernetes container registry" - immutable_patterns: - - "^external-dns/external-dns" - - "^sig-storage/" - cache: - immutable_ttl: 0 - mutable_ttl: 300 - - gitlab: - base_url: "https://registry.gitlab.com" - type: "remote" - package: "docker" - description: "GitLab container registry" - immutable_patterns: - - "^purelb/purelb" - cache: - immutable_ttl: 0 - mutable_ttl: 300 - - elastic: - base_url: "https://docker.elastic.co" - type: "remote" - package: "docker" - description: "Elastic container registry" - immutable_patterns: - - "^eck/eck-operator" - cache: - immutable_ttl: 0 - mutable_ttl: 300 - - gcr: - base_url: "https://gcr.io" - type: "remote" - package: "docker" - description: "Google Container Registry" - immutable_patterns: - - "^k8s-staging-nfd/node-feature-discovery" - cache: - immutable_ttl: 0 - mutable_ttl: 300