You are looking at the documentation of a prior release. To read the documentation of the latest release, please
visit here.
New to KubeDB? Please start here.
Reconfigure Ignite Cluster
This guide will show you how to use KubeDB Ops-manager operator to reconfigure a Ignite cluster.
Before You Begin
At first, you need to have a Kubernetes cluster, and the
kubectlcommand-line tool must be configured to communicate with your cluster.Install
KubeDBProvisioner and Ops-manager operator in your cluster following the steps here.You should be familiar with the following
KubeDBconcepts:
To keep everything isolated, we are going to use a separate namespace called demo throughout this tutorial.
$ kubectl create ns demo
namespace/demo created
Note: YAML files used in this tutorial are stored in examples directory of kubedb/docs repository.
Now, we are going to deploy a Ignite cluster using a supported version by KubeDB operator. Then we are going to apply IgniteOpsRequest to reconfigure its configuration.
Prepare Ignite Database
Now, we are going to deploy a Ignite cluster with version 2.17.0.
Deploy Ignite
At first, we will create ignite.conf file containing required configuration settings.
Now, we will create a secret with this configuration file.
$ kubectl create secret generic -n demo ig-custom-config --from-file=./node-configuration.xml
secret/ig-custom-config created
In this section, we are going to create a Ignite object specifying spec.configSecret field to apply this custom configuration. Below is the YAML of the Ignite CR that we are going to create,
apiVersion: kubedb.com/v1alpha2
kind: Ignite
metadata:
name: ig-cluster
namespace: demo
spec:
version: "2.17.0"
storageType: Durable
storage:
storageClassName: "standard"
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
configSecret:
name: ig-custom-config
Let’s create the Ignite CR we have shown above,
$ kubectl create -f https://github.com/kubedb/docs/raw/v2025.12.9-rc.0/docs/examples/ignite/cluster/ig-custom-config.yaml
ignite.kubedb.com/ig-cluster created
Now, wait until ig-cluster has status Ready. i.e,
$ kubectl get ig -n demo
NAME TYPE VERSION STATUS AGE
ig-cluster kubedb.com/v1alpha2 2.17.0 Ready 79m
Now, we will check if the database has started with the custom configuration we have provided.
First we need to get the username and password to connect to a Ignite instance,
$ kubectl get secrets -n demo ig-cluster-admin-cred -o jsonpath='{.data.\username}' | base64 -d
admin
$ kubectl get secrets -n demo ig-cluster-admin-cred -o jsonpath='{.data.\password}' | base64 -d
m6lXjZugrC4VEpB8
Reconfigure using new secret
Now, we will create a new secret with this configuration file.
$ kubectl create secret generic -n demo new-custom-config --from-file=./ignite.conf
secret/new-custom-config created
Create IgniteOpsRequest
Now, we will use this secret to replace the previous secret using a IgniteOpsRequest CR. The IgniteOpsRequest yaml is given below,
apiVersion: ops.kubedb.com/v1alpha1
kind: IgniteOpsRequest
metadata:
name: reconfigure-ig-cluster
namespace: demo
spec:
type: Reconfigure
databaseRef:
name: ig-cluster
configuration:
configSecret:
name: new-custom-config
timeout: 5m
apply: IfReady
Here,
spec.databaseRef.namespecifies that we are reconfiguringigps-reconfiguredatabase.spec.typespecifies that we are performingReconfigureon our database.spec.configuration.configSecret.namespecifies the name of the new secret.- Have a look here on the respective sections to understand the
readinessCriteria,timeout&applyfields.
Let’s create the IgniteOpsRequest CR we have shown above,
$ kubectl apply -f https://github.com/kubedb/docs/raw/v2025.12.9-rc.0/docs/examples/ignite/opsrequests/ig-reconfigure-with-secret.yaml
igniteopsrequest.ops.kubedb.com/reconfigure-ig-cluster created
Verify the new configuration is working
If everything goes well, KubeDB Ops-manager operator will update the configSecret of Ignite object.
Let’s wait for IgniteOpsRequest to be Successful. Run the following command to watch IgniteOpsRequest CR,
$ watch kubectl get igniteopsrequest -n demo
Every 2.0s: kubectl get igniteopsrequest -n demo
NAME TYPE STATUS AGE
reconfigure-ig-cluster Reconfigure Successful 3m
We can see from the above output that the IgniteOpsRequest has succeeded. If we describe the IgniteOpsRequest we will get an overview of the steps that were followed to reconfigure the database.
$ kubectl describe igniteopsrequest -n demo reconfigure-ig-cluster
Name: reconfigure-ig-cluster
Namespace: demo
Labels: <none>
Annotations: <none>
API Version: ops.kubedb.com/v1alpha1
Kind: IgniteOpsRequest
Metadata:
Creation Timestamp: 2024-09-10T11:09:16Z
Generation: 1
Resource Version: 70651
UID: 5c99031f-6604-48ac-b700-96f896c5d0b3
Spec:
Apply: IfReady
Configuration:
Config Secret:
Name: new-custom-config
Database Ref:
Name: ig-cluster
Timeout: 5m
Type: Reconfigure
Status:
Conditions:
Last Transition Time: 2024-09-10T11:09:16Z
Message: Ignite ops-request has started to reconfigure Ignite nodes
Observed Generation: 1
Reason: Reconfigure
Status: True
Type: Reconfigure
Last Transition Time: 2024-09-10T11:09:24Z
Message: successfully reconciled the Ignite with new configure
Observed Generation: 1
Reason: UpdatePetSets
Status: True
Type: UpdatePetSets
Last Transition Time: 2024-09-10T11:09:29Z
Message: get pod; ConditionStatus:True; PodName:ig-cluster-0
Observed Generation: 1
Status: True
Type: GetPod--ig-cluster-0
Last Transition Time: 2024-09-10T11:09:29Z
Message: evict pod; ConditionStatus:True; PodName:ig-cluster-0
Observed Generation: 1
Status: True
Type: EvictPod--ig-cluster-0
Last Transition Time: 2024-09-10T11:09:34Z
Message: running pod; ConditionStatus:False
Observed Generation: 1
Status: False
Type: RunningPod
Last Transition Time: 2024-09-10T11:09:49Z
Message: Successfully restarted all nodes
Observed Generation: 1
Reason: RestartNodes
Status: True
Type: RestartNodes
Last Transition Time: 2024-09-10T11:09:50Z
Message: Successfully completed reconfigure Ignite
Observed Generation: 1
Reason: Successful
Status: True
Type: Successful
Observed Generation: 1
Phase: Successful
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal Starting 6m13s KubeDB Ops-manager Operator Start processing for IgniteOpsRequest: demo/reconfigure-ig-cluster
Normal Starting 6m13s KubeDB Ops-manager Operator Pausing Ignite databse: demo/ig-cluster
Normal Successful 6m13s KubeDB Ops-manager Operator Successfully paused Ignite database: demo/ig-cluster for IgniteOpsRequest: reconfigure
Normal UpdatePetSets 6m5s KubeDB Ops-manager Operator successfully reconciled the Ignite with new configure
Warning get pod; ConditionStatus:True; PodName:ig-cluster-0 6m KubeDB Ops-manager Operator get pod; ConditionStatus:True; PodName:ig-cluster-0
Warning evict pod; ConditionStatus:True; PodName:ig-cluster-0 6m KubeDB Ops-manager Operator evict pod; ConditionStatus:True; PodName:ig-cluster-0
Warning running pod; ConditionStatus:False 5m55s KubeDB Ops-manager Operator running pod; ConditionStatus:False
Normal RestartNodes 5m40s KubeDB Ops-manager Operator Successfully restarted all nodes
Normal Starting 5m40s KubeDB Ops-manager Operator Resuming Ignite database: demo/ig-cluster
Normal Successful 5m39s KubeDB Ops-manager Operator Successfully resumed Ignite database: demo/ig-cluster for IgniteOpsRequest: reconfigure-ig-cluster
Reconfigure using apply config
Let’s say you are in a rush or, don’t want to create a secret for updating configuration. You can directly do that using the following manifest.
Create IgniteOpsRequest
Now, we will use the new configuration in the configuration.applyConfig field in the IgniteOpsRequest CR. The IgniteOpsRequest yaml is given below,
apiVersion: ops.kubedb.com/v1alpha1
kind: IgniteOpsRequest
metadata:
name: reconfigure-apply
namespace: demo
spec:
type: Reconfigure
databaseRef:
name: ig-cluster
configuration:
applyConfig:
node-configuration.xml: |
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
<!-- Your Ignite Configuration -->
<bean class="org.apache.ignite.configuration.IgniteConfiguration">
<property name="authenticationEnabled" value="true"/>
</bean>
</beans>
timeout: 5m
apply: IfReady
Here,
spec.databaseRef.namespecifies that we are reconfiguringig-clusterdatabase.spec.typespecifies that we are performingReconfigureon our database.spec.configuration.applyConfigspecifies the new configuration that will be merged in the existing secret.
Let’s create the IgniteOpsRequest CR we have shown above,
$ kubectl apply -f https://github.com/kubedb/docs/raw/v2025.12.9-rc.0/docs/examples/ignite/opsrequests/ignite-reconfigure-apply.yaml
igniteopsrequest.ops.kubedb.com/reconfigure-apply created
Cleaning Up
To clean up the Kubernetes resources created by this tutorial, run:
kubectl delete ig -n demo ig-cluster
kubectl delete igniteopsrequest -n demo reconfigure-apply reconfigure-ig-cluster































