|
| 1 | += Product image selection |
| 2 | + |
| 3 | +All products of the Stackable Data Platform run on Kubernetes and are managed by Stackable Operators. |
| 4 | +One operator is responsible for exactly one product like Apache Spark. |
| 5 | +The products are deployed using `Pods` and their `Containers` to initialize and run the respective product. |
| 6 | +Containers require images (e.g. Docker) to run of. |
| 7 | +These images contain different tools for initialization jobs and/or the actual product itself. |
| 8 | +Images are prepared for different architectures and different product versions. |
| 9 | + |
| 10 | +There are multiple ways to specify the image used: |
| 11 | + |
| 12 | +== Stackable provided images |
| 13 | + |
| 14 | +If your Kubernetes cluster has internet access, the easiest way is to use the publicly available Images from the https://docker.stackable.tech/[Image registry hosted by Stackable]. |
| 15 | +If the Kubernetes cluster does not have internet access, a xref:_custom_docker_registry[] or xref:_custom_images[] can be used. |
| 16 | + |
| 17 | +Currently, you need to specify two versions: |
| 18 | + |
| 19 | +1. **Product version:** The version of the product, as it e.g. can be found on the xref:operators:supported_versions.adoc[list of supported product versions] or on the website of the product itself. |
| 20 | +2. **Stackable version:** As we need to make changes to the Images from time to time (e.g. security updates), we also have to version them using the Stackable version. |
| 21 | +All the available images (with their product and stackable version) can be found in our https://repo.stackable.tech/#browse/browse:docker:v2%2Fstackable[docker repository]. |
| 22 | + |
| 23 | +The versions need to be specified on Stackable products as follows: |
| 24 | + |
| 25 | +[source,yaml] |
| 26 | +---- |
| 27 | +spec: |
| 28 | + image: |
| 29 | + productVersion: 3.3.1 |
| 30 | + stackableVersion: 0.1.0 |
| 31 | +---- |
| 32 | + |
| 33 | +== Custom docker registry |
| 34 | + |
| 35 | +Custom docker registries can be used to fetch the image from a local image registry rather than from the internet. |
| 36 | +The perquisite is that you mirror all the required images the same way (with the same name and tag) as the images provided by Stackable. |
| 37 | + |
| 38 | +Afterwards you can use the following snippet to configure your custom docker repo: |
| 39 | + |
| 40 | +[source,yaml] |
| 41 | +---- |
| 42 | +spec: |
| 43 | + image: |
| 44 | + productVersion: 3.3.1 |
| 45 | + stackableVersion: 0.1.0 |
| 46 | + repo: my.corp/myteam/stackable |
| 47 | +---- |
| 48 | + |
| 49 | +This will change the image from the default Stackable repository `docker.stackable.tech/stackable/kafka:3.3.1-stackable0.1.0` to `my.corp/myteam/stackable/kafka:3.3.1-stackable0.1.0`. |
| 50 | + |
| 51 | +== Custom images |
| 52 | + |
| 53 | +Custom images can be used to fetch arbitrary images from local or public registries. |
| 54 | +In comparison to the xref:_custom_docker_registry[], this allows to provide self-hosted or user-created images (e.g. user extended Stackable images). |
| 55 | +If your image has other tags or names than the ones provided by Stackable you need to use this option. |
| 56 | + |
| 57 | +[source,yaml] |
| 58 | +---- |
| 59 | +spec: |
| 60 | + image: |
| 61 | + custom: my.corp/myteam/stackable/kafka:latest-and-greatest |
| 62 | + productVersion: 3.3.1 |
| 63 | +---- |
| 64 | + |
| 65 | +The Stackable Operators configure their respective products based on the product version. |
| 66 | +This affects e.g. configuration properties or available features. |
| 67 | +Therefore, the operators are dependent on the product and its product version contained in the custom image. |
| 68 | +It's your responsibility to put in the correct product version. |
0 commit comments