@@ -240,57 +240,50 @@ For security and performance reasons, it is advised to disallow the usage of
240240[remote bases](https://github.com/kubernetes-sigs/kustomize/blob/a7f4db7fb41e17b2c826a524f545e6174b4dc6ac/examples/remoteBuild.md)
241241in Kustomize overlays. To enforce this setting, platform admins can set the `--no-remote-bases=true` flag for kustomize-controller.
242242
243- **Note:** This flag prevents the usage of remote bases only, i.e. a Git repository or a sub directory.
244- It does not affect the usage of remote targets pointing to a single file.
245-
246243When using remote bases, the manifests are fetched over HTTPS from their remote source on every reconciliation e.g. :
247244
248245` ` ` yaml
249- # infra/kyverno /kustomization.yaml
246+ # apps/podinfo /kustomization.yaml
250247apiVersion: kustomize.config.k8s.io/v1beta1
251248kind: Kustomization
252249resources:
253- - https://github.com/stefanprodan/podinfo/deploy/overlays/dev ?ref=master
250+ - https://github.com/stefanprodan/podinfo/kustomize ?ref=master
254251` ` `
255252
256253To take advantage of Flux's verification and caching features,
257254you can replace the `kustomization.yaml` with a Flux source definition :
258255
259256` ` ` yaml
260- apiVersion: source.toolkit.fluxcd.io/v1beta2
257+ apiVersion: source.toolkit.fluxcd.io/v1
261258kind: OCIRepository
262259metadata:
263- name: kyverno
264- namespace: flux-system
260+ name: podinfo
261+ namespace: apps
265262spec:
266263 interval: 60m
267- url: oci://ghcr.io/kyverno/manifests/kyverno
268- ref: # pull the latest patch release evey hour
269- semver: 1.8.x
270- verify: # enable Cosign keyless verification
271- provider: cosign
264+ url: oci://ghcr.io/stefanprodan/manifests/podinfo
265+ ref: # pull the latest stable version every hour
266+ semver: ">=1.0.0"
272267` ` `
273268
274- Then to reconcile the manifests on a cluster, you'll use the ones from the verified source :
269+ Then, to reconcile the manifests on a cluster, you'll use the ones from the Flux source :
275270
276271` ` ` yaml
277272apiVersion: kustomize.toolkit.fluxcd.io/v1
278273kind: Kustomization
279274metadata:
280- name: kyverno
281- namespace: flux-system
275+ name: podinfo
276+ namespace: apps
282277spec:
283- interval: 360m
278+ interval: 60m
279+ retryInterval: 5m
284280 prune: true
285281 wait: true
286- timeout: 5m
282+ timeout: 3m
287283 sourceRef:
288284 kind: OCIRepository
289- name: kyverno
290- path: ./
291- kubeConfig:
292- secretRef:
293- name: staging-cluster
285+ name: podinfo
286+ path: ./kustomize
294287` ` `
295288
296289# ## Should I be using Kustomize Helm chart plugin?
@@ -301,58 +294,53 @@ Kustomize plugins which shell-out to arbitrary binaries insides the kustomize-co
301294Instead of using Kustomize to deploy charts, e.g. :
302295
303296` ` ` yaml
304- # infra/kyverno /kustomization.yaml
297+ # infra/metrics-server /kustomization.yaml
305298apiVersion: kustomize.config.k8s.io/v1beta1
306299kind: Kustomization
307- namespace: kyverno
300+ namespace: monitoring
308301resources:
309- - kyverno -namespace.yaml
302+ - monitoring -namespace.yaml
310303helmCharts:
311- - name: kyverno
304+ - name: metrics-server
312305 valuesInline:
313- networkPolicy :
314- enabled: true
315- releaseName: kyverno
316- version: 2.6 .0
317- repo: https://kyverno .github.io/kyverno /
306+ args :
307+ - --kubelet-insecure-tls
308+ releaseName: metrics-server
309+ version: 3.12 .0
310+ repo: https://kubernetes-sigs .github.io/metrics-server /
318311` ` `
319312
320313You can take advantage of Flux's OCI and native Helm features,
321314by replacing the `kustomization.yaml` with a Flux Helm definition :
322315
323316` ` ` yaml
324317apiVersion: source.toolkit.fluxcd.io/v1
325- kind: HelmRepository
318+ kind: OCIRepository
326319metadata:
327- name: kyverno
328- namespace: flux-system
320+ name: metrics-server
321+ namespace: monitoring
329322spec:
330- interval: 6h
331- url: oci://ghcr.io/kyverno/charts
332- type: oci
323+ interval: 1h
324+ layerSelector:
325+ mediaType: "application/vnd.cncf.helm.chart.content.v1.tar+gzip"
326+ operation: copy
327+ url: oci://ghcr.io/controlplaneio-fluxcd/charts/metrics-server
328+ ref:
329+ semver: "3.x" # auto upgrade to the latest minor version
333330---
334331apiVersion: helm.toolkit.fluxcd.io/v2
335332kind: HelmRelease
336333metadata:
337- name: kyverno
338- namespace: flux-system
334+ name: metrics-server
335+ namespace: monitoring
339336spec:
340- interval: 6h
341- releaseName: kyverno
342- targetNamespace: kyverno
343- install:
344- createNamespace: true
345- chart:
346- spec:
347- chart: kyverno
348- version: 2.6.0
349- interval: 6h
350- sourceRef:
351- kind: HelmRepository
352- name: kyverno
337+ interval: 1h
338+ chartRef:
339+ kind: OCIRepository
340+ name: metrics-server
353341 values:
354- networkPolicy :
355- enabled: true
342+ args :
343+ - --kubelet-insecure-tls
356344` ` `
357345
358346# ## What is the behavior of Kustomize used by Flux?
@@ -442,38 +430,42 @@ Create a Helm release with `kubectl`:
442430cat << EOF | kubectl apply -f -
443431---
444432apiVersion: source.toolkit.fluxcd.io/v1
445- kind: HelmRepository
433+ kind: OCIRepository
446434metadata:
447- name: bitnami
448- namespace: flux-system
435+ name: kube-prometheus-stack
436+ namespace: monitoring
449437spec:
450- interval: 30m
451- url: https://charts.bitnami.com/bitnami
438+ interval: 1h
439+ layerSelector:
440+ mediaType: "application/vnd.cncf.helm.chart.content.v1.tar+gzip"
441+ operation: copy
442+ url: oci://ghcr.io/prometheus-community/charts/kube-prometheus-stack
443+ ref:
444+ semver: "72.x"
452445---
453446apiVersion: helm.toolkit.fluxcd.io/v2
454447kind: HelmRelease
455448metadata:
456- name: metrics-server
457- namespace: kube-system
449+ name: kube-prometheus-stack
450+ namespace: monitoring
458451spec:
459- interval: 60m
460- releaseName: metrics-server
461- chart:
462- spec:
463- chart: metrics-server
464- version: "^5.x"
465- sourceRef:
466- kind: HelmRepository
467- name: bitnami
468- namespace: flux-system
452+ interval: 1h
453+ timeout: 10m
454+ chartRef:
455+ kind: OCIRepository
456+ name: kube-prometheus-stack
457+ install:
458+ crds: Create
459+ upgrade:
460+ crds: CreateReplace
469461 values:
470- apiService :
471- create: true
462+ alertmanager :
463+ enabled: false
472464EOF
473465` ` `
474466
475467Based on the above definition, Flux will upgrade the release automatically
476- when Bitnami publishes a new version of the metrics-server chart.
468+ when a new minor or patch version is available for the kube-prometheus-stack chart.
477469
478470# ## How do I set local overrides to a Helm chart?
479471
0 commit comments