You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
:description: Customize Stackable product images by modifying base images, deploying to a registry or Kubernetes cluster, and configuring your Stacklet to use them.
6
6
7
-
The Stackable operator require a certain structure inside the product images, but modifications can be made.
8
-
This is useful to for example load additional extensions or database drivers into an image.
7
+
The Stackable operators require a certain structure inside the product images, but modifications can be made.
8
+
This is useful for loading additional extensions or database drivers into an image or make any other required changes.
9
9
10
-
To deploy a custom image, you will either have to manually load the image into the Kubernetes cluster or you have to deploy it into a custom registry.
10
+
To deploy a custom image, you will either have to manually load the image into the Kubernetes cluster or deploy it into a custom registry.
11
11
12
12
== Steps
13
13
14
-
To use a customized image you have to:
14
+
To use a customized image, you need to:
15
15
16
16
1. Create the customized image using a Stackable base image.
17
-
2. Provide this image into the Kubernetes cluster.
17
+
2. Provide this image to the Kubernetes cluster.
18
18
3. Configure your Stacklet to use the custom image.
19
19
20
20
=== Create your customized image
21
21
22
22
The Stackable operators rely on the structure and contents of the product images, so any modifications need to be done using the Stackable images as base images.
23
23
24
24
You can find the Stackable Docker images in the {stackable-oci-registry}[Stackable OCI registry].
25
-
Images follow a naming schema: `oci.stackable.tech/sdp/<product>:<product-version>-stackable<stackable-version>` where `<product>` are the products like `druid`, `trino` and `opa`, `<product-version>` are product versions like `28.0.1`, `414` or `0.61.0` and `<stackable-version>` is a Stackable platform version like `23.7` or `24.3.0`.
25
+
Images follow a naming schema: `oci.stackable.tech/sdp/<product>:<product-version>-stackable<stackable-version>` where `<product>` includes products like `druid`, `trino`, and `opa`, `<product-version>` are product versions like `28.0.1` (i.e. Apache Druid 28.0.1), `414`, or `0.61.0`, and `<stackable-version>` is a Stackable platform version like `25.3.0` or `25.7.0`.
26
26
The Stackable version can also be `0.0.0-dev` for nightly images.
27
27
You can use this naming schema together with the xref:operators:supported_versions.adoc[] list to quickly find the base image you need.
28
28
@@ -31,34 +31,36 @@ Use the `FROM` clause in your Dockerfile to reference the base image.
31
31
32
32
When tagging the image, there are no requirements by the operator, any registry and tag is possible.
33
33
To avoid confusion, do not use the Stackable registry for your custom image, as you cannot push the image there.
34
-
You can also keep the versions in the tag, and simply add a suffix to mark your changes.
34
+
You can also keep the versions in the tag and simply add a suffix to mark your changes.
35
35
36
36
For example, for a custom image with a MySQL driver added, you might tag your image with `my.corp/stackable/hive:3.1.3-stackable24.3.0-mysql`.
37
37
38
38
=== Provide the image to the Kubernetes cluster
39
39
40
40
To deploy containers using this image, the Kubernetes cluster needs to be able to access the image.
41
41
42
-
You can either upload the image into a custom registry and pull it from there - refer to your registry on how to do this - or make the image available to the Kubernetes cluster directly.
43
-
For example, in {kind}[`kind`] you can use the {kind-load-image}[`kind load docker-image`] command to load a local image into the Kind cluster.
42
+
You can either upload the image into a custom registry and pull it from there — refer to your registry documentation on how to do this — or make the image available to the Kubernetes cluster directly.
43
+
For example, in {kind}[`kind`], you can use the {kind-load-image}[`kind load docker-image`] command to load a local image into the Kind cluster.
44
44
45
45
=== Use your customized image in your Stacklet definition
46
46
47
47
To use the customized image in your Stacklet, adjust the xref:concepts:product-image-selection.adoc[] section in your Stacklet configuration.
Note that you still need to specify the product version was used in the image for the operator to configure it correctly.
58
+
Note that you still need to specify the product version used in the image for the operator to configure it correctly.
57
59
58
-
With this configuration the operator deploys your Stacklet using your custom image.
60
+
With this configuration, the operator deploys your Stacklet using your custom image.
59
61
60
62
== Further reading and useful links
61
63
62
-
* Read about xref:concepts:product-image-selection.adoc[] to learn about other ways of specifying a product version or images, for example how to use a custom registry when mirroring Stackable images.
63
-
* Have a look at the {stackable-oci-registry}[Stackable OCI registry] to find out which images are available to use as a base. Information on how to browse the registry
64
-
can be found xref:contributor:project-overview.adoc#docker-images[here].
64
+
* Read about xref:concepts:product-image-selection.adoc[] to learn about other ways of specifying a product version or images, for example, how to use a custom registry when mirroring Stackable images.
65
+
* Have a look at the {stackable-oci-registry}[Stackable OCI registry] to find out which images are available to use as a base.
66
+
Information on how to browse the registry can be found xref:contributor:project-overview.adoc#docker-images[here].
0 commit comments