Issue
When I try to use a resourceTemplate defined as such
apiVersion: io.javaoperatorsdk.operator.glue/v1beta1
kind: GlueOperator
metadata:
name: ingress-platform
spec:
parent:
apiVersion: halkyon.io/v1alpha1
kind: Platform
childResources:
- name: jobs
bulk: true
resourceTemplate: |
items:
{#for p in parent.spec.packages}
- apiVersion: v1
kind: ConfigMap
metadata:
name: {p.name}
namespace: default
data:
key: "value-{p.name}"
{/for}
with the following CRD
apiVersion: "apiextensions.k8s.io/v1"
kind: "CustomResourceDefinition"
metadata:
name: platforms.halkyon.io # "platforms.io.javaoperatorsdk.operator.glue"
spec:
group: halkyon.io # "io.javaoperatorsdk.operator.glue"
names:
kind: "Platform"
plural: "platforms"
singular: "platform"
scope: "Cluster"
versions:
- name: v1alpha1 # v1beta1
schema:
openAPIV3Schema:
properties:
spec:
properties:
description:
type: "string"
name:
type: "string"
packages:
items:
properties:
description:
type: "string"
name:
type: "string"
pipeline:
properties:
description:
type: "string"
name:
type: "string"
steps:
items:
properties:
description:
type: "string"
repoUrl:
type: "string"
version:
type: "string"
id:
type: "string"
image:
type: "string"
name:
type: "string"
script:
type: "string"
valuesObject:
description: "ValuesObject specifies Helm values to\
\ be passed to helm template, defined as a map."
type: "object"
x-kubernetes-preserve-unknown-fields: true
type: "object"
type: "array"
type: "object"
type: "object"
type: "array"
version:
type: "string"
type: "object"
status:
properties:
message:
type: "string"
phase:
type: "string"
type: "object"
type: "object"
served: true
storage: true
subresources:
status: {}
then we got the following error when we deplouy the YAML
apiVersion: halkyon.io/v1alpha1
kind: Platform
metadata:
name: simple-platform
spec:
version: 0.1.0
description: "A simple platform"
packages:
- name: nginx-ingress
description: "nginx-ingress package"
pipeline:
steps:
- name: pre-install
image: registry.access.redhat.com/ubi9
script: |
echo "This is a pre-installation running a job"
- name: "Install nginx-ingress"
repoUrl: https://kubernetes.github.io/ingress-nginx
version: 4.12.2
valuesObject:
ingress:
enabled: true
- name: post-install
image: registry.access.redhat.com/ubi9
script: |
echo "This is a post-installation running a job"
Error
2025-05-27 09:23:02,528 ERROR [io.jav.ope.pro.eve.EventProcessor] (ReconcilerExecutor-glue-111) Error during event processing ExecutionScope{ resource id: ResourceID{name='simple-platform-platform', namespace='default'}, version: 69002}: io.javaoperatorsdk.operator.OperatorException: java.lang.NullPointerException
at io.javaoperatorsdk.operator.processing.Controller.cleanup(Controller.java:222)
at io.javaoperatorsdk.operator.processing.event.ReconciliationDispatcher.handleCleanup(ReconciliationDispatcher.java:258)
at io.javaoperatorsdk.operator.processing.event.ReconciliationDispatcher.handleDispatch(ReconciliationDispatcher.java:95)
at io.javaoperatorsdk.operator.processing.event.ReconciliationDispatcher.handleExecution(ReconciliationDispatcher.java:68)
at io.javaoperatorsdk.operator.processing.event.EventProcessor$ReconcilerExecutor.run(EventProcessor.java:467)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
at java.base/java.lang.Thread.run(Thread.java:1583)
Caused by: java.lang.NullPointerException
at java.base/java.util.Objects.requireNonNull(Objects.java:233)
at java.base/java.util.Optional.of(Optional.java:113)
at io.javaoperatorsdk.operator.glue.reconciler.glue.GlueReconciler.lambda$getParentRelatedResource$18(GlueReconciler.java:357)
at java.base/java.util.Optional.flatMap(Optional.java:289)
at io.javaoperatorsdk.operator.glue.reconciler.glue.GlueReconciler.getParentRelatedResource(GlueReconciler.java:346)
at io.javaoperatorsdk.operator.glue.reconciler.glue.GlueReconciler.removeFinalizerForParent(GlueReconciler.java:316)
at io.javaoperatorsdk.operator.glue.reconciler.glue.GlueReconciler.cleanup(GlueReconciler.java:117)
at io.javaoperatorsdk.operator.glue.reconciler.glue.GlueReconciler.cleanup(GlueReconciler.java:39)
at io.javaoperatorsdk.operator.glue.reconciler.glue.GlueReconciler_ClientProxy.cleanup(Unknown Source)
at io.javaoperatorsdk.operator.processing.Controller$2.execute(Controller.java:209)
at io.javaoperatorsdk.operator.processing.Controller$2.execute(Controller.java:170)
at io.javaoperatorsdk.operator.api.monitoring.Metrics.timeControllerExecution(Metrics.java:159)
at io.javaoperatorsdk.operator.processing.Controller.cleanup(Controller.java:169)
... 7 more
See the screenshot where the error occurs when we debug

The problem is related to the fact that the HashMap created includes a resource but the value is null

Issue
When I try to use a
resourceTemplatedefined as suchwith the following CRD
then we got the following error when we deplouy the YAML
Error
See the screenshot where the error occurs when we debug
The problem is related to the fact that the HashMap created includes a resource but the value is null