diff --git a/README.md b/README.md index b19c87c..5183605 100644 --- a/README.md +++ b/README.md @@ -27,8 +27,9 @@ deployment/modules/ kubernetes/ ├── apps/ -│ ├── base/ # chart sources + reusable manifests -│ └── / # env overlay: Flux Kustomizations (version pins + dependsOn) +│ ├── base// # ks.yaml (the app's Flux Kustomization) + app/ (chart source + manifests) +│ └── // # namespace overlay: which base apps run; deltas from base as patches/.yaml +├── components/ # shared kustomize Components (targetNamespace replacement) └── clusters/ └── / ├── apps.yaml # cluster-apps entry point (the Flux Instance points here) diff --git a/docs/03-cluster-architecture-guide.md b/docs/03-cluster-architecture-guide.md index afccabf..4de7fd8 100644 --- a/docs/03-cluster-architecture-guide.md +++ b/docs/03-cluster-architecture-guide.md @@ -63,13 +63,19 @@ Kubernetes with flannel CNI and kube-proxy in nftables mode. **Multus** runs as Everything above the OS is managed by Flux v2. Manifests are organized as reusable bases plus per-environment overlays: -* **`kubernetes/apps/base/`** holds the chart sources and reusable manifests. -* **`kubernetes/apps//`** holds the per-app Flux Kustomizations — each pins its chart version and declares its `dependsOn` ordering. +* **`kubernetes/apps/base//`** is the app's single home: `ks.yaml` is its Flux Kustomization (`dependsOn` ordering, health checks) and `app/` is what that Kustomization deploys (chart source + manifests). Both environments reconcile the same definition. +* **`kubernetes/apps///`** is the per-namespace overlay: a kustomization listing which base apps run there, plus the Namespace itself. Anything an environment needs to differ from `base/` is one patch file per app under the overlay's `patches/` — today that's production's version pins. +* **`kubernetes/components/`** holds shared kustomize Components — today just **`replacements/`**, included by every overlay. It copies the overlay Namespace's name into each Flux Kustomization's `spec.targetNamespace`, so an app deploys into whichever namespace lists it and `base/` stays namespace-agnostic. The corollary: an app belongs in the folder of the namespace its resources live in — `mesh-gateway-api` sits under `default/` because its TLSRoute must share a namespace with the `default/kubernetes` Service it fronts. The overlay's namespace is forced onto every namespaced resource (explicit values are overridden), so an app that genuinely needs resources in a foreign namespace would need a `reject` entry in the component. + * **`kubernetes/clusters//apps.yaml`** is the `cluster-apps` entry point the Flux Instance points at. -### Version pinning +Cluster-wide HelmRelease lifecycle defaults (`crds: CreateReplace` on install and upgrade, `cleanupOnFail`, `RemediateOnFailure` with retries) are defined once in `kubernetes/clusters//apps.yaml`: `cluster-apps` **appends** them (a JSON6902 `add /spec/patches/-`) to every child Kustomization, which applies them to every HelmRelease it renders — individual releases declare only what deviates. Appending, rather than strategic-merging, is what lets the per-app override patches, which ride the same list, coexist: a strategic-merge there would replace the list and silently erase every override. Every base `ks.yaml` seeds `patches: []` so the append always has a list to land on; a new app that omits it fails the environment build loudly. -Chart (and the CloudNativePG Postgres image) versions are pinned per environment in the overlay Kustomization patches, so a version can be promoted in staging and soaked before production moves. Staging rides `base/` directly; production pins via patches. OCI chart refs pin a **tag and its digest** — Flux gives the digest precedence, so the production patches must carry both or a base digest would silently override the env pin; a renovate custom manager keeps each tag+digest pair in lockstep, and the built-in flux manager maintains the pairs in `base/`. Component versions are not documented here because they change continuously — the manifests are the source of truth. +### Environment overrides + +An overlay changes an app by dropping one patch file per app in its `patches/` folder and listing it in the overlay's `patches:` section — so the overlay reads as "these apps, these deltas". Each file patches the app's Flux Kustomization to inject a `spec.patches` override onto whatever resource must differ from `base/`; it has to ride the Kustomization because the app's resources are rendered by Flux from `base/`, never by the overlay build. + +Today the only overrides are version pins. Chart (and the CloudNativePG Postgres image) versions are pinned in production, so a version can be promoted in staging — which rides `base/` directly and floats with it — and soaked before production moves. OCI chart refs pin a **tag and its digest** — Flux gives the digest precedence, so the production patches must carry both or a base digest would silently override the env pin; a renovate custom manager keeps each tag+digest pair in lockstep, and the built-in flux manager maintains the pairs in `base/`. Component versions are not documented here because they change continuously — the manifests are the source of truth. ### Configuration substitution diff --git a/docs/05-shipping-metrics-guide.md b/docs/05-shipping-metrics-guide.md index 6101c7c..8b3269f 100644 --- a/docs/05-shipping-metrics-guide.md +++ b/docs/05-shipping-metrics-guide.md @@ -130,9 +130,9 @@ Logs ride the identical `vmauth` hostnames (VictoriaLogs sits behind the same ga ## What backs this centrally -For maintainers, the ingestion config lives in `kubernetes/apps/base/victoria-metrics-users/`: +For maintainers, the ingestion config lives in `kubernetes/apps/base/victoria-metrics-users/app/`: * `vmuser-remote-clusters.yaml` - the `VMUser` behind the public gateway. It holds the shared token (via ExternalSecret) and the allowed path set: metrics and logs insert **and** select (remote clusters can read back, not only write). * `vmauth-mesh-unauth.yaml` - the unauthenticated `mesh-unauth` `VMAuth` on the mesh gateway, with the same path set exposed through `unauthorizedUserAccessSpec`. -The public gateway itself is the `vmauth` defined in the VictoriaMetrics release (`kubernetes/apps/base/victoria-metrics/helmrelease.yaml`), reached at `vmauth.`. +The public gateway itself is the `vmauth` defined in the VictoriaMetrics release (`kubernetes/apps/base/victoria-metrics/app/helmrelease.yaml`), reached at `vmauth.`. diff --git a/docs/06-dashboards-and-alerts-guide.md b/docs/06-dashboards-and-alerts-guide.md index 4e9774c..46dd756 100644 --- a/docs/06-dashboards-and-alerts-guide.md +++ b/docs/06-dashboards-and-alerts-guide.md @@ -57,10 +57,10 @@ The bundle's CRs carry sane defaults (`instanceSelector: {dashboards: grafana}`, ## Model B: authored in this repo (o11y's own) -For this cluster's own dashboards and alerts, they live under `kubernetes/apps/base/grafana/` and deploy with the grafana Flux Kustomization: +For this cluster's own dashboards and alerts, they live under `kubernetes/apps/base/grafana/app/` and deploy with the grafana Flux Kustomization: -- **Dashboards** - `base/grafana/dashboards/*.yaml`, one `GrafanaDashboard` per file, `folderRef: o11y`. Source the JSON however fits: `spec.url` to a raw/grafana.com dashboard (the envoy and cnpg dashboards), `spec.gzipJson`, etc. Map dashboard `__inputs` (e.g. `DS_PROMETHEUS`) to `datasourceName: VictoriaMetrics`. -- **Alerts** - `base/grafana/alerts-*.yaml`, a `GrafanaAlertRuleGroup` with `folderRef: o11y`. +- **Dashboards** - `base/grafana/app/dashboards/*.yaml`, one `GrafanaDashboard` per file, `folderRef: o11y`. Source the JSON however fits: `spec.url` to a raw/grafana.com dashboard (the envoy and cnpg dashboards), `spec.gzipJson`, etc. Map dashboard `__inputs` (e.g. `DS_PROMETHEUS`) to `datasourceName: VictoriaMetrics`. +- **Alerts** - `base/grafana/app/alerts-*.yaml`, a `GrafanaAlertRuleGroup` with `folderRef: o11y`. ## Alerting @@ -80,7 +80,7 @@ route: So **routing follows the folder automatically** - no per-rule label to set or keep in sync. (Existing rules still carry a `project` label; it is now legacy and unused for routing.) Notifications additionally group by `cluster` (alongside `grafana_folder` and `alertname`), so the same rule firing in two clusters arrives as two grouped notifications rather than one blended message. -**Alert rule anatomy.** A `GrafanaAlertRuleGroup` (`folderRef: `, an `interval`) with `rules[]`; each rule is a query stage on the `VictoriaMetrics` datasource (uid `VictoriaMetrics`) feeding a `__expr__` threshold stage, plus `labels` (at least `severity`) and `annotations`. See `base/grafana/alerts-o11y.yaml` for the pattern (a heartbeat plus target-down and ingestion-stalled rules). Rules that span clusters aggregate `by (cluster)` so each cluster raises its own instance and carries its `cluster` label into notification grouping; store-local rules (the heartbeat, ingestion-stalled) don't. +**Alert rule anatomy.** A `GrafanaAlertRuleGroup` (`folderRef: `, an `interval`) with `rules[]`; each rule is a query stage on the `VictoriaMetrics` datasource (uid `VictoriaMetrics`) feeding a `__expr__` threshold stage, plus `labels` (at least `severity`) and `annotations`. See `base/grafana/app/alerts-o11y.yaml` for the pattern (a heartbeat plus target-down and ingestion-stalled rules). Rules that span clusters aggregate `by (cluster)` so each cluster raises its own instance and carries its `cluster` label into notification grouping; store-local rules (the heartbeat, ingestion-stalled) don't. ## If you ship metrics to this cluster and want dashboards/alerts diff --git a/kubernetes/apps/base/cert-manager-issuers/clusterissuer.yaml b/kubernetes/apps/base/cert-manager-issuers/app/clusterissuer.yaml similarity index 100% rename from kubernetes/apps/base/cert-manager-issuers/clusterissuer.yaml rename to kubernetes/apps/base/cert-manager-issuers/app/clusterissuer.yaml diff --git a/kubernetes/apps/base/cert-manager-issuers/externalsecret.yaml b/kubernetes/apps/base/cert-manager-issuers/app/externalsecret.yaml similarity index 100% rename from kubernetes/apps/base/cert-manager-issuers/externalsecret.yaml rename to kubernetes/apps/base/cert-manager-issuers/app/externalsecret.yaml diff --git a/kubernetes/apps/base/cert-manager-issuers/app/kustomization.yaml b/kubernetes/apps/base/cert-manager-issuers/app/kustomization.yaml new file mode 100644 index 0000000..826fd22 --- /dev/null +++ b/kubernetes/apps/base/cert-manager-issuers/app/kustomization.yaml @@ -0,0 +1,6 @@ +--- +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - ./externalsecret.yaml + - ./clusterissuer.yaml diff --git a/kubernetes/apps/staging/cert-manager/cert-manager-issuers.yaml b/kubernetes/apps/base/cert-manager-issuers/ks.yaml similarity index 84% rename from kubernetes/apps/staging/cert-manager/cert-manager-issuers.yaml rename to kubernetes/apps/base/cert-manager-issuers/ks.yaml index bde003b..6cfac3f 100644 --- a/kubernetes/apps/staging/cert-manager/cert-manager-issuers.yaml +++ b/kubernetes/apps/base/cert-manager-issuers/ks.yaml @@ -10,10 +10,10 @@ spec: - name: cert-manager - name: cluster-secret-store interval: 1h - path: ./kubernetes/apps/base/cert-manager-issuers + path: ./kubernetes/apps/base/cert-manager-issuers/app + patches: [] prune: true sourceRef: kind: GitRepository name: flux-system namespace: flux-system - targetNamespace: cert-manager diff --git a/kubernetes/apps/base/cert-manager-issuers/kustomization.yaml b/kubernetes/apps/base/cert-manager-issuers/kustomization.yaml index 826fd22..7fa2050 100644 --- a/kubernetes/apps/base/cert-manager-issuers/kustomization.yaml +++ b/kubernetes/apps/base/cert-manager-issuers/kustomization.yaml @@ -2,5 +2,4 @@ apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization resources: - - ./externalsecret.yaml - - ./clusterissuer.yaml + - ./ks.yaml diff --git a/kubernetes/apps/base/cert-manager-webhook-ovh/helmrelease.yaml b/kubernetes/apps/base/cert-manager-webhook-ovh/app/helmrelease.yaml similarity index 80% rename from kubernetes/apps/base/cert-manager-webhook-ovh/helmrelease.yaml rename to kubernetes/apps/base/cert-manager-webhook-ovh/app/helmrelease.yaml index 3c82177..6060338 100644 --- a/kubernetes/apps/base/cert-manager-webhook-ovh/helmrelease.yaml +++ b/kubernetes/apps/base/cert-manager-webhook-ovh/app/helmrelease.yaml @@ -8,19 +8,7 @@ spec: chartRef: kind: OCIRepository name: cert-manager-webhook-ovh - install: - crds: CreateReplace interval: 1h - rollback: - cleanupOnFail: true - upgrade: - cleanupOnFail: true - crds: CreateReplace - strategy: - name: RemediateOnFailure - remediation: - remediateLastFailure: true - retries: 2 values: groupName: acme.futostatus.com issuers: diff --git a/kubernetes/apps/base/cert-manager-webhook-ovh/app/kustomization.yaml b/kubernetes/apps/base/cert-manager-webhook-ovh/app/kustomization.yaml new file mode 100644 index 0000000..2ccd5a8 --- /dev/null +++ b/kubernetes/apps/base/cert-manager-webhook-ovh/app/kustomization.yaml @@ -0,0 +1,6 @@ +--- +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - ./helmrelease.yaml + - ./ocirepository.yaml diff --git a/kubernetes/apps/base/cert-manager-webhook-ovh/ocirepository.yaml b/kubernetes/apps/base/cert-manager-webhook-ovh/app/ocirepository.yaml similarity index 100% rename from kubernetes/apps/base/cert-manager-webhook-ovh/ocirepository.yaml rename to kubernetes/apps/base/cert-manager-webhook-ovh/app/ocirepository.yaml diff --git a/kubernetes/apps/staging/cert-manager/cert-manager-webhook-ovh.yaml b/kubernetes/apps/base/cert-manager-webhook-ovh/ks.yaml similarity index 86% rename from kubernetes/apps/staging/cert-manager/cert-manager-webhook-ovh.yaml rename to kubernetes/apps/base/cert-manager-webhook-ovh/ks.yaml index 143df21..c7ef475 100644 --- a/kubernetes/apps/staging/cert-manager/cert-manager-webhook-ovh.yaml +++ b/kubernetes/apps/base/cert-manager-webhook-ovh/ks.yaml @@ -14,10 +14,10 @@ spec: name: cert-manager-webhook-ovh namespace: cert-manager interval: 1h - path: ./kubernetes/apps/base/cert-manager-webhook-ovh + path: ./kubernetes/apps/base/cert-manager-webhook-ovh/app + patches: [] prune: true sourceRef: kind: GitRepository name: flux-system namespace: flux-system - targetNamespace: cert-manager diff --git a/kubernetes/apps/base/cert-manager-webhook-ovh/kustomization.yaml b/kubernetes/apps/base/cert-manager-webhook-ovh/kustomization.yaml index 2ccd5a8..7fa2050 100644 --- a/kubernetes/apps/base/cert-manager-webhook-ovh/kustomization.yaml +++ b/kubernetes/apps/base/cert-manager-webhook-ovh/kustomization.yaml @@ -2,5 +2,4 @@ apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization resources: - - ./helmrelease.yaml - - ./ocirepository.yaml + - ./ks.yaml diff --git a/kubernetes/apps/base/cert-manager/helmrelease.yaml b/kubernetes/apps/base/cert-manager/app/helmrelease.yaml similarity index 71% rename from kubernetes/apps/base/cert-manager/helmrelease.yaml rename to kubernetes/apps/base/cert-manager/app/helmrelease.yaml index 706b53c..ac66c6f 100644 --- a/kubernetes/apps/base/cert-manager/helmrelease.yaml +++ b/kubernetes/apps/base/cert-manager/app/helmrelease.yaml @@ -8,19 +8,7 @@ spec: chartRef: kind: OCIRepository name: cert-manager - install: - crds: CreateReplace interval: 1h - rollback: - cleanupOnFail: true - upgrade: - cleanupOnFail: true - crds: CreateReplace - strategy: - name: RemediateOnFailure - remediation: - remediateLastFailure: true - retries: 2 values: crds: enabled: true diff --git a/kubernetes/apps/base/cert-manager/app/kustomization.yaml b/kubernetes/apps/base/cert-manager/app/kustomization.yaml new file mode 100644 index 0000000..2ccd5a8 --- /dev/null +++ b/kubernetes/apps/base/cert-manager/app/kustomization.yaml @@ -0,0 +1,6 @@ +--- +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - ./helmrelease.yaml + - ./ocirepository.yaml diff --git a/kubernetes/apps/base/cert-manager/ocirepository.yaml b/kubernetes/apps/base/cert-manager/app/ocirepository.yaml similarity index 100% rename from kubernetes/apps/base/cert-manager/ocirepository.yaml rename to kubernetes/apps/base/cert-manager/app/ocirepository.yaml diff --git a/kubernetes/apps/staging/cert-manager/cert-manager.yaml b/kubernetes/apps/base/cert-manager/ks.yaml similarity index 87% rename from kubernetes/apps/staging/cert-manager/cert-manager.yaml rename to kubernetes/apps/base/cert-manager/ks.yaml index 9491e03..bdd48db 100644 --- a/kubernetes/apps/staging/cert-manager/cert-manager.yaml +++ b/kubernetes/apps/base/cert-manager/ks.yaml @@ -14,10 +14,10 @@ spec: name: cert-manager namespace: cert-manager interval: 1h - path: ./kubernetes/apps/base/cert-manager + path: ./kubernetes/apps/base/cert-manager/app + patches: [] prune: true sourceRef: kind: GitRepository name: flux-system namespace: flux-system - targetNamespace: cert-manager diff --git a/kubernetes/apps/base/cert-manager/kustomization.yaml b/kubernetes/apps/base/cert-manager/kustomization.yaml index 2ccd5a8..7fa2050 100644 --- a/kubernetes/apps/base/cert-manager/kustomization.yaml +++ b/kubernetes/apps/base/cert-manager/kustomization.yaml @@ -2,5 +2,4 @@ apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization resources: - - ./helmrelease.yaml - - ./ocirepository.yaml + - ./ks.yaml diff --git a/kubernetes/apps/base/cloudnative-pg/helmrelease.yaml b/kubernetes/apps/base/cloudnative-pg/app/helmrelease.yaml similarity index 64% rename from kubernetes/apps/base/cloudnative-pg/helmrelease.yaml rename to kubernetes/apps/base/cloudnative-pg/app/helmrelease.yaml index 8e6bdbe..62bb32f 100644 --- a/kubernetes/apps/base/cloudnative-pg/helmrelease.yaml +++ b/kubernetes/apps/base/cloudnative-pg/app/helmrelease.yaml @@ -9,15 +9,6 @@ spec: kind: OCIRepository name: cloudnative-pg interval: 1h - rollback: - cleanupOnFail: true - upgrade: - cleanupOnFail: true - strategy: - name: RemediateOnFailure - remediation: - remediateLastFailure: true - retries: 2 values: crds: create: true diff --git a/kubernetes/apps/base/cloudnative-pg/app/kustomization.yaml b/kubernetes/apps/base/cloudnative-pg/app/kustomization.yaml new file mode 100644 index 0000000..2ccd5a8 --- /dev/null +++ b/kubernetes/apps/base/cloudnative-pg/app/kustomization.yaml @@ -0,0 +1,6 @@ +--- +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - ./helmrelease.yaml + - ./ocirepository.yaml diff --git a/kubernetes/apps/base/cloudnative-pg/ocirepository.yaml b/kubernetes/apps/base/cloudnative-pg/app/ocirepository.yaml similarity index 100% rename from kubernetes/apps/base/cloudnative-pg/ocirepository.yaml rename to kubernetes/apps/base/cloudnative-pg/app/ocirepository.yaml diff --git a/kubernetes/apps/staging/cnpg-system/cloudnative-pg.yaml b/kubernetes/apps/base/cloudnative-pg/ks.yaml similarity index 86% rename from kubernetes/apps/staging/cnpg-system/cloudnative-pg.yaml rename to kubernetes/apps/base/cloudnative-pg/ks.yaml index e50625f..96f040c 100644 --- a/kubernetes/apps/staging/cnpg-system/cloudnative-pg.yaml +++ b/kubernetes/apps/base/cloudnative-pg/ks.yaml @@ -12,10 +12,10 @@ spec: name: cloudnative-pg namespace: cnpg-system interval: 1h - path: ./kubernetes/apps/base/cloudnative-pg + path: ./kubernetes/apps/base/cloudnative-pg/app + patches: [] prune: true sourceRef: kind: GitRepository name: flux-system namespace: flux-system - targetNamespace: cnpg-system diff --git a/kubernetes/apps/base/cloudnative-pg/kustomization.yaml b/kubernetes/apps/base/cloudnative-pg/kustomization.yaml index 2ccd5a8..7fa2050 100644 --- a/kubernetes/apps/base/cloudnative-pg/kustomization.yaml +++ b/kubernetes/apps/base/cloudnative-pg/kustomization.yaml @@ -2,5 +2,4 @@ apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization resources: - - ./helmrelease.yaml - - ./ocirepository.yaml + - ./ks.yaml diff --git a/kubernetes/apps/base/cluster-secret-store/clustersecretstore.yaml b/kubernetes/apps/base/cluster-secret-store/app/clustersecretstore.yaml similarity index 100% rename from kubernetes/apps/base/cluster-secret-store/clustersecretstore.yaml rename to kubernetes/apps/base/cluster-secret-store/app/clustersecretstore.yaml diff --git a/kubernetes/apps/base/cluster-secret-store/app/kustomization.yaml b/kubernetes/apps/base/cluster-secret-store/app/kustomization.yaml new file mode 100644 index 0000000..d4e6ae1 --- /dev/null +++ b/kubernetes/apps/base/cluster-secret-store/app/kustomization.yaml @@ -0,0 +1,5 @@ +--- +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - ./clustersecretstore.yaml diff --git a/kubernetes/apps/staging/external-secrets/cluster-secret-store.yaml b/kubernetes/apps/base/cluster-secret-store/ks.yaml similarity index 83% rename from kubernetes/apps/staging/external-secrets/cluster-secret-store.yaml rename to kubernetes/apps/base/cluster-secret-store/ks.yaml index 9dd8db4..98fc64a 100644 --- a/kubernetes/apps/staging/external-secrets/cluster-secret-store.yaml +++ b/kubernetes/apps/base/cluster-secret-store/ks.yaml @@ -10,11 +10,11 @@ spec: - name: external-secrets - name: netbird-router interval: 1h - path: ./kubernetes/apps/base/cluster-secret-store + path: ./kubernetes/apps/base/cluster-secret-store/app + patches: [] prune: true sourceRef: kind: GitRepository name: flux-system namespace: flux-system - targetNamespace: external-secrets wait: true diff --git a/kubernetes/apps/base/cluster-secret-store/kustomization.yaml b/kubernetes/apps/base/cluster-secret-store/kustomization.yaml index d4e6ae1..7fa2050 100644 --- a/kubernetes/apps/base/cluster-secret-store/kustomization.yaml +++ b/kubernetes/apps/base/cluster-secret-store/kustomization.yaml @@ -2,4 +2,4 @@ apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization resources: - - ./clustersecretstore.yaml + - ./ks.yaml diff --git a/kubernetes/apps/base/descheduler/helmrelease.yaml b/kubernetes/apps/base/descheduler/app/helmrelease.yaml similarity index 92% rename from kubernetes/apps/base/descheduler/helmrelease.yaml rename to kubernetes/apps/base/descheduler/app/helmrelease.yaml index 650d2ad..b0aab17 100644 --- a/kubernetes/apps/base/descheduler/helmrelease.yaml +++ b/kubernetes/apps/base/descheduler/app/helmrelease.yaml @@ -9,15 +9,6 @@ spec: kind: OCIRepository name: descheduler interval: 1h - rollback: - cleanupOnFail: true - upgrade: - cleanupOnFail: true - strategy: - name: RemediateOnFailure - remediation: - remediateLastFailure: true - retries: 2 values: kind: Deployment deschedulerPolicyAPIVersion: descheduler/v1alpha2 diff --git a/kubernetes/apps/base/descheduler/app/kustomization.yaml b/kubernetes/apps/base/descheduler/app/kustomization.yaml new file mode 100644 index 0000000..2ccd5a8 --- /dev/null +++ b/kubernetes/apps/base/descheduler/app/kustomization.yaml @@ -0,0 +1,6 @@ +--- +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - ./helmrelease.yaml + - ./ocirepository.yaml diff --git a/kubernetes/apps/base/descheduler/ocirepository.yaml b/kubernetes/apps/base/descheduler/app/ocirepository.yaml similarity index 100% rename from kubernetes/apps/base/descheduler/ocirepository.yaml rename to kubernetes/apps/base/descheduler/app/ocirepository.yaml diff --git a/kubernetes/apps/staging/kube-system/descheduler.yaml b/kubernetes/apps/base/descheduler/ks.yaml similarity index 88% rename from kubernetes/apps/staging/kube-system/descheduler.yaml rename to kubernetes/apps/base/descheduler/ks.yaml index 6dcaee7..c6a0e60 100644 --- a/kubernetes/apps/staging/kube-system/descheduler.yaml +++ b/kubernetes/apps/base/descheduler/ks.yaml @@ -14,10 +14,10 @@ spec: name: descheduler namespace: kube-system interval: 1h - path: ./kubernetes/apps/base/descheduler + path: ./kubernetes/apps/base/descheduler/app + patches: [] prune: true sourceRef: kind: GitRepository name: flux-system namespace: flux-system - targetNamespace: kube-system diff --git a/kubernetes/apps/base/descheduler/kustomization.yaml b/kubernetes/apps/base/descheduler/kustomization.yaml index 2ccd5a8..7fa2050 100644 --- a/kubernetes/apps/base/descheduler/kustomization.yaml +++ b/kubernetes/apps/base/descheduler/kustomization.yaml @@ -2,5 +2,4 @@ apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization resources: - - ./helmrelease.yaml - - ./ocirepository.yaml + - ./ks.yaml diff --git a/kubernetes/apps/base/echo/helmrelease.yaml b/kubernetes/apps/base/echo/app/helmrelease.yaml similarity index 83% rename from kubernetes/apps/base/echo/helmrelease.yaml rename to kubernetes/apps/base/echo/app/helmrelease.yaml index 926df34..befa21d 100644 --- a/kubernetes/apps/base/echo/helmrelease.yaml +++ b/kubernetes/apps/base/echo/app/helmrelease.yaml @@ -9,15 +9,6 @@ spec: kind: OCIRepository name: echo interval: 1h - rollback: - cleanupOnFail: true - upgrade: - cleanupOnFail: true - strategy: - name: RemediateOnFailure - remediation: - remediateLastFailure: true - retries: 2 values: replicaCount: 3 config: diff --git a/kubernetes/apps/base/echo/app/kustomization.yaml b/kubernetes/apps/base/echo/app/kustomization.yaml new file mode 100644 index 0000000..2ccd5a8 --- /dev/null +++ b/kubernetes/apps/base/echo/app/kustomization.yaml @@ -0,0 +1,6 @@ +--- +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - ./helmrelease.yaml + - ./ocirepository.yaml diff --git a/kubernetes/apps/base/echo/ocirepository.yaml b/kubernetes/apps/base/echo/app/ocirepository.yaml similarity index 100% rename from kubernetes/apps/base/echo/ocirepository.yaml rename to kubernetes/apps/base/echo/app/ocirepository.yaml diff --git a/kubernetes/apps/staging/default/echo.yaml b/kubernetes/apps/base/echo/ks.yaml similarity index 89% rename from kubernetes/apps/staging/default/echo.yaml rename to kubernetes/apps/base/echo/ks.yaml index cf98848..aff3ff4 100644 --- a/kubernetes/apps/staging/default/echo.yaml +++ b/kubernetes/apps/base/echo/ks.yaml @@ -15,10 +15,10 @@ spec: name: echo namespace: default interval: 1h - path: ./kubernetes/apps/base/echo + path: ./kubernetes/apps/base/echo/app + patches: [] prune: true sourceRef: kind: GitRepository name: flux-system namespace: flux-system - targetNamespace: default diff --git a/kubernetes/apps/base/echo/kustomization.yaml b/kubernetes/apps/base/echo/kustomization.yaml index 2ccd5a8..7fa2050 100644 --- a/kubernetes/apps/base/echo/kustomization.yaml +++ b/kubernetes/apps/base/echo/kustomization.yaml @@ -2,5 +2,4 @@ apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization resources: - - ./helmrelease.yaml - - ./ocirepository.yaml + - ./ks.yaml diff --git a/kubernetes/apps/base/envoy-gateway/certificate.yaml b/kubernetes/apps/base/envoy-gateway/app/certificate.yaml similarity index 100% rename from kubernetes/apps/base/envoy-gateway/certificate.yaml rename to kubernetes/apps/base/envoy-gateway/app/certificate.yaml diff --git a/kubernetes/apps/base/envoy-gateway/helmrelease.yaml b/kubernetes/apps/base/envoy-gateway/app/helmrelease.yaml similarity index 67% rename from kubernetes/apps/base/envoy-gateway/helmrelease.yaml rename to kubernetes/apps/base/envoy-gateway/app/helmrelease.yaml index 5b060d7..d22134e 100644 --- a/kubernetes/apps/base/envoy-gateway/helmrelease.yaml +++ b/kubernetes/apps/base/envoy-gateway/app/helmrelease.yaml @@ -8,19 +8,7 @@ spec: chartRef: kind: OCIRepository name: envoy-gateway - install: - crds: CreateReplace interval: 1h - rollback: - cleanupOnFail: true - upgrade: - cleanupOnFail: true - crds: CreateReplace - strategy: - name: RemediateOnFailure - remediation: - remediateLastFailure: true - retries: 2 values: global: imageRegistry: mirror.gcr.io diff --git a/kubernetes/apps/base/envoy-gateway/app/kustomization.yaml b/kubernetes/apps/base/envoy-gateway/app/kustomization.yaml new file mode 100644 index 0000000..ab0509c --- /dev/null +++ b/kubernetes/apps/base/envoy-gateway/app/kustomization.yaml @@ -0,0 +1,8 @@ +--- +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - ./certificate.yaml + - ./helmrelease.yaml + - ./o11y.yaml + - ./ocirepository.yaml diff --git a/kubernetes/apps/base/envoy-gateway/o11y.yaml b/kubernetes/apps/base/envoy-gateway/app/o11y.yaml similarity index 100% rename from kubernetes/apps/base/envoy-gateway/o11y.yaml rename to kubernetes/apps/base/envoy-gateway/app/o11y.yaml diff --git a/kubernetes/apps/base/envoy-gateway/ocirepository.yaml b/kubernetes/apps/base/envoy-gateway/app/ocirepository.yaml similarity index 100% rename from kubernetes/apps/base/envoy-gateway/ocirepository.yaml rename to kubernetes/apps/base/envoy-gateway/app/ocirepository.yaml diff --git a/kubernetes/apps/staging/envoy-system/envoy-gateway.yaml b/kubernetes/apps/base/envoy-gateway/ks.yaml similarity index 87% rename from kubernetes/apps/staging/envoy-system/envoy-gateway.yaml rename to kubernetes/apps/base/envoy-gateway/ks.yaml index ed1a2b7..0f0dbbe 100644 --- a/kubernetes/apps/staging/envoy-system/envoy-gateway.yaml +++ b/kubernetes/apps/base/envoy-gateway/ks.yaml @@ -14,10 +14,10 @@ spec: name: envoy-gateway namespace: envoy-system interval: 1h - path: ./kubernetes/apps/base/envoy-gateway + path: ./kubernetes/apps/base/envoy-gateway/app + patches: [] prune: true sourceRef: kind: GitRepository name: flux-system namespace: flux-system - targetNamespace: envoy-system diff --git a/kubernetes/apps/base/envoy-gateway/kustomization.yaml b/kubernetes/apps/base/envoy-gateway/kustomization.yaml index ab0509c..7fa2050 100644 --- a/kubernetes/apps/base/envoy-gateway/kustomization.yaml +++ b/kubernetes/apps/base/envoy-gateway/kustomization.yaml @@ -2,7 +2,4 @@ apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization resources: - - ./certificate.yaml - - ./helmrelease.yaml - - ./o11y.yaml - - ./ocirepository.yaml + - ./ks.yaml diff --git a/kubernetes/apps/base/envoy-proxy/backendtrafficpolicy.yaml b/kubernetes/apps/base/envoy-proxy/app/backendtrafficpolicy.yaml similarity index 100% rename from kubernetes/apps/base/envoy-proxy/backendtrafficpolicy.yaml rename to kubernetes/apps/base/envoy-proxy/app/backendtrafficpolicy.yaml diff --git a/kubernetes/apps/base/envoy-proxy/clienttrafficpolicy.yaml b/kubernetes/apps/base/envoy-proxy/app/clienttrafficpolicy.yaml similarity index 100% rename from kubernetes/apps/base/envoy-proxy/clienttrafficpolicy.yaml rename to kubernetes/apps/base/envoy-proxy/app/clienttrafficpolicy.yaml diff --git a/kubernetes/apps/base/envoy-proxy/envoyproxy.yaml b/kubernetes/apps/base/envoy-proxy/app/envoyproxy.yaml similarity index 100% rename from kubernetes/apps/base/envoy-proxy/envoyproxy.yaml rename to kubernetes/apps/base/envoy-proxy/app/envoyproxy.yaml diff --git a/kubernetes/apps/base/envoy-proxy/gateway.yaml b/kubernetes/apps/base/envoy-proxy/app/gateway.yaml similarity index 100% rename from kubernetes/apps/base/envoy-proxy/gateway.yaml rename to kubernetes/apps/base/envoy-proxy/app/gateway.yaml diff --git a/kubernetes/apps/base/envoy-proxy/gatewayclass.yaml b/kubernetes/apps/base/envoy-proxy/app/gatewayclass.yaml similarity index 100% rename from kubernetes/apps/base/envoy-proxy/gatewayclass.yaml rename to kubernetes/apps/base/envoy-proxy/app/gatewayclass.yaml diff --git a/kubernetes/apps/base/envoy-proxy/app/kustomization.yaml b/kubernetes/apps/base/envoy-proxy/app/kustomization.yaml new file mode 100644 index 0000000..4fc3383 --- /dev/null +++ b/kubernetes/apps/base/envoy-proxy/app/kustomization.yaml @@ -0,0 +1,9 @@ +--- +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - ./backendtrafficpolicy.yaml + - ./clienttrafficpolicy.yaml + - ./envoyproxy.yaml + - ./gateway.yaml + - ./gatewayclass.yaml diff --git a/kubernetes/apps/production/envoy-system/envoy-proxy.yaml b/kubernetes/apps/base/envoy-proxy/ks.yaml similarity index 84% rename from kubernetes/apps/production/envoy-system/envoy-proxy.yaml rename to kubernetes/apps/base/envoy-proxy/ks.yaml index dee5a12..aac8a51 100644 --- a/kubernetes/apps/production/envoy-system/envoy-proxy.yaml +++ b/kubernetes/apps/base/envoy-proxy/ks.yaml @@ -9,11 +9,11 @@ spec: dependsOn: - name: envoy-gateway interval: 1h - path: ./kubernetes/apps/base/envoy-proxy + path: ./kubernetes/apps/base/envoy-proxy/app + patches: [] prune: true sourceRef: kind: GitRepository name: flux-system namespace: flux-system - targetNamespace: envoy-system wait: true diff --git a/kubernetes/apps/base/envoy-proxy/kustomization.yaml b/kubernetes/apps/base/envoy-proxy/kustomization.yaml index 4fc3383..7fa2050 100644 --- a/kubernetes/apps/base/envoy-proxy/kustomization.yaml +++ b/kubernetes/apps/base/envoy-proxy/kustomization.yaml @@ -2,8 +2,4 @@ apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization resources: - - ./backendtrafficpolicy.yaml - - ./clienttrafficpolicy.yaml - - ./envoyproxy.yaml - - ./gateway.yaml - - ./gatewayclass.yaml + - ./ks.yaml diff --git a/kubernetes/apps/base/external-secrets/helmrelease.yaml b/kubernetes/apps/base/external-secrets/app/helmrelease.yaml similarity index 66% rename from kubernetes/apps/base/external-secrets/helmrelease.yaml rename to kubernetes/apps/base/external-secrets/app/helmrelease.yaml index d980524..17e8322 100644 --- a/kubernetes/apps/base/external-secrets/helmrelease.yaml +++ b/kubernetes/apps/base/external-secrets/app/helmrelease.yaml @@ -8,19 +8,7 @@ spec: chartRef: kind: OCIRepository name: external-secrets - install: - crds: CreateReplace interval: 1h - rollback: - cleanupOnFail: true - upgrade: - cleanupOnFail: true - crds: CreateReplace - strategy: - name: RemediateOnFailure - remediation: - remediateLastFailure: true - retries: 2 values: # Resolve DNS via the CoreDNS futo.network zone podAnnotations: diff --git a/kubernetes/apps/base/external-secrets/app/kustomization.yaml b/kubernetes/apps/base/external-secrets/app/kustomization.yaml new file mode 100644 index 0000000..2ccd5a8 --- /dev/null +++ b/kubernetes/apps/base/external-secrets/app/kustomization.yaml @@ -0,0 +1,6 @@ +--- +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - ./helmrelease.yaml + - ./ocirepository.yaml diff --git a/kubernetes/apps/base/external-secrets/ocirepository.yaml b/kubernetes/apps/base/external-secrets/app/ocirepository.yaml similarity index 100% rename from kubernetes/apps/base/external-secrets/ocirepository.yaml rename to kubernetes/apps/base/external-secrets/app/ocirepository.yaml diff --git a/kubernetes/apps/staging/external-secrets/external-secrets.yaml b/kubernetes/apps/base/external-secrets/ks.yaml similarity index 89% rename from kubernetes/apps/staging/external-secrets/external-secrets.yaml rename to kubernetes/apps/base/external-secrets/ks.yaml index 5be3621..60d94d5 100644 --- a/kubernetes/apps/staging/external-secrets/external-secrets.yaml +++ b/kubernetes/apps/base/external-secrets/ks.yaml @@ -16,10 +16,10 @@ spec: name: external-secrets namespace: external-secrets interval: 1h - path: ./kubernetes/apps/base/external-secrets + path: ./kubernetes/apps/base/external-secrets/app + patches: [] prune: true sourceRef: kind: GitRepository name: flux-system namespace: flux-system - targetNamespace: external-secrets diff --git a/kubernetes/apps/base/external-secrets/kustomization.yaml b/kubernetes/apps/base/external-secrets/kustomization.yaml index 2ccd5a8..7fa2050 100644 --- a/kubernetes/apps/base/external-secrets/kustomization.yaml +++ b/kubernetes/apps/base/external-secrets/kustomization.yaml @@ -2,5 +2,4 @@ apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization resources: - - ./helmrelease.yaml - - ./ocirepository.yaml + - ./ks.yaml diff --git a/kubernetes/apps/base/grafana-operator/helmrelease.yaml b/kubernetes/apps/base/grafana-operator/app/helmrelease.yaml similarity index 61% rename from kubernetes/apps/base/grafana-operator/helmrelease.yaml rename to kubernetes/apps/base/grafana-operator/app/helmrelease.yaml index 8d73c38..160c028 100644 --- a/kubernetes/apps/base/grafana-operator/helmrelease.yaml +++ b/kubernetes/apps/base/grafana-operator/app/helmrelease.yaml @@ -8,19 +8,7 @@ spec: chartRef: kind: OCIRepository name: grafana-operator - install: - crds: CreateReplace interval: 1h - rollback: - cleanupOnFail: true - upgrade: - cleanupOnFail: true - crds: CreateReplace - strategy: - name: RemediateOnFailure - remediation: - remediateLastFailure: true - retries: 2 values: dashboard: enabled: false diff --git a/kubernetes/apps/base/grafana-operator/app/kustomization.yaml b/kubernetes/apps/base/grafana-operator/app/kustomization.yaml new file mode 100644 index 0000000..2ccd5a8 --- /dev/null +++ b/kubernetes/apps/base/grafana-operator/app/kustomization.yaml @@ -0,0 +1,6 @@ +--- +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - ./helmrelease.yaml + - ./ocirepository.yaml diff --git a/kubernetes/apps/base/grafana-operator/ocirepository.yaml b/kubernetes/apps/base/grafana-operator/app/ocirepository.yaml similarity index 100% rename from kubernetes/apps/base/grafana-operator/ocirepository.yaml rename to kubernetes/apps/base/grafana-operator/app/ocirepository.yaml diff --git a/kubernetes/apps/staging/o11y/grafana-operator.yaml b/kubernetes/apps/base/grafana-operator/ks.yaml similarity index 88% rename from kubernetes/apps/staging/o11y/grafana-operator.yaml rename to kubernetes/apps/base/grafana-operator/ks.yaml index aece9b9..71664ab 100644 --- a/kubernetes/apps/staging/o11y/grafana-operator.yaml +++ b/kubernetes/apps/base/grafana-operator/ks.yaml @@ -14,10 +14,10 @@ spec: name: grafana-operator namespace: o11y interval: 1h - path: ./kubernetes/apps/base/grafana-operator + path: ./kubernetes/apps/base/grafana-operator/app + patches: [] prune: true sourceRef: kind: GitRepository name: flux-system namespace: flux-system - targetNamespace: o11y diff --git a/kubernetes/apps/base/grafana-operator/kustomization.yaml b/kubernetes/apps/base/grafana-operator/kustomization.yaml index 2ccd5a8..7fa2050 100644 --- a/kubernetes/apps/base/grafana-operator/kustomization.yaml +++ b/kubernetes/apps/base/grafana-operator/kustomization.yaml @@ -2,5 +2,4 @@ apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization resources: - - ./helmrelease.yaml - - ./ocirepository.yaml + - ./ks.yaml diff --git a/kubernetes/apps/base/grafana-postgres/cluster.yaml b/kubernetes/apps/base/grafana-postgres/app/cluster.yaml similarity index 100% rename from kubernetes/apps/base/grafana-postgres/cluster.yaml rename to kubernetes/apps/base/grafana-postgres/app/cluster.yaml diff --git a/kubernetes/apps/base/grafana-postgres/externalsecret.yaml b/kubernetes/apps/base/grafana-postgres/app/externalsecret.yaml similarity index 100% rename from kubernetes/apps/base/grafana-postgres/externalsecret.yaml rename to kubernetes/apps/base/grafana-postgres/app/externalsecret.yaml diff --git a/kubernetes/apps/base/grafana-postgres/app/kustomization.yaml b/kubernetes/apps/base/grafana-postgres/app/kustomization.yaml new file mode 100644 index 0000000..596d750 --- /dev/null +++ b/kubernetes/apps/base/grafana-postgres/app/kustomization.yaml @@ -0,0 +1,6 @@ +--- +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - ./externalsecret.yaml + - ./cluster.yaml diff --git a/kubernetes/apps/staging/o11y/grafana-postgres.yaml b/kubernetes/apps/base/grafana-postgres/ks.yaml similarity index 89% rename from kubernetes/apps/staging/o11y/grafana-postgres.yaml rename to kubernetes/apps/base/grafana-postgres/ks.yaml index f25145d..12e9e36 100644 --- a/kubernetes/apps/staging/o11y/grafana-postgres.yaml +++ b/kubernetes/apps/base/grafana-postgres/ks.yaml @@ -16,10 +16,10 @@ spec: name: grafana-postgres namespace: o11y interval: 1h - path: ./kubernetes/apps/base/grafana-postgres + path: ./kubernetes/apps/base/grafana-postgres/app + patches: [] prune: true sourceRef: kind: GitRepository name: flux-system namespace: flux-system - targetNamespace: o11y diff --git a/kubernetes/apps/base/grafana-postgres/kustomization.yaml b/kubernetes/apps/base/grafana-postgres/kustomization.yaml index 596d750..7fa2050 100644 --- a/kubernetes/apps/base/grafana-postgres/kustomization.yaml +++ b/kubernetes/apps/base/grafana-postgres/kustomization.yaml @@ -2,5 +2,4 @@ apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization resources: - - ./externalsecret.yaml - - ./cluster.yaml + - ./ks.yaml diff --git a/kubernetes/apps/base/grafana/alerts-o11y.yaml b/kubernetes/apps/base/grafana/app/alerts-o11y.yaml similarity index 100% rename from kubernetes/apps/base/grafana/alerts-o11y.yaml rename to kubernetes/apps/base/grafana/app/alerts-o11y.yaml diff --git a/kubernetes/apps/base/grafana/contactpoint-discord.yaml b/kubernetes/apps/base/grafana/app/contactpoint-discord.yaml similarity index 100% rename from kubernetes/apps/base/grafana/contactpoint-discord.yaml rename to kubernetes/apps/base/grafana/app/contactpoint-discord.yaml diff --git a/kubernetes/apps/base/grafana/dashboards/cnpg.yaml b/kubernetes/apps/base/grafana/app/dashboards/cnpg.yaml similarity index 100% rename from kubernetes/apps/base/grafana/dashboards/cnpg.yaml rename to kubernetes/apps/base/grafana/app/dashboards/cnpg.yaml diff --git a/kubernetes/apps/base/grafana/dashboards/envoy.yaml b/kubernetes/apps/base/grafana/app/dashboards/envoy.yaml similarity index 100% rename from kubernetes/apps/base/grafana/dashboards/envoy.yaml rename to kubernetes/apps/base/grafana/app/dashboards/envoy.yaml diff --git a/kubernetes/apps/base/grafana/dashboards/grafana-operator.yaml b/kubernetes/apps/base/grafana/app/dashboards/grafana-operator.yaml similarity index 100% rename from kubernetes/apps/base/grafana/dashboards/grafana-operator.yaml rename to kubernetes/apps/base/grafana/app/dashboards/grafana-operator.yaml diff --git a/kubernetes/apps/base/grafana/dashboards/kustomization.yaml b/kubernetes/apps/base/grafana/app/dashboards/kustomization.yaml similarity index 100% rename from kubernetes/apps/base/grafana/dashboards/kustomization.yaml rename to kubernetes/apps/base/grafana/app/dashboards/kustomization.yaml diff --git a/kubernetes/apps/base/grafana/datasource.yaml b/kubernetes/apps/base/grafana/app/datasource.yaml similarity index 100% rename from kubernetes/apps/base/grafana/datasource.yaml rename to kubernetes/apps/base/grafana/app/datasource.yaml diff --git a/kubernetes/apps/base/grafana/externalsecret.yaml b/kubernetes/apps/base/grafana/app/externalsecret.yaml similarity index 100% rename from kubernetes/apps/base/grafana/externalsecret.yaml rename to kubernetes/apps/base/grafana/app/externalsecret.yaml diff --git a/kubernetes/apps/base/grafana/grafana.yaml b/kubernetes/apps/base/grafana/app/grafana.yaml similarity index 100% rename from kubernetes/apps/base/grafana/grafana.yaml rename to kubernetes/apps/base/grafana/app/grafana.yaml diff --git a/kubernetes/apps/base/grafana/app/kustomization.yaml b/kubernetes/apps/base/grafana/app/kustomization.yaml new file mode 100644 index 0000000..a9a28ec --- /dev/null +++ b/kubernetes/apps/base/grafana/app/kustomization.yaml @@ -0,0 +1,11 @@ +--- +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - ./externalsecret.yaml + - ./grafana.yaml + - ./datasource.yaml + - ./contactpoint-discord.yaml + - ./notificationpolicy.yaml + - ./alerts-o11y.yaml + - ./dashboards diff --git a/kubernetes/apps/base/grafana/notificationpolicy.yaml b/kubernetes/apps/base/grafana/app/notificationpolicy.yaml similarity index 100% rename from kubernetes/apps/base/grafana/notificationpolicy.yaml rename to kubernetes/apps/base/grafana/app/notificationpolicy.yaml diff --git a/kubernetes/apps/production/o11y/grafana.yaml b/kubernetes/apps/base/grafana/ks.yaml similarity index 88% rename from kubernetes/apps/production/o11y/grafana.yaml rename to kubernetes/apps/base/grafana/ks.yaml index 9f91c8e..aa8f19b 100644 --- a/kubernetes/apps/production/o11y/grafana.yaml +++ b/kubernetes/apps/base/grafana/ks.yaml @@ -12,10 +12,10 @@ spec: - name: external-secrets - name: grafana-postgres interval: 1h - path: ./kubernetes/apps/base/grafana + path: ./kubernetes/apps/base/grafana/app + patches: [] prune: true sourceRef: kind: GitRepository name: flux-system namespace: flux-system - targetNamespace: o11y diff --git a/kubernetes/apps/base/grafana/kustomization.yaml b/kubernetes/apps/base/grafana/kustomization.yaml index a9a28ec..7fa2050 100644 --- a/kubernetes/apps/base/grafana/kustomization.yaml +++ b/kubernetes/apps/base/grafana/kustomization.yaml @@ -2,10 +2,4 @@ apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization resources: - - ./externalsecret.yaml - - ./grafana.yaml - - ./datasource.yaml - - ./contactpoint-discord.yaml - - ./notificationpolicy.yaml - - ./alerts-o11y.yaml - - ./dashboards + - ./ks.yaml diff --git a/kubernetes/apps/base/mesh-gateway-api/app/kustomization.yaml b/kubernetes/apps/base/mesh-gateway-api/app/kustomization.yaml new file mode 100644 index 0000000..cecb7e2 --- /dev/null +++ b/kubernetes/apps/base/mesh-gateway-api/app/kustomization.yaml @@ -0,0 +1,5 @@ +--- +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - ./tlsroute.yaml diff --git a/kubernetes/apps/base/mesh-gateway-api/tlsroute.yaml b/kubernetes/apps/base/mesh-gateway-api/app/tlsroute.yaml similarity index 97% rename from kubernetes/apps/base/mesh-gateway-api/tlsroute.yaml rename to kubernetes/apps/base/mesh-gateway-api/app/tlsroute.yaml index 6732a4b..d21ea94 100644 --- a/kubernetes/apps/base/mesh-gateway-api/tlsroute.yaml +++ b/kubernetes/apps/base/mesh-gateway-api/app/tlsroute.yaml @@ -7,7 +7,6 @@ apiVersion: gateway.networking.k8s.io/v1alpha2 kind: TLSRoute metadata: name: kube-apiserver - namespace: default spec: parentRefs: - name: mesh diff --git a/kubernetes/apps/production/envoy-system/mesh-gateway-api.yaml b/kubernetes/apps/base/mesh-gateway-api/ks.yaml similarity index 86% rename from kubernetes/apps/production/envoy-system/mesh-gateway-api.yaml rename to kubernetes/apps/base/mesh-gateway-api/ks.yaml index deba6cb..3897fa7 100644 --- a/kubernetes/apps/production/envoy-system/mesh-gateway-api.yaml +++ b/kubernetes/apps/base/mesh-gateway-api/ks.yaml @@ -9,7 +9,8 @@ spec: dependsOn: - name: mesh-gateway interval: 1h - path: ./kubernetes/apps/base/mesh-gateway-api + path: ./kubernetes/apps/base/mesh-gateway-api/app + patches: [] prune: true sourceRef: kind: GitRepository diff --git a/kubernetes/apps/base/mesh-gateway-api/kustomization.yaml b/kubernetes/apps/base/mesh-gateway-api/kustomization.yaml index cecb7e2..7fa2050 100644 --- a/kubernetes/apps/base/mesh-gateway-api/kustomization.yaml +++ b/kubernetes/apps/base/mesh-gateway-api/kustomization.yaml @@ -2,4 +2,4 @@ apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization resources: - - ./tlsroute.yaml + - ./ks.yaml diff --git a/kubernetes/apps/base/mesh-gateway-network/app/kustomization.yaml b/kubernetes/apps/base/mesh-gateway-network/app/kustomization.yaml new file mode 100644 index 0000000..e4affb7 --- /dev/null +++ b/kubernetes/apps/base/mesh-gateway-network/app/kustomization.yaml @@ -0,0 +1,6 @@ +--- +# yaml-language-server: $schema=https://json.schemastore.org/kustomization +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - ./servicecidr.yaml diff --git a/kubernetes/apps/base/mesh-gateway-network/servicecidr.yaml b/kubernetes/apps/base/mesh-gateway-network/app/servicecidr.yaml similarity index 100% rename from kubernetes/apps/base/mesh-gateway-network/servicecidr.yaml rename to kubernetes/apps/base/mesh-gateway-network/app/servicecidr.yaml diff --git a/kubernetes/apps/production/envoy-system/mesh-gateway-network.yaml b/kubernetes/apps/base/mesh-gateway-network/ks.yaml similarity index 84% rename from kubernetes/apps/production/envoy-system/mesh-gateway-network.yaml rename to kubernetes/apps/base/mesh-gateway-network/ks.yaml index e2be1c5..58f2a2e 100644 --- a/kubernetes/apps/production/envoy-system/mesh-gateway-network.yaml +++ b/kubernetes/apps/base/mesh-gateway-network/ks.yaml @@ -7,7 +7,8 @@ metadata: namespace: flux-system spec: interval: 1h - path: ./kubernetes/apps/base/mesh-gateway-network + path: ./kubernetes/apps/base/mesh-gateway-network/app + patches: [] prune: true sourceRef: kind: GitRepository diff --git a/kubernetes/apps/base/mesh-gateway-network/kustomization.yaml b/kubernetes/apps/base/mesh-gateway-network/kustomization.yaml index e4affb7..7fa2050 100644 --- a/kubernetes/apps/base/mesh-gateway-network/kustomization.yaml +++ b/kubernetes/apps/base/mesh-gateway-network/kustomization.yaml @@ -1,6 +1,5 @@ --- -# yaml-language-server: $schema=https://json.schemastore.org/kustomization apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization resources: - - ./servicecidr.yaml + - ./ks.yaml diff --git a/kubernetes/apps/base/mesh-gateway/certificate.yaml b/kubernetes/apps/base/mesh-gateway/app/certificate.yaml similarity index 100% rename from kubernetes/apps/base/mesh-gateway/certificate.yaml rename to kubernetes/apps/base/mesh-gateway/app/certificate.yaml diff --git a/kubernetes/apps/base/mesh-gateway/envoyproxy.yaml b/kubernetes/apps/base/mesh-gateway/app/envoyproxy.yaml similarity index 100% rename from kubernetes/apps/base/mesh-gateway/envoyproxy.yaml rename to kubernetes/apps/base/mesh-gateway/app/envoyproxy.yaml diff --git a/kubernetes/apps/base/mesh-gateway/gateway.yaml b/kubernetes/apps/base/mesh-gateway/app/gateway.yaml similarity index 100% rename from kubernetes/apps/base/mesh-gateway/gateway.yaml rename to kubernetes/apps/base/mesh-gateway/app/gateway.yaml diff --git a/kubernetes/apps/base/mesh-gateway/gatewayclass.yaml b/kubernetes/apps/base/mesh-gateway/app/gatewayclass.yaml similarity index 100% rename from kubernetes/apps/base/mesh-gateway/gatewayclass.yaml rename to kubernetes/apps/base/mesh-gateway/app/gatewayclass.yaml diff --git a/kubernetes/apps/base/mesh-gateway/app/kustomization.yaml b/kubernetes/apps/base/mesh-gateway/app/kustomization.yaml new file mode 100644 index 0000000..75fda64 --- /dev/null +++ b/kubernetes/apps/base/mesh-gateway/app/kustomization.yaml @@ -0,0 +1,9 @@ +--- +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - ./gatewayclass.yaml + - ./envoyproxy.yaml + - ./gateway.yaml + - ./service.yaml + - ./certificate.yaml diff --git a/kubernetes/apps/base/mesh-gateway/service.yaml b/kubernetes/apps/base/mesh-gateway/app/service.yaml similarity index 100% rename from kubernetes/apps/base/mesh-gateway/service.yaml rename to kubernetes/apps/base/mesh-gateway/app/service.yaml diff --git a/kubernetes/apps/production/envoy-system/mesh-gateway.yaml b/kubernetes/apps/base/mesh-gateway/ks.yaml similarity index 86% rename from kubernetes/apps/production/envoy-system/mesh-gateway.yaml rename to kubernetes/apps/base/mesh-gateway/ks.yaml index fd64d4b..3153ae7 100644 --- a/kubernetes/apps/production/envoy-system/mesh-gateway.yaml +++ b/kubernetes/apps/base/mesh-gateway/ks.yaml @@ -11,11 +11,11 @@ spec: - name: cert-manager-issuers - name: mesh-gateway-network interval: 1h - path: ./kubernetes/apps/base/mesh-gateway + path: ./kubernetes/apps/base/mesh-gateway/app + patches: [] prune: true sourceRef: kind: GitRepository name: flux-system namespace: flux-system - targetNamespace: envoy-system wait: true diff --git a/kubernetes/apps/base/mesh-gateway/kustomization.yaml b/kubernetes/apps/base/mesh-gateway/kustomization.yaml index 75fda64..7fa2050 100644 --- a/kubernetes/apps/base/mesh-gateway/kustomization.yaml +++ b/kubernetes/apps/base/mesh-gateway/kustomization.yaml @@ -2,8 +2,4 @@ apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization resources: - - ./gatewayclass.yaml - - ./envoyproxy.yaml - - ./gateway.yaml - - ./service.yaml - - ./certificate.yaml + - ./ks.yaml diff --git a/kubernetes/apps/base/metrics-server/helmrelease.yaml b/kubernetes/apps/base/metrics-server/app/helmrelease.yaml similarity index 76% rename from kubernetes/apps/base/metrics-server/helmrelease.yaml rename to kubernetes/apps/base/metrics-server/app/helmrelease.yaml index f1191d9..5ad1889 100644 --- a/kubernetes/apps/base/metrics-server/helmrelease.yaml +++ b/kubernetes/apps/base/metrics-server/app/helmrelease.yaml @@ -9,15 +9,6 @@ spec: kind: OCIRepository name: metrics-server interval: 1h - rollback: - cleanupOnFail: true - upgrade: - cleanupOnFail: true - strategy: - name: RemediateOnFailure - remediation: - remediateLastFailure: true - retries: 2 values: args: - --kubelet-insecure-tls diff --git a/kubernetes/apps/base/metrics-server/app/kustomization.yaml b/kubernetes/apps/base/metrics-server/app/kustomization.yaml new file mode 100644 index 0000000..2ccd5a8 --- /dev/null +++ b/kubernetes/apps/base/metrics-server/app/kustomization.yaml @@ -0,0 +1,6 @@ +--- +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - ./helmrelease.yaml + - ./ocirepository.yaml diff --git a/kubernetes/apps/base/metrics-server/ocirepository.yaml b/kubernetes/apps/base/metrics-server/app/ocirepository.yaml similarity index 100% rename from kubernetes/apps/base/metrics-server/ocirepository.yaml rename to kubernetes/apps/base/metrics-server/app/ocirepository.yaml diff --git a/kubernetes/apps/staging/kube-system/metrics-server.yaml b/kubernetes/apps/base/metrics-server/ks.yaml similarity index 87% rename from kubernetes/apps/staging/kube-system/metrics-server.yaml rename to kubernetes/apps/base/metrics-server/ks.yaml index ef60237..ea5752b 100644 --- a/kubernetes/apps/staging/kube-system/metrics-server.yaml +++ b/kubernetes/apps/base/metrics-server/ks.yaml @@ -14,10 +14,10 @@ spec: name: metrics-server namespace: kube-system interval: 1h - path: ./kubernetes/apps/base/metrics-server + path: ./kubernetes/apps/base/metrics-server/app + patches: [] prune: true sourceRef: kind: GitRepository name: flux-system namespace: flux-system - targetNamespace: kube-system diff --git a/kubernetes/apps/base/metrics-server/kustomization.yaml b/kubernetes/apps/base/metrics-server/kustomization.yaml index 2ccd5a8..7fa2050 100644 --- a/kubernetes/apps/base/metrics-server/kustomization.yaml +++ b/kubernetes/apps/base/metrics-server/kustomization.yaml @@ -2,5 +2,4 @@ apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization resources: - - ./helmrelease.yaml - - ./ocirepository.yaml + - ./ks.yaml diff --git a/kubernetes/apps/base/multus-networks/app/kustomization.yaml b/kubernetes/apps/base/multus-networks/app/kustomization.yaml new file mode 100644 index 0000000..66f9c15 --- /dev/null +++ b/kubernetes/apps/base/multus-networks/app/kustomization.yaml @@ -0,0 +1,6 @@ +--- +# yaml-language-server: $schema=https://json.schemastore.org/kustomization +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - ./netbird-egress.yaml diff --git a/kubernetes/apps/base/multus-networks/netbird-egress.yaml b/kubernetes/apps/base/multus-networks/app/netbird-egress.yaml similarity index 100% rename from kubernetes/apps/base/multus-networks/netbird-egress.yaml rename to kubernetes/apps/base/multus-networks/app/netbird-egress.yaml diff --git a/kubernetes/apps/staging/kube-system/multus-networks.yaml b/kubernetes/apps/base/multus-networks/ks.yaml similarity index 84% rename from kubernetes/apps/staging/kube-system/multus-networks.yaml rename to kubernetes/apps/base/multus-networks/ks.yaml index ab90a9a..f26b096 100644 --- a/kubernetes/apps/staging/kube-system/multus-networks.yaml +++ b/kubernetes/apps/base/multus-networks/ks.yaml @@ -9,11 +9,11 @@ spec: dependsOn: - name: multus interval: 1h - path: ./kubernetes/apps/base/multus-networks + path: ./kubernetes/apps/base/multus-networks/app + patches: [] prune: true wait: true sourceRef: kind: GitRepository name: flux-system namespace: flux-system - targetNamespace: kube-system diff --git a/kubernetes/apps/base/multus-networks/kustomization.yaml b/kubernetes/apps/base/multus-networks/kustomization.yaml index 66f9c15..7fa2050 100644 --- a/kubernetes/apps/base/multus-networks/kustomization.yaml +++ b/kubernetes/apps/base/multus-networks/kustomization.yaml @@ -1,6 +1,5 @@ --- -# yaml-language-server: $schema=https://json.schemastore.org/kustomization apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization resources: - - ./netbird-egress.yaml + - ./ks.yaml diff --git a/kubernetes/apps/base/multus/helmrelease.yaml b/kubernetes/apps/base/multus/app/helmrelease.yaml similarity index 100% rename from kubernetes/apps/base/multus/helmrelease.yaml rename to kubernetes/apps/base/multus/app/helmrelease.yaml diff --git a/kubernetes/apps/base/multus/app/kustomization.yaml b/kubernetes/apps/base/multus/app/kustomization.yaml new file mode 100644 index 0000000..c6c7029 --- /dev/null +++ b/kubernetes/apps/base/multus/app/kustomization.yaml @@ -0,0 +1,7 @@ +--- +# yaml-language-server: $schema=https://json.schemastore.org/kustomization +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - ./ocirepository.yaml + - ./helmrelease.yaml diff --git a/kubernetes/apps/base/multus/ocirepository.yaml b/kubernetes/apps/base/multus/app/ocirepository.yaml similarity index 100% rename from kubernetes/apps/base/multus/ocirepository.yaml rename to kubernetes/apps/base/multus/app/ocirepository.yaml diff --git a/kubernetes/apps/production/kube-system/multus.yaml b/kubernetes/apps/base/multus/ks.yaml similarity index 90% rename from kubernetes/apps/production/kube-system/multus.yaml rename to kubernetes/apps/base/multus/ks.yaml index 8c22ca8..514a593 100644 --- a/kubernetes/apps/production/kube-system/multus.yaml +++ b/kubernetes/apps/base/multus/ks.yaml @@ -7,7 +7,8 @@ metadata: namespace: flux-system spec: interval: 1h - path: ./kubernetes/apps/base/multus + path: ./kubernetes/apps/base/multus/app + patches: [] prune: true wait: true healthChecks: @@ -22,4 +23,3 @@ spec: kind: GitRepository name: flux-system namespace: flux-system - targetNamespace: kube-system diff --git a/kubernetes/apps/base/multus/kustomization.yaml b/kubernetes/apps/base/multus/kustomization.yaml index c6c7029..7fa2050 100644 --- a/kubernetes/apps/base/multus/kustomization.yaml +++ b/kubernetes/apps/base/multus/kustomization.yaml @@ -1,7 +1,5 @@ --- -# yaml-language-server: $schema=https://json.schemastore.org/kustomization apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization resources: - - ./ocirepository.yaml - - ./helmrelease.yaml + - ./ks.yaml diff --git a/kubernetes/apps/base/netbird-router/deployment.yaml b/kubernetes/apps/base/netbird-router/app/deployment.yaml similarity index 100% rename from kubernetes/apps/base/netbird-router/deployment.yaml rename to kubernetes/apps/base/netbird-router/app/deployment.yaml diff --git a/kubernetes/apps/base/netbird-router/app/kustomization.yaml b/kubernetes/apps/base/netbird-router/app/kustomization.yaml new file mode 100644 index 0000000..992ffe0 --- /dev/null +++ b/kubernetes/apps/base/netbird-router/app/kustomization.yaml @@ -0,0 +1,7 @@ +--- +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - ./deployment.yaml + - ./service-dns.yaml + - ./pdb.yaml diff --git a/kubernetes/apps/base/netbird-router/pdb.yaml b/kubernetes/apps/base/netbird-router/app/pdb.yaml similarity index 100% rename from kubernetes/apps/base/netbird-router/pdb.yaml rename to kubernetes/apps/base/netbird-router/app/pdb.yaml diff --git a/kubernetes/apps/base/netbird-router/service-dns.yaml b/kubernetes/apps/base/netbird-router/app/service-dns.yaml similarity index 100% rename from kubernetes/apps/base/netbird-router/service-dns.yaml rename to kubernetes/apps/base/netbird-router/app/service-dns.yaml diff --git a/kubernetes/apps/staging/netbird/netbird-router.yaml b/kubernetes/apps/base/netbird-router/ks.yaml similarity index 83% rename from kubernetes/apps/staging/netbird/netbird-router.yaml rename to kubernetes/apps/base/netbird-router/ks.yaml index 11eddb3..bcbc39c 100644 --- a/kubernetes/apps/staging/netbird/netbird-router.yaml +++ b/kubernetes/apps/base/netbird-router/ks.yaml @@ -7,10 +7,10 @@ metadata: namespace: flux-system spec: interval: 1h - path: ./kubernetes/apps/base/netbird-router + path: ./kubernetes/apps/base/netbird-router/app + patches: [] prune: true sourceRef: kind: GitRepository name: flux-system namespace: flux-system - targetNamespace: netbird diff --git a/kubernetes/apps/base/netbird-router/kustomization.yaml b/kubernetes/apps/base/netbird-router/kustomization.yaml index 992ffe0..7fa2050 100644 --- a/kubernetes/apps/base/netbird-router/kustomization.yaml +++ b/kubernetes/apps/base/netbird-router/kustomization.yaml @@ -2,6 +2,4 @@ apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization resources: - - ./deployment.yaml - - ./service-dns.yaml - - ./pdb.yaml + - ./ks.yaml diff --git a/kubernetes/apps/base/openebs/helmrelease.yaml b/kubernetes/apps/base/openebs/app/helmrelease.yaml similarity index 85% rename from kubernetes/apps/base/openebs/helmrelease.yaml rename to kubernetes/apps/base/openebs/app/helmrelease.yaml index 58ca096..b6f2585 100644 --- a/kubernetes/apps/base/openebs/helmrelease.yaml +++ b/kubernetes/apps/base/openebs/app/helmrelease.yaml @@ -7,19 +7,7 @@ spec: chartRef: kind: OCIRepository name: openebs - install: - crds: CreateReplace interval: 1h - rollback: - cleanupOnFail: true - upgrade: - cleanupOnFail: true - crds: CreateReplace - strategy: - name: RemediateOnFailure - remediation: - remediateLastFailure: true - retries: 2 values: preUpgradeHook: enabled: false diff --git a/kubernetes/apps/base/openebs/app/kustomization.yaml b/kubernetes/apps/base/openebs/app/kustomization.yaml new file mode 100644 index 0000000..dd58a90 --- /dev/null +++ b/kubernetes/apps/base/openebs/app/kustomization.yaml @@ -0,0 +1,7 @@ +--- +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - ./helmrelease.yaml + - ./ocirepository.yaml + - ./storageclass-spare-disk.yaml diff --git a/kubernetes/apps/base/openebs/ocirepository.yaml b/kubernetes/apps/base/openebs/app/ocirepository.yaml similarity index 100% rename from kubernetes/apps/base/openebs/ocirepository.yaml rename to kubernetes/apps/base/openebs/app/ocirepository.yaml diff --git a/kubernetes/apps/base/openebs/storageclass-spare-disk.yaml b/kubernetes/apps/base/openebs/app/storageclass-spare-disk.yaml similarity index 100% rename from kubernetes/apps/base/openebs/storageclass-spare-disk.yaml rename to kubernetes/apps/base/openebs/app/storageclass-spare-disk.yaml diff --git a/kubernetes/apps/staging/openebs-system/openebs.yaml b/kubernetes/apps/base/openebs/ks.yaml similarity index 87% rename from kubernetes/apps/staging/openebs-system/openebs.yaml rename to kubernetes/apps/base/openebs/ks.yaml index bd998f6..2879cd2 100644 --- a/kubernetes/apps/staging/openebs-system/openebs.yaml +++ b/kubernetes/apps/base/openebs/ks.yaml @@ -12,10 +12,10 @@ spec: name: openebs namespace: openebs-system interval: 1h - path: ./kubernetes/apps/base/openebs + path: ./kubernetes/apps/base/openebs/app + patches: [] prune: true sourceRef: kind: GitRepository name: flux-system namespace: flux-system - targetNamespace: openebs-system diff --git a/kubernetes/apps/base/openebs/kustomization.yaml b/kubernetes/apps/base/openebs/kustomization.yaml index dd58a90..7fa2050 100644 --- a/kubernetes/apps/base/openebs/kustomization.yaml +++ b/kubernetes/apps/base/openebs/kustomization.yaml @@ -2,6 +2,4 @@ apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization resources: - - ./helmrelease.yaml - - ./ocirepository.yaml - - ./storageclass-spare-disk.yaml + - ./ks.yaml diff --git a/kubernetes/apps/base/prometheus-operator-crds/helmrelease.yaml b/kubernetes/apps/base/prometheus-operator-crds/app/helmrelease.yaml similarity index 57% rename from kubernetes/apps/base/prometheus-operator-crds/helmrelease.yaml rename to kubernetes/apps/base/prometheus-operator-crds/app/helmrelease.yaml index 97c2a54..34285a1 100644 --- a/kubernetes/apps/base/prometheus-operator-crds/helmrelease.yaml +++ b/kubernetes/apps/base/prometheus-operator-crds/app/helmrelease.yaml @@ -8,17 +8,5 @@ spec: chartRef: kind: OCIRepository name: prometheus-operator-crds - install: - crds: CreateReplace interval: 1h - rollback: - cleanupOnFail: true - upgrade: - cleanupOnFail: true - crds: CreateReplace - strategy: - name: RemediateOnFailure - remediation: - remediateLastFailure: true - retries: 2 values: {} diff --git a/kubernetes/apps/base/prometheus-operator-crds/app/kustomization.yaml b/kubernetes/apps/base/prometheus-operator-crds/app/kustomization.yaml new file mode 100644 index 0000000..2ccd5a8 --- /dev/null +++ b/kubernetes/apps/base/prometheus-operator-crds/app/kustomization.yaml @@ -0,0 +1,6 @@ +--- +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - ./helmrelease.yaml + - ./ocirepository.yaml diff --git a/kubernetes/apps/base/prometheus-operator-crds/ocirepository.yaml b/kubernetes/apps/base/prometheus-operator-crds/app/ocirepository.yaml similarity index 100% rename from kubernetes/apps/base/prometheus-operator-crds/ocirepository.yaml rename to kubernetes/apps/base/prometheus-operator-crds/app/ocirepository.yaml diff --git a/kubernetes/apps/staging/o11y/prometheus-operator-crds.yaml b/kubernetes/apps/base/prometheus-operator-crds/ks.yaml similarity index 86% rename from kubernetes/apps/staging/o11y/prometheus-operator-crds.yaml rename to kubernetes/apps/base/prometheus-operator-crds/ks.yaml index e266756..1ab4533 100644 --- a/kubernetes/apps/staging/o11y/prometheus-operator-crds.yaml +++ b/kubernetes/apps/base/prometheus-operator-crds/ks.yaml @@ -12,10 +12,10 @@ spec: name: prometheus-operator-crds namespace: o11y interval: 1h - path: ./kubernetes/apps/base/prometheus-operator-crds + path: ./kubernetes/apps/base/prometheus-operator-crds/app + patches: [] prune: true sourceRef: kind: GitRepository name: flux-system namespace: flux-system - targetNamespace: o11y diff --git a/kubernetes/apps/base/prometheus-operator-crds/kustomization.yaml b/kubernetes/apps/base/prometheus-operator-crds/kustomization.yaml index 2ccd5a8..7fa2050 100644 --- a/kubernetes/apps/base/prometheus-operator-crds/kustomization.yaml +++ b/kubernetes/apps/base/prometheus-operator-crds/kustomization.yaml @@ -2,5 +2,4 @@ apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization resources: - - ./helmrelease.yaml - - ./ocirepository.yaml + - ./ks.yaml diff --git a/kubernetes/apps/base/reloader/helmrelease.yaml b/kubernetes/apps/base/reloader/app/helmrelease.yaml similarity index 73% rename from kubernetes/apps/base/reloader/helmrelease.yaml rename to kubernetes/apps/base/reloader/app/helmrelease.yaml index 0121a6a..563a12c 100644 --- a/kubernetes/apps/base/reloader/helmrelease.yaml +++ b/kubernetes/apps/base/reloader/app/helmrelease.yaml @@ -9,15 +9,6 @@ spec: kind: OCIRepository name: reloader interval: 1h - rollback: - cleanupOnFail: true - upgrade: - cleanupOnFail: true - strategy: - name: RemediateOnFailure - remediation: - remediateLastFailure: true - retries: 2 values: fullnameOverride: reloader reloader: diff --git a/kubernetes/apps/base/reloader/app/kustomization.yaml b/kubernetes/apps/base/reloader/app/kustomization.yaml new file mode 100644 index 0000000..2ccd5a8 --- /dev/null +++ b/kubernetes/apps/base/reloader/app/kustomization.yaml @@ -0,0 +1,6 @@ +--- +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - ./helmrelease.yaml + - ./ocirepository.yaml diff --git a/kubernetes/apps/base/reloader/ocirepository.yaml b/kubernetes/apps/base/reloader/app/ocirepository.yaml similarity index 100% rename from kubernetes/apps/base/reloader/ocirepository.yaml rename to kubernetes/apps/base/reloader/app/ocirepository.yaml diff --git a/kubernetes/apps/staging/kube-system/reloader.yaml b/kubernetes/apps/base/reloader/ks.yaml similarity index 88% rename from kubernetes/apps/staging/kube-system/reloader.yaml rename to kubernetes/apps/base/reloader/ks.yaml index 3cb10f9..0954c44 100644 --- a/kubernetes/apps/staging/kube-system/reloader.yaml +++ b/kubernetes/apps/base/reloader/ks.yaml @@ -14,10 +14,10 @@ spec: name: reloader namespace: kube-system interval: 1h - path: ./kubernetes/apps/base/reloader + path: ./kubernetes/apps/base/reloader/app + patches: [] prune: true sourceRef: kind: GitRepository name: flux-system namespace: flux-system - targetNamespace: kube-system diff --git a/kubernetes/apps/base/reloader/kustomization.yaml b/kubernetes/apps/base/reloader/kustomization.yaml index 2ccd5a8..7fa2050 100644 --- a/kubernetes/apps/base/reloader/kustomization.yaml +++ b/kubernetes/apps/base/reloader/kustomization.yaml @@ -2,5 +2,4 @@ apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization resources: - - ./helmrelease.yaml - - ./ocirepository.yaml + - ./ks.yaml diff --git a/kubernetes/apps/base/spegel/helmrelease.yaml b/kubernetes/apps/base/spegel/app/helmrelease.yaml similarity index 78% rename from kubernetes/apps/base/spegel/helmrelease.yaml rename to kubernetes/apps/base/spegel/app/helmrelease.yaml index 86dfa09..7fad4c5 100644 --- a/kubernetes/apps/base/spegel/helmrelease.yaml +++ b/kubernetes/apps/base/spegel/app/helmrelease.yaml @@ -9,15 +9,6 @@ spec: kind: OCIRepository name: spegel interval: 1h - rollback: - cleanupOnFail: true - upgrade: - cleanupOnFail: true - strategy: - name: RemediateOnFailure - remediation: - remediateLastFailure: true - retries: 2 values: grafanaDashboard: enabled: true diff --git a/kubernetes/apps/base/spegel/app/kustomization.yaml b/kubernetes/apps/base/spegel/app/kustomization.yaml new file mode 100644 index 0000000..2ccd5a8 --- /dev/null +++ b/kubernetes/apps/base/spegel/app/kustomization.yaml @@ -0,0 +1,6 @@ +--- +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - ./helmrelease.yaml + - ./ocirepository.yaml diff --git a/kubernetes/apps/base/spegel/ocirepository.yaml b/kubernetes/apps/base/spegel/app/ocirepository.yaml similarity index 100% rename from kubernetes/apps/base/spegel/ocirepository.yaml rename to kubernetes/apps/base/spegel/app/ocirepository.yaml diff --git a/kubernetes/apps/staging/kube-system/spegel.yaml b/kubernetes/apps/base/spegel/ks.yaml similarity index 89% rename from kubernetes/apps/staging/kube-system/spegel.yaml rename to kubernetes/apps/base/spegel/ks.yaml index 1ed5a53..67bebb7 100644 --- a/kubernetes/apps/staging/kube-system/spegel.yaml +++ b/kubernetes/apps/base/spegel/ks.yaml @@ -15,10 +15,10 @@ spec: name: spegel namespace: kube-system interval: 1h - path: ./kubernetes/apps/base/spegel + path: ./kubernetes/apps/base/spegel/app + patches: [] prune: true sourceRef: kind: GitRepository name: flux-system namespace: flux-system - targetNamespace: kube-system diff --git a/kubernetes/apps/base/spegel/kustomization.yaml b/kubernetes/apps/base/spegel/kustomization.yaml index 2ccd5a8..7fa2050 100644 --- a/kubernetes/apps/base/spegel/kustomization.yaml +++ b/kubernetes/apps/base/spegel/kustomization.yaml @@ -2,5 +2,4 @@ apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization resources: - - ./helmrelease.yaml - - ./ocirepository.yaml + - ./ks.yaml diff --git a/kubernetes/apps/base/victoria-logs-collector/helmrelease.yaml b/kubernetes/apps/base/victoria-logs-collector/app/helmrelease.yaml similarity index 85% rename from kubernetes/apps/base/victoria-logs-collector/helmrelease.yaml rename to kubernetes/apps/base/victoria-logs-collector/app/helmrelease.yaml index b0b7717..a84d63b 100644 --- a/kubernetes/apps/base/victoria-logs-collector/helmrelease.yaml +++ b/kubernetes/apps/base/victoria-logs-collector/app/helmrelease.yaml @@ -9,15 +9,6 @@ spec: kind: OCIRepository name: victoria-logs-collector interval: 1h - rollback: - cleanupOnFail: true - upgrade: - cleanupOnFail: true - strategy: - name: RemediateOnFailure - remediation: - remediateLastFailure: true - retries: 2 values: fullnameOverride: victoria-logs-collector diff --git a/kubernetes/apps/base/victoria-logs-collector/app/kustomization.yaml b/kubernetes/apps/base/victoria-logs-collector/app/kustomization.yaml new file mode 100644 index 0000000..2ccd5a8 --- /dev/null +++ b/kubernetes/apps/base/victoria-logs-collector/app/kustomization.yaml @@ -0,0 +1,6 @@ +--- +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - ./helmrelease.yaml + - ./ocirepository.yaml diff --git a/kubernetes/apps/base/victoria-logs-collector/ocirepository.yaml b/kubernetes/apps/base/victoria-logs-collector/app/ocirepository.yaml similarity index 100% rename from kubernetes/apps/base/victoria-logs-collector/ocirepository.yaml rename to kubernetes/apps/base/victoria-logs-collector/app/ocirepository.yaml diff --git a/kubernetes/apps/staging/o11y/victoria-logs-collector.yaml b/kubernetes/apps/base/victoria-logs-collector/ks.yaml similarity index 87% rename from kubernetes/apps/staging/o11y/victoria-logs-collector.yaml rename to kubernetes/apps/base/victoria-logs-collector/ks.yaml index 68d7df5..e16827c 100644 --- a/kubernetes/apps/staging/o11y/victoria-logs-collector.yaml +++ b/kubernetes/apps/base/victoria-logs-collector/ks.yaml @@ -14,10 +14,10 @@ spec: name: victoria-logs-collector namespace: o11y interval: 1h - path: ./kubernetes/apps/base/victoria-logs-collector + path: ./kubernetes/apps/base/victoria-logs-collector/app + patches: [] prune: true sourceRef: kind: GitRepository name: flux-system namespace: flux-system - targetNamespace: o11y diff --git a/kubernetes/apps/base/victoria-logs-collector/kustomization.yaml b/kubernetes/apps/base/victoria-logs-collector/kustomization.yaml index 2ccd5a8..7fa2050 100644 --- a/kubernetes/apps/base/victoria-logs-collector/kustomization.yaml +++ b/kubernetes/apps/base/victoria-logs-collector/kustomization.yaml @@ -2,5 +2,4 @@ apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization resources: - - ./helmrelease.yaml - - ./ocirepository.yaml + - ./ks.yaml diff --git a/kubernetes/apps/base/victoria-logs/helmrelease.yaml b/kubernetes/apps/base/victoria-logs/app/helmrelease.yaml similarity index 90% rename from kubernetes/apps/base/victoria-logs/helmrelease.yaml rename to kubernetes/apps/base/victoria-logs/app/helmrelease.yaml index 4c50a9b..c75c392 100644 --- a/kubernetes/apps/base/victoria-logs/helmrelease.yaml +++ b/kubernetes/apps/base/victoria-logs/app/helmrelease.yaml @@ -9,15 +9,6 @@ spec: kind: OCIRepository name: victoria-logs interval: 1h - rollback: - cleanupOnFail: true - upgrade: - cleanupOnFail: true - strategy: - name: RemediateOnFailure - remediation: - remediateLastFailure: true - retries: 2 values: fullnameOverride: victoria-logs diff --git a/kubernetes/apps/base/victoria-logs/httproute-mesh.yaml b/kubernetes/apps/base/victoria-logs/app/httproute-mesh.yaml similarity index 100% rename from kubernetes/apps/base/victoria-logs/httproute-mesh.yaml rename to kubernetes/apps/base/victoria-logs/app/httproute-mesh.yaml diff --git a/kubernetes/apps/base/victoria-logs/app/kustomization.yaml b/kubernetes/apps/base/victoria-logs/app/kustomization.yaml new file mode 100644 index 0000000..1611211 --- /dev/null +++ b/kubernetes/apps/base/victoria-logs/app/kustomization.yaml @@ -0,0 +1,7 @@ +--- +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - ./helmrelease.yaml + - ./ocirepository.yaml + - ./httproute-mesh.yaml diff --git a/kubernetes/apps/base/victoria-logs/ocirepository.yaml b/kubernetes/apps/base/victoria-logs/app/ocirepository.yaml similarity index 100% rename from kubernetes/apps/base/victoria-logs/ocirepository.yaml rename to kubernetes/apps/base/victoria-logs/app/ocirepository.yaml diff --git a/kubernetes/apps/staging/o11y/victoria-logs.yaml b/kubernetes/apps/base/victoria-logs/ks.yaml similarity index 88% rename from kubernetes/apps/staging/o11y/victoria-logs.yaml rename to kubernetes/apps/base/victoria-logs/ks.yaml index f2082e2..5706a00 100644 --- a/kubernetes/apps/staging/o11y/victoria-logs.yaml +++ b/kubernetes/apps/base/victoria-logs/ks.yaml @@ -14,10 +14,10 @@ spec: name: victoria-logs namespace: o11y interval: 1h - path: ./kubernetes/apps/base/victoria-logs + path: ./kubernetes/apps/base/victoria-logs/app + patches: [] prune: true sourceRef: kind: GitRepository name: flux-system namespace: flux-system - targetNamespace: o11y diff --git a/kubernetes/apps/base/victoria-logs/kustomization.yaml b/kubernetes/apps/base/victoria-logs/kustomization.yaml index 1611211..7fa2050 100644 --- a/kubernetes/apps/base/victoria-logs/kustomization.yaml +++ b/kubernetes/apps/base/victoria-logs/kustomization.yaml @@ -2,6 +2,4 @@ apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization resources: - - ./helmrelease.yaml - - ./ocirepository.yaml - - ./httproute-mesh.yaml + - ./ks.yaml diff --git a/kubernetes/apps/base/victoria-metrics-users/app/kustomization.yaml b/kubernetes/apps/base/victoria-metrics-users/app/kustomization.yaml new file mode 100644 index 0000000..70b7681 --- /dev/null +++ b/kubernetes/apps/base/victoria-metrics-users/app/kustomization.yaml @@ -0,0 +1,6 @@ +--- +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - ./vmuser-remote-clusters.yaml + - ./vmauth-mesh-unauth.yaml diff --git a/kubernetes/apps/base/victoria-metrics-users/vmauth-mesh-unauth.yaml b/kubernetes/apps/base/victoria-metrics-users/app/vmauth-mesh-unauth.yaml similarity index 100% rename from kubernetes/apps/base/victoria-metrics-users/vmauth-mesh-unauth.yaml rename to kubernetes/apps/base/victoria-metrics-users/app/vmauth-mesh-unauth.yaml diff --git a/kubernetes/apps/base/victoria-metrics-users/vmuser-remote-clusters.yaml b/kubernetes/apps/base/victoria-metrics-users/app/vmuser-remote-clusters.yaml similarity index 100% rename from kubernetes/apps/base/victoria-metrics-users/vmuser-remote-clusters.yaml rename to kubernetes/apps/base/victoria-metrics-users/app/vmuser-remote-clusters.yaml diff --git a/kubernetes/apps/staging/o11y/victoria-metrics-users.yaml b/kubernetes/apps/base/victoria-metrics-users/ks.yaml similarity index 85% rename from kubernetes/apps/staging/o11y/victoria-metrics-users.yaml rename to kubernetes/apps/base/victoria-metrics-users/ks.yaml index bf01295..9d4c9ed 100644 --- a/kubernetes/apps/staging/o11y/victoria-metrics-users.yaml +++ b/kubernetes/apps/base/victoria-metrics-users/ks.yaml @@ -10,10 +10,10 @@ spec: - name: victoria-metrics - name: external-secrets interval: 1h - path: ./kubernetes/apps/base/victoria-metrics-users + path: ./kubernetes/apps/base/victoria-metrics-users/app + patches: [] prune: true sourceRef: kind: GitRepository name: flux-system namespace: flux-system - targetNamespace: o11y diff --git a/kubernetes/apps/base/victoria-metrics-users/kustomization.yaml b/kubernetes/apps/base/victoria-metrics-users/kustomization.yaml index 70b7681..7fa2050 100644 --- a/kubernetes/apps/base/victoria-metrics-users/kustomization.yaml +++ b/kubernetes/apps/base/victoria-metrics-users/kustomization.yaml @@ -2,5 +2,4 @@ apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization resources: - - ./vmuser-remote-clusters.yaml - - ./vmauth-mesh-unauth.yaml + - ./ks.yaml diff --git a/kubernetes/apps/base/victoria-metrics/helmrelease.yaml b/kubernetes/apps/base/victoria-metrics/app/helmrelease.yaml similarity index 97% rename from kubernetes/apps/base/victoria-metrics/helmrelease.yaml rename to kubernetes/apps/base/victoria-metrics/app/helmrelease.yaml index 3ef238a..7c0c05b 100644 --- a/kubernetes/apps/base/victoria-metrics/helmrelease.yaml +++ b/kubernetes/apps/base/victoria-metrics/app/helmrelease.yaml @@ -9,15 +9,6 @@ spec: kind: OCIRepository name: victoria-metrics interval: 1h - rollback: - cleanupOnFail: true - upgrade: - cleanupOnFail: true - strategy: - name: RemediateOnFailure - remediation: - remediateLastFailure: true - retries: 2 values: fullnameOverride: victoria-metrics diff --git a/kubernetes/apps/base/victoria-metrics/httproute-mesh.yaml b/kubernetes/apps/base/victoria-metrics/app/httproute-mesh.yaml similarity index 100% rename from kubernetes/apps/base/victoria-metrics/httproute-mesh.yaml rename to kubernetes/apps/base/victoria-metrics/app/httproute-mesh.yaml diff --git a/kubernetes/apps/base/victoria-metrics/app/kustomization.yaml b/kubernetes/apps/base/victoria-metrics/app/kustomization.yaml new file mode 100644 index 0000000..1611211 --- /dev/null +++ b/kubernetes/apps/base/victoria-metrics/app/kustomization.yaml @@ -0,0 +1,7 @@ +--- +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - ./helmrelease.yaml + - ./ocirepository.yaml + - ./httproute-mesh.yaml diff --git a/kubernetes/apps/base/victoria-metrics/ocirepository.yaml b/kubernetes/apps/base/victoria-metrics/app/ocirepository.yaml similarity index 100% rename from kubernetes/apps/base/victoria-metrics/ocirepository.yaml rename to kubernetes/apps/base/victoria-metrics/app/ocirepository.yaml diff --git a/kubernetes/apps/staging/o11y/victoria-metrics.yaml b/kubernetes/apps/base/victoria-metrics/ks.yaml similarity index 88% rename from kubernetes/apps/staging/o11y/victoria-metrics.yaml rename to kubernetes/apps/base/victoria-metrics/ks.yaml index fc79444..c5efc11 100644 --- a/kubernetes/apps/staging/o11y/victoria-metrics.yaml +++ b/kubernetes/apps/base/victoria-metrics/ks.yaml @@ -14,10 +14,10 @@ spec: name: victoria-metrics namespace: o11y interval: 1h - path: ./kubernetes/apps/base/victoria-metrics + path: ./kubernetes/apps/base/victoria-metrics/app + patches: [] prune: true sourceRef: kind: GitRepository name: flux-system namespace: flux-system - targetNamespace: o11y diff --git a/kubernetes/apps/base/victoria-metrics/kustomization.yaml b/kubernetes/apps/base/victoria-metrics/kustomization.yaml index 1611211..7fa2050 100644 --- a/kubernetes/apps/base/victoria-metrics/kustomization.yaml +++ b/kubernetes/apps/base/victoria-metrics/kustomization.yaml @@ -2,6 +2,4 @@ apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization resources: - - ./helmrelease.yaml - - ./ocirepository.yaml - - ./httproute-mesh.yaml + - ./ks.yaml diff --git a/kubernetes/apps/base/yucca-o11y/yucca-o11y.yaml b/kubernetes/apps/base/yucca-o11y/yucca-o11y.yaml index 1c61334..b1da58a 100644 --- a/kubernetes/apps/base/yucca-o11y/yucca-o11y.yaml +++ b/kubernetes/apps/base/yucca-o11y/yucca-o11y.yaml @@ -28,7 +28,7 @@ spec: kind: OCIRepository name: yucca-o11y path: ./ + patches: [] prune: true - targetNamespace: o11y dependsOn: - name: grafana-operator diff --git a/kubernetes/apps/production/cert-manager/cert-manager-issuers.yaml b/kubernetes/apps/production/cert-manager/cert-manager-issuers.yaml deleted file mode 100644 index bde003b..0000000 --- a/kubernetes/apps/production/cert-manager/cert-manager-issuers.yaml +++ /dev/null @@ -1,19 +0,0 @@ ---- -# yaml-language-server: $schema=https://k8s-schemas.home-operations.com/kustomize.toolkit.fluxcd.io/kustomization_v1.json -apiVersion: kustomize.toolkit.fluxcd.io/v1 -kind: Kustomization -metadata: - name: cert-manager-issuers - namespace: flux-system -spec: - dependsOn: - - name: cert-manager - - name: cluster-secret-store - interval: 1h - path: ./kubernetes/apps/base/cert-manager-issuers - prune: true - sourceRef: - kind: GitRepository - name: flux-system - namespace: flux-system - targetNamespace: cert-manager diff --git a/kubernetes/apps/production/cert-manager/kustomization.yaml b/kubernetes/apps/production/cert-manager/kustomization.yaml index 394682d..8dab7fb 100644 --- a/kubernetes/apps/production/cert-manager/kustomization.yaml +++ b/kubernetes/apps/production/cert-manager/kustomization.yaml @@ -3,7 +3,12 @@ apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization resources: - - ./cert-manager.yaml - - ./cert-manager-webhook-ovh.yaml - - ./cert-manager-issuers.yaml + - ../../base/cert-manager-issuers + - ../../base/cert-manager-webhook-ovh + - ../../base/cert-manager - ./namespace.yaml +components: + - ../../../components/replacements +patches: + - path: patches/cert-manager-webhook-ovh.yaml + - path: patches/cert-manager.yaml diff --git a/kubernetes/apps/production/cert-manager/cert-manager-webhook-ovh.yaml b/kubernetes/apps/production/cert-manager/patches/cert-manager-webhook-ovh.yaml similarity index 54% rename from kubernetes/apps/production/cert-manager/cert-manager-webhook-ovh.yaml rename to kubernetes/apps/production/cert-manager/patches/cert-manager-webhook-ovh.yaml index af668ab..52d5936 100644 --- a/kubernetes/apps/production/cert-manager/cert-manager-webhook-ovh.yaml +++ b/kubernetes/apps/production/cert-manager/patches/cert-manager-webhook-ovh.yaml @@ -1,26 +1,10 @@ --- -# yaml-language-server: $schema=https://k8s-schemas.home-operations.com/kustomize.toolkit.fluxcd.io/kustomization_v1.json apiVersion: kustomize.toolkit.fluxcd.io/v1 kind: Kustomization metadata: name: cert-manager-webhook-ovh namespace: flux-system spec: - dependsOn: - - name: cert-manager - healthChecks: - - apiVersion: helm.toolkit.fluxcd.io/v2 - kind: HelmRelease - name: cert-manager-webhook-ovh - namespace: cert-manager - interval: 1h - path: ./kubernetes/apps/base/cert-manager-webhook-ovh - prune: true - sourceRef: - kind: GitRepository - name: flux-system - namespace: flux-system - targetNamespace: cert-manager patches: - patch: |- apiVersion: source.toolkit.fluxcd.io/v1 diff --git a/kubernetes/apps/production/cert-manager/cert-manager.yaml b/kubernetes/apps/production/cert-manager/patches/cert-manager.yaml similarity index 53% rename from kubernetes/apps/production/cert-manager/cert-manager.yaml rename to kubernetes/apps/production/cert-manager/patches/cert-manager.yaml index 743cc8c..eb756ec 100644 --- a/kubernetes/apps/production/cert-manager/cert-manager.yaml +++ b/kubernetes/apps/production/cert-manager/patches/cert-manager.yaml @@ -1,26 +1,10 @@ --- -# yaml-language-server: $schema=https://k8s-schemas.home-operations.com/kustomize.toolkit.fluxcd.io/kustomization_v1.json apiVersion: kustomize.toolkit.fluxcd.io/v1 kind: Kustomization metadata: name: cert-manager namespace: flux-system spec: - dependsOn: - - name: prometheus-operator-crds - healthChecks: - - apiVersion: helm.toolkit.fluxcd.io/v2 - kind: HelmRelease - name: cert-manager - namespace: cert-manager - interval: 1h - path: ./kubernetes/apps/base/cert-manager - prune: true - sourceRef: - kind: GitRepository - name: flux-system - namespace: flux-system - targetNamespace: cert-manager patches: - patch: |- apiVersion: source.toolkit.fluxcd.io/v1 diff --git a/kubernetes/apps/production/cnpg-system/kustomization.yaml b/kubernetes/apps/production/cnpg-system/kustomization.yaml index c49c4a7..bf60381 100644 --- a/kubernetes/apps/production/cnpg-system/kustomization.yaml +++ b/kubernetes/apps/production/cnpg-system/kustomization.yaml @@ -1,6 +1,11 @@ --- +# yaml-language-server: $schema=https://json.schemastore.org/kustomization apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization resources: + - ../../base/cloudnative-pg - ./namespace.yaml - - ./cloudnative-pg.yaml +components: + - ../../../components/replacements +patches: + - path: patches/cloudnative-pg.yaml diff --git a/kubernetes/apps/production/cnpg-system/cloudnative-pg.yaml b/kubernetes/apps/production/cnpg-system/patches/cloudnative-pg.yaml similarity index 56% rename from kubernetes/apps/production/cnpg-system/cloudnative-pg.yaml rename to kubernetes/apps/production/cnpg-system/patches/cloudnative-pg.yaml index bf7e79f..9e62ebe 100644 --- a/kubernetes/apps/production/cnpg-system/cloudnative-pg.yaml +++ b/kubernetes/apps/production/cnpg-system/patches/cloudnative-pg.yaml @@ -1,24 +1,10 @@ --- -# yaml-language-server: $schema=https://k8s-schemas.home-operations.com/kustomize.toolkit.fluxcd.io/kustomization_v1.json apiVersion: kustomize.toolkit.fluxcd.io/v1 kind: Kustomization metadata: name: cloudnative-pg namespace: flux-system spec: - healthChecks: - - apiVersion: helm.toolkit.fluxcd.io/v2 - kind: HelmRelease - name: cloudnative-pg - namespace: cnpg-system - interval: 1h - path: ./kubernetes/apps/base/cloudnative-pg - prune: true - sourceRef: - kind: GitRepository - name: flux-system - namespace: flux-system - targetNamespace: cnpg-system patches: - patch: |- apiVersion: source.toolkit.fluxcd.io/v1 diff --git a/kubernetes/apps/production/default/kustomization.yaml b/kubernetes/apps/production/default/kustomization.yaml index 420537d..eabf4f8 100644 --- a/kubernetes/apps/production/default/kustomization.yaml +++ b/kubernetes/apps/production/default/kustomization.yaml @@ -1,6 +1,12 @@ --- +# yaml-language-server: $schema=https://json.schemastore.org/kustomization apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization resources: - - ./echo.yaml + - ../../base/echo + - ../../base/mesh-gateway-api - ./namespace.yaml +components: + - ../../../components/replacements +patches: + - path: patches/echo.yaml diff --git a/kubernetes/apps/production/default/echo.yaml b/kubernetes/apps/production/default/patches/echo.yaml similarity index 52% rename from kubernetes/apps/production/default/echo.yaml rename to kubernetes/apps/production/default/patches/echo.yaml index 9373abc..3901180 100644 --- a/kubernetes/apps/production/default/echo.yaml +++ b/kubernetes/apps/production/default/patches/echo.yaml @@ -1,27 +1,10 @@ --- -# yaml-language-server: $schema=https://k8s-schemas.home-operations.com/kustomize.toolkit.fluxcd.io/kustomization_v1.json apiVersion: kustomize.toolkit.fluxcd.io/v1 kind: Kustomization metadata: name: echo namespace: flux-system spec: - dependsOn: - - name: envoy-proxy - - name: prometheus-operator-crds - healthChecks: - - apiVersion: helm.toolkit.fluxcd.io/v2 - kind: HelmRelease - name: echo - namespace: default - interval: 1h - path: ./kubernetes/apps/base/echo - prune: true - sourceRef: - kind: GitRepository - name: flux-system - namespace: flux-system - targetNamespace: default patches: - patch: |- apiVersion: source.toolkit.fluxcd.io/v1 diff --git a/kubernetes/apps/production/envoy-system/kustomization.yaml b/kubernetes/apps/production/envoy-system/kustomization.yaml index 99781d7..bf21dc8 100644 --- a/kubernetes/apps/production/envoy-system/kustomization.yaml +++ b/kubernetes/apps/production/envoy-system/kustomization.yaml @@ -3,9 +3,12 @@ apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization resources: - - ./envoy-gateway.yaml - - ./envoy-proxy.yaml - - ./mesh-gateway-network.yaml - - ./mesh-gateway.yaml - - ./mesh-gateway-api.yaml + - ../../base/envoy-gateway + - ../../base/envoy-proxy + - ../../base/mesh-gateway-network + - ../../base/mesh-gateway - ./namespace.yaml +components: + - ../../../components/replacements +patches: + - path: patches/envoy-gateway.yaml diff --git a/kubernetes/apps/production/envoy-system/envoy-gateway.yaml b/kubernetes/apps/production/envoy-system/patches/envoy-gateway.yaml similarity index 53% rename from kubernetes/apps/production/envoy-system/envoy-gateway.yaml rename to kubernetes/apps/production/envoy-system/patches/envoy-gateway.yaml index 98154e2..acaaaf2 100644 --- a/kubernetes/apps/production/envoy-system/envoy-gateway.yaml +++ b/kubernetes/apps/production/envoy-system/patches/envoy-gateway.yaml @@ -1,26 +1,10 @@ --- -# yaml-language-server: $schema=https://k8s-schemas.home-operations.com/kustomize.toolkit.fluxcd.io/kustomization_v1.json apiVersion: kustomize.toolkit.fluxcd.io/v1 kind: Kustomization metadata: name: envoy-gateway namespace: flux-system spec: - dependsOn: - - name: cert-manager-webhook-ovh - healthChecks: - - apiVersion: helm.toolkit.fluxcd.io/v2 - kind: HelmRelease - name: envoy-gateway - namespace: envoy-system - interval: 1h - path: ./kubernetes/apps/base/envoy-gateway - prune: true - sourceRef: - kind: GitRepository - name: flux-system - namespace: flux-system - targetNamespace: envoy-system patches: - patch: |- apiVersion: source.toolkit.fluxcd.io/v1 diff --git a/kubernetes/apps/production/external-secrets/cluster-secret-store.yaml b/kubernetes/apps/production/external-secrets/cluster-secret-store.yaml deleted file mode 100644 index 9dd8db4..0000000 --- a/kubernetes/apps/production/external-secrets/cluster-secret-store.yaml +++ /dev/null @@ -1,20 +0,0 @@ ---- -# yaml-language-server: $schema=https://k8s-schemas.home-operations.com/kustomize.toolkit.fluxcd.io/kustomization_v1.json -apiVersion: kustomize.toolkit.fluxcd.io/v1 -kind: Kustomization -metadata: - name: cluster-secret-store - namespace: flux-system -spec: - dependsOn: - - name: external-secrets - - name: netbird-router - interval: 1h - path: ./kubernetes/apps/base/cluster-secret-store - prune: true - sourceRef: - kind: GitRepository - name: flux-system - namespace: flux-system - targetNamespace: external-secrets - wait: true diff --git a/kubernetes/apps/production/external-secrets/external-secrets.yaml b/kubernetes/apps/production/external-secrets/external-secrets.yaml deleted file mode 100644 index a0f7367..0000000 --- a/kubernetes/apps/production/external-secrets/external-secrets.yaml +++ /dev/null @@ -1,39 +0,0 @@ ---- -# yaml-language-server: $schema=https://k8s-schemas.home-operations.com/kustomize.toolkit.fluxcd.io/kustomization_v1.json -apiVersion: kustomize.toolkit.fluxcd.io/v1 -kind: Kustomization -metadata: - name: external-secrets - namespace: flux-system -spec: - dependsOn: - - name: prometheus-operator-crds - # The controller pod's netbird-egress annotation needs the NAD to exist to schedule. - - name: multus-networks - healthChecks: - - apiVersion: helm.toolkit.fluxcd.io/v2 - kind: HelmRelease - name: external-secrets - namespace: external-secrets - interval: 1h - path: ./kubernetes/apps/base/external-secrets - prune: true - sourceRef: - kind: GitRepository - name: flux-system - namespace: flux-system - targetNamespace: external-secrets - patches: - - patch: |- - apiVersion: source.toolkit.fluxcd.io/v1 - kind: OCIRepository - metadata: - name: external-secrets - spec: - ref: - # renovate: datasource=docker depName=ghcr.io/external-secrets/charts/external-secrets - tag: 2.2.0 - digest: sha256:feb252e996e2ce31ea015a1e098f2c5d438389a0a2fc1f43659b3f5421046f6f - target: - kind: OCIRepository - name: external-secrets diff --git a/kubernetes/apps/production/external-secrets/kustomization.yaml b/kubernetes/apps/production/external-secrets/kustomization.yaml index a8f05be..3dd1671 100644 --- a/kubernetes/apps/production/external-secrets/kustomization.yaml +++ b/kubernetes/apps/production/external-secrets/kustomization.yaml @@ -3,6 +3,10 @@ apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization resources: + - ../../base/cluster-secret-store + - ../../base/external-secrets - ./namespace.yaml - - ./external-secrets.yaml - - ./cluster-secret-store.yaml +components: + - ../../../components/replacements +patches: + - path: patches/external-secrets.yaml diff --git a/kubernetes/apps/production/external-secrets/patches/external-secrets.yaml b/kubernetes/apps/production/external-secrets/patches/external-secrets.yaml new file mode 100644 index 0000000..f6ef745 --- /dev/null +++ b/kubernetes/apps/production/external-secrets/patches/external-secrets.yaml @@ -0,0 +1,21 @@ +--- +apiVersion: kustomize.toolkit.fluxcd.io/v1 +kind: Kustomization +metadata: + name: external-secrets + namespace: flux-system +spec: + patches: + - patch: |- + apiVersion: source.toolkit.fluxcd.io/v1 + kind: OCIRepository + metadata: + name: external-secrets + spec: + ref: + # renovate: datasource=docker depName=ghcr.io/external-secrets/charts/external-secrets + tag: 2.2.0 + digest: sha256:feb252e996e2ce31ea015a1e098f2c5d438389a0a2fc1f43659b3f5421046f6f + target: + kind: OCIRepository + name: external-secrets diff --git a/kubernetes/apps/production/kube-system/kustomization.yaml b/kubernetes/apps/production/kube-system/kustomization.yaml index 08da905..a5310e6 100644 --- a/kubernetes/apps/production/kube-system/kustomization.yaml +++ b/kubernetes/apps/production/kube-system/kustomization.yaml @@ -1,11 +1,19 @@ --- +# yaml-language-server: $schema=https://json.schemastore.org/kustomization apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization resources: - - ./descheduler.yaml - - ./metrics-server.yaml - - ./multus.yaml - - ./multus-networks.yaml + - ../../base/descheduler + - ../../base/metrics-server + - ../../base/multus-networks + - ../../base/multus + - ../../base/reloader + - ../../base/spegel - ./namespace.yaml - - ./reloader.yaml - - ./spegel.yaml +components: + - ../../../components/replacements +patches: + - path: patches/descheduler.yaml + - path: patches/metrics-server.yaml + - path: patches/reloader.yaml + - path: patches/spegel.yaml diff --git a/kubernetes/apps/production/kube-system/multus-networks.yaml b/kubernetes/apps/production/kube-system/multus-networks.yaml deleted file mode 100644 index ab90a9a..0000000 --- a/kubernetes/apps/production/kube-system/multus-networks.yaml +++ /dev/null @@ -1,19 +0,0 @@ ---- -# yaml-language-server: $schema=https://k8s-schemas.home-operations.com/kustomize.toolkit.fluxcd.io/kustomization_v1.json -apiVersion: kustomize.toolkit.fluxcd.io/v1 -kind: Kustomization -metadata: - name: multus-networks - namespace: flux-system -spec: - dependsOn: - - name: multus - interval: 1h - path: ./kubernetes/apps/base/multus-networks - prune: true - wait: true - sourceRef: - kind: GitRepository - name: flux-system - namespace: flux-system - targetNamespace: kube-system diff --git a/kubernetes/apps/production/kube-system/descheduler.yaml b/kubernetes/apps/production/kube-system/patches/descheduler.yaml similarity index 54% rename from kubernetes/apps/production/kube-system/descheduler.yaml rename to kubernetes/apps/production/kube-system/patches/descheduler.yaml index 5c52559..2e5e1d1 100644 --- a/kubernetes/apps/production/kube-system/descheduler.yaml +++ b/kubernetes/apps/production/kube-system/patches/descheduler.yaml @@ -1,26 +1,10 @@ --- -# yaml-language-server: $schema=https://k8s-schemas.home-operations.com/kustomize.toolkit.fluxcd.io/kustomization_v1.json apiVersion: kustomize.toolkit.fluxcd.io/v1 kind: Kustomization metadata: name: descheduler namespace: flux-system spec: - dependsOn: - - name: prometheus-operator-crds - healthChecks: - - apiVersion: helm.toolkit.fluxcd.io/v2 - kind: HelmRelease - name: descheduler - namespace: kube-system - interval: 1h - path: ./kubernetes/apps/base/descheduler - prune: true - sourceRef: - kind: GitRepository - name: flux-system - namespace: flux-system - targetNamespace: kube-system patches: - patch: |- apiVersion: source.toolkit.fluxcd.io/v1 diff --git a/kubernetes/apps/production/kube-system/metrics-server.yaml b/kubernetes/apps/production/kube-system/patches/metrics-server.yaml similarity index 54% rename from kubernetes/apps/production/kube-system/metrics-server.yaml rename to kubernetes/apps/production/kube-system/patches/metrics-server.yaml index 4f85754..6fd00e3 100644 --- a/kubernetes/apps/production/kube-system/metrics-server.yaml +++ b/kubernetes/apps/production/kube-system/patches/metrics-server.yaml @@ -1,26 +1,10 @@ --- -# yaml-language-server: $schema=https://k8s-schemas.home-operations.com/kustomize.toolkit.fluxcd.io/kustomization_v1.json apiVersion: kustomize.toolkit.fluxcd.io/v1 kind: Kustomization metadata: name: metrics-server namespace: flux-system spec: - dependsOn: - - name: prometheus-operator-crds - healthChecks: - - apiVersion: helm.toolkit.fluxcd.io/v2 - kind: HelmRelease - name: metrics-server - namespace: kube-system - interval: 1h - path: ./kubernetes/apps/base/metrics-server - prune: true - sourceRef: - kind: GitRepository - name: flux-system - namespace: flux-system - targetNamespace: kube-system patches: - patch: |- apiVersion: source.toolkit.fluxcd.io/v1 diff --git a/kubernetes/apps/production/kube-system/reloader.yaml b/kubernetes/apps/production/kube-system/patches/reloader.yaml similarity index 53% rename from kubernetes/apps/production/kube-system/reloader.yaml rename to kubernetes/apps/production/kube-system/patches/reloader.yaml index be931b3..c1c8c9a 100644 --- a/kubernetes/apps/production/kube-system/reloader.yaml +++ b/kubernetes/apps/production/kube-system/patches/reloader.yaml @@ -1,26 +1,10 @@ --- -# yaml-language-server: $schema=https://k8s-schemas.home-operations.com/kustomize.toolkit.fluxcd.io/kustomization_v1.json apiVersion: kustomize.toolkit.fluxcd.io/v1 kind: Kustomization metadata: name: reloader namespace: flux-system spec: - dependsOn: - - name: prometheus-operator-crds - healthChecks: - - apiVersion: helm.toolkit.fluxcd.io/v2 - kind: HelmRelease - name: reloader - namespace: kube-system - interval: 1h - path: ./kubernetes/apps/base/reloader - prune: true - sourceRef: - kind: GitRepository - name: flux-system - namespace: flux-system - targetNamespace: kube-system patches: - patch: |- apiVersion: source.toolkit.fluxcd.io/v1 diff --git a/kubernetes/apps/production/kube-system/spegel.yaml b/kubernetes/apps/production/kube-system/patches/spegel.yaml similarity index 52% rename from kubernetes/apps/production/kube-system/spegel.yaml rename to kubernetes/apps/production/kube-system/patches/spegel.yaml index 4c98cb6..89edcb9 100644 --- a/kubernetes/apps/production/kube-system/spegel.yaml +++ b/kubernetes/apps/production/kube-system/patches/spegel.yaml @@ -1,27 +1,10 @@ --- -# yaml-language-server: $schema=https://k8s-schemas.home-operations.com/kustomize.toolkit.fluxcd.io/kustomization_v1.json apiVersion: kustomize.toolkit.fluxcd.io/v1 kind: Kustomization metadata: name: spegel namespace: flux-system spec: - dependsOn: - - name: prometheus-operator-crds - - name: grafana-operator - healthChecks: - - apiVersion: helm.toolkit.fluxcd.io/v2 - kind: HelmRelease - name: spegel - namespace: kube-system - interval: 1h - path: ./kubernetes/apps/base/spegel - prune: true - sourceRef: - kind: GitRepository - name: flux-system - namespace: flux-system - targetNamespace: kube-system patches: - patch: |- apiVersion: source.toolkit.fluxcd.io/v1 diff --git a/kubernetes/apps/production/netbird/kustomization.yaml b/kubernetes/apps/production/netbird/kustomization.yaml index 55a0679..b7c424d 100644 --- a/kubernetes/apps/production/netbird/kustomization.yaml +++ b/kubernetes/apps/production/netbird/kustomization.yaml @@ -3,5 +3,9 @@ apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization resources: - - ./netbird-router.yaml + - ../../base/netbird-router - ./namespace.yaml +components: + - ../../../components/replacements +patches: + - path: patches/netbird-router.yaml diff --git a/kubernetes/apps/production/netbird/netbird-router.yaml b/kubernetes/apps/production/netbird/patches/netbird-router.yaml similarity index 67% rename from kubernetes/apps/production/netbird/netbird-router.yaml rename to kubernetes/apps/production/netbird/patches/netbird-router.yaml index 7a219bd..820febd 100644 --- a/kubernetes/apps/production/netbird/netbird-router.yaml +++ b/kubernetes/apps/production/netbird/patches/netbird-router.yaml @@ -1,19 +1,10 @@ --- -# yaml-language-server: $schema=https://k8s-schemas.home-operations.com/kustomize.toolkit.fluxcd.io/kustomization_v1.json apiVersion: kustomize.toolkit.fluxcd.io/v1 kind: Kustomization metadata: name: netbird-router namespace: flux-system spec: - interval: 1h - path: ./kubernetes/apps/base/netbird-router - prune: true - sourceRef: - kind: GitRepository - name: flux-system - namespace: flux-system - targetNamespace: netbird patches: - patch: |- apiVersion: apps/v1 diff --git a/kubernetes/apps/production/o11y/kustomization.yaml b/kubernetes/apps/production/o11y/kustomization.yaml index 952f471..81fa186 100644 --- a/kubernetes/apps/production/o11y/kustomization.yaml +++ b/kubernetes/apps/production/o11y/kustomization.yaml @@ -4,12 +4,21 @@ apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization resources: - ../../base/yucca-o11y - - ./prometheus-operator-crds.yaml - - ./grafana-operator.yaml - - ./grafana-postgres.yaml - - ./grafana.yaml - - ./victoria-metrics.yaml - - ./victoria-metrics-users.yaml - - ./victoria-logs.yaml - - ./victoria-logs-collector.yaml + - ../../base/prometheus-operator-crds + - ../../base/grafana-operator + - ../../base/grafana-postgres + - ../../base/grafana + - ../../base/victoria-metrics + - ../../base/victoria-metrics-users + - ../../base/victoria-logs + - ../../base/victoria-logs-collector - ./namespace.yaml +components: + - ../../../components/replacements +patches: + - path: patches/prometheus-operator-crds.yaml + - path: patches/grafana-operator.yaml + - path: patches/grafana-postgres.yaml + - path: patches/victoria-metrics.yaml + - path: patches/victoria-logs.yaml + - path: patches/victoria-logs-collector.yaml diff --git a/kubernetes/apps/production/o11y/grafana-operator.yaml b/kubernetes/apps/production/o11y/patches/grafana-operator.yaml similarity index 54% rename from kubernetes/apps/production/o11y/grafana-operator.yaml rename to kubernetes/apps/production/o11y/patches/grafana-operator.yaml index c62d4dd..e369312 100644 --- a/kubernetes/apps/production/o11y/grafana-operator.yaml +++ b/kubernetes/apps/production/o11y/patches/grafana-operator.yaml @@ -1,26 +1,10 @@ --- -# yaml-language-server: $schema=https://k8s-schemas.home-operations.com/kustomize.toolkit.fluxcd.io/kustomization_v1.json apiVersion: kustomize.toolkit.fluxcd.io/v1 kind: Kustomization metadata: name: grafana-operator namespace: flux-system spec: - dependsOn: - - name: prometheus-operator-crds - healthChecks: - - apiVersion: helm.toolkit.fluxcd.io/v2 - kind: HelmRelease - name: grafana-operator - namespace: o11y - interval: 1h - path: ./kubernetes/apps/base/grafana-operator - prune: true - sourceRef: - kind: GitRepository - name: flux-system - namespace: flux-system - targetNamespace: o11y patches: - patch: |- apiVersion: source.toolkit.fluxcd.io/v1 diff --git a/kubernetes/apps/production/o11y/grafana-postgres.yaml b/kubernetes/apps/production/o11y/patches/grafana-postgres.yaml similarity index 51% rename from kubernetes/apps/production/o11y/grafana-postgres.yaml rename to kubernetes/apps/production/o11y/patches/grafana-postgres.yaml index 9855b09..8ba9b67 100644 --- a/kubernetes/apps/production/o11y/grafana-postgres.yaml +++ b/kubernetes/apps/production/o11y/patches/grafana-postgres.yaml @@ -1,28 +1,10 @@ --- -# yaml-language-server: $schema=https://k8s-schemas.home-operations.com/kustomize.toolkit.fluxcd.io/kustomization_v1.json apiVersion: kustomize.toolkit.fluxcd.io/v1 kind: Kustomization metadata: name: grafana-postgres namespace: flux-system spec: - dependsOn: - - name: cloudnative-pg - - name: external-secrets - - name: prometheus-operator-crds - healthChecks: - - apiVersion: postgresql.cnpg.io/v1 - kind: Cluster - name: grafana-postgres - namespace: o11y - interval: 1h - path: ./kubernetes/apps/base/grafana-postgres - prune: true - sourceRef: - kind: GitRepository - name: flux-system - namespace: flux-system - targetNamespace: o11y patches: - patch: |- apiVersion: postgresql.cnpg.io/v1 diff --git a/kubernetes/apps/production/o11y/prometheus-operator-crds.yaml b/kubernetes/apps/production/o11y/patches/prometheus-operator-crds.yaml similarity index 58% rename from kubernetes/apps/production/o11y/prometheus-operator-crds.yaml rename to kubernetes/apps/production/o11y/patches/prometheus-operator-crds.yaml index 28dfaf5..59d1d86 100644 --- a/kubernetes/apps/production/o11y/prometheus-operator-crds.yaml +++ b/kubernetes/apps/production/o11y/patches/prometheus-operator-crds.yaml @@ -1,24 +1,10 @@ --- -# yaml-language-server: $schema=https://k8s-schemas.home-operations.com/kustomize.toolkit.fluxcd.io/kustomization_v1.json apiVersion: kustomize.toolkit.fluxcd.io/v1 kind: Kustomization metadata: name: prometheus-operator-crds namespace: flux-system spec: - healthChecks: - - apiVersion: helm.toolkit.fluxcd.io/v2 - kind: HelmRelease - name: prometheus-operator-crds - namespace: o11y - interval: 1h - path: ./kubernetes/apps/base/prometheus-operator-crds - prune: true - sourceRef: - kind: GitRepository - name: flux-system - namespace: flux-system - targetNamespace: o11y patches: - patch: |- apiVersion: source.toolkit.fluxcd.io/v1 diff --git a/kubernetes/apps/production/o11y/victoria-logs-collector.yaml b/kubernetes/apps/production/o11y/patches/victoria-logs-collector.yaml similarity index 56% rename from kubernetes/apps/production/o11y/victoria-logs-collector.yaml rename to kubernetes/apps/production/o11y/patches/victoria-logs-collector.yaml index 8ac2dd1..b3f4f1d 100644 --- a/kubernetes/apps/production/o11y/victoria-logs-collector.yaml +++ b/kubernetes/apps/production/o11y/patches/victoria-logs-collector.yaml @@ -1,26 +1,10 @@ --- -# yaml-language-server: $schema=https://k8s-schemas.home-operations.com/kustomize.toolkit.fluxcd.io/kustomization_v1.json apiVersion: kustomize.toolkit.fluxcd.io/v1 kind: Kustomization metadata: name: victoria-logs-collector namespace: flux-system spec: - dependsOn: - - name: victoria-logs - healthChecks: - - apiVersion: helm.toolkit.fluxcd.io/v2 - kind: HelmRelease - name: victoria-logs-collector - namespace: o11y - interval: 1h - path: ./kubernetes/apps/base/victoria-logs-collector - prune: true - sourceRef: - kind: GitRepository - name: flux-system - namespace: flux-system - targetNamespace: o11y patches: - patch: |- apiVersion: source.toolkit.fluxcd.io/v1 diff --git a/kubernetes/apps/production/o11y/victoria-logs.yaml b/kubernetes/apps/production/o11y/patches/victoria-logs.yaml similarity index 55% rename from kubernetes/apps/production/o11y/victoria-logs.yaml rename to kubernetes/apps/production/o11y/patches/victoria-logs.yaml index 6870382..bfd0ba4 100644 --- a/kubernetes/apps/production/o11y/victoria-logs.yaml +++ b/kubernetes/apps/production/o11y/patches/victoria-logs.yaml @@ -1,26 +1,10 @@ --- -# yaml-language-server: $schema=https://k8s-schemas.home-operations.com/kustomize.toolkit.fluxcd.io/kustomization_v1.json apiVersion: kustomize.toolkit.fluxcd.io/v1 kind: Kustomization metadata: name: victoria-logs namespace: flux-system spec: - dependsOn: - - name: victoria-metrics - healthChecks: - - apiVersion: helm.toolkit.fluxcd.io/v2 - kind: HelmRelease - name: victoria-logs - namespace: o11y - interval: 1h - path: ./kubernetes/apps/base/victoria-logs - prune: true - sourceRef: - kind: GitRepository - name: flux-system - namespace: flux-system - targetNamespace: o11y patches: - patch: |- apiVersion: source.toolkit.fluxcd.io/v1 diff --git a/kubernetes/apps/production/o11y/victoria-metrics.yaml b/kubernetes/apps/production/o11y/patches/victoria-metrics.yaml similarity index 55% rename from kubernetes/apps/production/o11y/victoria-metrics.yaml rename to kubernetes/apps/production/o11y/patches/victoria-metrics.yaml index 0ff1eea..794a240 100644 --- a/kubernetes/apps/production/o11y/victoria-metrics.yaml +++ b/kubernetes/apps/production/o11y/patches/victoria-metrics.yaml @@ -1,26 +1,10 @@ --- -# yaml-language-server: $schema=https://k8s-schemas.home-operations.com/kustomize.toolkit.fluxcd.io/kustomization_v1.json apiVersion: kustomize.toolkit.fluxcd.io/v1 kind: Kustomization metadata: name: victoria-metrics namespace: flux-system spec: - dependsOn: - - name: grafana-operator - healthChecks: - - apiVersion: helm.toolkit.fluxcd.io/v2 - kind: HelmRelease - name: victoria-metrics - namespace: o11y - interval: 1h - path: ./kubernetes/apps/base/victoria-metrics - prune: true - sourceRef: - kind: GitRepository - name: flux-system - namespace: flux-system - targetNamespace: o11y patches: - patch: |- apiVersion: source.toolkit.fluxcd.io/v1 diff --git a/kubernetes/apps/production/o11y/victoria-metrics-users.yaml b/kubernetes/apps/production/o11y/victoria-metrics-users.yaml deleted file mode 100644 index bf01295..0000000 --- a/kubernetes/apps/production/o11y/victoria-metrics-users.yaml +++ /dev/null @@ -1,19 +0,0 @@ ---- -# yaml-language-server: $schema=https://k8s-schemas.home-operations.com/kustomize.toolkit.fluxcd.io/kustomization_v1.json -apiVersion: kustomize.toolkit.fluxcd.io/v1 -kind: Kustomization -metadata: - name: victoria-metrics-users - namespace: flux-system -spec: - dependsOn: - - name: victoria-metrics - - name: external-secrets - interval: 1h - path: ./kubernetes/apps/base/victoria-metrics-users - prune: true - sourceRef: - kind: GitRepository - name: flux-system - namespace: flux-system - targetNamespace: o11y diff --git a/kubernetes/apps/production/openebs-system/kustomization.yaml b/kubernetes/apps/production/openebs-system/kustomization.yaml index befe1fb..54fa423 100644 --- a/kubernetes/apps/production/openebs-system/kustomization.yaml +++ b/kubernetes/apps/production/openebs-system/kustomization.yaml @@ -3,6 +3,10 @@ apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization resources: + - ../../base/openebs - ./namespace.yaml - - ./openebs.yaml - ./storageclass-spare-disk-2.yaml +components: + - ../../../components/replacements +patches: + - path: patches/openebs.yaml diff --git a/kubernetes/apps/production/openebs-system/openebs.yaml b/kubernetes/apps/production/openebs-system/patches/openebs.yaml similarity index 55% rename from kubernetes/apps/production/openebs-system/openebs.yaml rename to kubernetes/apps/production/openebs-system/patches/openebs.yaml index 04b53d8..c7fdad3 100644 --- a/kubernetes/apps/production/openebs-system/openebs.yaml +++ b/kubernetes/apps/production/openebs-system/patches/openebs.yaml @@ -1,24 +1,10 @@ --- -# yaml-language-server: $schema=https://k8s-schemas.home-operations.com/kustomize.toolkit.fluxcd.io/kustomization_v1.json apiVersion: kustomize.toolkit.fluxcd.io/v1 kind: Kustomization metadata: name: openebs namespace: flux-system spec: - healthChecks: - - apiVersion: helm.toolkit.fluxcd.io/v2 - kind: HelmRelease - name: openebs - namespace: openebs-system - interval: 1h - path: ./kubernetes/apps/base/openebs - prune: true - sourceRef: - kind: GitRepository - name: flux-system - namespace: flux-system - targetNamespace: openebs-system patches: - patch: |- apiVersion: source.toolkit.fluxcd.io/v1 diff --git a/kubernetes/apps/staging/cert-manager/kustomization.yaml b/kubernetes/apps/staging/cert-manager/kustomization.yaml index 394682d..2cfc1d5 100644 --- a/kubernetes/apps/staging/cert-manager/kustomization.yaml +++ b/kubernetes/apps/staging/cert-manager/kustomization.yaml @@ -3,7 +3,9 @@ apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization resources: - - ./cert-manager.yaml - - ./cert-manager-webhook-ovh.yaml - - ./cert-manager-issuers.yaml + - ../../base/cert-manager-issuers + - ../../base/cert-manager-webhook-ovh + - ../../base/cert-manager - ./namespace.yaml +components: + - ../../../components/replacements diff --git a/kubernetes/apps/staging/cnpg-system/kustomization.yaml b/kubernetes/apps/staging/cnpg-system/kustomization.yaml index c49c4a7..20a990a 100644 --- a/kubernetes/apps/staging/cnpg-system/kustomization.yaml +++ b/kubernetes/apps/staging/cnpg-system/kustomization.yaml @@ -1,6 +1,9 @@ --- +# yaml-language-server: $schema=https://json.schemastore.org/kustomization apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization resources: + - ../../base/cloudnative-pg - ./namespace.yaml - - ./cloudnative-pg.yaml +components: + - ../../../components/replacements diff --git a/kubernetes/apps/staging/default/kustomization.yaml b/kubernetes/apps/staging/default/kustomization.yaml index 420537d..4c145ea 100644 --- a/kubernetes/apps/staging/default/kustomization.yaml +++ b/kubernetes/apps/staging/default/kustomization.yaml @@ -1,6 +1,10 @@ --- +# yaml-language-server: $schema=https://json.schemastore.org/kustomization apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization resources: - - ./echo.yaml + - ../../base/echo + - ../../base/mesh-gateway-api - ./namespace.yaml +components: + - ../../../components/replacements diff --git a/kubernetes/apps/staging/envoy-system/envoy-proxy.yaml b/kubernetes/apps/staging/envoy-system/envoy-proxy.yaml deleted file mode 100644 index dee5a12..0000000 --- a/kubernetes/apps/staging/envoy-system/envoy-proxy.yaml +++ /dev/null @@ -1,19 +0,0 @@ ---- -# yaml-language-server: $schema=https://k8s-schemas.home-operations.com/kustomize.toolkit.fluxcd.io/kustomization_v1.json -apiVersion: kustomize.toolkit.fluxcd.io/v1 -kind: Kustomization -metadata: - name: envoy-proxy - namespace: flux-system -spec: - dependsOn: - - name: envoy-gateway - interval: 1h - path: ./kubernetes/apps/base/envoy-proxy - prune: true - sourceRef: - kind: GitRepository - name: flux-system - namespace: flux-system - targetNamespace: envoy-system - wait: true diff --git a/kubernetes/apps/staging/envoy-system/kustomization.yaml b/kubernetes/apps/staging/envoy-system/kustomization.yaml index 99781d7..3710e8b 100644 --- a/kubernetes/apps/staging/envoy-system/kustomization.yaml +++ b/kubernetes/apps/staging/envoy-system/kustomization.yaml @@ -3,9 +3,10 @@ apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization resources: - - ./envoy-gateway.yaml - - ./envoy-proxy.yaml - - ./mesh-gateway-network.yaml - - ./mesh-gateway.yaml - - ./mesh-gateway-api.yaml + - ../../base/envoy-gateway + - ../../base/envoy-proxy + - ../../base/mesh-gateway-network + - ../../base/mesh-gateway - ./namespace.yaml +components: + - ../../../components/replacements diff --git a/kubernetes/apps/staging/envoy-system/mesh-gateway-api.yaml b/kubernetes/apps/staging/envoy-system/mesh-gateway-api.yaml deleted file mode 100644 index deba6cb..0000000 --- a/kubernetes/apps/staging/envoy-system/mesh-gateway-api.yaml +++ /dev/null @@ -1,18 +0,0 @@ ---- -# yaml-language-server: $schema=https://k8s-schemas.home-operations.com/kustomize.toolkit.fluxcd.io/kustomization_v1.json -apiVersion: kustomize.toolkit.fluxcd.io/v1 -kind: Kustomization -metadata: - name: mesh-gateway-api - namespace: flux-system -spec: - dependsOn: - - name: mesh-gateway - interval: 1h - path: ./kubernetes/apps/base/mesh-gateway-api - prune: true - sourceRef: - kind: GitRepository - name: flux-system - namespace: flux-system - wait: true diff --git a/kubernetes/apps/staging/envoy-system/mesh-gateway-network.yaml b/kubernetes/apps/staging/envoy-system/mesh-gateway-network.yaml deleted file mode 100644 index e2be1c5..0000000 --- a/kubernetes/apps/staging/envoy-system/mesh-gateway-network.yaml +++ /dev/null @@ -1,16 +0,0 @@ ---- -# yaml-language-server: $schema=https://k8s-schemas.home-operations.com/kustomize.toolkit.fluxcd.io/kustomization_v1.json -apiVersion: kustomize.toolkit.fluxcd.io/v1 -kind: Kustomization -metadata: - name: mesh-gateway-network - namespace: flux-system -spec: - interval: 1h - path: ./kubernetes/apps/base/mesh-gateway-network - prune: true - sourceRef: - kind: GitRepository - name: flux-system - namespace: flux-system - wait: true diff --git a/kubernetes/apps/staging/envoy-system/mesh-gateway.yaml b/kubernetes/apps/staging/envoy-system/mesh-gateway.yaml deleted file mode 100644 index fd64d4b..0000000 --- a/kubernetes/apps/staging/envoy-system/mesh-gateway.yaml +++ /dev/null @@ -1,21 +0,0 @@ ---- -# yaml-language-server: $schema=https://k8s-schemas.home-operations.com/kustomize.toolkit.fluxcd.io/kustomization_v1.json -apiVersion: kustomize.toolkit.fluxcd.io/v1 -kind: Kustomization -metadata: - name: mesh-gateway - namespace: flux-system -spec: - dependsOn: - - name: envoy-gateway - - name: cert-manager-issuers - - name: mesh-gateway-network - interval: 1h - path: ./kubernetes/apps/base/mesh-gateway - prune: true - sourceRef: - kind: GitRepository - name: flux-system - namespace: flux-system - targetNamespace: envoy-system - wait: true diff --git a/kubernetes/apps/staging/external-secrets/kustomization.yaml b/kubernetes/apps/staging/external-secrets/kustomization.yaml index a8f05be..535161f 100644 --- a/kubernetes/apps/staging/external-secrets/kustomization.yaml +++ b/kubernetes/apps/staging/external-secrets/kustomization.yaml @@ -3,6 +3,8 @@ apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization resources: + - ../../base/cluster-secret-store + - ../../base/external-secrets - ./namespace.yaml - - ./external-secrets.yaml - - ./cluster-secret-store.yaml +components: + - ../../../components/replacements diff --git a/kubernetes/apps/staging/kube-system/kustomization.yaml b/kubernetes/apps/staging/kube-system/kustomization.yaml index 08da905..268b43e 100644 --- a/kubernetes/apps/staging/kube-system/kustomization.yaml +++ b/kubernetes/apps/staging/kube-system/kustomization.yaml @@ -1,11 +1,14 @@ --- +# yaml-language-server: $schema=https://json.schemastore.org/kustomization apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization resources: - - ./descheduler.yaml - - ./metrics-server.yaml - - ./multus.yaml - - ./multus-networks.yaml + - ../../base/descheduler + - ../../base/metrics-server + - ../../base/multus-networks + - ../../base/multus + - ../../base/reloader + - ../../base/spegel - ./namespace.yaml - - ./reloader.yaml - - ./spegel.yaml +components: + - ../../../components/replacements diff --git a/kubernetes/apps/staging/kube-system/multus.yaml b/kubernetes/apps/staging/kube-system/multus.yaml deleted file mode 100644 index 8c22ca8..0000000 --- a/kubernetes/apps/staging/kube-system/multus.yaml +++ /dev/null @@ -1,25 +0,0 @@ ---- -# yaml-language-server: $schema=https://k8s-schemas.home-operations.com/kustomize.toolkit.fluxcd.io/kustomization_v1.json -apiVersion: kustomize.toolkit.fluxcd.io/v1 -kind: Kustomization -metadata: - name: multus - namespace: flux-system -spec: - interval: 1h - path: ./kubernetes/apps/base/multus - prune: true - wait: true - healthChecks: - - apiVersion: helm.toolkit.fluxcd.io/v2 - kind: HelmRelease - name: multus - namespace: kube-system - - apiVersion: apiextensions.k8s.io/v1 - kind: CustomResourceDefinition - name: network-attachment-definitions.k8s.cni.cncf.io - sourceRef: - kind: GitRepository - name: flux-system - namespace: flux-system - targetNamespace: kube-system diff --git a/kubernetes/apps/staging/netbird/kustomization.yaml b/kubernetes/apps/staging/netbird/kustomization.yaml index 55a0679..b377448 100644 --- a/kubernetes/apps/staging/netbird/kustomization.yaml +++ b/kubernetes/apps/staging/netbird/kustomization.yaml @@ -3,5 +3,7 @@ apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization resources: - - ./netbird-router.yaml + - ../../base/netbird-router - ./namespace.yaml +components: + - ../../../components/replacements diff --git a/kubernetes/apps/staging/o11y/grafana.yaml b/kubernetes/apps/staging/o11y/grafana.yaml deleted file mode 100644 index 9f91c8e..0000000 --- a/kubernetes/apps/staging/o11y/grafana.yaml +++ /dev/null @@ -1,21 +0,0 @@ ---- -# yaml-language-server: $schema=https://k8s-schemas.home-operations.com/kustomize.toolkit.fluxcd.io/kustomization_v1.json -apiVersion: kustomize.toolkit.fluxcd.io/v1 -kind: Kustomization -metadata: - name: grafana - namespace: flux-system -spec: - dependsOn: - - name: prometheus-operator-crds - - name: grafana-operator - - name: external-secrets - - name: grafana-postgres - interval: 1h - path: ./kubernetes/apps/base/grafana - prune: true - sourceRef: - kind: GitRepository - name: flux-system - namespace: flux-system - targetNamespace: o11y diff --git a/kubernetes/apps/staging/o11y/kustomization.yaml b/kubernetes/apps/staging/o11y/kustomization.yaml index 952f471..ade63f2 100644 --- a/kubernetes/apps/staging/o11y/kustomization.yaml +++ b/kubernetes/apps/staging/o11y/kustomization.yaml @@ -4,12 +4,14 @@ apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization resources: - ../../base/yucca-o11y - - ./prometheus-operator-crds.yaml - - ./grafana-operator.yaml - - ./grafana-postgres.yaml - - ./grafana.yaml - - ./victoria-metrics.yaml - - ./victoria-metrics-users.yaml - - ./victoria-logs.yaml - - ./victoria-logs-collector.yaml + - ../../base/prometheus-operator-crds + - ../../base/grafana-operator + - ../../base/grafana-postgres + - ../../base/grafana + - ../../base/victoria-metrics + - ../../base/victoria-metrics-users + - ../../base/victoria-logs + - ../../base/victoria-logs-collector - ./namespace.yaml +components: + - ../../../components/replacements diff --git a/kubernetes/apps/staging/openebs-system/kustomization.yaml b/kubernetes/apps/staging/openebs-system/kustomization.yaml index 089b429..d2c5b30 100644 --- a/kubernetes/apps/staging/openebs-system/kustomization.yaml +++ b/kubernetes/apps/staging/openebs-system/kustomization.yaml @@ -3,5 +3,7 @@ apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization resources: + - ../../base/openebs - ./namespace.yaml - - ./openebs.yaml +components: + - ../../../components/replacements diff --git a/kubernetes/clusters/production/apps.yaml b/kubernetes/clusters/production/apps.yaml index 9d8f022..7ce16f8 100644 --- a/kubernetes/clusters/production/apps.yaml +++ b/kubernetes/clusters/production/apps.yaml @@ -30,3 +30,31 @@ spec: optional: true - kind: ConfigMap name: cluster-settings + - target: + group: kustomize.toolkit.fluxcd.io + kind: Kustomization + patch: |- + - op: add + path: /spec/patches/- + value: + patch: |- + apiVersion: helm.toolkit.fluxcd.io/v2 + kind: HelmRelease + metadata: + name: _ + spec: + install: + crds: CreateReplace + rollback: + cleanupOnFail: true + upgrade: + cleanupOnFail: true + crds: CreateReplace + strategy: + name: RemediateOnFailure + remediation: + remediateLastFailure: true + retries: 2 + target: + group: helm.toolkit.fluxcd.io + kind: HelmRelease diff --git a/kubernetes/clusters/staging/apps.yaml b/kubernetes/clusters/staging/apps.yaml index 220f579..6e4c67e 100644 --- a/kubernetes/clusters/staging/apps.yaml +++ b/kubernetes/clusters/staging/apps.yaml @@ -30,3 +30,31 @@ spec: optional: true - kind: ConfigMap name: cluster-settings + - target: + group: kustomize.toolkit.fluxcd.io + kind: Kustomization + patch: |- + - op: add + path: /spec/patches/- + value: + patch: |- + apiVersion: helm.toolkit.fluxcd.io/v2 + kind: HelmRelease + metadata: + name: _ + spec: + install: + crds: CreateReplace + rollback: + cleanupOnFail: true + upgrade: + cleanupOnFail: true + crds: CreateReplace + strategy: + name: RemediateOnFailure + remediation: + remediateLastFailure: true + retries: 2 + target: + group: helm.toolkit.fluxcd.io + kind: HelmRelease diff --git a/kubernetes/components/replacements/kustomization.yaml b/kubernetes/components/replacements/kustomization.yaml new file mode 100644 index 0000000..45b2155 --- /dev/null +++ b/kubernetes/components/replacements/kustomization.yaml @@ -0,0 +1,16 @@ +--- +# yaml-language-server: $schema=https://json.schemastore.org/kustomization +apiVersion: kustomize.config.k8s.io/v1alpha1 +kind: Component +replacements: + - source: + kind: Namespace + fieldPath: metadata.name + targets: + - select: + group: kustomize.toolkit.fluxcd.io + kind: Kustomization + fieldPaths: + - spec.targetNamespace + options: + create: true