This is an automated email from the ASF dual-hosted git repository.

sk0x50 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ignite.git


The following commit(s) were added to refs/heads/master by this push:
     new 8a32f14e402 IGNITE-17780 Updated deployment example to StatefulSet 
(#11098)
8a32f14e402 is described below

commit 8a32f14e402326ee0a850429d2e79e688639455c
Author: IgGusev <igu...@gridgain.com>
AuthorDate: Thu Jan 11 18:00:52 2024 +0400

    IGNITE-17780 Updated deployment example to StatefulSet (#11098)
---
 .../k8s/stateless/deployment-template.yaml         | 80 +++++++++++++++-------
 .../kubernetes/generic-configuration.adoc          |  6 +-
 2 files changed, 57 insertions(+), 29 deletions(-)

diff --git a/docs/_docs/code-snippets/k8s/stateless/deployment-template.yaml 
b/docs/_docs/code-snippets/k8s/stateless/deployment-template.yaml
index fe388d8d191..0190060dccc 100644
--- a/docs/_docs/code-snippets/k8s/stateless/deployment-template.yaml
+++ b/docs/_docs/code-snippets/k8s/stateless/deployment-template.yaml
@@ -15,8 +15,8 @@
 
 #tag::config-block[]
 # An example of a Kubernetes configuration for pod deployment.
-apiVersion: apps/v1 
-kind: Deployment
+apiVersion: apps/v1
+kind: StatefulSet
 metadata:
   # Cluster name.
   name: ignite-cluster
@@ -27,34 +27,64 @@ spec:
   selector:
     matchLabels:
       app: ignite
+  serviceName: ignite
   template:
     metadata:
       labels:
-        app: ignite 
+        app: ignite
     spec:
-      serviceAccountName: ignite 
-      terminationGracePeriodSeconds: 60000 
+      serviceAccountName: ignite
+      terminationGracePeriodSeconds: 60000
       containers:
         # Custom pod name.
-      - name: ignite-node
-        image: apacheignite/ignite:{version}
-        env:
-        - name: OPTION_LIBS
-          value: ignite-kubernetes,ignite-rest-http
-        - name: CONFIG_URI
-          value: file:///ignite/config/node-configuration.xml
-        ports:
-        # Ports to open.
-        - containerPort: 47100 # communication SPI port
-        - containerPort: 47500 # discovery SPI port
-        - containerPort: 49112 # dafault JMX port
-        - containerPort: 10800 # thin clients/JDBC driver port
-        - containerPort: 8080 # REST API
-        volumeMounts:
-        - mountPath: /ignite/config
-          name: config-vol
+        - name: ignite-node
+          image: apacheignite/ignite:{version}
+          env:
+            - name: OPTION_LIBS
+              value: ignite-kubernetes,ignite-rest-http
+            - name: CONFIG_URI
+              value: file:///opt/ignite/config/node-configuration.xml
+            - name: JVM_OPTS
+              value: "-DIGNITE_WAIT_FOR_BACKUPS_ON_SHUTDOWN=true"
+          ports:
+            # Ports to open.
+            - containerPort: 47100 # communication SPI port
+            - containerPort: 47500 # discovery SPI port
+            - containerPort: 49112 # JMX port
+            - containerPort: 10800 # thin clients/JDBC driver port
+            - containerPort: 8080 # REST API
+          volumeMounts:
+            - mountPath: /opt/ignite/config
+              name: config-vol
+            - mountPath: /opt/ignite/work/db/binary_meta
+              name: internal-metadata-vol
+              readinessProbe:
+                httpGet:
+                  path: /ignite?cmd=probe
+                  port: 8080
+                initialDelaySeconds: 5
+                failureThreshold: 3
+                periodSeconds: 10
+                timeoutSeconds: 10
+              livenessProbe:
+                httpGet:
+                  path: /ignite?cmd=version
+                  port: 8080
+                  initialDelaySeconds: 5
+                  failureThreshold: 3
+                  periodSeconds: 10
+                  timeoutSeconds: 10
       volumes:
-      - name: config-vol
-        configMap:
-          name: ignite-config
+        - name: config-vol
+          configMap:
+            name: ignite-config
+  volumeClaimTemplates:
+    - metadata:
+        name: internal-metadata-vol
+      spec:
+        accessModes: [ "ReadWriteOnce" ]
+        resources:
+          requests:
+            storage: "1Gi" # make sure to provide enough space for your 
application data
+
 #end::config-block[]
diff --git a/docs/_docs/installation/kubernetes/generic-configuration.adoc 
b/docs/_docs/installation/kubernetes/generic-configuration.adoc
index 4595a83f4e7..09abbfe53c7 100644
--- a/docs/_docs/installation/kubernetes/generic-configuration.adoc
+++ b/docs/_docs/installation/kubernetes/generic-configuration.adoc
@@ -159,9 +159,7 @@ include::{script}[tags=create-configmap]
 
 === Creating Pod Configuration
 
-Now we will create a configuration for pods.
-In the case of stateless deployment, we will use a 
link:https://kubernetes.io/docs/concepts/workloads/controllers/deployment/[Deployment,window=_blank].
-For a stateful deployment, we will use a 
link:https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/[StatefulSet,window=_blank].
+Now we create a configuration for pods that use a 
link:https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/[StatefulSet,window=_blank].
 
 
 [tabs]
@@ -181,7 +179,7 @@ In the container's configuration, we will:
 ** 10800 — thin client/JDBC/ODBC port
 ** 8080 — REST API port
 
-The deployment configuration file might look like as follows:
+The configuration file might look like as follows:
 
 .deployment.yaml
 [source, yaml,subs="attributes,specialchars"]

Reply via email to