Skip to content

Commit ebd92a7

Browse files
committed
Addressed Dan's feedback
1 parent b39d984 commit ebd92a7

File tree

5 files changed

+53
-34
lines changed

5 files changed

+53
-34
lines changed

content/learn/about-pattern-tiers-types.adoc

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ menu:
44
parent: Workflow
55
title: Validated Pattern tiers
66
weight: 41
7-
aliases: /learn/about-pattern-tiers-types
87
---
98

109
:toc:
@@ -21,18 +20,18 @@ The different tiers of {solution-name-upstream} are designed to facilitate ongoi
2120
|Pattern tier|Description
2221

2322
|link:/requirements/sandbox/[{sandbox-tier-first}]
24-
|A pattern categorized under the {sandbox} tier provides you with an entry point to onboard to {solution-name-upstream}. The minimum requirement to qualify for the {sandbox} tier is to start with the patterns framework and include minimal documentation.
23+
|A pattern categorized under the {sandbox} tier provides you with an entry point to onboard to {solution-name-upstream}. The minimum requirement to qualify for the {sandbox} tier is to start with the patterns framework and include minimal documentation.
2524

2625
The patterns in this tier might be in a work-in-progress state; and they might have been manually tested on a limited set of platforms.
2726

2827

2928
|link:/requirements/tested/[{tested-tier-first}]
3029
|A pattern categorized under the {tested} tier implies that the pattern might have been recently working on at least one recent version of {rh-ocp}. Qualifying for this tier might require additional work for the pattern’s owner, who might be a partner or a motivated subject matter expert (SME).
3130

32-
The patterns in this tier might have a defined business problem with a demonstration. The patterns might have a manual or automated test plan, which passes at least once for each new {rh-ocp} minor version.
31+
The patterns in this tier might have a defined business problem with a demonstration. The patterns might have a manual or automated test plan, which passes at least once for each new {rh-ocp} minor version.
3332

3433
|link:/requirements/maintained/[{maintained-tier-first}]
35-
|A pattern categorized under the {maintained} tier implies that the pattern might have been functional on all currently supported extended update support (EUS) versions of {rh-ocp}. Qualifying for this tier might require additional work for the pattern’s owner who might be a partner or a motivated SME.
34+
|A pattern categorized under the {maintained} tier implies that the pattern might have been functional on all currently supported extended update support (EUS) versions of {rh-ocp}. Qualifying for this tier might require additional work for the pattern’s owner who might be a partner or a motivated SME.
3635

3736
The patterns in this tier might have a formal release process with patch releases. They might have continuous integration (CI) automation testing.
3837

content/learn/implementation.adoc

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -15,16 +15,16 @@ include::modules/comm-attributes.adoc[]
1515
[id="technical-requirements"]
1616
== Technical requirements
1717

18-
Consider these requirements specific to the implementation of all {solution-name-upstream} and their respective tiers.
18+
Consider these requirements specific to the implementation of all {solution-name-upstream} and their tiers.
1919

2020
The requirements are categorized as follows:
2121

2222
Must::
23-
These are non-negotiable, core requirements that must be implemented.
23+
These are nonnegotiable, core requirements that must be implemented.
2424
Should::
2525
These are important but not critical; their implementation enhances the pattern.
2626
Can::
27-
These are optional or desirable features, but their absence does not hinder the implementation of a pattern.
27+
These are optional or desirable features, but their absence does not hinder the implementation of a pattern.
2828

