diff --git a/helm/charts/flux-config/Chart.yaml b/helm/charts/flux-config/Chart.yaml index e8bb554..a744880 100644 --- a/helm/charts/flux-config/Chart.yaml +++ b/helm/charts/flux-config/Chart.yaml @@ -17,7 +17,7 @@ icon: "https://avatars.githubusercontent.com/u/52158677?s=200&v=4" # This is the chart version. This version number should be incremented each time you make changes # to the chart and its templates, including the app version. # Versions are expected to follow Semantic Versioning (https://semver.org/) -version: 0.0.20 +version: 0.0.21 # This is the version number of the application being deployed. This version number should be # incremented each time you make changes to the application. Versions are not expected to # follow Semantic Versioning. They should reflect the version the application is using. diff --git a/helm/charts/flux-config/README.md b/helm/charts/flux-config/README.md index b0842b3..a960009 100644 --- a/helm/charts/flux-config/README.md +++ b/helm/charts/flux-config/README.md @@ -2,7 +2,7 @@ # flux-config -![Version: 0.0.20](https://img.shields.io/badge/Version-0.0.20-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 2.6.0](https://img.shields.io/badge/AppVersion-2.6.0-informational?style=flat-square) +![Version: 0.0.21](https://img.shields.io/badge/Version-0.0.21-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 2.6.0](https://img.shields.io/badge/AppVersion-2.6.0-informational?style=flat-square) A Helm Chart to template flux manifests to leverage GitOps on a OpenMCP cluster. @@ -58,6 +58,9 @@ A Helm Chart to template flux manifests to leverage GitOps on a OpenMCP cluster. | helmReleases | list | `[{"name":"","namespace":"default","spec":null}]` | defines independent [`kind: HelmReleases`](https://fluxcd.io/flux/components/helm/api/v2/) manifest without the generation of `kind: GitRepository`. | | helmReleases[0].name | string | `""` | defines k8s [`metadata.name`](https://kubernetes.io/docs/reference/kubernetes-api/common-definitions/object-meta/#ObjectMeta) value of `kind: GitRepository` | | helmReleases[0].namespace | string | `"default"` | *(optional)* defines k8s [`metadata.namespace`](https://kubernetes.io/docs/reference/kubernetes-api/common-definitions/object-meta/#ObjectMeta) value of `kind: GitRepository` | +| helmRepositorys | list | `[{"name":"","namespace":"default","spec":null}]` | defines [`kind: HelmRepository`](https://fluxcd.io/flux/components/source/api/v1/) manifest. | +| helmRepositorys[0].name | string | `""` | defines k8s [`metadata.name`](https://kubernetes.io/docs/reference/kubernetes-api/common-definitions/object-meta/#ObjectMeta) value of `kind: HelmRepository` | +| helmRepositorys[0].namespace | string | `"default"` | *(optional)* defines k8s [`metadata.namespace`](https://kubernetes.io/docs/reference/kubernetes-api/common-definitions/object-meta/#ObjectMeta) value of `kind: HelmRepository` | | kustomizations | list | `[{"commonMetadata":[],"components":{},"decryption":[],"dependsOn":{},"force":null,"healthChecks":{},"images":{},"interval":null,"kubeConfig":[],"name":"","namePrefix":null,"nameSuffix":null,"namespace":"ns1","patches":null,"path":"","postBuild":[],"prune":null,"retryInterval":null,"serviceAccountName":null,"sourceRef":{"apiVersion":"","kind":"GitRepository","name":"","namespace":"ns1"},"suspend":null,"targetnamespace":"ns1","timeout":null,"wait":null}]` | defines independent [`kind: Kustomization`](https://fluxcd.io/flux/components/kustomize/api/v1/#kustomize.toolkit.fluxcd.io/v1.Kustomization) manifest without the generation of `kind: GitRepository`. | | kustomizations[0].commonMetadata | list | `[]` | [commonMetadata](https://fluxcd.io/flux/components/kustomize/kustomizations/#common-metadata) is an *(optional)*field used to specify any metadata that should be applied to all the Kustomization’s resources. | | kustomizations[0].components | object | `{}` | [components](https://fluxcd.io/flux/components/kustomize/kustomizations/#components) is an *(optional)*list used to specify Kustomize components. This allows using reusable pieces of configuration logic that can be included from multiple overlays. | @@ -88,8 +91,8 @@ A Helm Chart to template flux manifests to leverage GitOps on a OpenMCP cluster. | kustomizations[0].timeout | string | `nil` | *(optional)* [Timeout](https://fluxcd.io/flux/components/kustomize/api/v1/#kustomize.toolkit.fluxcd.io/v1.KustomizationSpec) for validation, apply and health checking operations. Defaults to ‘Interval’ duration. e.g. 1m | | kustomizations[0].wait | string | `nil` | [wait](https://fluxcd.io/flux/components/kustomize/kustomizations/#wait) is an *(optional)*boolean field to perform health checks for all reconciled resources as part of the Kustomization. If set to true, .spec.healthChecks is ignored. | | ociRepositorys | list | `[{"name":"","namespace":"default","spec":null}]` | defines [`kind: OCIRepository`](https://fluxcd.io/flux/components/source/api/v1/) manifest. | -| ociRepositorys[0].name | string | `""` | defines k8s [`metadata.name`](https://kubernetes.io/docs/reference/kubernetes-api/common-definitions/object-meta/#ObjectMeta) value of `kind: GitRepository` | -| ociRepositorys[0].namespace | string | `"default"` | *(optional)* defines k8s [`metadata.namespace`](https://kubernetes.io/docs/reference/kubernetes-api/common-definitions/object-meta/#ObjectMeta) value of `kind: GitRepository` | +| ociRepositorys[0].name | string | `""` | defines k8s [`metadata.name`](https://kubernetes.io/docs/reference/kubernetes-api/common-definitions/object-meta/#ObjectMeta) value of `kind: OCIRepository` | +| ociRepositorys[0].namespace | string | `"default"` | *(optional)* defines k8s [`metadata.namespace`](https://kubernetes.io/docs/reference/kubernetes-api/common-definitions/object-meta/#ObjectMeta) value of `kind: OCIRepository` | ---------------------------------------------- Autogenerated from chart metadata using [helm-docs v1.14.2](https://github.com/norwoodj/helm-docs/releases/v1.14.2) \ No newline at end of file diff --git a/helm/charts/flux-config/templates/helm-repository.yml b/helm/charts/flux-config/templates/helm-repository.yml new file mode 100644 index 0000000..deae233 --- /dev/null +++ b/helm/charts/flux-config/templates/helm-repository.yml @@ -0,0 +1,15 @@ +{{- range $item := .Values.helmRepositorys}} + {{- if and ($item) (ne $item.name "")}} +--- +apiVersion: source.toolkit.fluxcd.io/v1 +kind: HelmRepository +metadata: + name: {{required "A valid value is required! (.Values.helmRepository[].name)" $item.name | lower | quote}} + namespace: {{ $item.namespace | default $.Values.defaults.namespace | lower | quote }} + labels: + openmcp.cloud/blueprint-building-block: "{{ $.Chart.Name }}" + openmcp.cloud/blueprint-building-block-version: "{{ $.Chart.Version }}" +spec: + {{- toYaml $item.spec | nindent 2 }} + {{- end }} +{{- end }} \ No newline at end of file diff --git a/helm/charts/flux-config/values.ci.yaml b/helm/charts/flux-config/values.ci.yaml index 0abe7a2..dfaa853 100644 --- a/helm/charts/flux-config/values.ci.yaml +++ b/helm/charts/flux-config/values.ci.yaml @@ -8,7 +8,14 @@ ociRepositorys: interval: 5m0s url: oci://ghcr.io/stefanprodan/manifests/podinfo ref: - tag: lates + tag: latest +######################################################################################################################## +helmRepositorys: + - name: podinfo + namespace: "default" + spec: + interval: 5m0s + url: https://stefanprodan.github.io/podinfo ######################################################################################################################## helmReleases: - name: podinfo diff --git a/helm/charts/flux-config/values.yaml b/helm/charts/flux-config/values.yaml index 044d401..ca7292f 100644 --- a/helm/charts/flux-config/values.yaml +++ b/helm/charts/flux-config/values.yaml @@ -8,13 +8,22 @@ defaults: ######################################################################################################################## # -- defines [`kind: OCIRepository`](https://fluxcd.io/flux/components/source/api/v1/) manifest. ociRepositorys: - # ociRepositorys[0].name -- defines k8s [`metadata.name`](https://kubernetes.io/docs/reference/kubernetes-api/common-definitions/object-meta/#ObjectMeta) value of `kind: GitRepository` + # ociRepositorys[0].name -- defines k8s [`metadata.name`](https://kubernetes.io/docs/reference/kubernetes-api/common-definitions/object-meta/#ObjectMeta) value of `kind: OCIRepository` - name: "" - # -- *(optional)* defines k8s [`metadata.namespace`](https://kubernetes.io/docs/reference/kubernetes-api/common-definitions/object-meta/#ObjectMeta) value of `kind: GitRepository` + # -- *(optional)* defines k8s [`metadata.namespace`](https://kubernetes.io/docs/reference/kubernetes-api/common-definitions/object-meta/#ObjectMeta) value of `kind: OCIRepository` namespace: "default" # spec -- defines k8s `spec` structured value of `kind: OCIRepository`. See [API browser](https://fluxcd.io/flux/components/source/ocirepositories/) spec: ######################################################################################################################## +# -- defines [`kind: HelmRepository`](https://fluxcd.io/flux/components/source/api/v1/) manifest. +helmRepositorys: + # helmRepositorys[0].name -- defines k8s [`metadata.name`](https://kubernetes.io/docs/reference/kubernetes-api/common-definitions/object-meta/#ObjectMeta) value of `kind: HelmRepository` + - name: "" + # -- *(optional)* defines k8s [`metadata.namespace`](https://kubernetes.io/docs/reference/kubernetes-api/common-definitions/object-meta/#ObjectMeta) value of `kind: HelmRepository` + namespace: "default" + # spec -- defines k8s `spec` structured value of `kind: HelmRepository`. See [API browser](https://fluxcd.io/flux/components/source/helmrepositories/) + spec: +######################################################################################################################## # -- defines independent [`kind: HelmReleases`](https://fluxcd.io/flux/components/helm/api/v2/) manifest without the generation of `kind: GitRepository`. helmReleases: # helmReleases[0].name -- defines k8s [`metadata.name`](https://kubernetes.io/docs/reference/kubernetes-api/common-definitions/object-meta/#ObjectMeta) value of `kind: GitRepository`