From 829313f42582be88d9a0873642a10ea676b386d1 Mon Sep 17 00:00:00 2001 From: JJGadgets Date: Thu, 13 Nov 2025 17:20:51 +0800 Subject: [PATCH] feat: begin migrating to OCIRepository for Helm charts --- .renovate/customManagers.json5 | 11 ++++++++ .../flux/helm/oci/app-template/chart.yaml | 28 +++++++++++++++++++ .../helm/oci/app-template/kustomization.yaml | 7 +++++ kube/templates/test/app/hr.yaml | 12 +++----- kube/templates/test/ks.yaml | 6 +++- 5 files changed, 55 insertions(+), 9 deletions(-) create mode 100644 kube/repos/flux/helm/oci/app-template/chart.yaml create mode 100644 kube/repos/flux/helm/oci/app-template/kustomization.yaml diff --git a/.renovate/customManagers.json5 b/.renovate/customManagers.json5 index 9da3b9a8..157ed639 100644 --- a/.renovate/customManagers.json5 +++ b/.renovate/customManagers.json5 @@ -12,6 +12,17 @@ "versioningTemplate": "helm", "depNameTemplate": "app-template", "registryUrlTemplate": "https://bjw-s-labs.github.io/helm-charts" + }, + { + "description": ["app-template OCI versions"], + "customType": "regex", + "managerFilePatterns": ["/^kube/.+/ks\\.ya?ml$/"], + "matchStrings": [ + "APP_TEMPLATE: \\\"+(?[\\d\\.]+)\\\"+", + ], + "datasourceTemplate": "docker", + "versioningTemplate": "docker", + "depNameTemplate": "ghcr.io/bjw-s-labs/helm/app-template" } ] } diff --git a/kube/repos/flux/helm/oci/app-template/chart.yaml b/kube/repos/flux/helm/oci/app-template/chart.yaml new file mode 100644 index 00000000..8d82373a --- /dev/null +++ b/kube/repos/flux/helm/oci/app-template/chart.yaml @@ -0,0 +1,28 @@ +--- +# yaml-language-server: $schema=https://flux.jank.ing/ocirepository-source-v1.json?test +apiVersion: source.toolkit.fluxcd.io/v1 +kind: OCIRepository +metadata: + name: app-template +spec: + interval: 1h + layerSelector: + mediaType: application/vnd.cncf.helm.chart.content.v1.tar+gzip + operation: copy + url: oci://ghcr.io/bjw-s-labs/helm/app-template + ref: + tag: "${APP_TEMPLATE:=4.4.0}" +--- +# yaml-language-server: $schema=https://flux.jank.ing/ocirepository-source-v1.json?test +apiVersion: source.toolkit.fluxcd.io/v1 +kind: OCIRepository +metadata: + name: app-template-renovate-test +spec: + interval: 1h + layerSelector: + mediaType: application/vnd.cncf.helm.chart.content.v1.tar+gzip + operation: copy + url: oci://ghcr.io/bjw-s-labs/helm/app-template + ref: + tag: 4.2.0 diff --git a/kube/repos/flux/helm/oci/app-template/kustomization.yaml b/kube/repos/flux/helm/oci/app-template/kustomization.yaml new file mode 100644 index 00000000..b5533dbb --- /dev/null +++ b/kube/repos/flux/helm/oci/app-template/kustomization.yaml @@ -0,0 +1,7 @@ +--- +# yaml-language-server: $schema=https://json.schemastore.org/kustomization +apiVersion: kustomize.config.k8s.io/v1alpha1 +kind: Component +resources: + - ./chart.yaml + diff --git a/kube/templates/test/app/hr.yaml b/kube/templates/test/app/hr.yaml index 2d28eaa8..897bbe02 100644 --- a/kube/templates/test/app/hr.yaml +++ b/kube/templates/test/app/hr.yaml @@ -7,14 +7,10 @@ metadata: namespace: *app spec: interval: 5m - chart: - spec: - chart: app-template - version: 4.4.0 - sourceRef: - name: bjw-s - kind: HelmRepository - namespace: flux-system + chartRef: + kind: OCIRepository + name: *app + namespace: *ns values: controllers: app: diff --git a/kube/templates/test/ks.yaml b/kube/templates/test/ks.yaml index 5d7b68bb..afe58d06 100644 --- a/kube/templates/test/ks.yaml +++ b/kube/templates/test/ks.yaml @@ -13,11 +13,15 @@ spec: path: ./kube/deploy/apps/${APPNAME}/app components: - ../../../core/flux-system/alerts/template/ + - ../../../../repos/flux/helm/oci/app-template/ dependsOn: - name: crds namespace: flux-system - - name: ${APPNAME}-db + # - name: ${APPNAME}-db - name: ${APPNAME}-pvc + postBuild: + substitute: + APP_TEMPLATE: 4.4.0 --- apiVersion: kustomize.toolkit.fluxcd.io/v1 kind: Kustomization