Skip to content

Commit 0207ec0

Browse files
committed
Added pages
1 parent 28f0803 commit 0207ec0

4 files changed

Lines changed: 330 additions & 0 deletions

File tree

modules/ROOT/nav2.adoc

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
11
// This second nav file is for another menu entry at the end of the navigation menu
22
// see: https://docs.antora.org/antora/3.0/navigation/organize-files/#multiple-files-per-module
33
* xref:release_notes.adoc[Release Notes]
4+
* xref:product-information.adoc[]
5+
* xref:policies.adoc[]
6+
* xref:licenses.adoc[Licenses]

modules/ROOT/pages/licenses.adoc

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
= Licenses for the Stackable Data Platform
2+
3+
The Stackable Data Platform is open source, and the source code of all the components can be found on GitHub. Licenses are also provided alongside the source code, in a file called `LICENSE`.
4+
5+
== Operators
6+
7+
Product Operators
8+
9+
* https://github.com/stackabletech/airflow-operator/blob/main/LICENSE[License] for the Stackable Operator for Apache Airflow.
10+
* https://github.com/stackabletech/druid-operator/blob/main/LICENSE[License] for the Stackable Operator for Apache Druid.
11+
* https://github.com/stackabletech/hbase-operator/blob/main/LICENSE[License] for the Stackable Operator for Apache HBase.
12+
* https://github.com/stackabletech/hdfs-operator/blob/main/LICENSE[License] for the Stackable Operator for Apache Hadoop HDFS.
13+
* https://github.com/stackabletech/hive-operator/blob/main/LICENSE[License] for the Stackable Operator for Apache Hive.
14+
* https://github.com/stackabletech/kafka-operator/blob/main/LICENSE[License] for the Stackable Operator for Apache Kafka.
15+
* https://github.com/stackabletech/nifi-operator/blob/main/LICENSE[License] for the Stackable Operator for Apache NiFi.
16+
* https://github.com/stackabletech/spark-k8s-operator/blob/main/LICENSE[License] for the Stackable Operator for Apache Spark.
17+
* https://github.com/stackabletech/trino-operator/blob/main/LICENSE[License] for the Stackable Operator for Trino.
18+
* https://github.com/stackabletech/zookeeper-operator/blob/main/LICENSE[License] for the Stackable Operator for Apache ZooKeeper.
19+
* https://github.com/stackabletech/opa-operator/blob/main/LICENSE[License] for the Stackable Operator for OpenPolicyAgent.
20+
21+
Additional Stackable Operators
22+
23+
* https://github.com/stackabletech/commons-operator/blob/main/LICENSE[License] for the Stackable Commons Operator.
24+
* https://github.com/stackabletech/secret-operator/blob/main/LICENSE[License] for the Stackable Secret Operator.
25+
* https://github.com/stackabletech/listener-operator/blob/main/LICENSE[License] for the Stackable Listener Operator.
26+
27+
== stackablectl
28+
29+
https://github.com/stackabletech/stackable-cockpit/blob/main/LICENSE[License] for stackablectl.
30+
31+
== Product images
32+
33+
https://github.com/stackabletech/docker-images/blob/main/LICENSE[License] for the product Docker images.
34+
35+
The Docker images are built on the https://catalog.redhat.com/software/containers/ubi8/ubi-minimal/5c359a62bed8bd75a2c3fba8?container-tabs=overview[Red Hat ubi8-minimal base image]. It is https://www.redhat.com/licenses/EULA_Red_Hat_Universal_Base_Image_English_20190422.pdf[licensed seperately].

modules/ROOT/pages/policies.adoc

