- Wizard step canonical order updated to Org → Topology → Provider → Credentials → Components → Domain → Review (RUNBOOK-PROVISIONING, DEMO-RUNBOOK, IMPLEMENTATION-STATUS); SKU pickers cross-ref the PROVIDER_NODE_SIZES per-provider catalog (#176). - StepComponents UX rewritten: single flat marketplace card grid with family chips + product/family routes, two tabs (Choose Your Stack + Always Included) — replaces the prior "two-tab Mandatory infra/Apps" + "grouped by product header" prose (PRODUCT-FAMILIES, RUNBOOK- PROVISIONING, DEMO-RUNBOOK, COMPONENT-LOGOS). - CORTEX familyDependencies = [] reflected in PRODUCT-FAMILIES; the Specter / BGE cascade narratives rewritten to component-level-only resolution (langfuse → cnpg, librechat → ferretdb → cnpg) — fixes the "selecting Spector pulls entire FABRIC" over-broad claim. - catalyst-api OpenTofu workdir realigned from /var/lib/catalyst/... to /tmp/catalyst/tofu/<fqdn>/ via CATALYST_TOFU_WORKDIR env var (commit27527e4c) — fixes runtime drift in RUNBOOK-PROVISIONING, SOVEREIGN-PROVISIONING, DEMO-RUNBOOK; DEMO-RUNBOOK kubectl exec ns corrected from catalyst-system to catalyst. - Logo asset story rewritten: 58 logos (44 SVG + 14 PNG) sourced from CNCF artwork + project repos at #169b1d1c/#30ff318d, replacing the prior 62 stylised in-house marks; CI smoke-test (#6a7d2dd8) cross-referenced. - 12 G2 bootstrap-kit charts (original 11 + bp-powerdns #167) aligned in PROVISIONING-PLAN Group F + blueprint-release.yaml comment + SOVEREIGN-PROVISIONING header; previously stale at 11. - README repo-structure note updated: 12-component bootstrap kit + axon + external-dns leaf chart are built; 45 platform / 4 product folders remain README-only (was: "every folder except axon"). - ORCHESTRATOR-STATE main-tip SHA advanced fromdd578d1c→6afdb303with one-line summary of the post-Pass-1 batch. - VALIDATION-LOG: Reconcile Pass 2 entry appended (drift fixed across 10 files; six-category rubric). Reconcile Pass 2 against main @6afdb303— 10 files patched plus VALIDATION-LOG entry. Doc patches are landing first so the in-flight wizard step-reorder branch will merge into a doc set that already names the canonical order, avoiding a second drift round. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
163 lines
14 KiB
Markdown
163 lines
14 KiB
Markdown
# Component Logos
|
|
|
|
The OpenOva Catalyst wizard's component picker (Step 5: Components,
|
|
[`StepComponents.tsx`](../products/catalyst/bootstrap/ui/src/pages/wizard/steps/StepComponents.tsx))
|
|
renders a single flat marketplace card grid (no per-family section
|
|
headers) with a clickable family chip on each card and a search +
|
|
product-family chip filter at the top — the layout that won out after
|
|
the operator's "fragmented page" feedback at #b0ec0c43. Each card
|
|
displays the component's brand mark from a vendored asset file under
|
|
`products/catalyst/bootstrap/ui/public/component-logos/<id>.{svg,png}`.
|
|
|
|
This doc tracks the source and licence of each logo so the asset
|
|
library can be audited, re-vendored, or swapped for canonical upstream
|
|
art when permission/license is verified.
|
|
|
|
## How it works
|
|
|
|
`componentGroups.ts` declares each component with an optional `logoUrl`
|
|
field. The default value (when omitted) is `/component-logos/<id>.svg`,
|
|
which Vite serves from the wizard's `public/` directory. Components
|
|
whose canonical upstream asset is published as PNG (e.g. coraza,
|
|
external-dns, ferretdb, langfuse, loki, mimir, netbird, ntfy, openmeter,
|
|
strongswan, syft-grype, tempo, trivy, vllm) carry an explicit
|
|
`logoUrl: basePath('component-logos/<id>.png')` override in the catalog
|
|
entry. To change a logo:
|
|
|
|
- **Use a vendored upstream SVG/PNG**: replace the file at
|
|
`public/component-logos/<id>.<ext>`. No code change required —
|
|
the URL is data, not source (per
|
|
[INVIOLABLE-PRINCIPLES.md](INVIOLABLE-PRINCIPLES.md) #4 "never
|
|
hardcode").
|
|
- **Suppress the logo entirely**: set `logoUrl: null` in the component
|
|
definition (PowerDNS uses this — no single-glyph upstream brand mark
|
|
is suitable for a square card tile). The card renders the letter-mark
|
|
fallback (hue-derived from the component name).
|
|
|
|
## Current asset status
|
|
|
|
The 58 logo files currently in `public/component-logos/` (44 SVG + 14
|
|
PNG, replacing the prior 62 stylised in-house marks at #169b1d1c
|
|
+ #30ff318d) are sourced from the canonical upstream:
|
|
|
|
- **CNCF artwork repo** — cert-manager, cilium, cnpg (cloudnativepg),
|
|
crossplane, envoy, external-secrets, falco, flux, harbor, keda,
|
|
keycloak, knative, kserve, kyverno, litmus, opentelemetry, opentofu,
|
|
sigstore, strimzi, vpa.
|
|
- **Project repos** (each upstream's own brand page or repository) —
|
|
alloy, clickhouse, debezium, ferretdb, frpc, gitea, grafana, iceberg,
|
|
langfuse, librechat, livekit, loki, matrix, milvus, mimir, neo4j,
|
|
netbird, ntfy, openbao, openmeter, opensearch, reloader, seaweedfs,
|
|
stalwart, strongswan, stunner, superset, syft-grype, temporal, tempo,
|
|
trivy, valkey, vcluster, velero, vllm, flink, coraza.
|
|
- **OpenOva-curated** (no upstream brand) — axon, bge, continuum,
|
|
specter. These ship as in-house marks under the OpenOva license.
|
|
|
|
The catalog references one additional component (`powerdns`) whose
|
|
catalog entry sets `logoUrl: null` — PowerDNS has no single-glyph
|
|
upstream brand mark suitable for a square card tile, so the wizard
|
|
renders the letter-mark fallback by design.
|
|
|
|
CI's logo smoke-test (`.github/workflows/catalyst-build.yaml`,
|
|
commit `6a7d2dd8`) curls every PNG/SVG path the catalog references so
|
|
a missing or mis-cased asset fails the build, not the user.
|
|
|
|
The table below records the canonical upstream logo source for each
|
|
component for re-vendoring + license traceability.
|
|
|
|
| Component slug | Upstream project | Canonical logo source | Notes |
|
|
|---------------------|-----------------------|-----------------------------------------------------------------------------|-------|
|
|
| flux | Flux CD | https://github.com/cncf/artwork/tree/main/projects/flux | CNCF graduated, Apache-2.0, brand-guidelines apply |
|
|
| crossplane | Crossplane | https://github.com/cncf/artwork/tree/main/projects/crossplane | CNCF incubating |
|
|
| gitea | Gitea | https://about.gitea.com/ | MIT |
|
|
| opentofu | OpenTofu | https://opentofu.org/ | Linux Foundation, MPL-2.0 |
|
|
| vcluster | vCluster (Loft Labs) | https://www.vcluster.com/brand | Apache-2.0 |
|
|
| cilium | Cilium | https://github.com/cncf/artwork/tree/main/projects/cilium | CNCF graduated |
|
|
| coraza | Coraza WAF | https://coraza.io/ | OWASP, Apache-2.0 |
|
|
| external-dns | ExternalDNS | https://github.com/kubernetes-sigs/external-dns | Kubernetes-sigs |
|
|
| envoy | Envoy Proxy | https://github.com/cncf/artwork/tree/main/projects/envoy | CNCF graduated |
|
|
| frpc | frp / frpc | https://github.com/fatedier/frp | Apache-2.0 |
|
|
| netbird | NetBird | https://netbird.io/brand | BSD-3-Clause |
|
|
| strongswan | strongSwan | https://www.strongswan.org/ | GPL-2.0 |
|
|
| vpa | Kubernetes VPA | https://github.com/kubernetes/autoscaler | Apache-2.0 — Kubernetes wheel mark |
|
|
| keda | KEDA | https://github.com/cncf/artwork/tree/main/projects/keda | CNCF graduated |
|
|
| reloader | Reloader (Stakater) | https://github.com/stakater/Reloader | Apache-2.0 |
|
|
| continuum | Continuum (in-house) | OpenOva platform-curated | No upstream — text-mark fallback |
|
|
| seaweedfs | SeaweedFS | https://github.com/seaweedfs/seaweedfs | Apache-2.0 |
|
|
| velero | Velero | https://github.com/cncf/artwork/tree/main/projects/velero | CNCF |
|
|
| harbor | Harbor | https://github.com/cncf/artwork/tree/main/projects/harbor | CNCF graduated |
|
|
| falco | Falco | https://github.com/cncf/artwork/tree/main/projects/falco | CNCF graduated |
|
|
| kyverno | Kyverno | https://github.com/cncf/artwork/tree/main/projects/kyverno | CNCF graduated |
|
|
| trivy | Trivy (Aqua) | https://github.com/aquasecurity/trivy | Apache-2.0 |
|
|
| syft-grype | Syft + Grype | https://github.com/anchore/syft, https://github.com/anchore/grype | Apache-2.0 (Anchore) |
|
|
| sigstore | Sigstore | https://www.sigstore.dev/ | Linux Foundation |
|
|
| keycloak | Keycloak | https://www.keycloak.org/ | CNCF, Apache-2.0 |
|
|
| openbao | OpenBao (Vault fork) | https://openbao.org/img/openbao-icon.svg | MPL-2.0 — use OpenBao's mark, **NOT** HashiCorp Vault's |
|
|
| external-secrets | External Secrets Op. | https://github.com/external-secrets/external-secrets | Apache-2.0 |
|
|
| cert-manager | cert-manager | https://github.com/cncf/artwork/tree/main/projects/cert-manager | CNCF graduated |
|
|
| grafana | Grafana | https://grafana.com/brand | AGPL-3.0; brand-guidelines apply |
|
|
| opentelemetry | OpenTelemetry | https://github.com/cncf/artwork/tree/main/projects/opentelemetry | CNCF graduated |
|
|
| alloy | Grafana Alloy | https://grafana.com/brand | AGPL-3.0 |
|
|
| loki | Grafana Loki | https://grafana.com/brand | AGPL-3.0 |
|
|
| mimir | Grafana Mimir | https://grafana.com/brand | AGPL-3.0 |
|
|
| tempo | Grafana Tempo | https://grafana.com/brand | AGPL-3.0 |
|
|
| opensearch | OpenSearch | https://opensearch.org/brand-guidelines/ | Apache-2.0 |
|
|
| litmus | LitmusChaos | https://github.com/cncf/artwork/tree/main/projects/litmus | CNCF |
|
|
| openmeter | OpenMeter | https://openmeter.io/ | Apache-2.0 |
|
|
| specter | Specter (in-house) | OpenOva platform-curated | No upstream — text-mark fallback |
|
|
| cnpg | CloudNativePG | https://cloudnative-pg.io/ | Apache-2.0 |
|
|
| valkey | Valkey | https://valkey.io/ | Linux Foundation, BSD-3 |
|
|
| strimzi | Strimzi | https://github.com/cncf/artwork/tree/main/projects/strimzi | CNCF |
|
|
| debezium | Debezium | https://debezium.io/ | Apache-2.0 |
|
|
| flink | Apache Flink | https://flink.apache.org/ | Apache-2.0 — Apache trademark policy applies |
|
|
| temporal | Temporal | https://temporal.io/brand | MIT |
|
|
| clickhouse | ClickHouse | https://clickhouse.com/ | Apache-2.0 |
|
|
| ferretdb | FerretDB | https://www.ferretdb.io/ | Apache-2.0 |
|
|
| iceberg | Apache Iceberg | https://iceberg.apache.org/ | Apache-2.0 |
|
|
| superset | Apache Superset | https://superset.apache.org/ | Apache-2.0 |
|
|
| kserve | KServe | https://github.com/cncf/artwork/tree/main/projects/kserve | CNCF |
|
|
| knative | Knative | https://github.com/cncf/artwork/tree/main/projects/knative | CNCF |
|
|
| axon | Axon (OpenOva) | OpenOva platform-curated | OpenOva product mark |
|
|
| neo4j | Neo4j | https://neo4j.com/brand | GPL-3.0 (community) |
|
|
| vllm | vLLM | https://github.com/vllm-project/vllm | Apache-2.0 |
|
|
| milvus | Milvus | https://github.com/cncf/artwork/tree/main/projects/milvus | CNCF |
|
|
| bge | BGE (BAAI) | BAAI / FlagEmbedding | MIT |
|
|
| langfuse | Langfuse | https://github.com/langfuse/langfuse | MIT |
|
|
| librechat | LibreChat | https://github.com/danny-avila/LibreChat | MIT |
|
|
| stalwart | Stalwart | https://stalw.art/ | AGPL-3.0 |
|
|
| livekit | LiveKit | https://livekit.io/ | Apache-2.0 |
|
|
| stunner | STUNner | https://github.com/l7mp/stunner | MIT |
|
|
| matrix | Matrix | https://matrix.org/foundation/ | Apache-2.0 |
|
|
| ntfy | ntfy | https://ntfy.sh/ | Apache-2.0 |
|
|
|
|
## Replacement procedure
|
|
|
|
To replace an in-house mark with the upstream's official SVG:
|
|
|
|
1. Download the canonical asset from the source URL above.
|
|
2. Confirm licence permits redistribution in this public repo (most
|
|
CNCF projects allow brand-asset use with attribution; some require
|
|
permission for derivative works).
|
|
3. Convert to a square viewBox if not already; size to 64x64.
|
|
4. Save as `products/catalyst/bootstrap/ui/public/component-logos/<id>.svg`,
|
|
overwriting the existing file.
|
|
5. Run `npm test` in `products/catalyst/bootstrap/ui/` to confirm tests
|
|
still pass (logos are loaded by URL, so no test-fixture change is
|
|
needed).
|
|
6. Commit under `area/platform`, mention the licence in the commit
|
|
message.
|
|
|
|
## License note
|
|
|
|
OpenOva does not claim ownership of any third-party project's brand or
|
|
logo. The marks vendored under `public/component-logos/` are
|
|
**stylised brand-color silhouettes** generated for use in OpenOva's own
|
|
console UI. Each upstream project's name and brand-color reference
|
|
remains the property of its respective owner. When you ship the
|
|
Catalyst wizard to a customer, ensure the licence terms of any
|
|
canonical upstream logos you swap in still permit redistribution in
|
|
your build.
|
|
|
|
For OpenOva-curated components (Continuum, Specter, Axon) there is no
|
|
upstream — the marks are wholly OpenOva's.
|