2929
[id="must-implementation-requirements"]
3030
=== Must
@@ -33,12 +33,11 @@ These are optional or desirable features, but their absence does not hinder the
3333
. Patterns must be useful without all content stored in private Git repositories.
3434
. Patterns must include a list of names and versions of all the products and projects that the pattern consumes.
3535
. Patterns must be useful without any sample applications that are private or that lack public sources.
36-
37-
. Patterns must *not* become useless due to bit rot or opaque incompatibilities in closed source applications.
38-
. Patterns must *not* store sensitive data elements, including but not limited to, passwords in Git repositories.
36+
. Patterns must *not* degrade due to lack of updates or opaque incompatibilities in closed source applications.
37+
. Patterns must *not* store sensitive data elements including, but not limited to, passwords in Git repositories.
3938
. Patterns must be possible to deploy on any installer-provisioned infrastructure OpenShift cluster (BYO).
4039
+
41-
We distinguish between the provisioning and configuration requirements of the initial cluster (`Patterns`) and of clusters or machines that are managed by the initial cluster (`Managed clusters`).
40+
{solution-name-upstream} distinguish between the provisioning and configuration requirements of the initial cluster (`Patterns`) and of clusters or machines that are managed by the initial cluster (`Managed clusters`).
4241
. Patterns must use a standardized https://github.com/validatedpatterns/common/tree/main/clustergroup[clustergroup] Helm chart as the initial {rh-gitops} application that describes all namespaces, subscriptions, and any other GitOps applications which contain the configuration elements that make up the solution.
4342
. Managed clusters must operate on the premise of `eventual consistency` (automatic retries, and an expectation of idempotence), which is one of the essential benefits of the GitOps model.
4443
. Imperative elements must be implemented as idempotent code stored in Git repository.
@@ -52,15 +51,13 @@ We distinguish between the provisioning and configuration requirements of the in
5251
. Patterns should embody the link:https://www.redhat.com/en/products/open-hybrid-cloud[Open Hybrid Cloud model] unless there is a compelling reason to limit the availability of functionality to a specific platform or topology.
5352
. Patterns should use industry standards and {redhat} products for all required tooling.
5453
+
55-
Patterns prefer current best practices at the time of pattern development. Solutions that do not conform to best practices should expect to justify non-conformance or expend engineering effort to conform.
54+
Patterns require current best practices at the time of pattern development. Solutions that do not conform to best practices should expect to justify non-conformance or expend engineering effort to conform.
5655
. Patterns should *not* make use of upstream or community Operators and images except, depending on the market segment, where it is critical to the overall solution.
5756
+
5857
Such Operators are forbidden to be deployed into an increasing number of customer environments, which limits the pattern reuse. Alternatively, consider to productize the Operator, and build it in-cluster from trusted sources as part of the pattern.
59-
6058
. Patterns should be decomposed into modules that perform a specific function, so that they can be reused in other patterns.
6159
+
6260
For example, Bucket Notification is a capability in the {med-pattern} that could be used for other solutions.
63-
6461
. Patterns should use {rh-ansible} to drive the declarative provisioning and management of managed hosts, for example, {rhel-first}. See also `Imperative elements`.
6562
. Patterns should use {rh-rhacm-first} to manage policy and compliance on any managed clusters.
6663
. Patterns should use {rh-rhacm} and a https://github.com/validatedpatterns/common/tree/main/acm[standardized RHACM chart] to deploy and configure {rh-gitops-short} to managed clusters.
@@ -78,6 +75,5 @@ For example, Bucket Notification is a capability in the {med-pattern} that could
7875
. Patterns can consume Operators from established partners (for example, Hashicorp Vault, and Seldon)
7976
. Patterns can include managed clusters.
8077
. Patterns can include details or automation for provisioning managed clusters, or rely on the admin to pre-provision them out-of-band.
81-
8278
. Patterns can also choose to model multi-cluster solutions as an uncoordinated collection of initial hub clusters.
8379
. Imperative elements can interact with cluster state or external influences.

content/learn/maintained.adoc

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,13 +39,22 @@ In limited cases, the {solution-name-upstream} team may consider taking on that
3939
The {maintained} patterns have deliverable and requirements in addition to those
4040
specified for the link:/requirements/tested/[Tested tier].
4141

42+
The requirements are categorized as follows:
43+
44+
Must::
45+
These are nonnegotiable, core requirements that must be implemented.
46+
Should::
47+
These are important but not critical; their implementation enhances the pattern.
48+
Can::
49+
These are optional or desirable features, but their absence does not hinder the implementation of a pattern.
50+
4251
[id="must-maintained-tier"]
4352
=== Must
4453

4554
A {maintained} pattern must continue to meet the following criteria to remain in {maintained} tier:
4655

4756
* A {maintained} pattern must conform to the common technical link:/requirements/implementation/[implementation requirements].
48-
. A {maintained} pattern must only make use of components that are either supported, or easily substituted for supportable equivalents, for example, HashiCorp vault which has community and enterprise variants.
57+
* A {maintained} pattern must only make use of components that are either supported, or easily substituted for supportable equivalents, for example, HashiCorp vault which has community and enterprise variants.
4958
* A {maintained} pattern must *not* rely on functionality in tech-preview, or hidden behind feature gates.
5059
* A {maintained} pattern must have their architectures reviewed by the Product Manager (PM), Technical Product Manager (TPM), or Technical Marketing Manager (TMM) of each {redhat} product they consume to ensure consistency with the product teams` intentions and roadmaps.
5160
* A {maintained} pattern must include a presentation slides oriented around the business problem being solved and intended for use by the field to sell and promote the solution.
@@ -58,10 +67,9 @@ A {maintained} pattern must continue to meet the following criteria to remain in
5867
The individual products used in a {solution-name-upstream} are backed by the full {redhat} support experience conditional on the customer's subscription to those products, and the individual products`s support policy.
5968
+
6069
Additional components in a {solution-name-upstream} that are not supported by {redhat}; for example, Hashicorp Vault, and Seldon Core, require a customer to obtain support from that vendor directly.
61-
+
6270