Lines changed: 155 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,155 @@
1+
= Lifecycle policies
2+
3+
This page details our lifecycle policies around various parts of our product - the Stackable Data Platform (SDP).
4+
5+
We define multiple lifecycle policies for different parts of our platform, but all policies follow some common goals:
6+
7+
* It should always be possible to upgrade to a new version of SDP without also changing any of your Kubernetes resources as long as you are not currently using anything that has already been marked as deprecated
8+
** This means you can upgrade the control plane independently of the user-facing products
9+
* All deprecations follow a predictable lifecycle that allows planning of upgrades ahead of time
10+
11+
The guarantees we give are on multiple levels as detailed below:
12+
13+
* The SDP itself
14+
* CustomResourceDefinition (CRD) versions
15+
* Supported product versions
16+
* Supported OpenShift & Kubernetes versions
17+
18+
All these policies may evolve as we learn what works best for our customers and for us.
19+
20+
These policies are from *July 2023*.
21+
22+
== Stackable Data Platform lifecycle policy
23+
24+
NOTE: This policy concerns releases of our platform as a whole and how long and to which extent we support each version.
25+
26+
We do releases of our Stackable Data Platform.
27+
These releases get a name based on the year and month they have been released in (e.g. `23.4`, `23.7`, also called https://calver.org/[CalVer]). This name does not follow Semantic Versioning (https://semver.org/[SemVer]). We may release patches for a release, which then follow the PATCH naming semantics of SemVer (e.g. `23.4.1`) or the _Micro_ name from CalVer. See below for our policy on patches for the SDP.
28+
29+
We support an SDP release for a specific amount of time after its initial release.
30+
31+
An SDP release contains our operators and other code developed at Stackable as well as the product docker images.
32+
33+
TIP: Our policy is inspired by the https://kubernetes.io/releases/patch-releases/[Kubernetes] and the https://access.redhat.com/support/policy/updates/openshift#ocp4[OpenShift] policies.
34+
35+
=== Full support phase
36+
37+
This phase begins once a new non-patch SDP version is released and ends after a 6-month period OR 3 months after the general availability of the superseding non-patch release, whichever is later.
38+
39+
The following pictures show both scenarios:
40+
41+
image:full_support_scenario_1.png[Full Support Scenario 1]
42+
43+
image:full_support_scenario_2.png[Full Support Scenario 2]
44+
45+
We _will_ release new patch releases of a SDP release (e.g. `23.4.1`) for any issues we deem Critical or High (see definition below) once fixes become available.
46+
We _may_ release new patch releases for other reasons.
47+
48+
=== Maintenance phase
49+
50+
This phase commences after the _Full Support_ phase for the respective SDP version and ends 12 months after general availability of the SDP release.
51+
52+
We _may_ release new patch releases of a SDP release (e.g. `23.4.1`) for any issues we deem Critical or High (see definition below) once fixes become available.
53+
We may release patches for other reasons.
54+
55+
image:maintenance_phase.png[Maintenance Phase]
56+
57+
== Upgrade policy
58+
59+
Customers are expected to upgrade their SDP environment to the most current supported patch/micro (`23.4.z`) version.
60+
Skipping SDP releases while upgrading is currently not supported.
61+
The only upgrade path we support is from one version to the next.
62+
63+
== CRD Versioning lifecycle policy
64+
65+
IMPORTANT: As of January 2024 all our CRDs are versioned as `alpha1`. We will start introducing other versions later
66+
67+
CustomResourceDefinitions at Stackable are versioned.
68+
69+
Our policies around CRD versioning are inspired by the https://kubernetes.io/docs/reference/using-api/deprecation-policy/[Kubernetes Deprecation Policy].
70+
71+
Specifically we try to follow these rules:
72+
73+
* API elements may only be removed by incrementing the version of the API group.
74+
75+
* API objects must be able to round-trip between API versions in a given release without information loss, except for whole REST resources that do not exist in some versions.
76+
77+
* An API version in a given track may not be deprecated in favor of a less stable API version.
78+
79+
* API lifetime is determined by the API stability level
80+
** Alpha API versions may be removed in any release without prior deprecation notice.
81+
82+
** Beta API versions are deprecated at a minimum of 1 platform releases after introduction and removed at a minimum of 1 platform releases after deprecation.
83+
84+
** GA (stable) API versions are deprecated at a minimum of 2 platform releases after introduction and removed at a minimum of 1 platform releases after deprecation.
85+
86+
Similar to the Exception noted by the Kubernetes project itself, we will also evolve these policies as we go along and find that one of the rules doesn't fit a situation.
87+
88+
NOTE: According to these rules it is legal to _add_ fields to a CRD without increasing the version as long as there is a default for this field.
89+
90+
91+
== Product lifecycle policy
92+
93+
SDP ships with a lot of different downstream products (e.g. Apache HBase, Apache Superset).
94+
95+
All of these products follow their own version semantics and release cadences and lifecycles, which is why we do not define a product lifecycle policy based on version numbers alone.
96+
97+
For every one of the products we ship we always support one LTS (Long Term Support) release line, which we generally recommend to use.
98+
A release line usually means that we are going to keep a `major.minor` release stable but will include newer patch versions in later SDP releases.
99+
100+
Some products (e.g. Trino) don't follow Semver rules, for those we will follow separate rules and clearly document what version is considered LTS.
101+
102+
Every LTS release line is shipped for at least one full year.
103+
After a year we may switch to a new release line - but there will always be at least an overlap of one release in which the old LTS version is deprecated, but a new LTS version is available.
104+
Which line we chose as our LTS release is at our own discretion and is based on popularity, upstream lifecycle policies, stability, our own experience and other factors.
105+
106+
In addition to the LTS line we may also ship other versions, e.g. the latest upstream version.
107+
108+
We do honor the same deprecation policy for non-LTS products as for LTS products, but we do not guarantee a long term support for these versions. They may be deprecated faster.
109+
110+
image:product_release_cycle.png[Product Lifecycle Policy]
111+
112+
=== Deprecation
113+
114+
Every product version that gets removed will be deprecated for at least 1 SDP release before removal.
115+
This guarantees that users can update the operators (e.g. from 23.1 to 23.4) without the need to simultaneously update the product version as well.
116+
The flow is to first update the control plane (the operators) and afterward the product versions if desired (e.g. when the currently used version is now deprecated).
117+
118+
=== Definition of support
119+
120+
We will ship new versions of the LTS release line in our currently supported SDP releases (see above) for any issues we deem Critical or High in severity when they become available.
121+
122+
We will also engage with the upstream projects to try and solve issues.
123+
124+
It is our explicit goal to limit the amount of times we have to ship a version of the products that deviates from the original upstream source.
125+
126+
We may ship new versions for existing SDP releases for other issues as well.
127+
128+
129+
== OpenShift & Kubernetes support policy
130+
131+
For every SDP release we will publish a list of supported Kubernetes versions.
132+
133+
We are aiming to support the last three Kubernetes versions but will make case-by-case decisions by taking into account the currently supported Kubernetes versions.
134+
We will also take into account currently supported OpenShift versions as published by RedHat. It is our goal to support all versions that are in Full or Maintenance support. As the releases may be overlapping we might not always support the latest Kubernetes or OpenShift versions when we release a SDP version.
135+
136+
137+
== Support policy (security & bugs)
138+
139+
Stackable will analyze published security vulnerabilities (e.g. CVEs but other sources may apply as well) for all the products we support as well components developed by us and their dependencies.
140+
We take various sources into account when assigning a criticality.
141+
Among those sources is the NVD database, but we place higher value on the self-assessments by the projects themselves, and we will additionally evaluate vulnerabilities in the context of how they are used in the Stackable Data Platform.
142+
143+
We will then assign a criticality to each vulnerability according to similar rating categories that https://access.redhat.com/security/updates/classification[RedHat has established]:
144+
145+
Critical::
146+
This rating is given to flaws that could be easily exploited by a remote unauthenticated attacker and lead to system compromise (arbitrary code execution) without requiring user interaction. Flaws that require authentication, local or physical access to a system, or an unlikely configuration are not classified as Critical impact. These are the types of vulnerabilities that can be exploited by worms.
147+
148+
High::
149+
This rating is given to flaws that can easily compromise the confidentiality, integrity or availability of resources. These are the types of vulnerabilities that allow local or authenticated users to gain additional privileges, allow unauthenticated remote users to view resources that should otherwise be protected by authentication or other controls, allow authenticated remote users to execute arbitrary code, or allow remote users to cause a denial of service.
150+
151+
Medium::
152+
This rating is given to flaws that may be more difficult to exploit but could still lead to some compromise of the confidentiality, integrity or availability of resources under certain circumstances. These are the types of vulnerabilities that could have had a Critical or Important impact but are less easily exploited based on a technical evaluation of the flaw, and/or affect unlikely configurations.
153+
154+
Low::
155+
This rating is given to all other issues that may have a security impact. These are the types of vulnerabilities that are believed to require unlikely circumstances to be able to be exploited, or where a successful exploit would give minimal consequences. This includes flaws that are present in a program’s source code but to which no current or theoretically possible, but unproven, exploitation vectors exist or were found during the technical analysis of the flaw.
Lines changed: 137 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,137 @@
1+
= Product information
2+
3+
This page contains concrete specifications about the Stackable Data Platform (SDP) as a product, which components are
4+
included, how they are supplied and which external dependencies exist that you as a customer need to take care of.
5+
6+
[#platform-components]
7+
== Platform components
8+
9+
The Stackable Platform is made up of multiple components. Operators for data products, Operators for additional
10+
functionality to facilitate easy integration between the different products, as well as the data products themselves.
11+
Auxiliary software to interact with the platform, as well as software to ease the deployment of platform components.
12+
13+
=== Data products and Kubernetes Operators
14+
15+
The main components of the SDP are a set of open source data products. The SDP control plane consists of corresponding
16+
Kubernetes Operators. Each Operator is supplied in a Docker <<containers, container>> image. For every Operator there is
17+
also a Helm Chart to facilitate installation via Helm. Operators for Products supported by the Platform deploy these
18+
products as <<containers, containers>> in Kubernetes.
19+
20+
Supported products:
21+
22+
* xref:airflow:index.adoc[Apache Airflow]
23+
* xref:druid:index.adoc[Apache Druid]
24+
* xref:hbase:index.adoc[Apache HBase] (including xref:hbase:usage-guide/phoenix.adoc[Apache Phoenix])
25+
* xref:hive:index.adoc[Apache Hive Metastore]
26+
* xref:hdfs:index.adoc[Apache Hadoop HDFS]
27+
* xref:kafka:index.adoc[Apache Kafka]
28+
* xref:nifi:index.adoc[Apache Nifi]
29+
* xref:spark-k8s:index.adoc[Apache Spark] (including xref:spark-k8s:usage-guide/history-server.adoc[Spark History Server])
30+
* xref:superset:index.adoc[Apache Superset]
31+
* xref:trino:index.adoc[Trino]
32+
* xref:zookeeper:index.adoc[Apache Zookeeper]
33+
34+
The product also includes the xref:opa:index.adoc[Open Policy Agent], and operators that provide additional
35+
functionality for managing and control SDP: xref:commons-operator:index.adoc[Commons],
36+
xref:secret-operator:index.adoc[Secret] and xref:listener-operator:index.adoc[Listener] Operator.
37+
38+
The pages linked above also detail the use cases and features supported by each component. You can find additional
39+
information in the xref:release_notes.adoc[release notes]. Refer to the xref:operators:supported_versions.adoc[list of
40+
supported product versions] to find out which product versions are supported.
41+
42+
43+
[#stackablectl]
44+
=== stackablectl
45+
46+
xref:management:stackablectl:index.adoc[] is a command line utility that makes it easier to install and interact with
47+
Stackable components.
48+
49+
== Supported installation methods
50+
51+
[#containers]
52+
=== Operators and products
53+
54+
All operators are supplied in container images. The products are also deployed in container images. The docker images
55+
are available for download here: https://repo.stackable.tech/#browse/browse:docker[]
56+
57+
Stackable supports installing the Operators via https://helm.sh/[Helm] or with <<stackablectl>>. Every Operator includes
58+
installation instructions in the Getting started guide.
59+
60+
==== Helm Charts
61+
62+
The Helm Charts can be found here: https://repo.stackable.tech/#browse/browse:helm-stable[] Using the Helm Charts
63+
requires Helm version 3 or above.
64+
65+
66+
[#stackablectl-installation]
67+
==== stackablectl
68+
69+
`stackablectl` is available for download, pre-built binaries are available on GitHub. The download link and installation
70+
steps are provided in the xref:management:stackablectl:installation.adoc[installation].
71+
72+
== System requirements
73+
74+
=== Operators
75+
76+
Every Operator needs:
77+
78+
* 0.2 cores (i.e. i5 or similar)
79+
* 256MB RAM
80+
81+
=== stackablectl
82+
83+
Hardware requirements and supported operating systems can be found in the
84+
xref:management:stackablectl:installation.adoc#system-requirements[system requirements section] of the `stackablectl`
85+
documentation.
86+
87+
=== Stackable Data Platform Open Source Products
88+
89+
The system requirements of each open source product depend on your specific use case. In the xref:demos:index.adoc[demos]
90+
you can find example use cases; every demo also has a _System requirements_ section which can provide a guideline for
91+
system sizing. Further example sizings can be found at https://ci.stackable.tech/job/<product>-operator-it-summary/
92+
(where `<product>` is i.e. _druid_, _hbase_, etc.) in the `cluster-info.txt` file. These are the cluster sizes used for
93+
integration tests, and can be regarded as working cluster configurations.
94+
95+
== Prerequisites and required external components
96+
97+
Required external components are components that are required for the platform or parts of it to operate, but are not
98+
part of the Stackable Data Platform. Note that Stackable does neither distribute nor offer support for the external
99+
components.
100+
101+
=== Kubernetes
102+
103+
A Kubernetes cluster is required to install the Stackable Data Platform. The supported Kubernetes versions are:
104+
105+
include::partial$supported-kubernetes-versions.adoc[]
106+
107+
There are various Kubernetes distributions. Stackable supports:
108+
109+
include::partial$supported-kubernetes-distributions.adoc[]
110+
111+
=== Product specific dependencies
112+
113+
The following products have required external components to run:
114+
115+
* xref:airflow:required-external-components.adoc[Apache Airflow]
116+
* xref:druid:required-external-components.adoc[Apache Druid]
117+
* xref:hive:required-external-components.adoc[Apache Hive]
118+
* xref:superset:required-external-components.adoc[Apache Superset]
119+
120+
== Optional and technology preview components
121+
122+
=== Optional components
123+
124+
Stackable software can be used with xref:demos:index.adoc[sample configurations] and third-party components, as
125+
outlined in the relevant documentation. These external components are not part of of the stackable products and can be
126+
used by the customer at their own risk. Stackable does not distribute these components and does not offer support for
127+
them. (See <<platform-components,Platform components>> above for a list of the supported components that are part of the
128+
platform)
129+
130+
=== Technology preview components
131+
132+
Some functionality of the platform might be labelled as _technology preview_. Stackable does not offer support for
133+
technology preview components, and therefore discourages their use in a production setting. Using these
134+
features/components is done so at your own risk. Customers are encouraged to provide feedback and suggestions for
135+
improvements on preview components. Neither Stackable nor third parties or licensees are obligated to distribute
136+
technology preview components or include them into the product. Technology preview components might be discontinued at
137+
any time.

0 commit comments

Comments
 (0)