From de2fd25041983a46c088c460e69c24190b3bbd35 Mon Sep 17 00:00:00 2001 From: Gaurav Nelson <23069445+gaurav-nelson@users.noreply.github.com> Date: Mon, 27 Jul 2026 12:28:15 +1000 Subject: [PATCH] WIP: Added archived tier --- AGENTS.md | 2 +- archetypes/pattern/_index.adoc | 5 +- content/ci/_index.md | 2 + content/contribute/archived.adoc | 57 ++++++++++ content/learn/about-pattern-tiers-types.adoc | 64 ++++++++++- .../patterns/medical-diagnosis/_index.adoc | 3 +- content/workshop/tiers.adoc | 6 ++ layouts/index.html | 5 - layouts/partials/archived-banner.html | 23 ++++ layouts/partials/label-archived.html | 6 ++ layouts/partials/links.html | 4 + layouts/partials/patterns-index.html | 13 ++- layouts/patterns/list.json.json | 3 +- layouts/patterns/single.html | 9 +- layouts/patterns/summary-with-image.html | 10 +- modules/comm-attributes.adoc | 2 + .../metadata-medical-diagnosis.adoc | 2 +- static/css/custom.css | 101 ++++++++++++++++++ static/images/pattern-tier-archived.png | Bin 0 -> 412 bytes static/js/dashboard.v2.js | 13 +++ static/js/patterns-browser-v2.js | 16 ++- 21 files changed, 323 insertions(+), 23 deletions(-) create mode 100644 content/contribute/archived.adoc create mode 100644 layouts/partials/archived-banner.html create mode 100644 layouts/partials/label-archived.html create mode 100644 static/images/pattern-tier-archived.png diff --git a/AGENTS.md b/AGENTS.md index ff144139ce..b84cdceb71 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -64,7 +64,7 @@ All content files use YAML frontmatter between `---` delimiters. Fields vary by title: Pattern Name date: 2025-10-24 summary: Short description of the pattern -tier: sandbox # sandbox | tested | maintained +tier: sandbox # sandbox | tested | maintained | archived rh_products: - Red Hat OpenShift Container Platform industries: diff --git a/archetypes/pattern/_index.adoc b/archetypes/pattern/_index.adoc index c3e0633d84..aacdfcbcda 100644 --- a/archetypes/pattern/_index.adoc +++ b/archetypes/pattern/_index.adoc @@ -20,8 +20,9 @@ links: bugs: feedback: https://docs.google.com/forms/d/e/1FAIpQLScI76b6tD1WyPu2-d_9CCVDr3Fu5jYERthqLKJDUGwqBg7Vcg/viewform -# Set tier to one of sandbox, tested, or maintained. If empty, the default -# is sandbox +# Set tier to one of sandbox, tested, maintained, or archived. If empty, the +# default is sandbox. Use archived only when Validated Patterns maintainers +# have archived the pattern repository; archived is a terminal state. # tier: sandbox # # The following parameters are only used for maintained validated patterns. diff --git a/content/ci/_index.md b/content/ci/_index.md index 6a84308c6f..55df3ad0bf 100644 --- a/content/ci/_index.md +++ b/content/ci/_index.md @@ -8,3 +8,5 @@ menu: --- These are the latest results of the Validated Patterns CI test runs. + +This dashboard excludes patterns in the Archived tier because they are no longer under active development or continuous integration. diff --git a/content/contribute/archived.adoc b/content/contribute/archived.adoc new file mode 100644 index 0000000000..50c83141e4 --- /dev/null +++ b/content/contribute/archived.adoc @@ -0,0 +1,57 @@ +--- +menu: + contribute: + parent: Contributing and managing patterns +title: Validated Patterns - Archived tier +weight: 56 +aliases: /contribute/archived/ +--- + +:toc: +:imagesdir: /images +:_content-type: ASSEMBLY +include::modules/comm-attributes.adoc[] + +[id="about-archived-tier"] += About the {archived-tier-first} + +A pattern in the {archived} tier is no longer under active development. +Validated Patterns maintainers move a pattern to this tier when the pattern's source repository has been archived on GitHub. +Archived patterns remain documented for reference, but avoid using them for new deployments. + +[IMPORTANT] +==== +The {archived} tier is a terminal state. +Patterns do not move from {archived} back to {sandbox}, {tested}, or {maintained}. +==== + +[id="moving-a-pattern-to-archived-tier"] +== Moving a pattern to the {archived} tier + +Only Validated Patterns maintainers decide when a pattern moves to the {archived} tier. +A pattern does not move to {archived} automatically. + +Typical conditions before archiving include: + +* The pattern repository has been archived on GitHub. +* No further development or maintenance is planned. + +After a pattern is archived: + +* The pattern page and related documentation remain available. +* Pattern cards use a desaturated style, and an Archived banner appears on the pattern documentation pages. +* The Install resource link on the pattern page is disabled. +* The pattern is hidden from the default patterns catalog view until you select the Archived filter. +* The pattern is not included in the homepage tier accordion. + +[id="requirements-archived-tier"] +== Requirements for the {archived} tier + +Must:: + +[id="must-archived-tier"] +=== Must + +. The pattern repository must be archived on GitHub. +. The pattern frontmatter must set `tier: archived`. +. Keep pattern documentation published so existing users can find historical guidance. diff --git a/content/learn/about-pattern-tiers-types.adoc b/content/learn/about-pattern-tiers-types.adoc index af3235e84a..e1a483b38b 100644 --- a/content/learn/about-pattern-tiers-types.adoc +++ b/content/learn/about-pattern-tiers-types.adoc @@ -16,7 +16,7 @@ include::modules/comm-attributes.adoc[] = Validated Pattern tiers in-depth [role="_abstract"] -Patterns are categorized into distinct tiers: *Sandbox*, *Tested*, and *Maintained*. +Patterns are categorized into distinct tiers: *Sandbox*, *Tested*, *Maintained*, and *Archived*. The different tiers of Validated Patterns are designed to facilitate ongoing maintenance, support, and testing efforts for a pattern. The tiering system emphasizes the requirements a pattern meets, rather than focusing on who does the maintenance. @@ -56,6 +56,15 @@ The following table describes each pattern tier and a short description of what * Continuously validated to ensure all integrated components work seamlessly together as good or better after upgrades. * Includes only supported services and components. +|image:pattern-tier-archived.png[Archived tier] +|xref:#archived-tier[{archived-tier-first}] +|An Archived pattern is: + +* No longer actively developed. +* Kept in the documentation site for reference, with an Archived notice on its pages. +* Hidden from the default patterns catalog until you select the Archived filter. +* Not recommended for new deployments. + |=== [id="sandbox-tier"] @@ -138,102 +147,151 @@ Following are some examples of the patterns in the maintained tier: * link:/ansible-edge-gitops[Ansible Edge GitOps] * link:/multicloud-gitops[Multicloud GitOps] + +[id="archived-tier"] +== Archived tier + +The Archived tier is for patterns that Validated Patterns maintainers have retired from active development. +A pattern moves to this tier when its source repository has been archived on GitHub. +Archiving is a manual decision by Validated Patterns maintainers and is a terminal state. Patterns do not move from Archived back to another tier. + +Documentation for archived patterns remains available for reference. +Pattern pages show an Archived banner, Install links are inactive, and pattern cards appear desaturated in the catalog when you enable the Archived filter. + +Following are the main characteristics of patterns in the archived tier: + +* *Repository status*: The pattern repository is archived on GitHub. +* *No active maintenance*: No further development, CI, or support expectations apply to the pattern. +* *Reference documentation*: Existing documentation remains published for historical reference. +* *Catalog visibility*: Archived patterns are hidden from the default patterns list until you select the Archived filter. + +Following are some examples of the patterns in the archived tier: + * link:/medical-diagnosis[Medical Diagnosis] +[role="_additional-resources"] +.Additional resources + +* For more information about the Archived tier process, see link:/contribute/archived/[Archived tier]. + [id="feature-breakdown-by-tiers"] == Feature breakdown by tiers -[cols="4,^1,^1,^1", options="header"] +[cols="4,^1,^1,^1,^1", options="header"] |=== -| Feature | Sandbox | Tested | Maintained +| Feature | Sandbox | Tested | Maintained | Archived | *Deploys on fresh OpenShift without modification* | ✓ | ✓ | ✓ +| - | *Useful without private/closed source apps* | ✓ | ✓ | ✓ +| - | *Open contribution and collaboration* | ✓ | ✓ | ✓ +| - | *Documented support policy* | ✓ | ✓ | ✓ +| - | *README with problem statement* | ✓ | ✓ | ✓ +| ✓ | *Includes architecture diagram* | ✓ | ✓ | ✓ +| ✓ | *Business use case with demo* | - | ✓ | ✓ +| - | *Standardized architecture diagram and written guide* | - | ✓ | ✓ +| - | *Test plan passes at least once per quarter* | - | ✓ | ✓ +| - | *Tested on at least 1 supported OCP version* | - | ✓ | ✓ +| - | *Publicly visible test results (JSON)* | - | ✓ | ✓ +| - | *Implementation review* | - | ✓ | ✓ +| - | *Automated CI pipeline (every change or weekly)* | - | - | ✓ +| - | *Tested on 2 latest EUS and active interim versions* | - | - | ✓ +| - | *Tested on pre-release bits* | - | - | ✓ +| - | *Timely fixes for breakage* | - | - | ✓ +| - | *No Tech Preview or feature-gated features* | - | - | ✓ +| - | *Includes only supported services and components* | - | - | ✓ +| - + +| *Repository archived; docs kept for reference* +| - +| - +| - +| ✓ |=== diff --git a/content/patterns/medical-diagnosis/_index.adoc b/content/patterns/medical-diagnosis/_index.adoc index ef20aab824..92df6ecdd5 100644 --- a/content/patterns/medical-diagnosis/_index.adoc +++ b/content/patterns/medical-diagnosis/_index.adoc @@ -1,7 +1,7 @@ --- title: Medical Diagnosis date: 2021-01-19 -tier: maintained +tier: archived summary: This pattern is based on a demo implementation of an automated data pipeline for chest X-ray analysis previously developed by Red Hat. rh_products: - Red Hat OpenShift Container Platform @@ -22,7 +22,6 @@ links: arch: https://www.redhat.com/architect/portfolio/detail/6-enabling-medical-imaging-diagnostics-with-edge bugs: https://github.com/validatedpatterns/medical-diagnosis/issues feedback: https://docs.google.com/forms/d/e/1FAIpQLScI76b6tD1WyPu2-d_9CCVDr3Fu5jYERthqLKJDUGwqBg7Vcg/viewform -ci: medicaldiag --- include::modules/comm-attributes.adoc[] :_content-type: ASSEMBLY diff --git a/content/workshop/tiers.adoc b/content/workshop/tiers.adoc index 9b80ca8598..0a15e782c8 100644 --- a/content/workshop/tiers.adoc +++ b/content/workshop/tiers.adoc @@ -32,6 +32,12 @@ a| * functional on all currently supported/extended update support (EUS) version * must document their support policy | link:/contribute/maintained/[Details] +|**Archived** +a| * pattern repository has been archived on GitHub + * the pattern is no longer under active development or maintenance + * documentation remains available for reference +| link:/contribute/archived/[Details] + |=== == Additional Resources diff --git a/layouts/index.html b/layouts/index.html index 6124f21a8d..0f3b6d1ba7 100644 --- a/layouts/index.html +++ b/layouts/index.html @@ -142,11 +142,6 @@

