Skip to content

Commit 4745e4f

Browse files
chore: Add demo upgrade issue template (#120)
* chore: Add demo upgrade issue template * chore: Adjust demo upgrade instructions * chore: Add Chart update issue template * chore: Apply suggestions Co-authored-by: Nick <10092581+NickLarsenNZ@users.noreply.github.com> --------- Co-authored-by: Nick <10092581+NickLarsenNZ@users.noreply.github.com>
1 parent 08754f6 commit 4745e4f

File tree

2 files changed

+198
-0
lines changed

2 files changed

+198
-0
lines changed
Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
---
2+
name: Pre-Release Demo Chart Updates
3+
about: This template can be used to track the Helm chart updates for all demos.
4+
title: "chore(tracking): Update Helm charts for XX.(X)X"
5+
labels: []
6+
assignees: ''
7+
---
8+
9+
## Pre-Release Demo Chart Updates
10+
11+
There are a bunch of demos which directly use Helm charts to install some required parts of the
12+
demo / stack. These charts need updating **before** we start testing the stable to nightly upgrade.
13+
14+
Most of the charts are located in the `stacks/_templated` folder. Additional folders are:
15+
`stacks/observability` and `stacks/signal-processing`. It is recommended to search for `releaseName`
16+
to find all referenced charts.
17+
18+
### Update Instructions
19+
20+
These instructions help to update the charts:
21+
22+
```shell
23+
# List all available repos
24+
helm repo list
25+
```
26+
27+
Make sure, you have the following repos added:
28+
29+
```plain
30+
NAME URL
31+
bitnami https://charts.bitnami.com/bitnami
32+
stackable-dev https://repo.stackable.tech/repository/helm-dev/
33+
stackable-stable https://repo.stackable.tech/repository/helm-stable/
34+
timescale https://charts.timescale.com/
35+
prometheus-community https://prometheus-community.github.io/helm-charts
36+
vector https://helm.vector.dev
37+
grafana https://grafana.github.io/helm-charts
38+
jaeger https://jaegertracing.github.io/helm-charts
39+
opentelemetry https://open-telemetry.github.io/opentelemetry-helm-charts
40+
jupyterhub https://jupyterhub.github.io/helm-chart/
41+
opensearch https://opensearch-project.github.io/helm-charts
42+
```
43+
44+
To add any that are missing, run:
45+
46+
```shell
47+
helm repo add bitnami https://charts.bitnami.com/bitnami --force-update
48+
```
49+
50+
Then make sure you have the latest indexes:
51+
52+
```shell
53+
helm repo update
54+
```
55+
56+
Next, search for the latest version of the desired chart, eg `grafana/grafana`:
57+
58+
```shell
59+
# Display the latest versions of a chart
60+
$ helm search repo grafana/grafana --versions | head -5
61+
NAME CHART VERSION APP VERSION
62+
grafana/grafana 8.6.0 11.3.0
63+
grafana/grafana 8.5.12 11.3.0
64+
grafana/grafana 8.5.11 11.3.0
65+
grafana/grafana 8.5.10 11.3.0
66+
```
67+
68+
Use the applicable chart version displayed to replace the current one in the YAML files. Make sure
69+
to add the app version in the comments. Eg:
70+
71+
```yml
72+
version: 3.2.1 # 1.2.3
73+
```
74+
75+
Take a look at previous PRs for additional guidance, eg. <https://github.com/stackabletech/demos/pull/119>.
Lines changed: 123 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,123 @@
1+
---
2+
name: Pre-Release Demo Upgrade Testing from Stable to Nightly
3+
about: |
4+
This template can be used to track the upgrade testing of demos from stable to nightly leading
5+
up to the next Stackable release
6+
title: "chore(tracking): Test demos on nightly versions for XX.(X)X"
7+
labels: ['epic']
8+
assignees: ''
9+
---
10+
11+
<!--
12+
Make sure to update the link in '.github/ISSUE_TEMPLATE/release.md' when
13+
you change the filename.
14+
-->
15+
16+
<!--
17+
DO NOT REMOVE THIS COMMENT. It is intended for people who might copy/paste from the previous release issue.
18+
This was created by an issue template: https://github.com/stackabletech/issues/issues/new/choose.
19+
-->
20+
21+
## Pre-Release Demo Testing on Nightly
22+
23+
Part of <https://github.com/stackabletech/issues/issues/TRACKING_ISSUE>
24+
25+
This is testing:
26+
27+
1. The demos documented in nightly (with the updated product versions) still work.
28+
2. That the operators can be upgraded from the current release to the nightly release and do not
29+
negatively impact the products.
30+
31+
> [!NOTE]
32+
> Record any issues or anomalies during the process in a comment on this issue.
33+
> Eg:
34+
>
35+
> ```plain
36+
> :green_circle: **airflow-scheduled-job**
37+
>
38+
> The CRD had been updated and I needed to change the following in the manifest:
39+
> ...
40+
> ```
41+
42+
Replace the items in the task lists below with the applicable Pull Requests (if any).
43+
44+
<!--
45+
The following list was generated by:
46+
47+
# go to the demos repository, then run:
48+
yq '.demos | keys' demos/demos-v2.yaml \
49+
| sed -e 's/- //g' \
50+
| sort \
51+
| xargs -I {} echo "- [ ] [{}](https://docs.stackable.tech/home/nightly/demos/{})"
52+
-->
53+
54+
```[tasklist]
55+
### Testing Demos on Nightly
56+
- [ ] [airflow-scheduled-job](https://docs.stackable.tech/home/nightly/demos/airflow-scheduled-job)
57+
- [ ] [data-lakehouse-iceberg-trino-spark](https://docs.stackable.tech/home/nightly/demos/data-lakehouse-iceberg-trino-spark)
58+
- [ ] [end-to-end-security](https://docs.stackable.tech/home/nightly/demos/end-to-end-security)
59+
- [ ] [hbase-hdfs-load-cycling-data](https://docs.stackable.tech/home/nightly/demos/hbase-hdfs-load-cycling-data)
60+
- [ ] [jupyterhub-pyspark-hdfs-anomaly-detection-taxi-data](https://docs.stackable.tech/home/nightly/demos/jupyterhub-pyspark-hdfs-anomaly-detection-taxi-data)
61+
- [ ] [logging](https://docs.stackable.tech/home/nightly/demos/logging)
62+
- [ ] [nifi-kafka-druid-earthquake-data](https://docs.stackable.tech/home/nightly/demos/nifi-kafka-druid-earthquake-data)
63+
- [ ] [nifi-kafka-druid-water-level-data](https://docs.stackable.tech/home/nightly/demos/nifi-kafka-druid-water-level-data)
64+
- [ ] [signal-processing](https://docs.stackable.tech/home/nightly/demos/signal-processing)
65+
- [ ] [spark-k8s-anomaly-detection-taxi-data](https://docs.stackable.tech/home/nightly/demos/spark-k8s-anomaly-detection-taxi-data)
66+
- [ ] [trino-iceberg](https://docs.stackable.tech/home/nightly/demos/trino-iceberg)
67+
- [ ] [trino-taxi-data](https://docs.stackable.tech/home/nightly/demos/trino-taxi-data)
68+
```
69+
70+
### Testing Instructions
71+
72+
These instructions are for deploying the nightly demo, as well as upgrading the operators and CRDS.
73+
74+
<!--
75+
Make sure to update the version mentioned below when creating the issue.
76+
-->
77+
78+
```shell
79+
# Install demo (stable operators) for the previous release (24.7)
80+
# For now, we have to deploy from the release branch, otherwise we get new changes.
81+
# Stackablectl doesn't yet support deploying a demo from a branch
82+
git checkout release-24.7
83+
git pull
84+
stackablectl --stack-file=stacks/stacks-v2.yaml --demo-file=demos/demos-v2.yaml demo install <DEMO_NAME>
85+
86+
# --- IMPORTANT ---
87+
# Run through the nightly demo instructions (refer to the tasklist below).
88+
89+
# Get a list of installed operators
90+
stackablectl operator installed --output=plain
91+
92+
# --- OPTIONAL ---
93+
# Sometimes it is necessary to upgrade Helm charts. Look for other Helm Charts
94+
# which might need updating.
95+
96+
# First, see which charts are installed. You can ignore the stackable-operator
97+
# charts, or anything that might have been installed outside of this demo.
98+
helm list
99+
100+
# Next, add the applicable Helm Chart repositories. For example:
101+
helm repo add minio https://charts.min.io/
102+
helm repo add bitnami https://charts.bitnami.com/bitnami
103+
104+
# Finally, upgrade the Charts to what is defined in `main`.
105+
# For example:
106+
helm upgrade minio minio/minio --version x.x.x
107+
helm upgrade postgresql-hive bitnami/postgresql --version x.x.x
108+
# --- OPTIONAL END ---
109+
110+
# Uninstall operators
111+
stackablectl release uninstall 24.7
112+
113+
# Update CRDs to nightly version (on main)
114+
# Repeat this for every operator used by the demo (use the list from the earlier step before deleting the operators)
115+
kubectl replace -f https://raw.githubusercontent.com/stackabletech/commons-operator/main/deploy/helm/commons-operator/crds/crds.yaml
116+
kubectl replace -f https://raw.githubusercontent.com/stackabletech/...-operator/main/deploy/helm/...-operator/crds/crds.yaml
117+
118+
# Install nightly version of operators (use the list from the earlier step before deleting the operators)
119+
stackablectl operator install commons ...
120+
121+
# Optionally update the product versions in the CRDs (to the latest non-experimental version for the new release), e.g.:
122+
kubectl patch hbaseclusters/hbase --type='json' -p='[{"op": "replace", "path": "/spec/image/productVersion", "value":"x.x.x"}]' # changed
123+
```

0 commit comments

Comments
 (0)