W2.K1 of the bootstrap-kit expansion plan (docs/BOOTSTRAP-KIT-EXPANSION-PLAN.md). Adds the Tier 5 storage+DB foundation as 5 contiguous HRs, mirrored across the 3 cluster manifest trees (_template, otech.omani.works, omantel.omani.works). | Slot | File | Blueprint | Tier | dependsOn (Flux) | |-----:|----------------------------|---------------------|------|------------------| | 15 | 15-external-secrets.yaml | bp-external-secrets | 0/3 | bp-openbao(08), bp-cert-manager(02) | | 16 | 16-cnpg.yaml | bp-cnpg | 5 | bp-flux(03) | | 17 | 17-valkey.yaml | bp-valkey | 5 | bp-flux(03) | | 18 | 18-seaweedfs.yaml | bp-seaweedfs | 5 | bp-flux(03), bp-cert-manager(02) | | 19 | 19-harbor.yaml | bp-harbor | 5 | bp-cnpg(16), bp-seaweedfs(18), bp-cert-manager(02) | Per docs/BOOTSTRAP-KIT-EXPANSION-PLAN.md §2.3 the dependsOn graph for Tier 5 is finite-depth: ESO routes through bp-openbao (slot 08, Tier 1) so Flux gates ESO install on OpenBao Ready=True regardless of slot order; bp-cnpg and bp-valkey only need Flux Ready (their own CRDs ship in-chart); bp-seaweedfs requests TLS from cert-manager; bp-harbor closes the cohort by depending on cnpg + seaweedfs + cert-manager. All 5 HRs use spec.install.disableWait=true + spec.upgrade.disableWait=true per docs/INVIOLABLE-PRINCIPLES.md #3 (event-driven; Flux dependsOn is the gate, not Helm timeout). Replaces the pre-PR-250 blanket spec.timeout: 15m band-aid pattern. Namespaces: bp-external-secrets → external-secrets-system bp-cnpg → cnpg-system bp-valkey → valkey bp-seaweedfs → seaweedfs bp-harbor → harbor Resolves issue #254 — bp-powerdns pod stuck in CreateContainerConfigError because pdns-pg-app Secret is generated by a CNPG Cluster CR; without the operator the secret never materializes. Wiring bp-cnpg into the kit is the structural fix; PR #248's disableWait keeps the HR Ready=True while the pod itself recovers once the Cluster CR materializes the Secret. Validation: kubectl kustomize clusters/_template/bootstrap-kit/ → 54 objects, 19 HRs kubectl kustomize clusters/otech.omani.works/bootstrap-kit/ → 54 objects, 19 HRs kubectl kustomize clusters/omantel.omani.works/bootstrap-kit/ → 54 objects, 19 HRs Path isolation: this commit touches only slots 15-19 + the 3 kustomization.yaml files (numeric-append). Charts under platform/<name>/ are NOT touched — chart authoring is owned by separate parallel agents per the W2 dispatch. The HelmRelease 1.0.0 version is the first-release convention (cf. slot 14 bp-crossplane-claims:1.0.0 in PR #247); the OCI artifact lands once the chart is authored and the blueprint-release workflow publishes it. Closes #254 Co-authored-by: hatiyildiz <hatice.yildiz@openova.io> Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
63 lines
1.6 KiB
YAML
63 lines
1.6 KiB
YAML
# bp-valkey — Catalyst bootstrap-kit Blueprint, W2.K1 slot 17.
|
|
# Redis-compatible cache (Valkey is the BSD-licensed Redis fork). Used by
|
|
# Catalyst control-plane services for ephemeral session/state, and by
|
|
# downstream Apps that need a Redis wire-protocol cache.
|
|
#
|
|
# Per docs/BOOTSTRAP-KIT-EXPANSION-PLAN.md §2.3 (Tier 5 storage+DB
|
|
# foundation) — Valkey runs alongside CNPG so Apps can pick the right
|
|
# storage shape per workload (relational vs cache).
|
|
#
|
|
# Wrapper chart: platform/valkey/chart/
|
|
# Catalyst-curated values: platform/valkey/chart/values.yaml
|
|
# Reconciled by: Flux on the new Sovereign's k3s control plane.
|
|
|
|
---
|
|
apiVersion: v1
|
|
kind: Namespace
|
|
metadata:
|
|
name: valkey
|
|
labels:
|
|
catalyst.openova.io/sovereign: SOVEREIGN_FQDN_PLACEHOLDER
|
|
---
|
|
apiVersion: source.toolkit.fluxcd.io/v1beta2
|
|
kind: HelmRepository
|
|
metadata:
|
|
name: bp-valkey
|
|
namespace: flux-system
|
|
spec:
|
|
type: oci
|
|
interval: 15m
|
|
url: oci://ghcr.io/openova-io
|
|
secretRef:
|
|
name: ghcr-pull
|
|
---
|
|
apiVersion: helm.toolkit.fluxcd.io/v2
|
|
kind: HelmRelease
|
|
metadata:
|
|
name: bp-valkey
|
|
namespace: flux-system
|
|
spec:
|
|
interval: 15m
|
|
releaseName: valkey
|
|
targetNamespace: valkey
|
|
# Valkey is a self-contained cache — only needs Flux Ready.
|
|
dependsOn:
|
|
- name: bp-flux
|
|
chart:
|
|
spec:
|
|
chart: bp-valkey
|
|
version: 1.0.0
|
|
sourceRef:
|
|
kind: HelmRepository
|
|
name: bp-valkey
|
|
namespace: flux-system
|
|
# Event-driven install per docs/INVIOLABLE-PRINCIPLES.md #3.
|
|
install:
|
|
disableWait: true
|
|
remediation:
|
|
retries: 3
|
|
upgrade:
|
|
disableWait: true
|
|
remediation:
|
|
retries: 3
|