openova/clusters/_template/bootstrap-kit/14-crossplane-claims.yaml
e3mrah 511e96de8d
fix(bp-crossplane-claims): event-driven HR install — disableWait, drop 15m timeout (#327)
Adds the disableWait pattern to clusters/_template/bootstrap-kit/14-crossplane-claims.yaml.
PR #247 authored bp-crossplane-claims as the CRD-ordering split off bp-crossplane
but the new HR shipped with `spec.timeout: 15m` (the same band-aid PR #250 was
removing from the rest of bootstrap-kit).

This catches slot 14 up to the canonical event-driven pattern:
  install.disableWait: true
  upgrade.disableWait: true
  (no spec.timeout)

Helm completes when manifests apply; Flux dependsOn (bp-crossplane Ready=True)
gates start; XRDs+Compositions reach Ready independently.

NOT touching slots 20-26 (opentelemetry/alloy/loki/mimir/tempo/grafana/langfuse)
even though those carry the same blanket timeout — they are Day-1 marketplace
items that #310 removes from clusters/_template/bootstrap-kit/ entirely. Editing
files about to be deleted is noise. If a Day-1 chart resurfaces post-#310 (in a
marketplace overlay), the disableWait pattern travels with it via documentation.

Refs: #310 (Phase 0 trim — slots 20-26 removal), #250 (event-driven pattern
established), #247 (bp-crossplane-claims authored), session-2026-04-30 chart-fix
sweep (Agent C investigation).

Co-authored-by: Hatice Yildiz <hatice.yildiz@openova.io>
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-01 17:21:03 +04:00

64 lines
2.2 KiB
YAML

# bp-crossplane-claims — Catalyst Day-2 CRUD XRDs (compose.openova.io/v1alpha1)
# + default Hetzner-backed Compositions. Split out of bp-crossplane at
# release 1.1.3 to resolve intra-chart CRD-ordering: a single Helm release
# cannot install a CRD AND a CR of that CRD's kind in one apply pass —
# the apiserver rejects the CR because the CRD is not yet registered.
#
# Wrapper chart: platform/crossplane-claims/chart/
# Reconciled by: Flux on the new Sovereign's k3s control plane, AFTER
# bp-crossplane is Ready (dependsOn below) — at which point
# the apiextensions.crossplane.io/v1 CRDs that the upstream
# crossplane subchart registers are live.
---
apiVersion: source.toolkit.fluxcd.io/v1beta2
kind: HelmRepository
metadata:
name: bp-crossplane-claims
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-crossplane-claims
namespace: flux-system
spec:
interval: 15m
releaseName: crossplane-claims
targetNamespace: crossplane-system
# bp-crossplane installs the apiextensions.crossplane.io/v1 CRDs
# (CompositeResourceDefinition, Composition) via the upstream subchart's
# CRD payload. We MUST wait until that HelmRelease reports Ready=True
# before applying the XRDs+Compositions in this chart, otherwise the
# apiserver returns:
# no matches for kind "CompositeResourceDefinition" in version
# "apiextensions.crossplane.io/v1" -- ensure CRDs are installed first
dependsOn:
- name: bp-crossplane
chart:
spec:
chart: bp-crossplane-claims
version: 1.0.0
sourceRef:
kind: HelmRepository
name: bp-crossplane-claims
namespace: flux-system
# Event-driven install: Helm completes when manifests apply, not when the
# XRD-backed CRs reach Ready. dependsOn on bp-crossplane already gates this
# HR on the upstream CRDs being live; disableWait replaces PR #221's
# blanket spec.timeout: 15m band-aid.
install:
disableWait: true
remediation:
retries: 3
upgrade:
disableWait: true
remediation:
retries: 3