brochure: delete apps/brochure/ — full prune per operator decision 2026-05-19
Removes the apps/brochure/ directory entirely from the bluejay-infra
ApplicationSet glob. ArgoCD will:
1. See infra-brochure has no git source -> mark for delete
2. Prune the brochure namespace + Deployment + Service + Certificate
+ Secret + IngressRoute (all generated from the now-gone
apps/brochure/brochure.yaml)
3. Remove the infra-brochure Application from argocd ns
Operator decision 2026-05-19 (follow-up to 09387f9 ARCHIVED banner
commit): "Yes, prune argo for brochure. Probably fully deleted there."
The brochure subdomain project was a planning-chain misinterpretation
of "make TtsReader + AI Station production-ready" — see
memory/project_brochure_split_misinterpretation_archived_2026_05_19.md
in FlowerCore.Notes for the full decision record.
Reusable artifacts that were the operator's archive concern stay alive
in their actual homes:
- FlowerCore.Intranet.Web PR #8 content-NuGet carve-out: still in
Intranet's master, may transfer to TtsReader / AI Station prod work
- Sprint 32 Cl-5 substrate (public-twin design ideas): SUPERSEDED banner
in-place in FlowerCore.Notes docs/standards/, history preserved
- magpie-doc-writer + wren-walkthrough skill output: unchanged in
Intranet's flowercore-whats-new/walkthroughs/galleries directories
Companion Notes-side commit updates the "scaled to 0 + ARCHIVED banner"
language in mvp-readiness.html + fleet-roadmap-2026-05-19-sprint36-v2.md
+ memory record to reflect full deletion instead.
Wrong-codebase image localhost/fc-brochure-web:v20260524-sprint32 is
being removed from rke2-server / rke2-agent1 / rke2-agent2 in a
follow-up step (reclaims ~800MB per node).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1,33 +0,0 @@
|
||||
# FlowerCore Brochure — ARCHIVED 2026-05-19
|
||||
|
||||
**Status:** ARCHIVED. Do not re-enable, do not rebuild the image.
|
||||
|
||||
## What this was
|
||||
|
||||
A proposed public-facing brochure subdomain (`brochure.flowercore.io`) that would carve `/whats-new`, `/walkthroughs`, and `/galleries` content out of `FlowerCore.Intranet.Web` and serve it anonymously through a new thin Blazor host backed by a `FlowerCore.Brochure.Content` NuGet.
|
||||
|
||||
## Why it was archived
|
||||
|
||||
The operator asked for **TtsReader and AI Station to become production-ready**. Somewhere along the way that request was misinterpreted by the planning chain into "spin up a new showcase brochure product". The brochure project itself is pointless and a waste of credits. The two actual productionization arcs (TtsReader + AI Station) get the focus instead.
|
||||
|
||||
## Archive (don't delete) rationale
|
||||
|
||||
Some of the work shipped under this misinterpretation may still have value if pulled back into the actual productionization work:
|
||||
|
||||
- `FlowerCore.Intranet.Web` PR #8 (merged Sprint 32) introduced the `FlowerCore.Brochure.Content` content-split carve-out. That code may be reusable as a content-NuGet pattern for TtsReader/AiStation production polish.
|
||||
- The Sprint 32 Cl-5 substrate (`docs/standards/sprint-32-intranet-brochure-split-substrate-2026-05-24.md`) contains design ideas for public-twin vs. operator-host separation that could apply elsewhere.
|
||||
- The magpie-doc-writer / wren-walkthrough skills that authored `flowercore-whats-new`, `flowercore-walkthroughs`, `flowercore-galleries` content still produce useful Intranet content — those skills are NOT archived.
|
||||
|
||||
The Sprint 34 Cl-4 brochure rebuild Codex pack is at `docs/archived/codex-2026-05-18-fc-brochure-web-rebuild-pack.md` in `FlowerCore.Notes`.
|
||||
|
||||
## Cluster state
|
||||
|
||||
These manifests stay at `replicas: 0`. ArgoCD keeps the `brochure` namespace + service + cert + IngressRoute objects alive for continuity, but nothing serves real traffic. The `localhost/fc-brochure-web:v20260524-sprint32` image still exists on RKE2 nodes — that image is the wrong codebase (an `FlowerCore.Intranet.Web` binary mis-tagged as brochure during Sprint 33 Cx-5) and can be safely `ctr images rm`'d in a future cleanup.
|
||||
|
||||
## Cleanup choices for a future sprint
|
||||
|
||||
1. **Leave as-is** (current state). Negligible cluster footprint. Operator can re-evaluate later.
|
||||
2. **Move directory** to `apps-archived/brochure/` (outside the `apps/*` ApplicationSet glob). ArgoCD prunes the `infra-brochure` Application + the `brochure` namespace. Manifests preserved in git history.
|
||||
3. **Delete entirely.** Removes from git too. Use only after confirming no reusable patterns are still pending extraction.
|
||||
|
||||
All three are valid. Operator-explicit at the time of cleanup.
|
||||
@@ -1,146 +0,0 @@
|
||||
# FlowerCore Brochure public host — ARCHIVED 2026-05-19
|
||||
#
|
||||
# This project was a MISINTERPRETATION of an operator productionization
|
||||
# request (TtsReader + AiStation production-ready) that spun up into a
|
||||
# whole new showcase product. Operator decision 2026-05-19: archive,
|
||||
# don't delete — the Sprint 32 Cl-5 substrate + the FlowerCore.Intranet.Web
|
||||
# PR #8 carve-out may have reusable content/admin-panel work that could
|
||||
# be pulled back into the actual productionization work later.
|
||||
#
|
||||
# Do NOT re-enable. Do NOT try to rebuild the brochure-web image.
|
||||
# Do NOT dispatch the Sprint 34 Cl-4 rebuild pack (now at
|
||||
# docs/archived/codex-2026-05-18-fc-brochure-web-rebuild-pack.md).
|
||||
#
|
||||
# These manifests stay in-place at replicas: 0 for ArgoCD continuity.
|
||||
# Cleanup options for a future sprint: (a) move this whole directory
|
||||
# to apps-archived/brochure/ so the ApplicationSet stops tracking it
|
||||
# and ArgoCD prunes the namespace, OR (b) delete the directory entirely.
|
||||
# Both are valid; operator-explicit at the time of cleanup.
|
||||
#
|
||||
# Memory: project_brochure_split_misinterpretation_archived_2026_05_19
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Namespace
|
||||
metadata:
|
||||
name: brochure
|
||||
labels:
|
||||
app.kubernetes.io/part-of: flowercore
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: brochure-web
|
||||
namespace: brochure
|
||||
labels:
|
||||
app: brochure-web
|
||||
app.kubernetes.io/name: brochure-web
|
||||
app.kubernetes.io/part-of: flowercore
|
||||
spec:
|
||||
replicas: 0 # ARCHIVED 2026-05-19 — brochure project was a misinterpretation; do not re-enable. See file header for context.
|
||||
revisionHistoryLimit: 3
|
||||
selector:
|
||||
matchLabels:
|
||||
app: brochure-web
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: brochure-web
|
||||
app.kubernetes.io/name: brochure-web
|
||||
app.kubernetes.io/part-of: flowercore
|
||||
spec:
|
||||
containers:
|
||||
- name: brochure-web
|
||||
image: localhost/fc-brochure-web:v20260524-sprint32
|
||||
imagePullPolicy: Never
|
||||
ports:
|
||||
- containerPort: 8080
|
||||
name: http
|
||||
env:
|
||||
- name: ASPNETCORE_ENVIRONMENT
|
||||
value: Production
|
||||
- name: ASPNETCORE_URLS
|
||||
value: "http://+:8080"
|
||||
resources:
|
||||
requests:
|
||||
cpu: "25m"
|
||||
memory: "128Mi"
|
||||
limits:
|
||||
cpu: "500m"
|
||||
memory: "512Mi"
|
||||
readinessProbe:
|
||||
httpGet:
|
||||
path: /health
|
||||
port: http
|
||||
initialDelaySeconds: 10
|
||||
periodSeconds: 10
|
||||
livenessProbe:
|
||||
httpGet:
|
||||
path: /health
|
||||
port: http
|
||||
initialDelaySeconds: 30
|
||||
periodSeconds: 30
|
||||
securityContext:
|
||||
runAsNonRoot: true
|
||||
runAsUser: 1654
|
||||
runAsGroup: 1654
|
||||
allowPrivilegeEscalation: false
|
||||
readOnlyRootFilesystem: true
|
||||
capabilities:
|
||||
drop:
|
||||
- ALL
|
||||
volumeMounts:
|
||||
- name: tmp
|
||||
mountPath: /tmp
|
||||
volumes:
|
||||
- name: tmp
|
||||
emptyDir: {}
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: brochure-web
|
||||
namespace: brochure
|
||||
labels:
|
||||
app: brochure-web
|
||||
app.kubernetes.io/name: brochure-web
|
||||
app.kubernetes.io/part-of: flowercore
|
||||
spec:
|
||||
type: ClusterIP
|
||||
selector:
|
||||
app: brochure-web
|
||||
ports:
|
||||
- name: http
|
||||
port: 8080
|
||||
targetPort: http
|
||||
---
|
||||
apiVersion: cert-manager.io/v1
|
||||
kind: Certificate
|
||||
metadata:
|
||||
name: brochure-web-tls
|
||||
namespace: brochure
|
||||
spec:
|
||||
secretName: brochure-web-tls
|
||||
issuerRef:
|
||||
name: step-ca-acme
|
||||
kind: ClusterIssuer
|
||||
dnsNames:
|
||||
- brochure.flowercore.io
|
||||
duration: 720h
|
||||
renewBefore: 240h
|
||||
---
|
||||
apiVersion: traefik.io/v1alpha1
|
||||
kind: IngressRoute
|
||||
metadata:
|
||||
name: brochure-web-public
|
||||
namespace: brochure
|
||||
spec:
|
||||
entryPoints:
|
||||
- websecure
|
||||
routes:
|
||||
- match: Host(`brochure.flowercore.io`) && (Method(`GET`) || Method(`HEAD`))
|
||||
kind: Rule
|
||||
services:
|
||||
- name: brochure-web
|
||||
port: 8080
|
||||
tls:
|
||||
secretName: brochure-web-tls
|
||||
Reference in New Issue
Block a user