Skip to content

Commit 67d7e2d

Browse files
committed
Merge branch 'main' into policies
2 parents 3667612 + 226a7a6 commit 67d7e2d

File tree

4 files changed

+449
-0
lines changed

4 files changed

+449
-0
lines changed

modules/ROOT/pages/release_notes.adoc

Lines changed: 389 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,395 @@
33
The Stackable platform consists of multiple operators that work together.
44
Periodically a platform release is made, including all components of the platform at a specific version.
55

6+
== Release 23.7
7+
8+
This release introduces the specification of resource quotas and pod overrides and updates the product versions supported by SDP.
9+
10+
=== New / extended platform features
11+
12+
The following new major platform features were added:
13+
14+
Resource Quotas::
15+
16+
Explicit resources are now applied to all containers, for both operators and products. This allows running the Stackable data platform on Kubernetes clusters with a ResourceQuota or LimitRange set. Where these are not specified directly, defaults will be used. See https://github.com/stackabletech/issues/issues/368[this issue] for more information.
17+
18+
Pod Overrides::
19+
20+
It is now possible to add custom settings which specify elements of a pod template (Service, StatefulSet etc.) on roles or rolegroups, which the operator then merges with the objects it writes before actually applying them. This provides the user with a possibility for specifying any property that can be set on a regular Kubernetes Pod, but which is not directly exposed via the Stackable custom resource definition. Have a look at xref:concepts:overrides.adoc[the documentation] for more details.
21+
22+
For example, with HDFS:
23+
24+
```
25+
roleGroups:
26+
default:
27+
replicas: 1
28+
podOverrides:
29+
spec:
30+
containers:
31+
- name: journalnode
32+
resources:
33+
requests:
34+
cpu: 110m
35+
limits:
36+
cpu: 410m
37+
```
38+
39+
Openshift certification::
40+
41+
OLM bundles - a pre-requisite for the Openshift certification process - have been created for each operator. All 15 SDP operators in release 23.4.1 are now Openshift-certified and deployable directly from within an Openshift cluster.
42+
43+
Signed SDP operator images::
44+
45+
As of this release all Stackable operator images are signed (this feature will be added to product images in a subsequent release). More information about this, including how to verify the image signatures, can be found in this xref:tutorials:enabling_verification_of_image_signatures.adoc[tutorial].
46+
47+
New Versions::
48+
49+
The following new product versions are now supported:
50+
51+
* https://github.com/stackabletech/airflow-operator/pull/284[Airflow: 2.6.1]
52+
* https://github.com/stackabletech/druid-operator/pull/442[Druid: 26.0.0]
53+
* https://github.com/stackabletech/kafka-operator/pull/591[Kafka: 3.4.0]
54+
* https://github.com/stackabletech/nifi-operator/pull/464[Nifi: 1.20.0, 1.21.0]
55+
* https://github.com/stackabletech/opa-operator/pull/451[Opa: 0.51]
56+
* https://github.com/stackabletech/spark-k8s-operator/pull/243[Spark: 3.4.0]
57+
* https://github.com/stackabletech/superset-operator/pull/362[Superset: 1.4.2, 1.5.3, 2.0.1, 2.1.0]
58+
* https://github.com/stackabletech/trino-operator/pull/423[Trino: 414]
59+
* https://github.com/stackabletech/zookeeper-operator/pull/689[ZooKeeper: 3.8.1]
60+
61+
Deprecated Versions::
62+
63+
The following product versions are deprecated and will be removed in a later release:
64+
65+
* Airflow: 2.2.3, 2.2.4, 2.2.5, 2.4.1
66+
* Druid: 0.23.0, 24.0.0
67+
* HBase: 2.4.6, 2.4.8, 2.4.9, 2.4.11
68+
* HDFS: 3.2.2, 3.3.1, 3.3.3
69+
* Hive: 2.3.9
70+
* Kafka: 2.7.1, 2.8.1, 3.1.0, 3.2.0, 3.3.1
71+
* Nifi: 1.15.0, 1.15.1, 1.15.2, 1.15.3, 1.16.0, 1.16.1, 1.16.2, 1.16.3, 1.18.0
72+
* Opa: 0.27.1, 0.28.0, 0.37.2, 0.41.0, 0.45.0
73+
* Spark: 3.2.1, 3.3.0
74+
* Superset: 1.3.2, 1.4.1, 1.5.1
75+
* Trino: 377, 387, 395, 396, 403
76+
* Zookeeper: 3.5.8, 3.6.3, 3.7.0, 3.8.0
77+
78+
Removed Versions::
79+
80+
No product versions have been removed.
81+
82+
Product features::
83+
84+
Additionally, there are some individual product features that are noteworthy:
85+
86+
* https://github.com/stackabletech/hdfs-operator/issues/334[HDFS: support for enabling secure mode with Kerberos]
87+
* https://github.com/stackabletech/spark-k8s-operator/issues/247[Spark-k8s: support for using custom certificates when accessing S3 with TLS]
88+
* https://github.com/stackabletech/trino-operator/issues/436[Trino: support for arbitrary connectors using the generic connector for e.g. access to PostgreSQL]
89+
* https://github.com/stackabletech/zookeeper-operator/issues/334[ZooKeeper: expose ZOOKEEPER_CLIENT_PORT in discovery CM]
90+
91+
=== stackablectl
92+
93+
There are no new demos in this platform release.
94+
95+
=== Supported Kubernetes versions
96+
97+
This release supports the following Kubernetes versions:
98+
99+
* `1.26`
100+
* `1.25`
101+
* `1.24`
102+
103+
This Kubernetes version is no longer supported:
104+
105+
* `1.23`
106+
107+
=== Supported OpenShift versions
108+
109+
This release supports the following OpenShift versions:
110+
111+
* `4.11`
112+
* `4.10`
113+
114+
=== Breaking changes
115+
116+
The re-structuring of configuration definitions in certain operators will require you to adapt your existing CRDs as shown below.
117+
118+
==== Stackable Operator for Apache Airflow
119+
120+
* https://github.com/stackabletech/airflow-operator/issues/271[Consolidated remaining top level configuration to clusterConfig]
121+
122+
CRDs should be changed from e.g.
123+
124+
```
125+
spec:
126+
...
127+
executor: CeleryExecutor
128+
loadExamples: true
129+
exposeConfig: false
130+
credentialsSecret: test-airflow-credentials
131+
...
132+
```
133+
134+
to:
135+
136+
```
137+
spec:
138+
...
139+
clusterConfig:
140+
executor: CeleryExecutor
141+
loadExamples: true
142+
exposeConfig: false
143+
credentialsSecret: test-airflow-credentials
144+
...
145+
```
146+
147+
==== Stackable Operator for Apache Superset
148+
149+
* https://github.com/stackabletech/superset-operator/issues/379[Moved all top level config options to clusterConfig. Authentication is now provided via an array of AuthenticationClasses and additional properties]
150+
151+
CRDs should be changed from e.g.
152+
153+
```
154+
spec:
155+
...
156+
credentialsSecret: superset-credentials
157+
loadExamplesOnInit: false
158+
vectorAggregatorConfigMapName: vector-aggregator-discovery
159+
...
160+
```
161+
162+
to:
163+
164+
```
165+
spec:
166+
...
167+
clusterConfig:
168+
credentialsSecret: superset-credentials
169+
loadExamplesOnInit: false
170+
vectorAggregatorConfigMapName: vector-aggregator-discovery
171+
...
172+
```
173+
174+
==== Stackable Operator for Trino
175+
176+
* https://github.com/stackabletech/trino-operator/issues/434[Reworked authentication mechanism: The clusterConfig.authentication now requires a list of AuthenticationClass references instead of the MultiUser and LDAP separation]
177+
178+
CRDs should be changed from e.g.
179+
180+
```
181+
spec:
182+
...
183+
clusterConfig:
184+
authentication:
185+
method:
186+
multiUser:
187+
userCredentialsSecret:
188+
name: trino-users
189+
...
190+
```
191+
192+
referencing a Secret with bcrypt-ed data:
193+
194+
```
195+
---
196+
apiVersion: v1
197+
kind: Secret
198+
metadata:
199+
name: trino-users
200+
type: kubernetes.io/opaque
201+
stringData:
202+
# admin:admin
203+
admin: $2y$10$89xReovvDLacVzRGpjOyAOONnayOgDAyIS2nW9bs5DJT98q17Dy5i
204+
# alice:alice
205+
alice: $2y$10$HcCa4k9v2DRrD/g7e5vEz.Bk.1xg00YTEHOZjPX7oK3KqMSt2xT8W
206+
# bob:bob
207+
bob: $2y$10$xVRXtYZnYuQu66SmruijPO8WHFM/UK5QPHTr.Nzf4JMcZSqt3W.2.
208+
```
209+
210+
to:
211+
212+
```
213+
spec:
214+
...
215+
clusterConfig:
216+
authentication:
217+
- authenticationClass: trino-users-auth
218+
...
219+
```
220+
221+
referencing an AuthenticationClass (which references a Secret with plain data):
222+
223+
```
224+
---
225+
apiVersion: authentication.stackable.tech/v1alpha1
226+
kind: AuthenticationClass
227+
metadata:
228+
name: trino-users-auth
229+
spec:
230+
provider:
231+
static:
232+
userCredentialsSecret:
233+
name: trino-users
234+
---
235+
apiVersion: v1
236+
kind: Secret
237+
metadata:
238+
name: trino-users
239+
type: kubernetes.io/opaque
240+
stringData:
241+
admin: admin
242+
alice: alice
243+
bob: bob
244+
```
245+
246+
=== Upgrade from 23.4
247+
248+
==== Using stackablectl
249+
250+
To uninstall the `23.4` release run
251+
252+
[source,console]
253+
----
254+
$ stackablectl release uninstall 23.4
255+
[INFO ] Uninstalling release 23.4
256+
[INFO ] Uninstalling airflow operator
257+
[INFO ] Uninstalling commons operator
258+
# ...
259+
----
260+
261+
Afterwards you will need to upgrade the CustomResourceDefinitions (CRDs) installed by the Stackable Platform.
262+
The reason for this is that helm will uninstall the operators but not the CRDs. This can be done using `kubectl replace`:
263+
264+
[source]
265+
----
266+
kubectl replace -f https://raw.githubusercontent.com/stackabletech/airflow-operator/23.7.0/deploy/helm/airflow-operator/crds/crds.yaml
267+
kubectl replace -f https://raw.githubusercontent.com/stackabletech/commons-operator/23.7.0/deploy/helm/commons-operator/crds/crds.yaml
268+
kubectl replace -f https://raw.githubusercontent.com/stackabletech/druid-operator/23.7.0/deploy/helm/druid-operator/crds/crds.yaml
269+
kubectl replace -f https://raw.githubusercontent.com/stackabletech/hbase-operator/23.7.0/deploy/helm/hbase-operator/crds/crds.yaml
270+
kubectl replace -f https://raw.githubusercontent.com/stackabletech/hdfs-operator/23.7.0/deploy/helm/hdfs-operator/crds/crds.yaml
271+
kubectl replace -f https://raw.githubusercontent.com/stackabletech/hive-operator/23.7.0/deploy/helm/hive-operator/crds/crds.yaml
272+
kubectl replace -f https://raw.githubusercontent.com/stackabletech/kafka-operator/23.7.0/deploy/helm/kafka-operator/crds/crds.yaml
273+
kubectl replace -f https://raw.githubusercontent.com/stackabletech/listener-operator/23.7.0/deploy/helm/listener-operator/crds/crds.yaml
274+
kubectl replace -f https://raw.githubusercontent.com/stackabletech/nifi-operator/23.7.0/deploy/helm/nifi-operator/crds/crds.yaml
275+
kubectl replace -f https://raw.githubusercontent.com/stackabletech/opa-operator/23.7.0/deploy/helm/opa-operator/crds/crds.yaml
276+
kubectl replace -f https://raw.githubusercontent.com/stackabletech/secret-operator/23.7.0/deploy/helm/secret-operator/crds/crds.yaml
277+
kubectl replace -f https://raw.githubusercontent.com/stackabletech/spark-k8s-operator/23.7.0/deploy/helm/spark-k8s-operator/crds/crds.yaml
278+
kubectl replace -f https://raw.githubusercontent.com/stackabletech/superset-operator/23.7.0/deploy/helm/superset-operator/crds/crds.yaml
279+
kubectl replace -f https://raw.githubusercontent.com/stackabletech/trino-operator/23.7.0/deploy/helm/trino-operator/crds/crds.yaml
280+
kubectl replace -f https://raw.githubusercontent.com/stackabletech/zookeeper-operator/23.7.0/deploy/helm/zookeeper-operator/crds/crds.yaml
281+
----
282+
283+
[source,console]
284+
----
285+
customresourcedefinition.apiextensions.k8s.io "airflowclusters.airflow.stackable.tech" replaced
286+
customresourcedefinition.apiextensions.k8s.io "airflowdbs.airflow.stackable.tech" replaced
287+
customresourcedefinition.apiextensions.k8s.io "authenticationclasses.authentication.stackable.tech" replaced
288+
customresourcedefinition.apiextensions.k8s.io "s3connections.s3.stackable.tech" replaced
289+
...
290+
----
291+
292+
To install the `23.7` release run
293+
294+
[source,console]
295+
----
296+
$ stackablectl release install 23.7
297+
[INFO ] Installing release 23.7
298+
[INFO ] Installing airflow operator in version 23.7.0
299+
[INFO ] Installing commons operator in version 23.7.0
300+
[INFO ] Installing druid operator in version 23.7.0
301+
[INFO ] Installing hbase operator in version 23.7.0
302+
[INFO ] Installing hdfs operator in version 23.7.0
303+
[INFO ] Installing hive operator in version 23.7.0
304+
[INFO ] Installing kafka operator in version 23.7.0
305+
[INFO ] Installing listener operator in version 23.7.0
306+
[INFO ] Installing nifi operator in version 23.7.0
307+
[INFO ] Installing opa operator in version 23.7.0
308+
[INFO ] Installing secret operator in version 23.7.0
309+
[INFO ] Installing spark-k8s operator in version 23.7.0
310+
[INFO ] Installing superset operator in version 23.7.0
311+
[INFO ] Installing trino operator in version 23.7.0
312+
[INFO ] Installing zookeeper operator in version 23.7.0
313+
----
314+
315+
==== Using helm
316+
Use `helm list` to list the currently installed operators.
317+
318+
You can use the following command to uninstall all operators that are part of the `23.4` release:
319+
320+
[source,console]
321+
----
322+
$ helm uninstall airflow-operator commons-operator druid-operator hbase-operator hdfs-operator hive-operator kafka-operator listener-operator nifi-operator opa-operator secret-operator spark-k8s-operator superset-operator trino-operator zookeeper-operator
323+
release "airflow-operator" uninstalled
324+
release "commons-operator" uninstalled
325+
# ...
326+
----
327+
328+
Afterwards you will need to upgrade the CustomResourceDefinitions (CRDs) installed by the Stackable Platform.
329+
The reason for this is that helm will uninstall the operators but not the CRDs. This can be done using `kubectl replace`:
330+
331+
[source,console]
332+
----
333+
kubectl replace -f https://raw.githubusercontent.com/stackabletech/airflow-operator/23.7.0/deploy/helm/airflow-operator/crds/crds.yaml
334+
kubectl replace -f https://raw.githubusercontent.com/stackabletech/commons-operator/23.7.0/deploy/helm/commons-operator/crds/crds.yaml
335+
kubectl replace -f https://raw.githubusercontent.com/stackabletech/druid-operator/23.7.0/deploy/helm/druid-operator/crds/crds.yaml
336+
kubectl replace -f https://raw.githubusercontent.com/stackabletech/hbase-operator/23.7.0/deploy/helm/hbase-operator/crds/crds.yaml
337+
kubectl replace -f https://raw.githubusercontent.com/stackabletech/hdfs-operator/23.7.0/deploy/helm/hdfs-operator/crds/crds.yaml
338+
kubectl replace -f https://raw.githubusercontent.com/stackabletech/hive-operator/23.7.0/deploy/helm/hive-operator/crds/crds.yaml
339+
kubectl replace -f https://raw.githubusercontent.com/stackabletech/kafka-operator/23.7.0/deploy/helm/kafka-operator/crds/crds.yaml
340+
kubectl replace -f https://raw.githubusercontent.com/stackabletech/listener-operator/23.7.0/deploy/helm/listener-operator/crds/crds.yaml
341+
kubectl replace -f https://raw.githubusercontent.com/stackabletech/nifi-operator/23.7.0/deploy/helm/nifi-operator/crds/crds.yaml
342+
kubectl replace -f https://raw.githubusercontent.com/stackabletech/opa-operator/23.7.0/deploy/helm/opa-operator/crds/crds.yaml
343+
kubectl replace -f https://raw.githubusercontent.com/stackabletech/secret-operator/23.7.0/deploy/helm/secret-operator/crds/crds.yaml
344+
kubectl replace -f https://raw.githubusercontent.com/stackabletech/spark-k8s-operator/23.7.0/deploy/helm/spark-k8s-operator/crds/crds.yaml
345+
kubectl replace -f https://raw.githubusercontent.com/stackabletech/superset-operator/23.7.0/deploy/helm/superset-operator/crds/crds.yaml
346+
kubectl replace -f https://raw.githubusercontent.com/stackabletech/trino-operator/23.7.0/deploy/helm/trino-operator/crds/crds.yaml
347+
kubectl replace -f https://raw.githubusercontent.com/stackabletech/zookeeper-operator/23.7.0/deploy/helm/zookeeper-operator/crds/crds.yaml
348+
----
349+
350+
To install the `23.7` release run
351+
352+
[source,console]
353+
----
354+
helm repo add stackable-stable https://repo.stackable.tech/repository/helm-stable/
355+
helm repo update stackable-stable
356+
helm install --wait airflow-operator stackable-stable/airflow-operator --version 23.7.0
357+
helm install --wait commons-operator stackable-stable/commons-operator --version 23.7.0
358+
helm install --wait druid-operator stackable-stable/druid-operator --version 23.7.0
359+
helm install --wait hbase-operator stackable-stable/hbase-operator --version 23.7.0
360+
helm install --wait hdfs-operator stackable-stable/hdfs-operator --version 23.7.0
361+
helm install --wait hive-operator stackable-stable/hive-operator --version 23.7.0
362+
helm install --wait kafka-operator stackable-stable/kafka-operator --version 23.7.0
363+
helm install --wait listener-operator stackable-stable/listener-operator --version 23.7.0
364+
helm install --wait nifi-operator stackable-stable/nifi-operator --version 23.7.0
365+
helm install --wait opa-operator stackable-stable/opa-operator --version 23.7.0
366+
helm install --wait secret-operator stackable-stable/secret-operator --version 23.7.0
367+
helm install --wait spark-k8s-operator stackable-stable/spark-k8s-operator --version 23.7.0
368+
helm install --wait superset-operator stackable-stable/superset-operator --version 23.7.0
369+
helm install --wait trino-operator stackable-stable/trino-operator --version 23.7.0
370+
helm install --wait zookeeper-operator stackable-stable/zookeeper-operator --version 23.7.0
371+
----
372+
373+
==== Known upgrade issues
374+
375+
In the case of the breaking changes detailed above it will be necessary to update the custom resources for Airflow, Superset and Trino clusters and re-apply them.
376+
377+
Additionally, please note the following:
378+
379+
===== All operators
380+
* If the default PVC size has been changed, then the StatefulSet must be deleted: it is not possible to change the PVC in the StatefulSet specification.
381+
** The error message is similar to: `StatefulSet.apps "trino-worker-default" is invalid: spec: Forbidden: updates to statefulset spec for fields other than 'replicas', 'template', 'updateStrategy', [...]`
382+
383+
===== ZooKeeper operator
384+
* The ZooKeeper operator in this release expects a product image with the same version. An existing ZooKeeper cluster resource should be deleted and re-applied with the corresponding `stackableVersion` e.g.
385+
386+
[source,yaml]
387+
----
388+
spec:
389+
image:
390+
productVersion: 3.8.0
391+
stackableVersion: "23.7"
392+
----
393+
394+
6395
== Release 23.4
7396

8397
The focus in this platform release is on the support of default/custom affinities and the status field, as well as the rollout of log aggregation across the remaining operators. Additionally, all operators have been updated and tested for compatibility with OpenShift clusters (versions 4.10 and 4.11). Several operators from the 23.1 platform release were already certified against OpenShift.

0 commit comments

Comments
 (0)