→ MLOps fraud detection -
- - → Medical diagnosis - -
diff --git a/layouts/partials/archived-banner.html b/layouts/partials/archived-banner.html new file mode 100644 index 0000000000..68e173cc69 --- /dev/null +++ b/layouts/partials/archived-banner.html @@ -0,0 +1,23 @@ +{{/* + Banner shown on all pages belonging to an archived pattern. +*/}} +{{ $tier := "" }} +{{ if isset .Params "tier" }} + {{ $tier = .Params.tier }} +{{ else if and .CurrentSection (isset .CurrentSection.Params "tier") }} + {{ $tier = .CurrentSection.Params.tier }} +{{ end }} +{{ if eq $tier "archived" }} +
+
+ + Archived + + + This pattern is archived. The source repository is no longer maintained, + and Validated Patterns maintainers do not recommend deploying it for new use cases. + Documentation remains available for reference. + +
+
+{{ end }} diff --git a/layouts/partials/label-archived.html b/layouts/partials/label-archived.html new file mode 100644 index 0000000000..ba64b6beaa --- /dev/null +++ b/layouts/partials/label-archived.html @@ -0,0 +1,6 @@ + + + Archived + Archived + + diff --git a/layouts/partials/links.html b/layouts/partials/links.html index 92a8682b1d..7525062a24 100644 --- a/layouts/partials/links.html +++ b/layouts/partials/links.html @@ -14,7 +14,11 @@ + {{ if eq (.Param "tier") "archived" }} + Install + {{ else }} Install + {{ end }} {{ end }} {{ if (isset .Params.links "arch") }} diff --git a/layouts/partials/patterns-index.html b/layouts/partials/patterns-index.html index ad8e0fde53..5903cc2c34 100644 --- a/layouts/partials/patterns-index.html +++ b/layouts/partials/patterns-index.html @@ -44,7 +44,14 @@ {{ partial "page-toolbar.html" . }}
{{ partial "toc.html" . }} -
+ {{ $archivedTier := "" }} + {{ if isset .Params "tier" }} + {{ $archivedTier = .Params.tier }} + {{ else if and .CurrentSection (isset .CurrentSection.Params "tier") }} + {{ $archivedTier = .CurrentSection.Params.tier }} + {{ end }} +
+ {{ partial "archived-banner.html" . }}
@@ -82,12 +89,14 @@

