Skip to content

AggregatedOperatorException: Exception(s) during workflow execution #189

Description

@cmoulliard

Issue

The following template definition

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 pkg in parent.spec.packages}
        {#for s in pkg.pipeline.steps}
        - apiVersion: batch/v1
          kind: Job
          metadata:
            name: {s.name}
            namespace: default
          spec:
            template:
              spec:
                containers:
                  - name: {s.name}
                    image: {s.image}
                    command:
                    {#if s.script??}
                    - /bin/sh
                    - -exc
                    - |
                      echo "Helm values ..."
                      {#if s.values??}
                      echo {s.values}
                      {/if}
                      {s.script}
                    {/if}
                restartPolicy: Never
            backoffLimit: 4
        {/for}
        {/for}

Data

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
          image: dtzar/helm-kubectl
          repoUrl: https://kubernetes.github.io/ingress-nginx
          version: 4.12.2
          script: |
            helm version
          values: |
            ingress:
              enabled: true
        - name: post-install
          image: registry.access.redhat.com/ubi9
          script: |
            echo "This is a post-installation running a job"

raises this error

2025-05-27 17:34:49,353 ERROR [io.jav.ope.pro.eve.EventProcessor] (ReconcilerExecutor-glue-179) Error during event processing ExecutionScope{ resource id: ResourceID{name='simple-platform-platform', namespace='default'}, version: 98104}

Exception in GlueReconciler.java:90
          88      addFinalizersToParentResource(primary, context);
          89      var actualWorkflow = buildWorkflowAndRegisterInformers(primary, context);
        → 90      var result = actualWorkflow.reconcile(primary, context);
          91      cleanupRemovedResourcesFromWorkflow(context, primary);
          92      informerRegister.deRegisterInformerOnResourceFlowChange(context, primary);

Exception in GlueReconciler.java:39
          37  import static io.javaoperatorsdk.operator.glue.reconciler.operator.GlueOperatorReconciler.PARENT_RELATED_RESOURCE_NAME;
          38  
        → 39  @ControllerConfiguration(name = GlueReconciler.GLUE_RECONCILER_NAME)
          40  public class GlueReconciler implements Reconciler<Glue>, Cleaner<Glue> {
          41  

: io.javaoperatorsdk.operator.AggregatedOperatorException: Exception(s) during workflow execution. Details:
 - jobs -> while parsing a block mapping
 in reader, line 1, column 1:
    items:
    ^
expected <block end>, but found ']'
 in reader, line 19, column 1:
    ]
    ^

        at org.snakeyaml.engine.v2.parser.ParserImpl$ParseBlockMappingKey.produce(ParserImpl.java:729)
        at org.snakeyaml.engine.v2.parser.ParserImpl.lambda$produce$1(ParserImpl.java:232)
        at java.base/java.util.Optional.ifPresent(Optional.java:178)
        at org.snakeyaml.engine.v2.parser.ParserImpl.produce(ParserImpl.java:232)
        at org.snakeyaml.engine.v2.parser.ParserImpl.peekEvent(ParserImpl.java:206)
        at org.snakeyaml.engine.v2.comments.CommentEventsCollector$1.peek(CommentEventsCollector.java:57)
        at org.snakeyaml.engine.v2.comments.CommentEventsCollector$1.peek(CommentEventsCollector.java:43)
        at org.snakeyaml.engine.v2.comments.CommentEventsCollector.collectEvents(CommentEventsCollector.java:135)
        at org.snakeyaml.engine.v2.comments.CommentEventsCollector.collectEvents(CommentEventsCollector.java:115)
        at org.snakeyaml.engine.v2.composer.Composer.composeSequenceNode(Composer.java:284)
        at org.snakeyaml.engine.v2.composer.Composer.composeNode(Composer.java:208)
        at org.snakeyaml.engine.v2.composer.Composer.composeValueNode(Composer.java:364)
        at org.snakeyaml.engine.v2.composer.Composer.composeMappingChildren(Composer.java:343)
        at org.snakeyaml.engine.v2.composer.Composer.composeMappingNode(Composer.java:321)
        at org.snakeyaml.engine.v2.composer.Composer.composeNode(Composer.java:210)
        at org.snakeyaml.engine.v2.composer.Composer.next(Composer.java:162)
        at org.snakeyaml.engine.v2.api.Load$YamlIterator.next(Load.java:234)
        at io.fabric8.kubernetes.client.utils.KubernetesSerialization.parseYaml(KubernetesSerialization.java:274)
        at io.fabric8.kubernetes.client.utils.KubernetesSerialization.unmarshal(KubernetesSerialization.java:255)
        at io.fabric8.kubernetes.client.utils.KubernetesSerialization.unmarshal(KubernetesSerialization.java:345)
        at io.fabric8.kubernetes.client.utils.KubernetesSerialization.unmarshal(KubernetesSerialization.java:330)
        at io.fabric8.kubernetes.client.utils.Serialization.unmarshal(Serialization.java:186)
        at io.javaoperatorsdk.operator.glue.dependent.GenericBulkDependentResource.desiredResources(GenericBulkDependentResource.java:33)
        at io.javaoperatorsdk.operator.glue.dependent.GenericBulkDependentResource.desiredResources(GenericBulkDependentResource.java:17)
        at io.javaoperatorsdk.operator.processing.dependent.BulkDependentResourceReconciler.reconcile(BulkDependentResourceReconciler.java:36)
        at io.javaoperatorsdk.operator.processing.dependent.AbstractDependentResource.reconcile(AbstractDependentResource.java:66)
        at io.javaoperatorsdk.operator.processing.dependent.workflow.WorkflowReconcileExecutor$NodeReconcileExecutor.doRun(WorkflowReconcileExecutor.java:145)
        at io.javaoperatorsdk.operator.processing.dependent.workflow.NodeExecutor.run(NodeExecutor.java:20)
        at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572)
        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
        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)

        at io.javaoperatorsdk.operator.processing.dependent.workflow.BaseWorkflowResult.throwAggregateExceptionIfErrorsPresent(BaseWorkflowResult.java:95)
        at io.javaoperatorsdk.operator.processing.dependent.workflow.DefaultWorkflow.reconcile(DefaultWorkflow.java:103)
        at io.javaoperatorsdk.operator.glue.reconciler.glue.GlueReconciler.reconcile(GlueReconciler.java:90)
        at io.javaoperatorsdk.operator.glue.reconciler.glue.GlueReconciler.reconcile(GlueReconciler.java:39)
        at io.javaoperatorsdk.operator.glue.reconciler.glue.GlueReconciler_ClientProxy.reconcile(Unknown Source)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions