From 388fccde57e6aa90bc2f7b0713fec11f46729551 Mon Sep 17 00:00:00 2001 From: Maxi Wittich Date: Tue, 16 Jan 2024 08:54:47 +0100 Subject: [PATCH 01/26] Fixing typo --- modules/contributor/pages/docs-style-guide.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/contributor/pages/docs-style-guide.adoc b/modules/contributor/pages/docs-style-guide.adoc index 48eb8381f..b5e25865f 100644 --- a/modules/contributor/pages/docs-style-guide.adoc +++ b/modules/contributor/pages/docs-style-guide.adoc @@ -35,7 +35,7 @@ Read the {asciidoc-recommended-practices} for more. == Formatting: Kubernetes style guide -Since the Stackable Data Platform ist built on Kubernetes, the resources mentioned in our documentation are very similar to the ones mentioned in the Kubernetes documentation, so we follow the {kubernetes-style-guide} for formatting of code, Kubernetes resources and objects. Some examples: +Since the Stackable Data Platform is built on Kubernetes, the resources mentioned in our documentation are very similar to the ones mentioned in the Kubernetes documentation, so we follow the {kubernetes-style-guide} for formatting of code, Kubernetes resources and objects. Some examples: * https://kubernetes.io/docs/contribute/style/style-guide/#use-upper-camel-case-for-api-objects[Use PascalCase for API objects] such as ConfigMap or KafkaCluster * https://kubernetes.io/docs/contribute/style/style-guide/#use-italics-to-define-or-introduce-new-terms[Use _italics_ to define or introduce new terms] From 0ce30195edd36abe1036cee82deb71039d613584 Mon Sep 17 00:00:00 2001 From: Maxi Wittich Date: Tue, 16 Jan 2024 10:46:27 +0100 Subject: [PATCH 02/26] First draft of arm64 article --- .../pages/experimental-arm64-support.adoc | 99 +++++++++++++++++++ 1 file changed, 99 insertions(+) create mode 100644 modules/concepts/pages/experimental-arm64-support.adoc diff --git a/modules/concepts/pages/experimental-arm64-support.adoc b/modules/concepts/pages/experimental-arm64-support.adoc new file mode 100644 index 000000000..122951004 --- /dev/null +++ b/modules/concepts/pages/experimental-arm64-support.adoc @@ -0,0 +1,99 @@ += Multi-Architecture for SDP + +Today, we are proud to announce the next step in our efforts to port stackable data platform to the arm64 architecture. + +We arrived with 23.11.0 at a point where we are able to test and develop on a bare-metal arm cluster. We are using Azure and in future we going to have a corporation with HPE who thankfully supply us with resources to build and test the stackable data platform on multiple architectures on their brand new and powerful Ampere hardware. + +As this marks our beta phase, in this article we want to give an overview over the situation, a rough road-map as well as a method to early access the 23.11.0 release for SDP on arm64. + +== State of the Art + +At this very moment, we have a full and working 23.11.0 release. We made it accessible for the general public but didn't merge it yet with the x86 releases you are already comfortable with. + +Since this is new to us too, we started by building the release manually and check it on weaknesses. To do so, we are about to build a long-living cluster where we perform updates and workflows on. We think developed functionality on the x86 side can't be lost just due to port it on another architecture. Therefore we plan to test functionalities which only can be seen if SDP is running long enough ( e.g. certificate rotations ). + +As tests for 23.11.0 ( not sophisticated ) we worked on our demos to make them accessible on arm64. Those Demos behaved as we expected and knew from x86. This means, we have reworked the foundations of the demos and now you as a user can use them and work with SDP on your native cluster. + +=== Actual Releases + +We have currently one release on arm64 which is 23.11.0. + +We decided only to go for specific tags as we don't want to mess around with dev images. We could bundle them as a manifest list but decided to do that when we have an automated workflow and tests infrastructure in place. + +== Early-Access + +As mentioned before, we have a working full release for arm64 images. Those images are stored within the `stackable-experimental` org in our https://repo.stackable.tech/#browse/browse:docker:v2%2Fstackable-experimental[Nexus]. + +Accessing our data platform on arm, would mean you need to pull those images out of the repo. As those are not available by default, you need to switch to the `stackable-experimental` organization. This needs to be done within two steps. + +=== Early-Access with Helm + +Operators, according to our https://docs.stackable.tech/home/stable/airflow/getting_started/installation[installation guide] you can install arm64 operators e.g. for the commons operator as follows: + +`helm install commons-operator stackable-stable/commons-operator --namespace stackable-operators --create-namespace --version=23.11.0 --set image.repository=docker.stackable.tech/stackable-experimental/commons-operator` + +The magic happens with `--set image.repository=docker.stackable.tech/stackable-experimental/commons-operator` `, here you overwrite the default image selection with the new organization stackable-experimental. + +*Hint:* You have to install every operator you need for whatever demo single handed with helm and use `--skip-release` with stackablectl. Otherwise it will try to install x86 operators and maybe pulls arm64 products afterwards. + +=== Early-Access to our products + +Driven by the multi architecture technology we introduced the https://docs.stackable.tech/home/stable/concepts/product_image_selection[Product image selection] mechanism which allows the user to choose a own product image. This has some more advantages when you think about air-gapped environments or a mirrored repository. However, in our case we can choose the arm64 image as follows: + +```yaml +spec: + image: + custom: docker.stackable.tech/stackable-experimental/kafka:3.5.1-stackable23.11.0 + productVersion: 3.5.1 +``` +Once again, the key to success is to exchange stackable with stackable-experimental and point to the release 23.11.0. + +Please not that only 23.11.0 is working at this moment. + +=== Prepared Demos + +You have seen now, that there are certain ways to access SPD for arm64. This obviously is true for the demos to but we had to rework some files. + +As we strive to provide our Users the most comfort we can, we would provide with a ready branch to execute our demos. in the following we provide you a complete set of instructions to make your arm demo a success. + +As prerequisites we expect you to have a Kubernetes Cluster of any flavour and stackablectl https://docs.stackable.tech/home/stable/quickstart[installed]. + +1. Clone the demo repository +`git clone git@github.com:stackabletech/demos.git` + +2. Checkout arm64 demo branch ( release 23.11.0 ) +`git checkout spike/demos-on-arm` + +3. Install your demo with stackablectl (e.g. nifi-kafka-druid-earthquake-data) +`stackablectl demo install nifi-kafka-druid-earthquake-data --skip-release -s stacks/stacks-v2.yaml -d demos/demos-v2.yaml +` + +== Road-Map + +=== Release 23.7 + +Untested release, all products besides Airflow and Superset are available and all operators are build. + +Since still untested we released silently in stackable-experimental. + +=== Release 23.11 + +Fairly untested release, not worked through yet. + +We would suggest to build it the same way now as we did last time. On a local node and push and tag by hand. Additionally we would like to take the opportunity to build a long-living test cluster for the release 23.11. This way, we could build a good amount (or the complete sdp platform) on a arm based cluster and do some efficient testing. + +Additionally we would like to put in the efforts and get all products and operators build and released as arm64 images. + +=== Between 23.11 and 24.3 + +Having a automatic workflow that builds multi architecture dev releases into stackable-experimental all the time. While this is happening, I would like to update the test cluster with the dev versions and see if the newest changes do something to the arm side. + +This step can only be done if we have tested on 23.11 whatever we need to see and brought in all fixes necessary for SDP to function on arm64 + +=== Release 24.3 + +Tested release (compared to amd could be like a 80% coverage ). Multi architecture builds get automatically released in the stackable-experimental repository at first. After sufficient testing I would like to go and finally merge stackable-experimental → stackable and having a first ever multi arch release. Still silent at this point, but documented. + +=== Release 24.7 + +The "loud" multi arch release. From this point we would like SDP to be officially and fully tested on multi architecture. \ No newline at end of file From 503adc54d2017238c7fa3a49ce63c964d9c5e690 Mon Sep 17 00:00:00 2001 From: Maxi Wittich Date: Tue, 16 Jan 2024 11:17:19 +0100 Subject: [PATCH 03/26] Fix code box --- modules/concepts/pages/experimental-arm64-support.adoc | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/modules/concepts/pages/experimental-arm64-support.adoc b/modules/concepts/pages/experimental-arm64-support.adoc index 122951004..9c718a44e 100644 --- a/modules/concepts/pages/experimental-arm64-support.adoc +++ b/modules/concepts/pages/experimental-arm64-support.adoc @@ -65,8 +65,7 @@ As prerequisites we expect you to have a Kubernetes Cluster of any flavour and s `git checkout spike/demos-on-arm` 3. Install your demo with stackablectl (e.g. nifi-kafka-druid-earthquake-data) -`stackablectl demo install nifi-kafka-druid-earthquake-data --skip-release -s stacks/stacks-v2.yaml -d demos/demos-v2.yaml -` +`stackablectl demo install nifi-kafka-druid-earthquake-data --skip-release -s stacks/stacks-v2.yaml -d demos/demos-v2.yaml` == Road-Map From e61eeaaafe6bfd0a813b453bd8f97e39f86fcd00 Mon Sep 17 00:00:00 2001 From: Maxi Wittich Date: Tue, 16 Jan 2024 11:52:41 +0100 Subject: [PATCH 04/26] Copyable codeboxes --- .../concepts/pages/experimental-arm64-support.adoc | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/modules/concepts/pages/experimental-arm64-support.adoc b/modules/concepts/pages/experimental-arm64-support.adoc index 9c718a44e..3df288cc4 100644 --- a/modules/concepts/pages/experimental-arm64-support.adoc +++ b/modules/concepts/pages/experimental-arm64-support.adoc @@ -59,13 +59,18 @@ As we strive to provide our Users the most comfort we can, we would provide with As prerequisites we expect you to have a Kubernetes Cluster of any flavour and stackablectl https://docs.stackable.tech/home/stable/quickstart[installed]. 1. Clone the demo repository -`git clone git@github.com:stackabletech/demos.git` +```bash +git clone git@github.com:stackabletech/demos.git +``` 2. Checkout arm64 demo branch ( release 23.11.0 ) -`git checkout spike/demos-on-arm` - +```bash +git checkout spike/demos-on-arm +``` 3. Install your demo with stackablectl (e.g. nifi-kafka-druid-earthquake-data) -`stackablectl demo install nifi-kafka-druid-earthquake-data --skip-release -s stacks/stacks-v2.yaml -d demos/demos-v2.yaml` +```bash +stackablectl demo install nifi-kafka-druid-earthquake-data --skip-release -s stacks/stacks-v2.yaml -d demos/demos-v2.yaml +``` == Road-Map From 191db630b0449dd7137e2a3bc51c3ffc493fc824 Mon Sep 17 00:00:00 2001 From: Maxi Wittich Date: Tue, 16 Jan 2024 11:57:06 +0100 Subject: [PATCH 05/26] Copyable codeboxes fix --- modules/concepts/pages/experimental-arm64-support.adoc | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/concepts/pages/experimental-arm64-support.adoc b/modules/concepts/pages/experimental-arm64-support.adoc index 3df288cc4..85ed5f458 100644 --- a/modules/concepts/pages/experimental-arm64-support.adoc +++ b/modules/concepts/pages/experimental-arm64-support.adoc @@ -67,6 +67,7 @@ git clone git@github.com:stackabletech/demos.git ```bash git checkout spike/demos-on-arm ``` + 3. Install your demo with stackablectl (e.g. nifi-kafka-druid-earthquake-data) ```bash stackablectl demo install nifi-kafka-druid-earthquake-data --skip-release -s stacks/stacks-v2.yaml -d demos/demos-v2.yaml From 149cc6caebaf3921343fd46b61ef1c138165e9ad Mon Sep 17 00:00:00 2001 From: Maxi Wittich Date: Tue, 16 Jan 2024 12:02:32 +0100 Subject: [PATCH 06/26] Header instead of list --- modules/concepts/pages/experimental-arm64-support.adoc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/concepts/pages/experimental-arm64-support.adoc b/modules/concepts/pages/experimental-arm64-support.adoc index 85ed5f458..545303308 100644 --- a/modules/concepts/pages/experimental-arm64-support.adoc +++ b/modules/concepts/pages/experimental-arm64-support.adoc @@ -58,17 +58,17 @@ As we strive to provide our Users the most comfort we can, we would provide with As prerequisites we expect you to have a Kubernetes Cluster of any flavour and stackablectl https://docs.stackable.tech/home/stable/quickstart[installed]. -1. Clone the demo repository +==== 1. Clone the demo repository ```bash git clone git@github.com:stackabletech/demos.git ``` -2. Checkout arm64 demo branch ( release 23.11.0 ) +==== 2. Checkout arm64 demo branch ( release 23.11.0 ) ```bash git checkout spike/demos-on-arm ``` -3. Install your demo with stackablectl (e.g. nifi-kafka-druid-earthquake-data) +==== 3. Install your demo with stackablectl (e.g. nifi-kafka-druid-earthquake-data) ```bash stackablectl demo install nifi-kafka-druid-earthquake-data --skip-release -s stacks/stacks-v2.yaml -d demos/demos-v2.yaml ``` From 458cd53db9c7735db4dcefb9756b1a8b0f6f7c1b Mon Sep 17 00:00:00 2001 From: Maxi Wittich Date: Tue, 16 Jan 2024 12:06:33 +0100 Subject: [PATCH 07/26] adding git pull to checkout --- modules/concepts/pages/experimental-arm64-support.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/concepts/pages/experimental-arm64-support.adoc b/modules/concepts/pages/experimental-arm64-support.adoc index 545303308..1deff167a 100644 --- a/modules/concepts/pages/experimental-arm64-support.adoc +++ b/modules/concepts/pages/experimental-arm64-support.adoc @@ -65,7 +65,7 @@ git clone git@github.com:stackabletech/demos.git ==== 2. Checkout arm64 demo branch ( release 23.11.0 ) ```bash -git checkout spike/demos-on-arm +git pull && git checkout spike/demos-on-arm ``` ==== 3. Install your demo with stackablectl (e.g. nifi-kafka-druid-earthquake-data) From 3e37dd8e7af6f775c6eec0e0edebb121cb24f03a Mon Sep 17 00:00:00 2001 From: Maxi Wittich Date: Tue, 16 Jan 2024 12:43:50 +0100 Subject: [PATCH 08/26] Formatting --- .../pages/experimental-arm64-support.adoc | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/modules/concepts/pages/experimental-arm64-support.adoc b/modules/concepts/pages/experimental-arm64-support.adoc index 1deff167a..bc911b225 100644 --- a/modules/concepts/pages/experimental-arm64-support.adoc +++ b/modules/concepts/pages/experimental-arm64-support.adoc @@ -8,7 +8,9 @@ As this marks our beta phase, in this article we want to give an overview over t == State of the Art -At this very moment, we have a full and working 23.11.0 release. We made it accessible for the general public but didn't merge it yet with the x86 releases you are already comfortable with. +At this very moment, we have a working 23.11.0 release. We made it accessible for the general public but didn't merge it yet with the x86 releases you are already comfortable with. + +NOTE: Listener Operator is not available within 23.11.0 for arm64 Since this is new to us too, we started by building the release manually and check it on weaknesses. To do so, we are about to build a long-living cluster where we perform updates and workflows on. We think developed functionality on the x86 side can't be lost just due to port it on another architecture. Therefore we plan to test functionalities which only can be seen if SDP is running long enough ( e.g. certificate rotations ). @@ -22,19 +24,19 @@ We decided only to go for specific tags as we don't want to mess around with dev == Early-Access -As mentioned before, we have a working full release for arm64 images. Those images are stored within the `stackable-experimental` org in our https://repo.stackable.tech/#browse/browse:docker:v2%2Fstackable-experimental[Nexus]. +As mentioned before, we have a working release 23.11.0 ported to the arm64 architecture. Those images are stored within the `stackable-experimental` organization in our https://repo.stackable.tech/#browse/browse:docker:v2%2Fstackable-experimental[Nexus]. -Accessing our data platform on arm, would mean you need to pull those images out of the repo. As those are not available by default, you need to switch to the `stackable-experimental` organization. This needs to be done within two steps. +Accessing our data platform for arm64, would mean you need to pull those images out of the repo. As those are not available by default, you need to switch to the `stackable-experimental` organization. This needs to be done within the following two steps. === Early-Access with Helm -Operators, according to our https://docs.stackable.tech/home/stable/airflow/getting_started/installation[installation guide] you can install arm64 operators e.g. for the commons operator as follows: +According to our https://docs.stackable.tech/home/stable/airflow/getting_started/installation[installation guide] you can install arm64 operators e.g. for the commons operator as follows: `helm install commons-operator stackable-stable/commons-operator --namespace stackable-operators --create-namespace --version=23.11.0 --set image.repository=docker.stackable.tech/stackable-experimental/commons-operator` -The magic happens with `--set image.repository=docker.stackable.tech/stackable-experimental/commons-operator` `, here you overwrite the default image selection with the new organization stackable-experimental. +The magic happens with `--set image.repository=docker.stackable.tech/stackable-experimental/commons-operator` `, here you overwrite the default image selection with the new organization stackable-experimental. Every operator can be installed analog to that. -*Hint:* You have to install every operator you need for whatever demo single handed with helm and use `--skip-release` with stackablectl. Otherwise it will try to install x86 operators and maybe pulls arm64 products afterwards. +WARNING: You have to install every operator you need for whatever demo single handed with helm and use `--skip-release` with stackablectl. Otherwise it will try to install x86 operators and maybe pulls arm64 products afterwards. === Early-Access to our products @@ -48,7 +50,7 @@ spec: ``` Once again, the key to success is to exchange stackable with stackable-experimental and point to the release 23.11.0. -Please not that only 23.11.0 is working at this moment. +NOTE: Only 23.11.0 is working at this moment. === Prepared Demos From 43e5e803bb51cb13b4d4ea864132a3ce78ed7827 Mon Sep 17 00:00:00 2001 From: Maxi Wittich Date: Tue, 16 Jan 2024 12:47:04 +0100 Subject: [PATCH 09/26] More formatting --- modules/concepts/pages/experimental-arm64-support.adoc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/concepts/pages/experimental-arm64-support.adoc b/modules/concepts/pages/experimental-arm64-support.adoc index bc911b225..cba26ec2d 100644 --- a/modules/concepts/pages/experimental-arm64-support.adoc +++ b/modules/concepts/pages/experimental-arm64-support.adoc @@ -93,9 +93,9 @@ Additionally we would like to put in the efforts and get all products and operat === Between 23.11 and 24.3 -Having a automatic workflow that builds multi architecture dev releases into stackable-experimental all the time. While this is happening, I would like to update the test cluster with the dev versions and see if the newest changes do something to the arm side. +Having a automatic workflow that builds multi architecture dev releases into stackable-experimental all the time. While this is happening, I would like to update the test cluster with the dev versions and see if the newest changes do something to the arm64 side of things. -This step can only be done if we have tested on 23.11 whatever we need to see and brought in all fixes necessary for SDP to function on arm64 +This step can only be done if we have tested on 23.11.x for whatever we need to see and brought in all fixes necessary for SDP to function on arm64. === Release 24.3 From eadab91779a35895c879a62d9eb98489d74da35d Mon Sep 17 00:00:00 2001 From: Maxi Wittich Date: Tue, 16 Jan 2024 19:34:41 +0100 Subject: [PATCH 10/26] Spell and Style fixes --- modules/concepts/pages/experimental-arm64-support.adoc | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/modules/concepts/pages/experimental-arm64-support.adoc b/modules/concepts/pages/experimental-arm64-support.adoc index cba26ec2d..f8ca9aec4 100644 --- a/modules/concepts/pages/experimental-arm64-support.adoc +++ b/modules/concepts/pages/experimental-arm64-support.adoc @@ -14,7 +14,7 @@ NOTE: Listener Operator is not available within 23.11.0 for arm64 Since this is new to us too, we started by building the release manually and check it on weaknesses. To do so, we are about to build a long-living cluster where we perform updates and workflows on. We think developed functionality on the x86 side can't be lost just due to port it on another architecture. Therefore we plan to test functionalities which only can be seen if SDP is running long enough ( e.g. certificate rotations ). -As tests for 23.11.0 ( not sophisticated ) we worked on our demos to make them accessible on arm64. Those Demos behaved as we expected and knew from x86. This means, we have reworked the foundations of the demos and now you as a user can use them and work with SDP on your native cluster. +As tests for 23.11.0 ( not sophisticated ) we worked on our demos to make them accessible on arm64. Those demos behaved as we expected and knew from x86. This means, we have reworked the foundations of the demos and now you as a user can use them and work with SDP on your native cluster. === Actual Releases @@ -30,9 +30,11 @@ Accessing our data platform for arm64, would mean you need to pull those images === Early-Access with Helm -According to our https://docs.stackable.tech/home/stable/airflow/getting_started/installation[installation guide] you can install arm64 operators e.g. for the commons operator as follows: +According to our https://docs.stackable.tech/home/stable/airflow/getting_started/installation#_helm[installation guide] you can install arm64 operators e.g. for the commons operator as follows: -`helm install commons-operator stackable-stable/commons-operator --namespace stackable-operators --create-namespace --version=23.11.0 --set image.repository=docker.stackable.tech/stackable-experimental/commons-operator` +```bash +helm install commons-operator stackable-stable/commons-operator --namespace stackable-operators --create-namespace --version=23.11.0 --set image.repository=docker.stackable.tech/stackable-experimental/commons-operator +``` The magic happens with `--set image.repository=docker.stackable.tech/stackable-experimental/commons-operator` `, here you overwrite the default image selection with the new organization stackable-experimental. Every operator can be installed analog to that. From 98601ea592f6b35e69a1557f643839ab9566ec07 Mon Sep 17 00:00:00 2001 From: Jim Halfpenny Date: Mon, 19 Feb 2024 14:10:31 +0000 Subject: [PATCH 11/26] Review edits. --- .../pages/experimental-arm64-support.adoc | 50 +++++++++---------- 1 file changed, 24 insertions(+), 26 deletions(-) diff --git a/modules/concepts/pages/experimental-arm64-support.adoc b/modules/concepts/pages/experimental-arm64-support.adoc index f8ca9aec4..9dbb2778e 100644 --- a/modules/concepts/pages/experimental-arm64-support.adoc +++ b/modules/concepts/pages/experimental-arm64-support.adoc @@ -1,48 +1,48 @@ = Multi-Architecture for SDP -Today, we are proud to announce the next step in our efforts to port stackable data platform to the arm64 architecture. +Today, we are proud to announce the next step in our efforts to port Stackable Data Platform (SDP) to the ARM64 architecture. -We arrived with 23.11.0 at a point where we are able to test and develop on a bare-metal arm cluster. We are using Azure and in future we going to have a corporation with HPE who thankfully supply us with resources to build and test the stackable data platform on multiple architectures on their brand new and powerful Ampere hardware. +We arrived with 23.11.0 at a point where we are able to test and develop on a bare-metal ARM cluster. We have been using ARM-based instances on Azure and going forward are cooperating with HPE who have thankfully supplied us with resources to build and test Stackable Data Platform on multiple architectures, using their brand new and powerful Ampere-based hardware. -As this marks our beta phase, in this article we want to give an overview over the situation, a rough road-map as well as a method to early access the 23.11.0 release for SDP on arm64. +As this marks our beta phase, in this article we want to give an overview over the situation, a rough roadmap as well as a method to early access the 23.11.0 release for SDP on ARM64. == State of the Art -At this very moment, we have a working 23.11.0 release. We made it accessible for the general public but didn't merge it yet with the x86 releases you are already comfortable with. +At the moment we have a working 23.11.0 release. We made it publicly accessible but didn't merge it yet with the x86-64 releases you are already comfortable with. -NOTE: Listener Operator is not available within 23.11.0 for arm64 +NOTE: Listener Operator is not available within 23.11.0 for ARM64 -Since this is new to us too, we started by building the release manually and check it on weaknesses. To do so, we are about to build a long-living cluster where we perform updates and workflows on. We think developed functionality on the x86 side can't be lost just due to port it on another architecture. Therefore we plan to test functionalities which only can be seen if SDP is running long enough ( e.g. certificate rotations ). +Since this is new to us too, we have started by building the release manually and checking it for any defects when compared to the x86-64 release. To do so we are building a long-living soak test cluster where we perform updates and run workflows. We believe that most of the developed functionality on the x86-64 side can't be lost just by porting it to another architecture, and therefore we plan to focus on testing features which only can be seen on long-running clusters e.g. certificate rotation. -As tests for 23.11.0 ( not sophisticated ) we worked on our demos to make them accessible on arm64. Those demos behaved as we expected and knew from x86. This means, we have reworked the foundations of the demos and now you as a user can use them and work with SDP on your native cluster. +As a means of testing our 23.11.0 release we worked on our demos to make them accessible on ARM64. Those demos behaved as we expected compared to the same running on x86-64. This means, we have reworked the foundations of the demos and now you as a user can use them and work with SDP on your native cluster. === Actual Releases -We have currently one release on arm64 which is 23.11.0. +We have currently one release on ARM64 which is 23.11.0. We decided only to go for specific tags as we don't want to mess around with dev images. We could bundle them as a manifest list but decided to do that when we have an automated workflow and tests infrastructure in place. == Early-Access -As mentioned before, we have a working release 23.11.0 ported to the arm64 architecture. Those images are stored within the `stackable-experimental` organization in our https://repo.stackable.tech/#browse/browse:docker:v2%2Fstackable-experimental[Nexus]. +As mentioned before, we have a working release 23.11.0 ported to the ARM64 architecture. Those images are stored within the `stackable-experimental` organization in our https://repo.stackable.tech/#browse/browse:docker:v2%2Fstackable-experimental[Nexus]. -Accessing our data platform for arm64, would mean you need to pull those images out of the repo. As those are not available by default, you need to switch to the `stackable-experimental` organization. This needs to be done within the following two steps. +Accessing our data platform for ARM64 would mean needing to pull those images from the repo. As those are not available by default, you need to switch to the `stackable-experimental` organization. This needs to be done within the following two steps. === Early-Access with Helm -According to our https://docs.stackable.tech/home/stable/airflow/getting_started/installation#_helm[installation guide] you can install arm64 operators e.g. for the commons operator as follows: +According to our https://docs.stackable.tech/home/stable/airflow/getting_started/installation#_helm[installation guide] you can install ARM64 operators e.g. for the commons operator as follows: ```bash helm install commons-operator stackable-stable/commons-operator --namespace stackable-operators --create-namespace --version=23.11.0 --set image.repository=docker.stackable.tech/stackable-experimental/commons-operator ``` -The magic happens with `--set image.repository=docker.stackable.tech/stackable-experimental/commons-operator` `, here you overwrite the default image selection with the new organization stackable-experimental. Every operator can be installed analog to that. +The magic happens with `--set image.repository=docker.stackable.tech/stackable-experimental/commons-operator` `, here you overwrite the default image selection with the new organization stackable-experimental. The other operators can be installed in the same way by overriding the image repository. -WARNING: You have to install every operator you need for whatever demo single handed with helm and use `--skip-release` with stackablectl. Otherwise it will try to install x86 operators and maybe pulls arm64 products afterwards. +WARNING: You have to install every operator you need for a given demo individually with helm using `--skip-release` with stackablectl. Otherwise, it will try to install x86 operators and pull ARM64 product images afterwards. === Early-Access to our products -Driven by the multi architecture technology we introduced the https://docs.stackable.tech/home/stable/concepts/product_image_selection[Product image selection] mechanism which allows the user to choose a own product image. This has some more advantages when you think about air-gapped environments or a mirrored repository. However, in our case we can choose the arm64 image as follows: +Driven by the multi-architecture technology we introduced, the https://docs.stackable.tech/home/stable/concepts/product_image_selection[Product image selection] mechanism allows the user to choose a specific product image. This has some more advantages when you think about air-gapped environments or a mirrored repository. In our case we can use this feature to choose the ARM64 image as follows: ```yaml spec: @@ -50,24 +50,22 @@ spec: custom: docker.stackable.tech/stackable-experimental/kafka:3.5.1-stackable23.11.0 productVersion: 3.5.1 ``` -Once again, the key to success is to exchange stackable with stackable-experimental and point to the release 23.11.0. +Once again, the key to success is to exchange `stackable` with `stackable-experimental` and point to the release 23.11.0. NOTE: Only 23.11.0 is working at this moment. === Prepared Demos -You have seen now, that there are certain ways to access SPD for arm64. This obviously is true for the demos to but we had to rework some files. +You have seen there are ways to access SPD demos for ARM64 architecture, but we had to rework some files. As we strive to provide our users the most comfortable deployment path we can, we have provided with a ready made branch to execute our demos on ARM64. We've provided below a complete set of instructions to make your ARM demo a success. -As we strive to provide our Users the most comfort we can, we would provide with a ready branch to execute our demos. in the following we provide you a complete set of instructions to make your arm demo a success. - -As prerequisites we expect you to have a Kubernetes Cluster of any flavour and stackablectl https://docs.stackable.tech/home/stable/quickstart[installed]. +As a prerequisite, we expect you to have a Kubernetes Cluster of any flavour and stackablectl https://docs.stackable.tech/home/stable/quickstart[installed]. ==== 1. Clone the demo repository ```bash git clone git@github.com:stackabletech/demos.git ``` -==== 2. Checkout arm64 demo branch ( release 23.11.0 ) +==== 2. Checkout ARM64 demo branch ( release 23.11.0 ) ```bash git pull && git checkout spike/demos-on-arm ``` @@ -81,7 +79,7 @@ stackablectl demo install nifi-kafka-druid-earthquake-data --skip-release -s sta === Release 23.7 -Untested release, all products besides Airflow and Superset are available and all operators are build. +This is an untested release on ARM64. All products besides Airflow and Superset are available and all operators are built. Since still untested we released silently in stackable-experimental. @@ -89,19 +87,19 @@ Since still untested we released silently in stackable-experimental. Fairly untested release, not worked through yet. -We would suggest to build it the same way now as we did last time. On a local node and push and tag by hand. Additionally we would like to take the opportunity to build a long-living test cluster for the release 23.11. This way, we could build a good amount (or the complete sdp platform) on a arm based cluster and do some efficient testing. +We would suggest to build it the same way now as we did last time. On a local node and push and tag by hand. Additionally, we would like to take the opportunity to build a long-living test cluster for the release 23.11. This way, we could build a good amount (or the complete SDP platform) on an ARM-based cluster and do some efficient testing. -Additionally we would like to put in the efforts and get all products and operators build and released as arm64 images. +Our goal is would be to put in the effort to get all products and operators built and released as ARM64 images. === Between 23.11 and 24.3 -Having a automatic workflow that builds multi architecture dev releases into stackable-experimental all the time. While this is happening, I would like to update the test cluster with the dev versions and see if the newest changes do something to the arm64 side of things. +Having an automatic workflow that builds multi-architecture dev releases into stackable-experimental all the time. While this is happening, I would like to update the test cluster with the dev versions and see if the newest changes do something to the ARM64 side of things. -This step can only be done if we have tested on 23.11.x for whatever we need to see and brought in all fixes necessary for SDP to function on arm64. +This step can only be done if we have tested on 23.11.x and brought in all fixes necessary for SDP to function on ARM64. === Release 24.3 -Tested release (compared to amd could be like a 80% coverage ). Multi architecture builds get automatically released in the stackable-experimental repository at first. After sufficient testing I would like to go and finally merge stackable-experimental → stackable and having a first ever multi arch release. Still silent at this point, but documented. +Tested release (with at least 80% coverage compared to x86-64). Multi-architecture builds get automatically released in the stackable-experimental repository at first. After sufficient testing I would like to go and finally merge stackable-experimental → stackable and having a first ever multi arch release. Still silent at this point, but documented. === Release 24.7 From a9bcbf98d09e501c7c730d469024776d429bec18 Mon Sep 17 00:00:00 2001 From: Maxi Wittich Date: Mon, 19 Feb 2024 16:16:19 +0100 Subject: [PATCH 12/26] Removing listener note --- modules/concepts/pages/experimental-arm64-support.adoc | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/modules/concepts/pages/experimental-arm64-support.adoc b/modules/concepts/pages/experimental-arm64-support.adoc index f8ca9aec4..bed45b971 100644 --- a/modules/concepts/pages/experimental-arm64-support.adoc +++ b/modules/concepts/pages/experimental-arm64-support.adoc @@ -10,8 +10,6 @@ As this marks our beta phase, in this article we want to give an overview over t At this very moment, we have a working 23.11.0 release. We made it accessible for the general public but didn't merge it yet with the x86 releases you are already comfortable with. -NOTE: Listener Operator is not available within 23.11.0 for arm64 - Since this is new to us too, we started by building the release manually and check it on weaknesses. To do so, we are about to build a long-living cluster where we perform updates and workflows on. We think developed functionality on the x86 side can't be lost just due to port it on another architecture. Therefore we plan to test functionalities which only can be seen if SDP is running long enough ( e.g. certificate rotations ). As tests for 23.11.0 ( not sophisticated ) we worked on our demos to make them accessible on arm64. Those demos behaved as we expected and knew from x86. This means, we have reworked the foundations of the demos and now you as a user can use them and work with SDP on your native cluster. @@ -105,4 +103,4 @@ Tested release (compared to amd could be like a 80% coverage ). Multi architectu === Release 24.7 -The "loud" multi arch release. From this point we would like SDP to be officially and fully tested on multi architecture. \ No newline at end of file +The "loud" multi arch release. From this point we would like SDP to be officially and fully tested on multi architecture. \ No newline at end of file From 61302bf1e9d3188265ba6ed2d36371909ee52e46 Mon Sep 17 00:00:00 2001 From: Maxi Wittich Date: Mon, 19 Feb 2024 16:18:47 +0100 Subject: [PATCH 13/26] Removing listener note --- modules/concepts/pages/experimental-arm64-support.adoc | 2 -- 1 file changed, 2 deletions(-) diff --git a/modules/concepts/pages/experimental-arm64-support.adoc b/modules/concepts/pages/experimental-arm64-support.adoc index 86762dc55..e1481cd0a 100644 --- a/modules/concepts/pages/experimental-arm64-support.adoc +++ b/modules/concepts/pages/experimental-arm64-support.adoc @@ -10,8 +10,6 @@ As this marks our beta phase, in this article we want to give an overview over t At the moment we have a working 23.11.0 release. We made it publicly accessible but didn't merge it yet with the x86-64 releases you are already comfortable with. -NOTE: Listener Operator is not available within 23.11.0 for ARM64 - Since this is new to us too, we have started by building the release manually and checking it for any defects when compared to the x86-64 release. To do so we are building a long-living soak test cluster where we perform updates and run workflows. We believe that most of the developed functionality on the x86-64 side can't be lost just by porting it to another architecture, and therefore we plan to focus on testing features which only can be seen on long-running clusters e.g. certificate rotation. As a means of testing our 23.11.0 release we worked on our demos to make them accessible on ARM64. Those demos behaved as we expected compared to the same running on x86-64. This means, we have reworked the foundations of the demos and now you as a user can use them and work with SDP on your native cluster. From 28bec1dccb7d8ae601bbff1f5c2d7d4d1c0f0399 Mon Sep 17 00:00:00 2001 From: Maxi Wittich Date: Tue, 20 Feb 2024 10:03:15 +0100 Subject: [PATCH 14/26] felix comments --- modules/concepts/pages/experimental-arm64-support.adoc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/modules/concepts/pages/experimental-arm64-support.adoc b/modules/concepts/pages/experimental-arm64-support.adoc index e1481cd0a..e0f55651f 100644 --- a/modules/concepts/pages/experimental-arm64-support.adoc +++ b/modules/concepts/pages/experimental-arm64-support.adoc @@ -30,7 +30,7 @@ Accessing our data platform for ARM64 would mean needing to pull those images fr According to our https://docs.stackable.tech/home/stable/airflow/getting_started/installation#_helm[installation guide] you can install ARM64 operators e.g. for the commons operator as follows: -```bash +```[source,bash] helm install commons-operator stackable-stable/commons-operator --namespace stackable-operators --create-namespace --version=23.11.0 --set image.repository=docker.stackable.tech/stackable-experimental/commons-operator ``` @@ -42,7 +42,7 @@ WARNING: You have to install every operator you need for a given demo individual Driven by the multi-architecture technology we introduced, the https://docs.stackable.tech/home/stable/concepts/product_image_selection[Product image selection] mechanism allows the user to choose a specific product image. This has some more advantages when you think about air-gapped environments or a mirrored repository. In our case we can use this feature to choose the ARM64 image as follows: -```yaml +```[source,yaml] spec: image: custom: docker.stackable.tech/stackable-experimental/kafka:3.5.1-stackable23.11.0 @@ -59,12 +59,12 @@ You have seen there are ways to access SPD demos for ARM64 architecture, but we As a prerequisite, we expect you to have a Kubernetes Cluster of any flavour and stackablectl https://docs.stackable.tech/home/stable/quickstart[installed]. ==== 1. Clone the demo repository -```bash +```[source,bash] git clone git@github.com:stackabletech/demos.git ``` ==== 2. Checkout ARM64 demo branch ( release 23.11.0 ) -```bash +```[source,bash] git pull && git checkout spike/demos-on-arm ``` From 50a4dd2e34612d677f1dab9612d25630010bad4e Mon Sep 17 00:00:00 2001 From: Maxi Wittich Date: Tue, 20 Feb 2024 10:08:41 +0100 Subject: [PATCH 15/26] felix comments 2 --- .../pages/experimental-arm64-support.adoc | 25 +++++++++++-------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/modules/concepts/pages/experimental-arm64-support.adoc b/modules/concepts/pages/experimental-arm64-support.adoc index e0f55651f..0fcb45b53 100644 --- a/modules/concepts/pages/experimental-arm64-support.adoc +++ b/modules/concepts/pages/experimental-arm64-support.adoc @@ -30,9 +30,10 @@ Accessing our data platform for ARM64 would mean needing to pull those images fr According to our https://docs.stackable.tech/home/stable/airflow/getting_started/installation#_helm[installation guide] you can install ARM64 operators e.g. for the commons operator as follows: -```[source,bash] +[source,bash] +---- helm install commons-operator stackable-stable/commons-operator --namespace stackable-operators --create-namespace --version=23.11.0 --set image.repository=docker.stackable.tech/stackable-experimental/commons-operator -``` +---- The magic happens with `--set image.repository=docker.stackable.tech/stackable-experimental/commons-operator` `, here you overwrite the default image selection with the new organization stackable-experimental. The other operators can be installed in the same way by overriding the image repository. @@ -42,12 +43,13 @@ WARNING: You have to install every operator you need for a given demo individual Driven by the multi-architecture technology we introduced, the https://docs.stackable.tech/home/stable/concepts/product_image_selection[Product image selection] mechanism allows the user to choose a specific product image. This has some more advantages when you think about air-gapped environments or a mirrored repository. In our case we can use this feature to choose the ARM64 image as follows: -```[source,yaml] +[source,yaml] +---- spec: image: custom: docker.stackable.tech/stackable-experimental/kafka:3.5.1-stackable23.11.0 productVersion: 3.5.1 -``` +---- Once again, the key to success is to exchange `stackable` with `stackable-experimental` and point to the release 23.11.0. NOTE: Only 23.11.0 is working at this moment. @@ -59,19 +61,22 @@ You have seen there are ways to access SPD demos for ARM64 architecture, but we As a prerequisite, we expect you to have a Kubernetes Cluster of any flavour and stackablectl https://docs.stackable.tech/home/stable/quickstart[installed]. ==== 1. Clone the demo repository -```[source,bash] +[source,bash] +---- git clone git@github.com:stackabletech/demos.git -``` +---- ==== 2. Checkout ARM64 demo branch ( release 23.11.0 ) -```[source,bash] +[source,bash] +---- git pull && git checkout spike/demos-on-arm -``` +---- ==== 3. Install your demo with stackablectl (e.g. nifi-kafka-druid-earthquake-data) -```bash +[source,bash] +---- stackablectl demo install nifi-kafka-druid-earthquake-data --skip-release -s stacks/stacks-v2.yaml -d demos/demos-v2.yaml -``` +---- == Road-Map From be466f98c009ca96812aaf38ab551475c3c2bef4 Mon Sep 17 00:00:00 2001 From: Maxi Wittich Date: Tue, 20 Feb 2024 10:24:12 +0100 Subject: [PATCH 16/26] adding to nav.adoc --- modules/concepts/nav.adoc | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/concepts/nav.adoc b/modules/concepts/nav.adoc index a33bef6a8..ab48880c6 100644 --- a/modules/concepts/nav.adoc +++ b/modules/concepts/nav.adoc @@ -4,6 +4,7 @@ *** xref:roles-and-role-groups.adoc[] *** xref:product_image_selection.adoc[] *** xref:overrides.adoc[Advanced: overrides] +*** xref:experimental-arm64-support.adoc[ARM64-Early-Access] ** Resources *** xref:resources.adoc[] *** xref:s3.adoc[] From 13b90982fa7c66e2eaea1ddb71529d29f089e23e Mon Sep 17 00:00:00 2001 From: Maxi Wittich Date: Tue, 20 Feb 2024 10:32:05 +0100 Subject: [PATCH 17/26] Adding ARM64 to index --- modules/concepts/pages/experimental-arm64-support.adoc | 3 +++ modules/concepts/pages/index.adoc | 1 + 2 files changed, 4 insertions(+) diff --git a/modules/concepts/pages/experimental-arm64-support.adoc b/modules/concepts/pages/experimental-arm64-support.adoc index 0fcb45b53..e1fa75686 100644 --- a/modules/concepts/pages/experimental-arm64-support.adoc +++ b/modules/concepts/pages/experimental-arm64-support.adoc @@ -1,4 +1,7 @@ = Multi-Architecture for SDP +:page-aliases: experimental-arm64-support.adoc +:description: This page describes how to access ARM64 based SDP early +:keywords: Multi-Architecture, infrastructure, docker, image, tags, early-access Today, we are proud to announce the next step in our efforts to port Stackable Data Platform (SDP) to the ARM64 architecture. diff --git a/modules/concepts/pages/index.adoc b/modules/concepts/pages/index.adoc index 31ad78ac1..269017d85 100644 --- a/modules/concepts/pages/index.adoc +++ b/modules/concepts/pages/index.adoc @@ -13,6 +13,7 @@ There is also the common xref:overrides.adoc[override] mechanism for configurati Learn about how xref:resources.adoc[] are configured; this covers CPU, memory and storage. Learn about how xref:s3.adoc[] are configured across the platform. +Learn about how to access xref:experimental-arm64-support[ARM64-support]. == Connectivity From e99b25427b667673f36464085af9fad74ba9edf6 Mon Sep 17 00:00:00 2001 From: Maxi Wittich Date: Tue, 20 Feb 2024 10:36:31 +0100 Subject: [PATCH 18/26] remove self reference --- modules/concepts/pages/experimental-arm64-support.adoc | 1 - 1 file changed, 1 deletion(-) diff --git a/modules/concepts/pages/experimental-arm64-support.adoc b/modules/concepts/pages/experimental-arm64-support.adoc index e1fa75686..f0bd4064d 100644 --- a/modules/concepts/pages/experimental-arm64-support.adoc +++ b/modules/concepts/pages/experimental-arm64-support.adoc @@ -1,5 +1,4 @@ = Multi-Architecture for SDP -:page-aliases: experimental-arm64-support.adoc :description: This page describes how to access ARM64 based SDP early :keywords: Multi-Architecture, infrastructure, docker, image, tags, early-access From 75f18d619347a4a8cec842c38accf687f6048c89 Mon Sep 17 00:00:00 2001 From: Maxi Wittich Date: Tue, 20 Feb 2024 10:42:15 +0100 Subject: [PATCH 19/26] page aliases and new ref --- modules/concepts/nav.adoc | 2 +- modules/concepts/pages/experimental-arm64-support.adoc | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/modules/concepts/nav.adoc b/modules/concepts/nav.adoc index ab48880c6..e62d5b598 100644 --- a/modules/concepts/nav.adoc +++ b/modules/concepts/nav.adoc @@ -4,7 +4,7 @@ *** xref:roles-and-role-groups.adoc[] *** xref:product_image_selection.adoc[] *** xref:overrides.adoc[Advanced: overrides] -*** xref:experimental-arm64-support.adoc[ARM64-Early-Access] +*** xref:experimental_ARM64_support.adoc[ARM64-Early-Access] ** Resources *** xref:resources.adoc[] *** xref:s3.adoc[] diff --git a/modules/concepts/pages/experimental-arm64-support.adoc b/modules/concepts/pages/experimental-arm64-support.adoc index f0bd4064d..74925994d 100644 --- a/modules/concepts/pages/experimental-arm64-support.adoc +++ b/modules/concepts/pages/experimental-arm64-support.adoc @@ -1,4 +1,5 @@ = Multi-Architecture for SDP +:page-aliases: experimental_ARM64_support.adoc :description: This page describes how to access ARM64 based SDP early :keywords: Multi-Architecture, infrastructure, docker, image, tags, early-access From 3a8ff56d339dfff204e59a05ec3b5fe4024140b0 Mon Sep 17 00:00:00 2001 From: Maxi Wittich Date: Mon, 26 Feb 2024 15:20:35 +0100 Subject: [PATCH 20/26] making it more a doc page --- .../pages/experimental-arm64-support.adoc | 62 ++++--------------- 1 file changed, 13 insertions(+), 49 deletions(-) diff --git a/modules/concepts/pages/experimental-arm64-support.adoc b/modules/concepts/pages/experimental-arm64-support.adoc index 74925994d..b71779530 100644 --- a/modules/concepts/pages/experimental-arm64-support.adoc +++ b/modules/concepts/pages/experimental-arm64-support.adoc @@ -3,32 +3,20 @@ :description: This page describes how to access ARM64 based SDP early :keywords: Multi-Architecture, infrastructure, docker, image, tags, early-access -Today, we are proud to announce the next step in our efforts to port Stackable Data Platform (SDP) to the ARM64 architecture. +WARNING: This is an experimental feature of the Stackable Data Platform and yet under https://github.com/stackabletech/issues/issues/463[development]. -We arrived with 23.11.0 at a point where we are able to test and develop on a bare-metal ARM cluster. We have been using ARM-based instances on Azure and going forward are cooperating with HPE who have thankfully supplied us with resources to build and test Stackable Data Platform on multiple architectures, using their brand new and powerful Ampere-based hardware. - -As this marks our beta phase, in this article we want to give an overview over the situation, a rough roadmap as well as a method to early access the 23.11.0 release for SDP on ARM64. - -== State of the Art - -At the moment we have a working 23.11.0 release. We made it publicly accessible but didn't merge it yet with the x86-64 releases you are already comfortable with. +== Early-Access -Since this is new to us too, we have started by building the release manually and checking it for any defects when compared to the x86-64 release. To do so we are building a long-living soak test cluster where we perform updates and run workflows. We believe that most of the developed functionality on the x86-64 side can't be lost just by porting it to another architecture, and therefore we plan to focus on testing features which only can be seen on long-running clusters e.g. certificate rotation. +We have a working release 23.11.0 ported to the ARM64 architecture. Those images are stored within the `stackable-experimental` organization in our https://repo.stackable.tech/#browse/browse:docker:v2%2Fstackable-experimental[Nexus]. -As a means of testing our 23.11.0 release we worked on our demos to make them accessible on ARM64. Those demos behaved as we expected compared to the same running on x86-64. This means, we have reworked the foundations of the demos and now you as a user can use them and work with SDP on your native cluster. +Accessing our data platform for ARM64 would mean needing to pull those images from the repo. As those are not available by default, you need to switch to the `stackable-experimental` organization. === Actual Releases -We have currently one release on ARM64 which is 23.11.0. +We have currently one release on ARM64 which is `23.11.0`. We decided only to go for specific tags as we don't want to mess around with dev images. We could bundle them as a manifest list but decided to do that when we have an automated workflow and tests infrastructure in place. -== Early-Access - -As mentioned before, we have a working release 23.11.0 ported to the ARM64 architecture. Those images are stored within the `stackable-experimental` organization in our https://repo.stackable.tech/#browse/browse:docker:v2%2Fstackable-experimental[Nexus]. - -Accessing our data platform for ARM64 would mean needing to pull those images from the repo. As those are not available by default, you need to switch to the `stackable-experimental` organization. This needs to be done within the following two steps. - === Early-Access with Helm According to our https://docs.stackable.tech/home/stable/airflow/getting_started/installation#_helm[installation guide] you can install ARM64 operators e.g. for the commons operator as follows: @@ -72,41 +60,17 @@ git clone git@github.com:stackabletech/demos.git ==== 2. Checkout ARM64 demo branch ( release 23.11.0 ) [source,bash] ---- -git pull && git checkout spike/demos-on-arm +cd demos && git pull && git checkout spike/demos-on-arm ---- +==== 3. Install stackable operators ( release 23.11.0 ) +NOTE: Executing a script where all operators of 23.11.0 are installed. You can omit this step and only install operators you want by copying the corresponding `helm` command. -==== 3. Install your demo with stackablectl (e.g. nifi-kafka-druid-earthquake-data) +[source,bash] +---- +./arm.sh +---- +==== 4. Install your demo with stackablectl (e.g. nifi-kafka-druid-earthquake-data) [source,bash] ---- stackablectl demo install nifi-kafka-druid-earthquake-data --skip-release -s stacks/stacks-v2.yaml -d demos/demos-v2.yaml ---- - -== Road-Map - -=== Release 23.7 - -This is an untested release on ARM64. All products besides Airflow and Superset are available and all operators are built. - -Since still untested we released silently in stackable-experimental. - -=== Release 23.11 - -Fairly untested release, not worked through yet. - -We would suggest to build it the same way now as we did last time. On a local node and push and tag by hand. Additionally, we would like to take the opportunity to build a long-living test cluster for the release 23.11. This way, we could build a good amount (or the complete SDP platform) on an ARM-based cluster and do some efficient testing. - -Our goal is would be to put in the effort to get all products and operators built and released as ARM64 images. - -=== Between 23.11 and 24.3 - -Having an automatic workflow that builds multi-architecture dev releases into stackable-experimental all the time. While this is happening, I would like to update the test cluster with the dev versions and see if the newest changes do something to the ARM64 side of things. - -This step can only be done if we have tested on 23.11.x and brought in all fixes necessary for SDP to function on ARM64. - -=== Release 24.3 - -Tested release (with at least 80% coverage compared to x86-64). Multi-architecture builds get automatically released in the stackable-experimental repository at first. After sufficient testing I would like to go and finally merge stackable-experimental → stackable and having a first ever multi arch release. Still silent at this point, but documented. - -=== Release 24.7 - -The "loud" multi arch release. From this point we would like SDP to be officially and fully tested on multi architecture. \ No newline at end of file From 4809d3c52d2abea8c1f06d14cfa2325c20cd852b Mon Sep 17 00:00:00 2001 From: Maxi Wittich Date: Mon, 26 Feb 2024 15:25:23 +0100 Subject: [PATCH 21/26] Try to get it deployed --- modules/concepts/nav.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/concepts/nav.adoc b/modules/concepts/nav.adoc index e62d5b598..09ae8e5fd 100644 --- a/modules/concepts/nav.adoc +++ b/modules/concepts/nav.adoc @@ -4,7 +4,7 @@ *** xref:roles-and-role-groups.adoc[] *** xref:product_image_selection.adoc[] *** xref:overrides.adoc[Advanced: overrides] -*** xref:experimental_ARM64_support.adoc[ARM64-Early-Access] +*** xref:experimental-ARM64-support.adoc[ARM64-Early-Access] ** Resources *** xref:resources.adoc[] *** xref:s3.adoc[] From b5c2e90096f6c35a07e1edad860c4ca5f1c7c855 Mon Sep 17 00:00:00 2001 From: Maxi Wittich Date: Mon, 26 Feb 2024 15:30:04 +0100 Subject: [PATCH 22/26] Fixing Tag --- modules/concepts/nav.adoc | 2 +- modules/concepts/pages/experimental-arm64-support.adoc | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/concepts/nav.adoc b/modules/concepts/nav.adoc index 09ae8e5fd..a5b211a3b 100644 --- a/modules/concepts/nav.adoc +++ b/modules/concepts/nav.adoc @@ -4,7 +4,7 @@ *** xref:roles-and-role-groups.adoc[] *** xref:product_image_selection.adoc[] *** xref:overrides.adoc[Advanced: overrides] -*** xref:experimental-ARM64-support.adoc[ARM64-Early-Access] +*** xref:arm_support.adoc[] ** Resources *** xref:resources.adoc[] *** xref:s3.adoc[] diff --git a/modules/concepts/pages/experimental-arm64-support.adoc b/modules/concepts/pages/experimental-arm64-support.adoc index b71779530..0ead34232 100644 --- a/modules/concepts/pages/experimental-arm64-support.adoc +++ b/modules/concepts/pages/experimental-arm64-support.adoc @@ -1,5 +1,5 @@ = Multi-Architecture for SDP -:page-aliases: experimental_ARM64_support.adoc +:page-aliases: arm_support.adoc :description: This page describes how to access ARM64 based SDP early :keywords: Multi-Architecture, infrastructure, docker, image, tags, early-access From fc5ef934a161f596500ccb6019ff08e5c5c770f9 Mon Sep 17 00:00:00 2001 From: Maximilian Wittich <56642549+Maleware@users.noreply.github.com> Date: Tue, 27 Feb 2024 08:21:44 +0100 Subject: [PATCH 23/26] Apply suggestions from code review Accepting comments of Andrew, thank you! Co-authored-by: Andrew Kenworthy --- .../pages/experimental-arm64-support.adoc | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/modules/concepts/pages/experimental-arm64-support.adoc b/modules/concepts/pages/experimental-arm64-support.adoc index 0ead34232..d7dd1ce99 100644 --- a/modules/concepts/pages/experimental-arm64-support.adoc +++ b/modules/concepts/pages/experimental-arm64-support.adoc @@ -3,19 +3,19 @@ :description: This page describes how to access ARM64 based SDP early :keywords: Multi-Architecture, infrastructure, docker, image, tags, early-access -WARNING: This is an experimental feature of the Stackable Data Platform and yet under https://github.com/stackabletech/issues/issues/463[development]. +WARNING: This is an experimental feature of the Stackable Data Platform and still under https://github.com/stackabletech/issues/issues/463[development]. == Early-Access -We have a working release 23.11.0 ported to the ARM64 architecture. Those images are stored within the `stackable-experimental` organization in our https://repo.stackable.tech/#browse/browse:docker:v2%2Fstackable-experimental[Nexus]. +SDP release 23.11.0 has been ported to the ARM64 architecture. These images are stored within the `stackable-experimental` organization in our https://repo.stackable.tech/#browse/browse:docker:v2%2Fstackable-experimental[Nexus]. -Accessing our data platform for ARM64 would mean needing to pull those images from the repo. As those are not available by default, you need to switch to the `stackable-experimental` organization. +As they are not available by default so you need to first switch to the `stackable-experimental` organization before pulling them for use with the data platform. === Actual Releases -We have currently one release on ARM64 which is `23.11.0`. +The only release currently available for ARM64 is the early-access version mentioned above. -We decided only to go for specific tags as we don't want to mess around with dev images. We could bundle them as a manifest list but decided to do that when we have an automated workflow and tests infrastructure in place. +Each product is built using ARM-specific tags to keep them distinct from development/nightly images. In future they may be bundled as a manifest list using an automated workflow. === Early-Access with Helm @@ -26,13 +26,13 @@ According to our https://docs.stackable.tech/home/stable/airflow/getting_started helm install commons-operator stackable-stable/commons-operator --namespace stackable-operators --create-namespace --version=23.11.0 --set image.repository=docker.stackable.tech/stackable-experimental/commons-operator ---- -The magic happens with `--set image.repository=docker.stackable.tech/stackable-experimental/commons-operator` `, here you overwrite the default image selection with the new organization stackable-experimental. The other operators can be installed in the same way by overriding the image repository. +By declaring `--set image.repository=docker.stackable.tech/stackable-experimental/commons-operator` you will overwrite the image selected by default with one located in the organization `stackable-experimental`. The other operators can be installed in the same way. WARNING: You have to install every operator you need for a given demo individually with helm using `--skip-release` with stackablectl. Otherwise, it will try to install x86 operators and pull ARM64 product images afterwards. === Early-Access to our products -Driven by the multi-architecture technology we introduced, the https://docs.stackable.tech/home/stable/concepts/product_image_selection[Product image selection] mechanism allows the user to choose a specific product image. This has some more advantages when you think about air-gapped environments or a mirrored repository. In our case we can use this feature to choose the ARM64 image as follows: +The https://docs.stackable.tech/home/stable/concepts/product_image_selection[Product image selection] mechanism allows the user to choose a specific product image and/or a different repository which may be relevant for e.g. air-gapped environments or when using a mirrored repository. To choose an ARM64 image specify the image in the `custom` field as follows: [source,yaml] ---- @@ -41,15 +41,15 @@ spec: custom: docker.stackable.tech/stackable-experimental/kafka:3.5.1-stackable23.11.0 productVersion: 3.5.1 ---- -Once again, the key to success is to exchange `stackable` with `stackable-experimental` and point to the release 23.11.0. +Once again, the important thing is to exchange `stackable` with `stackable-experimental` and point to release 23.11.0. NOTE: Only 23.11.0 is working at this moment. === Prepared Demos -You have seen there are ways to access SPD demos for ARM64 architecture, but we had to rework some files. As we strive to provide our users the most comfortable deployment path we can, we have provided with a ready made branch to execute our demos on ARM64. We've provided below a complete set of instructions to make your ARM demo a success. +It is possible to run SPD demos on ARM64 architecture, but due to the changes that are necessary we have provided a separate branch to make this easier. Please follow the instructions below to run a demo on ARM. -As a prerequisite, we expect you to have a Kubernetes Cluster of any flavour and stackablectl https://docs.stackable.tech/home/stable/quickstart[installed]. +You will need access to a Kubernetes Cluster and to have the stackablectl https://docs.stackable.tech/home/stable/quickstart[command-line tool] installed. ==== 1. Clone the demo repository [source,bash] @@ -63,7 +63,7 @@ git clone git@github.com:stackabletech/demos.git cd demos && git pull && git checkout spike/demos-on-arm ---- ==== 3. Install stackable operators ( release 23.11.0 ) -NOTE: Executing a script where all operators of 23.11.0 are installed. You can omit this step and only install operators you want by copying the corresponding `helm` command. +NOTE: This executes a script where all operators with version 23.11.0 are installed. You can omit this step and only install operators you want by copying the corresponding `helm` command. [source,bash] ---- From 6ee38e5737bd7944d68b0144a29a11bbe331e9ef Mon Sep 17 00:00:00 2001 From: Maxi Wittich Date: Tue, 27 Feb 2024 08:22:29 +0100 Subject: [PATCH 24/26] Little typo --- modules/concepts/pages/experimental-arm64-support.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/concepts/pages/experimental-arm64-support.adoc b/modules/concepts/pages/experimental-arm64-support.adoc index d7dd1ce99..52cc8d291 100644 --- a/modules/concepts/pages/experimental-arm64-support.adoc +++ b/modules/concepts/pages/experimental-arm64-support.adoc @@ -47,7 +47,7 @@ NOTE: Only 23.11.0 is working at this moment. === Prepared Demos -It is possible to run SPD demos on ARM64 architecture, but due to the changes that are necessary we have provided a separate branch to make this easier. Please follow the instructions below to run a demo on ARM. +It is possible to run SDP demos on ARM64 architecture, but due to the changes that are necessary we have provided a separate branch to make this easier. Please follow the instructions below to run a demo on ARM. You will need access to a Kubernetes Cluster and to have the stackablectl https://docs.stackable.tech/home/stable/quickstart[command-line tool] installed. From ab265b8f218e417a152813115e51703fefb27054 Mon Sep 17 00:00:00 2001 From: Maxi Wittich Date: Tue, 27 Feb 2024 08:24:26 +0100 Subject: [PATCH 25/26] one more comment --- modules/concepts/pages/experimental-arm64-support.adoc | 1 - 1 file changed, 1 deletion(-) diff --git a/modules/concepts/pages/experimental-arm64-support.adoc b/modules/concepts/pages/experimental-arm64-support.adoc index 52cc8d291..89d762f49 100644 --- a/modules/concepts/pages/experimental-arm64-support.adoc +++ b/modules/concepts/pages/experimental-arm64-support.adoc @@ -41,7 +41,6 @@ spec: custom: docker.stackable.tech/stackable-experimental/kafka:3.5.1-stackable23.11.0 productVersion: 3.5.1 ---- -Once again, the important thing is to exchange `stackable` with `stackable-experimental` and point to release 23.11.0. NOTE: Only 23.11.0 is working at this moment. From 5f4069c3f62b328659ba33d6d1f69e28bf9bc1b7 Mon Sep 17 00:00:00 2001 From: Maxi Wittich Date: Tue, 27 Feb 2024 09:57:36 +0100 Subject: [PATCH 26/26] Adding Felix comments --- modules/concepts/nav.adoc | 2 +- .../{experimental-arm64-support.adoc => arm64-support.adoc} | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) rename modules/concepts/pages/{experimental-arm64-support.adoc => arm64-support.adoc} (98%) diff --git a/modules/concepts/nav.adoc b/modules/concepts/nav.adoc index a5b211a3b..e03749e23 100644 --- a/modules/concepts/nav.adoc +++ b/modules/concepts/nav.adoc @@ -4,7 +4,7 @@ *** xref:roles-and-role-groups.adoc[] *** xref:product_image_selection.adoc[] *** xref:overrides.adoc[Advanced: overrides] -*** xref:arm_support.adoc[] +*** xref:arm64-support.adoc[] ** Resources *** xref:resources.adoc[] *** xref:s3.adoc[] diff --git a/modules/concepts/pages/experimental-arm64-support.adoc b/modules/concepts/pages/arm64-support.adoc similarity index 98% rename from modules/concepts/pages/experimental-arm64-support.adoc rename to modules/concepts/pages/arm64-support.adoc index 89d762f49..e8f3fd8cf 100644 --- a/modules/concepts/pages/experimental-arm64-support.adoc +++ b/modules/concepts/pages/arm64-support.adoc @@ -1,5 +1,4 @@ -= Multi-Architecture for SDP -:page-aliases: arm_support.adoc += Multi-Architecture for SDP (Experimental) :description: This page describes how to access ARM64 based SDP early :keywords: Multi-Architecture, infrastructure, docker, image, tags, early-access