{{ .Title }}

{{ partial "label-maintained.html" . }} {{ else if (eq $validated "tested" ) }} {{ partial "label-tested.html" . }} + {{ else if (eq $validated "archived" ) }} + {{ partial "label-archived.html" . }} {{ else }} {{ partial "label-sandbox.html" . }} {{ end }}
- {{ if (isset .Params "ci") }} + {{ if and (isset .Params "ci") (ne (.Param "tier") "archived") }}
{{ partial "ci.html" . }}
diff --git a/layouts/patterns/list.json.json b/layouts/patterns/list.json.json index c7d1672242..7179a76081 100644 --- a/layouts/patterns/list.json.json +++ b/layouts/patterns/list.json.json @@ -48,7 +48,8 @@ {{- $tiers_list := slice -}} {{- $tiers_list = $tiers_list | append (dict "Name" "maintained" "LinkTitle" "Maintained" "color" "green") }} {{- $tiers_list = $tiers_list | append (dict "Name" "tested" "LinkTitle" "Tested" "color" "blue") }} - {{- $tiers_list = $tiers_list | append (dict "Name" "sandbox" "LinkTitle" "Sandbox" "color" "oragne") }} + {{- $tiers_list = $tiers_list | append (dict "Name" "sandbox" "LinkTitle" "Sandbox" "color" "orange") }} + {{- $tiers_list = $tiers_list | append (dict "Name" "archived" "LinkTitle" "Archived" "color" "grey") }} {{- $tiers_filter_types := slice "OR" }} {{- $tiers_dict := dict "filter_list" $tiers_list "filter_types" $tiers_filter_types }} diff --git a/layouts/patterns/single.html b/layouts/patterns/single.html index 8674c53c29..60cf411e4b 100644 --- a/layouts/patterns/single.html +++ b/layouts/patterns/single.html @@ -11,7 +11,14 @@ {{ partial "page-toolbar.html" . }}
{{ partial "toc.html" . }} -
+ {{ $archivedTier := "" }} + {{ if isset .Params "tier" }} + {{ $archivedTier = .Params.tier }} + {{ else if and .CurrentSection (isset .CurrentSection.Params "tier") }} + {{ $archivedTier = .CurrentSection.Params.tier }} + {{ end }} +
+ {{ partial "archived-banner.html" . }} {{ .Content }} diff --git a/layouts/patterns/summary-with-image.html b/layouts/patterns/summary-with-image.html index 1284fde395..92a18b926c 100644 --- a/layouts/patterns/summary-with-image.html +++ b/layouts/patterns/summary-with-image.html @@ -1,5 +1,10 @@ {{ $featured_image := partial "func/GetFeaturedImage.html" . }} -
+{{ $validated := .Param "tier" }} +{{ $cardClass := "pf-c-card" }} +{{ if eq $validated "archived" }} + {{ $cardClass = "pf-c-card pattern-card-archived" }} +{{ end }} +