# 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