refactor: helm repositories

This commit is contained in:
auricom
2025-06-29 21:50:33 +02:00
parent 52e68d7b53
commit 0ae57c7d1b
24 changed files with 253 additions and 124 deletions

View File

@@ -2,5 +2,8 @@
# yaml-language-server: $schema=https://raw.githubusercontent.com/SchemaStore/schemastore/master/src/schemas/json/kustomization.json
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
components:
- ../../components/common
resources:
- ./helm
- ./landing-page/ks.yaml

View File

@@ -0,0 +1,53 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/bjw-s/helm-charts/main/charts/other/app-template/schemas/helmrelease-helm-v2.schema.json
apiVersion: helm.toolkit.fluxcd.io/v2beta2
kind: HelmRelease
metadata:
name: &app ngnode-landing-page-staging
spec:
interval: 1h
chartRef:
kind: OCIRepository
name: app-template
install:
remediation:
retries: 3
upgrade:
cleanupOnFail: true
remediation:
strategy: rollback
retries: 3
values:
controllers:
ngnode-landing-page-staging:
containers:
app:
image:
repository: ghcr.io/ngnodehq/landing-page
tag: v0.1.2
resources:
requests:
cpu: 5m
memory: 10Mi
limits:
memory: 400Mi
service:
app:
controller: *app
ports:
http:
port: 3000
ingress:
app:
enabled: true
className: external
hosts:
- host: &host "{{ .Release.Name }}.${SECRET_EXTERNAL_DOMAIN}"
paths:
- path: /
service:
identifier: app
port: http
tls:
- hosts:
- *host

View File

@@ -3,12 +3,6 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ./ingress-nginx.yaml
- ./jetstack.yaml
- ./k8s-gateway.yaml
- ./kyverno.yaml
- ./openebs.yaml
- ./postfinance.yaml
- ./prometheus-community.yaml
- ./rook-ceph.yaml
- ./stevehipwell.yaml
- ./helmrelease.yaml
generatorOptions:
disableNameSuffixHash: true

View File

@@ -0,0 +1,65 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/bjw-s/helm-charts/main/charts/other/app-template/schemas/helmrelease-helm-v2.schema.json
apiVersion: helm.toolkit.fluxcd.io/v2
kind: HelmRelease
metadata:
name: &app ngnode-landing-page
spec:
interval: 1h
chartRef:
kind: OCIRepository
name: app-template
install:
remediation:
retries: 3
upgrade:
cleanupOnFail: true
remediation:
strategy: rollback
retries: 3
values:
controllers:
ngnode-landing-page:
containers:
app:
image:
repository: ghcr.io/ngnodehq/landing-page
tag: v0.1.4@sha256:87e6e0c73a0a97b1ad47d9d09d006c1b56257964561f2f47c9111f3cfb54399a
resources:
requests:
cpu: 5m
memory: 10Mi
limits:
memory: 400Mi
service:
app:
controller: *app
ports:
http:
port: 3000
ingress:
app:
enabled: true
className: external
hosts:
- host: &host "{{ .Release.Name }}.${SECRET_EXTERNAL_DOMAIN}"
paths:
- path: /
service:
identifier: app
port: http
- host: www.ngnode.com
paths:
- path: /
service:
identifier: app
port: http
- host: ngnode.com
paths:
- path: /
service:
identifier: app
port: http
tls:
- hosts:
- *host

View File

@@ -0,0 +1,8 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/SchemaStore/schemastore/master/src/schemas/json/kustomization.json
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ./helmrelease.yaml
generatorOptions:
disableNameSuffixHash: true

View File

@@ -0,0 +1,50 @@
---
# yaml-language-server: $schema=https://kubernetes-schemas.pages.dev/kustomize.toolkit.fluxcd.io/kustomization_v1.json
apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization
metadata:
name: &app ngnode-landing-page
namespace: flux-system
spec:
targetNamespace: ngnode
commonMetadata:
labels:
app.kubernetes.io/name: *app
path: ./kubernetes/apps/ngnode/landing-page/app
prune: true
sourceRef:
kind: GitRepository
name: flux-system
wait: false
interval: 30m
retryInterval: 1m
timeout: 5m
postBuild:
substitute:
APP: *app
---
# yaml-language-server: $schema=https://kubernetes-schemas.pages.dev/kustomize.toolkit.fluxcd.io/kustomization_v1.json
apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization
metadata:
name: &app ngnode-landing-page-staging
namespace: flux-system
spec:
targetNamespace: ngnode
commonMetadata:
labels:
app.kubernetes.io/name: *app
path: ./kubernetes/apps/ngnode/landing-page/app-staging
prune: true
sourceRef:
kind: GitRepository
name: flux-system
wait: false
interval: 30m
retryInterval: 1m
timeout: 5m
postBuild:
substitute:
APP: *app