6371
The {solution-name-upstream} team is will try to address any problems in the {validated-patterns-op}, and in the common Helm charts, but cannot not offer any SLAs at this time.
64-
+
72+
6573
//TODO: Create an aDoc version of our support statement slide
6674

6775
[NOTE]
@@ -72,4 +80,4 @@ The {maintained} patterns *do not* imply an obligation of support for partner or
7280
[id="can-maintained-tier"]
7381
=== Can
7482

75-
. If you are creating {solution-name-upstream}, you can provide your own SLA.
83+
* If you are creating {solution-name-upstream}, you can provide your own SLA.

content/learn/sandbox.adoc

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,15 @@ In both scenarios the originating team can choose where to host the primary repo
3535
== Requirements for the {sandbox} tier
3636
Consider these requirements for all {sandbox} tier.
3737

38+
The requirements are categorized as follows:
39+
40+
Must::
41+
These are nonnegotiable, core requirements that must be implemented.
42+
Should::
43+
These are important but not critical; their implementation enhances the pattern.
44+
Can::
45+
These are optional or desirable features, but their absence does not hinder the implementation of a pattern.
46+
3847
[id="must-sandbox-tier"]
3948
=== Must
4049
A {sandbox} pattern must continue to meet the following criteria to remain in the {sandbox} tier:
@@ -44,11 +53,9 @@ A {sandbox} pattern must continue to meet the following criteria to remain in th
4453
* A {sandbox} pattern must include a top-level README file that highlights the business problem and how the pattern solves it.
4554
* A {sandbox} pattern must include an architecture drawing. The specific tool or format is flexible as long as the meaning is clear.
4655
* A {sandbox} pattern must undergo an informal technical review by a community leader to ensure that it meets basic reuse standards.
47-
* A {sandbox} pattern must undergo an informal architecture review by a community leader to ensure that the solution has the right components, and they are generally being used as intended.
56+
* A {sandbox} pattern must undergo an informal architecture review by a community leader to ensure that the solution has the right components, and they are generally being used as intended. For example, not using a database as a message bus.
4857
+
49-
For example, not using a database as a message bus.
50-
As community leaders, contributions from within {redhat} might be subject to a higher level of scrutiny.
51-
While we strive to be inclusive, the community will have quality standards and generally using the framework does not automatically imply a solution is suitable for the community to endorse/publish.
58+
As community leaders, contributions from within {redhat} might be subject to a higher level of scrutiny. While we strive to be inclusive, the community will have quality standards and generally using the framework does not automatically imply a solution is suitable for the community to endorse/publish.
5259
* A {sandbox} pattern must document their support policy.
5360

5461
[NOTE]
@@ -60,6 +67,6 @@ The {solution-name-upstream} team commits to maintaining the framework, but will
6067
[id="can-sandbox-tier"]
6168
=== Can
6269

63-
* A {sandbox} pattern (including works-in-progress) can be hosted in the link:https://github.com/validatedpatterns-sandbox[https://github.com/validatedpatterns-sandbox] GitHub organization
70+
* A {sandbox} pattern (including works-in-progress) can be hosted in the link:https://github.com/validatedpatterns-sandbox[https://github.com/validatedpatterns-sandbox] GitHub organization.
6471
* A {sandbox} pattern can be listed on the link:https://validatedpatterns.io[https://validatedpatterns.io] site.
6572
* A {sandbox} pattern meeting additional criteria can be nominated for promotion to the link:/learn/tested/[Tested tier].

content/learn/tested.adoc

Lines changed: 19 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ include::modules/comm-attributes.adoc[]
1515
[id="about-tested-tier"]
1616
= About the {tested-tier-first}
1717

18-
The {tested} tier provides you with additional collateral and reassurance that the pattern was known to be recently working on at least one recent version of {rh-ocp}. Inclusion in this tier requires some additional work for the pattern's owner - which might be a partner or a sufficiently motivated subject matter expert (SME).
18+
The {tested} tier provides you with additional collateral and reassurance that the pattern was known to be recently working on at least one recent version of {rh-ocp}. Inclusion in this tier requires some additional work for the pattern's owner, which might be a partner or a sufficiently motivated subject matter expert (SME).
1919

2020
[id="nominating-a-pattern-for-tested-tier"]
2121
== Nominating a a pattern for the {tested} tier
@@ -33,36 +33,45 @@ In limited cases, the {solution-name-upstream} team may consider taking on that
3333

3434

3535
[id="requirements-tested-tier"]
36-
== Requirements
36+
== Requirements for the {tested} tier
3737

3838
A {tested} patterns have deliverable and requirements in addition to those specified for the link:/requirements/sandbox/[Sandbox tier].
3939

40+
The requirements are categorized as follows:
41+
42+
Must::
43+
These are nonnegotiable, core requirements that must be implemented.
44+
Should::
45+
These are important but not critical; their implementation enhances the pattern.
46+
Can::
47+
These are optional or desirable features, but their absence does not hinder the implementation of a pattern.
48+
4049
[id="must-tested-tier"]
4150
=== Must
4251

4352
A {tested} pattern must continue to meet the following criteria to remain in the {tested} tier:
4453

45-
* A {tested} pattern must conform to the common technical link:/requirements/implementation/[implementation requirements]
54+
* A {tested} pattern must conform to the common technical link:/requirements/implementation/[implementation requirements].
4655
* A {tested} pattern must be meaningful without specialized hardware, including flavors of architectures not explicitly supported.
4756
+
4857
Qualification is a {solution-name-upstream} Technical Oversight Committee (TOC) decision with input from the pattern owner.
4958
* A {tested} pattern must have their implementation reviewed by the patterns team to ensure that it is sufficiently flexible to function across a variety of platforms, customer environments, and any relevant verticals.
50-
* A {tested} pattern must include a standardized architecture drawing, created with (or at least conforming to) the standard {solution-name-upstream} tooling
51-
* A {tested} pattern must include a written guide for others to follow when demonstrating the pattern
59+
* A {tested} pattern must include a standardized architecture drawing, created with (or at least conforming to) the standard {solution-name-upstream} tooling.
60+
* A {tested} pattern must include a written guide for others to follow when demonstrating the pattern.
5261
* A {tested} pattern must include a test plan covering all features or attributes being highlighted by the demonstration guide. Negative flow tests (such as resiliency or data retention in the presence of network outages) are also limited to scenarios covered by the demonstration guide.
5362
+
5463
The test plan must define how to validate if the pattern has been successfully deployed and is functionally operational.
55-
Example: https://docs.google.com/document/d/12KQhdzjVIsxRURTnWAckiEMB3_96oWBjtlTXi1q73cg/view[Validating an Industrial Edge Deployment]
56-
+
64+
Example: https://docs.google.com/document/d/12KQhdzjVIsxRURTnWAckiEMB3_96oWBjtlTXi1q73cg/view[Validating an Industrial Edge Deployment].
65+
5766
//TODO: Convert above link to adoc
5867

5968
* A {tested} pattern must nominate at least one currently supported {rh-ocp} release to test against.
6069
* A {tested} pattern must ensure the test plan passes at least once per quarter.
61-
* A {tested} pattern must create a publicly available JSON file (eg. in an AWS bucket) that records the result of the latest test for each combination of pattern, platform, and {rh-ocp} version. See link:/learn/test-artefacts/[testing artefacts]
70+
* A {tested} pattern must create a publicly available JSON file (for example, in an AWS bucket) that records the result of the latest test for each combination of pattern, platform, and {rh-ocp} version. See link:/learn/test-artefacts/[testing artefacts].
6271

6372
[NOTE]
6473
====
65-
The {tested} pattern *do not* imply an obligation of support for partner or community operators by Red Hat or the pattern owner.
74+
A {tested} pattern *does not* imply an obligation of support for partner or community operators by Red Hat or the pattern owner.
6675
====
6776

6877
[id="should-tested-tier"]
@@ -79,4 +88,4 @@ Teams creating {tested} pattern can provide their own service level agreement (S
7988
A technical document for Quality Engineering (QE) team that defines how to validate if the pattern has been successfully deployed and is functionally operational.
8089
For example, see https://docs.google.com/document/d/12KQhdzjVIsxRURTnWAckiEMB3_96oWBjtlTXi1q73cg/view[Validating an Industrial Edge Deployment].
8190

82-
* A {tested} pattern meeting additional criteria can be nominated for promotion to the link:/learn/maintained/[Maintained tier].
91+
A {tested} pattern meeting additional criteria can be nominated for promotion to the link:/learn/maintained/[Maintained tier].

0 commit comments

Comments
 (0)