@nitra/cursor 1.8.219 → 1.8.220
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +6 -0
- package/mdc/k8s.mdc +2 -0
- package/package.json +1 -1
- package/scripts/check-k8s.mjs +13 -0
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,12 @@
|
|
|
4
4
|
|
|
5
5
|
Формат — [Keep a Changelog](https://keepachangelog.com/uk/1.1.0/), нумерація — [SemVer](https://semver.org/lang/uk/).
|
|
6
6
|
|
|
7
|
+
## [1.8.220] - 2026-05-09
|
|
8
|
+
|
|
9
|
+
### Fixed
|
|
10
|
+
|
|
11
|
+
- **k8s / `prodOverlayHpaPdbOverrideNeeds`:** виключено Kustomize Component (`kind: Component`) з prod-overlay-перевірки. Раніше `<pkg>/k8s/components/kustomization.yaml` помилково тригерив `прод-оверлей має перевизначати spec.minReplicas/maxReplicas/minAvailable` — але Component є **джерелом** ресурсів для overlays, не overlay сам по собі. Прод-перезаписи живуть у `ru/` / `ua/` / `prod/` тощо, що підключають Component через `components:`. Додано ранній return за `kind: Component` у `npm/scripts/check-k8s.mjs`; уточнення додано до `npm/mdc/k8s.mdc` і регресійний тест у `npm/tests/check-k8s-schema.test.mjs`.
|
|
12
|
+
|
|
7
13
|
## [1.8.219] - 2026-05-09
|
|
8
14
|
|
|
9
15
|
### Added
|
package/mdc/k8s.mdc
CHANGED
|
@@ -387,6 +387,8 @@ images:
|
|
|
387
387
|
|
|
388
388
|
**Overlays** (`ua/`, `ru/`, прод-overlays) підключають `components: [- ../components]` і додають JSON6902-патчі для прод-значень: `/spec/minReplicas`, `/spec/maxReplicas` (HPA), `/spec/minAvailable` (PDB). Dev-середовище (`base`) HPA/PDB не отримує — як і потрібно.
|
|
389
389
|
|
|
390
|
+
**`<pkg>/k8s/components/kustomization.yaml`** має `kind: Component` (не `kind: Kustomization`) — це **джерело** канонічних HPA/PDB для всіх overlays, а не overlay сам по собі. Прод-перезаписи (`/spec/minReplicas`, `/spec/maxReplicas`, `/spec/minAvailable`) живуть у `<env>/kustomization.yaml`, що підключає Component через `components:`. У самому Component patches не потрібні — він env-неутральний; **`check k8s`** не вимагає прод-патчів від `components/kustomization.yaml`.
|
|
391
|
+
|
|
390
392
|
У **не-base** оверлеях (без `components/`) поруч із `Deployment` лишається звична схема: окремий **`hpa.yaml`** / **`pdb.yaml`**, якщо такі потрібні для цього середовища. **`check k8s`** звіряє прив'язку за іменами:
|
|
391
393
|
|
|
392
394
|
- **`hpa.yaml`** (поза **`…/base/`**) — `autoscaling/v2`, `HorizontalPodAutoscaler`, `spec.scaleTargetRef.name` **= `metadata.name`** Deployment.
|
package/package.json
CHANGED
package/scripts/check-k8s.mjs
CHANGED
|
@@ -5233,6 +5233,10 @@ function checkProdOverridesInKustomization(kust, rel, fail, passFn, needs) {
|
|
|
5233
5233
|
* `hpa.yaml` / `pdb.yaml`. Тоді у `patches[]` обов'язкові JSON6902-патчі прод-значень: для **HPA** —
|
|
5234
5234
|
* `/spec/minReplicas` і `/spec/maxReplicas` (мінімум 2), для **PDB** — `/spec/minAvailable` (мінімум 1).
|
|
5235
5235
|
* Для dev-like (`base` / `dev` / `*-qa`) overrides не потрібні (k8s.mdc).
|
|
5236
|
+
*
|
|
5237
|
+
* **Виняток — Kustomize Component (`kind: Component`):** сам `…/k8s/…/components/kustomization.yaml`
|
|
5238
|
+
* не overlay, а **джерело** ресурсів для overlays. Прод-перезаписи живуть у `<env>/kustomization.yaml`,
|
|
5239
|
+
* що підключає Component через `components:`; у самому Component patches не потрібні (env-неутральний).
|
|
5236
5240
|
* @param {string} rootNorm нормалізований корінь репозиторію
|
|
5237
5241
|
* @param {string} kustAbs абсолютний шлях до kustomization.yaml
|
|
5238
5242
|
* @returns {Promise<ProdOverlayHpaPdbOverrideNeeds>} прапорці потрібних перевизначень
|
|
@@ -5244,6 +5248,15 @@ export async function prodOverlayHpaPdbOverrideNeeds(rootNorm, kustAbs) {
|
|
|
5244
5248
|
return { needsHpaReplicaPatches: false, needsPdbMinAvailablePatch: false }
|
|
5245
5249
|
}
|
|
5246
5250
|
|
|
5251
|
+
// Kustomize Component (kind: Component) — джерело канонічних HPA/PDB для overlays,
|
|
5252
|
+
// а не overlay сам по собі. Прод-перезаписи (/spec/minReplicas, /spec/maxReplicas,
|
|
5253
|
+
// /spec/minAvailable) живуть у <env>/kustomization.yaml, що підключає Component
|
|
5254
|
+
// через `components:`; у самому Component patches не потрібні (env-неутральний).
|
|
5255
|
+
const kustDoc = await readFirstYamlObject(kustAbs)
|
|
5256
|
+
if (kustDoc !== null && kustDoc.kind === 'Component') {
|
|
5257
|
+
return { needsHpaReplicaPatches: false, needsPdbMinAvailablePatch: false }
|
|
5258
|
+
}
|
|
5259
|
+
|
|
5247
5260
|
const flags = await kustomizeResourceTreeHpaPdbDeploymentFlags(kustAbs, rootNorm)
|
|
5248
5261
|
return {
|
|
5249
5262
|
needsHpaReplicaPatches: flags.hasHpa,
|