View File

@@ -7,4 +7,3 @@ kind: Kustomization
resources:
- ./flux-instance/ks.yaml
- ./flux-operator/ks.yaml
- ./repositories

View File

@@ -1,11 +0,0 @@
---
# yaml-language-server: $schema=https://kubernetes-schemas.pages.dev/source.toolkit.fluxcd.io/helmrepository_v1.json
apiVersion: source.toolkit.fluxcd.io/v1
kind: HelmRepository
metadata:
name: ingress-nginx
namespace: flux-system
spec:
interval: 2h
url: https://kubernetes.github.io/ingress-nginx
timeout: 3m

View File

@@ -1,11 +0,0 @@
---
# yaml-language-server: $schema=https://kubernetes-schemas.pages.dev/source.toolkit.fluxcd.io/helmrepository_v1.json
apiVersion: source.toolkit.fluxcd.io/v1
kind: HelmRepository
metadata:
name: jetstack
namespace: flux-system
spec:
interval: 2h
url: https://charts.jetstack.io/
timeout: 3m

View File

@@ -1,10 +0,0 @@
---
# yaml-language-server: $schema=https://kubernetes-schemas.pages.dev/source.toolkit.fluxcd.io/helmrepository_v1.json
apiVersion: source.toolkit.fluxcd.io/v1
kind: HelmRepository
metadata:
name: k8s-gateway
namespace: flux-system
spec:
interval: 2h
url: https://ori-edge.github.io/k8s_gateway

View File

@@ -1,11 +0,0 @@
---
# yaml-language-server: $schema=https://kubernetes-schemas.pages.dev/source.toolkit.fluxcd.io/helmrepository_v1.json
apiVersion: source.toolkit.fluxcd.io/v1
kind: HelmRepository
metadata:
name: kyverno
namespace: flux-system
spec:
type: oci
interval: 5m
url: oci://ghcr.io/kyverno/charts

View File

@@ -1,10 +0,0 @@
---
# yaml-language-server: $schema=https://kubernetes-schemas.pages.dev/source.toolkit.fluxcd.io/helmrepository_v1beta2.json
apiVersion: source.toolkit.fluxcd.io/v1
kind: HelmRepository
metadata:
name: openebs
namespace: flux-system
spec:
interval: 2h
url: https://openebs.github.io/openebs

View File

@@ -1,10 +0,0 @@
---
# yaml-language-server: $schema=https://kubernetes-schemas.pages.dev/source.toolkit.fluxcd.io/helmrepository_v1.json
apiVersion: source.toolkit.fluxcd.io/v1
kind: HelmRepository
metadata:
name: postfinance
namespace: flux-system
spec:
interval: 2h
url: https://postfinance.github.io/kubelet-csr-approver

View File

@@ -1,11 +0,0 @@
---
# yaml-language-server: $schema=https://kubernetes-schemas.pages.dev/source.toolkit.fluxcd.io/helmrepository_v1.json
apiVersion: source.toolkit.fluxcd.io/v1
kind: HelmRepository
metadata:
name: prometheus-community
namespace: flux-system
spec:
interval: 2h
url: https://prometheus-community.github.io/helm-charts
timeout: 3m

View File

@@ -1,11 +0,0 @@
---
# yaml-language-server: $schema=https://kubernetes-schemas.pages.dev/source.toolkit.fluxcd.io/helmrepository_v1.json
apiVersion: source.toolkit.fluxcd.io/v1
kind: HelmRepository
metadata:
name: rook-ceph
namespace: flux-system
spec:
interval: 2h
url: https://charts.rook.io/release
timeout: 3m

View File

@@ -1,11 +0,0 @@
---
# yaml-language-server: $schema=https://kubernetes-schemas.pages.dev/source.toolkit.fluxcd.io/helmrepository_v1.json
apiVersion: source.toolkit.fluxcd.io/v1
kind: HelmRepository
metadata:
name: stevehipwell
namespace: flux-system
spec:
type: oci
interval: 5m
url: oci://ghcr.io/stevehipwell/helm-charts

View File

@@ -1,26 +1,35 @@
---
# yaml-language-server: $schema=https://schemas.budimanjojo.com/source.toolkit.fluxcd.io/ocirepository_v1beta2.json
apiVersion: source.toolkit.fluxcd.io/v1
kind: OCIRepository
metadata:
name: kyverno
spec:
interval: 30m
timeout: 60s
url: oci://ghcr.io/kyverno/charts/kyverno
ref:
tag: 3.4.4
layerSelector:
mediaType: application/vnd.cncf.helm.chart.content.v1.tar+gzip
operation: copy
---
# yaml-language-server: $schema=https://kubernetes-schemas.pages.dev/helm.toolkit.fluxcd.io/helmrelease_v2.json
apiVersion: helm.toolkit.fluxcd.io/v2
kind: HelmRelease
metadata:
name: &app kyverno
spec:
interval: 30m
chart:
spec:
chart: kyverno
version: 3.4.4
sourceRef:
kind: HelmRepository
interval: 1h
chartRef:
kind: OCIRepository
name: kyverno
namespace: flux-system
install:
remediation:
retries: 3
retries: -1
upgrade:
cleanupOnFail: true
remediation:
strategy: rollback
retries: 3
values:
crds:

View File

@@ -1,4 +1,14 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/helmrepository-source-v1.json
apiVersion: source.toolkit.fluxcd.io/v1
kind: HelmRepository
metadata:
name: k8s-gateway
namespace: network # Required for Renovate lookups
spec:
interval: 1h
url: https://ori-edge.github.io/k8s_gateway
---
# yaml-language-server: $schema=https://kubernetes-schemas.pages.dev/helm.toolkit.fluxcd.io/helmrelease_v2.json
apiVersion: helm.toolkit.fluxcd.io/v2
kind: HelmRelease

View File

@@ -13,7 +13,6 @@ spec:
sourceRef:
kind: HelmRepository
name: ingress-nginx
namespace: flux-system
install:
remediation:
retries: 3

View File

@@ -1,4 +1,14 @@
---
# yaml-language-server: $schema=https://kubernetes-schemas.pages.dev/source.toolkit.fluxcd.io/helmrepository_v1.json
apiVersion: source.toolkit.fluxcd.io/v1
kind: HelmRepository
metadata:
name: ingress-nginx
spec:
interval: 2h
url: https://kubernetes.github.io/ingress-nginx
timeout: 3m
---
# yaml-language-server: $schema=https://kubernetes-schemas.pages.dev/helm.toolkit.fluxcd.io/helmrelease_v2.json
apiVersion: helm.toolkit.fluxcd.io/v2
kind: HelmRelease
@@ -13,7 +23,6 @@ spec:
sourceRef:
kind: HelmRepository
name: ingress-nginx
namespace: flux-system
install:
remediation:
retries: 3

View File

@@ -13,7 +13,6 @@ spec:
sourceRef:
kind: HelmRepository
name: prometheus-community
namespace: flux-system
interval: 5m
install:
crds: Skip

View File

@@ -1,4 +1,15 @@
---
# yaml-language-server: $schema=https://kubernetes-schemas.pages.dev/source.toolkit.fluxcd.io/helmrepository_v1.json
apiVersion: source.toolkit.fluxcd.io/v1
kind: HelmRepository
metadata:
name: prometheus-community
namespace: flux-system
spec:
interval: 2h
url: https://prometheus-community.github.io/helm-charts
timeout: 3m
---
# yaml-language-server: $schema=https://kubernetes-schemas.pages.dev/helm.toolkit.fluxcd.io/helmrelease_v2.json
apiVersion: helm.toolkit.fluxcd.io/v2
kind: HelmRelease
@@ -13,7 +24,6 @@ spec:
sourceRef:
kind: HelmRepository
name: prometheus-community
namespace: flux-system
install:
remediation:
retries: 3

View File

@@ -1,4 +1,13 @@
---
# yaml-language-server: $schema=https://kubernetes-schemas.pages.dev/source.toolkit.fluxcd.io/helmrepository_v1beta2.json
apiVersion: source.toolkit.fluxcd.io/v1
kind: HelmRepository
metadata:
name: openebs
spec:
interval: 2h
url: https://openebs.github.io/openebs
---
# yaml-language-server: $schema=https://kubernetes-schemas.pages.dev/helm.toolkit.fluxcd.io/helmrelease_v2.json
apiVersion: helm.toolkit.fluxcd.io/v2
kind: HelmRelease
@@ -13,7 +22,6 @@ spec:
sourceRef:
kind: HelmRepository
name: openebs
namespace: flux-system
install:
remediation:
retries: 3

View File

@@ -1,4 +1,14 @@
---
# yaml-language-server: $schema=https://kubernetes-schemas.pages.dev/source.toolkit.fluxcd.io/helmrepository_v1.json
apiVersion: source.toolkit.fluxcd.io/v1
kind: HelmRepository
metadata:
name: rook-ceph
spec:
interval: 2h
url: https://charts.rook.io/release
timeout: 3m
---
# yaml-language-server: $schema=https://kubernetes-schemas.pages.dev/helm.toolkit.fluxcd.io/helmrelease_v2.json
apiVersion: helm.toolkit.fluxcd.io/v2
kind: HelmRelease
@@ -13,7 +23,6 @@ spec:
sourceRef:
kind: HelmRepository
name: rook-ceph
namespace: flux-system
maxHistory: 2
install:
createNamespace: true