Replicate from a cluster that has backup configuration make reconciliation cycle fail
Summary
Replicate from a cluster that has backup configuration make reconciliation cycle fail
Current Behaviour
The operator fail to reconcile the cluster
Steps to reproduce
- Create a Cluster with backup configuration
- Create a Cluster that replicates from the previous one
Expected Behaviour
The operator reconcile the cluster
Environment
- StackGres version: ?
- Kubernetes version: ?
- Cloud provider or hardware configuration: ?
Relevant logs and/or screenshots
2022-11-14 16:46:47,560 ERROR [io.st.op.conciliation] (SGCluster-ReconciliationLoop) Reconciliation of SGCluster ui/ui-replica failed: java.util.NoSuchElementException: No value present
at java.base/java.util.Optional.orElseThrow(Optional.java:377)
at io.stackgres.operator.conciliation.factory.cluster.replicate.ReplicateConfigMap.lambda$buildSource$0(ReplicateConfigMap.java:73)
at java.base/java.util.Optional.ifPresent(Optional.java:178)
at io.stackgres.operator.conciliation.factory.cluster.replicate.ReplicateConfigMap.buildSource(ReplicateConfigMap.java:70)
at io.stackgres.operator.conciliation.factory.cluster.replicate.ReplicateConfigMap.buildVolumes(ReplicateConfigMap.java:52)
at io.stackgres.operator.conciliation.factory.cluster.replicate.ReplicateConfigMap.buildVolumes(ReplicateConfigMap.java:35)
at io.stackgres.operator.conciliation.factory.cluster.ClusterVolumeDiscoverer.lambda$discoverVolumes$1(ClusterVolumeDiscoverer.java:41)
at java.base/java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:273)
at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179)
at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:921)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682)
at io.stackgres.operator.conciliation.factory.cluster.ClusterVolumeDiscoverer.discoverVolumes(ClusterVolumeDiscoverer.java:42)
at io.stackgres.operator.conciliation.factory.cluster.ClusterVolumeDiscoverer.discoverVolumes(ClusterVolumeDiscoverer.java:24)
at io.stackgres.operator.conciliation.factory.cluster.ClusterVolumeDiscoverer_ClientProxy.discoverVolumes(Unknown Source)
at io.stackgres.operator.conciliation.factory.cluster.ClusterStatefulSet.generateResource(ClusterStatefulSet.java:94)
at io.stackgres.operator.conciliation.factory.cluster.ClusterStatefulSet.generateResource(ClusterStatefulSet.java:42)
at io.stackgres.operator.conciliation.AbstractRequiredResourceDecorator.lambda$decorateResources$0(AbstractRequiredResourceDecorator.java:30)
at java.base/java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:273)
at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:575)
at java.base/java.util.stream.AbstractPipeline.evaluateToArrayNode(AbstractPipeline.java:260)
at java.base/java.util.stream.ReferencePipeline.toArray(ReferencePipeline.java:616)
at java.base/java.util.stream.ReferencePipeline.toArray(ReferencePipeline.java:622)
at java.base/java.util.stream.ReferencePipeline.toList(ReferencePipeline.java:627)
at io.stackgres.operator.conciliation.AbstractRequiredResourceDecorator.decorateResources(AbstractRequiredResourceDecorator.java:30)
at io.stackgres.operator.conciliation.cluster.ClusterRequiredResourceDecorator_ClientProxy.decorateResources(Unknown Source)
at io.stackgres.operator.conciliation.cluster.ClusterRequiredResourcesGenerator.getRequiredResources(ClusterRequiredResourcesGenerator.java:223)
at io.stackgres.operator.conciliation.cluster.ClusterRequiredResourcesGenerator.getRequiredResources(ClusterRequiredResourcesGenerator.java:63)
at io.stackgres.operator.conciliation.cluster.ClusterRequiredResourcesGenerator_ClientProxy.getRequiredResources(Unknown Source)
at io.stackgres.operator.conciliation.Conciliator.evalReconciliationState(Conciliator.java:28)
at io.stackgres.operator.conciliation.cluster.ClusterConciliator.evalReconciliationState(ClusterConciliator.java:30)
at io.stackgres.operator.conciliation.cluster.ClusterConciliator.evalReconciliationState(ClusterConciliator.java:18)
at io.stackgres.operator.conciliation.cluster.ClusterConciliator_ClientProxy.evalReconciliationState(Unknown Source)
at io.stackgres.operator.conciliation.AbstractReconciliator.lambda$reconciliationCycle$4(AbstractReconciliator.java:108)
at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183)
at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179)
at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150)
at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596)
at io.stackgres.operator.conciliation.AbstractReconciliator.reconciliationCycle(AbstractReconciliator.java:100)
at io.stackgres.operator.conciliation.AbstractReconciliator.reconciliationLoop(AbstractReconciliator.java:90)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at java.base/java.lang.Thread.run(Thread.java:833)